是否有可能產生一個1到10之間的隨機數,但它不應該是5?如何在1-10之間生成隨機數字?
回答
#include <stdlib.h>
// ...
int i;
do {
i = rand() % 10 + 1; // generate random number from 1 to 10
} while (i == 5); // repeat until number != 5
一個簡單的解決方案是使用系統函數在1-10之間生成一個隨機數,如果它恰好是5,則再次生成一個隨機數,直到它不是這種情況。這個解決方案有一個很小的可能性,你的功能在iPhone連擊之前不會返回:)。另一種方法是下面列出
另一種解決方案是使用1-9之間的系統函數以生成隨機數,並映射5-9 6-10
int GenRandomNumber()
{
int x = GetSystemRandomBetween1and9();
if (x >= 5)
x += 1;
return x;
}
我喜歡第二解決方案,沒有想到這一點。 +1 –
如何將5-9映射爲6-10請舉例,我是iphone新手。 – NoviceDeveloper
我已經更新了答案。你必須實現你自己的** GetSystemRandomBetween1和9 ** –
int x = arc4random()%9;
x += x>=4? 2 : 1
- 1. 如何生成-1000到1000之間的隨機數字?
- 2. 我如何隨機生成75-100%之間的數字?
- 3. 兩個數字之間的隨機數字生成器 - MatLab
- 4. 如何在1到1,000,000之間生成FreePascal中的隨機數
- 5. 在兩個限制之間生成隨機數字
- 6. 如何生成[0,1]和3分數之間的隨機數
- 7. 如何在一定量之間生成隨機數量的數字?
- 8. 如何並行生成隨機數字?
- 9. AS3 - 如何生成隨機數字?
- 10. 如何生成1000和-1000 C++之間的隨機數?
- 11. 如何在SystemVerilog仿真器之間生成重複的隨機數字序列?
- 12. 生成0到10之間的隨機數字
- 13. 隨機生成數字?
- 14. 在Objective-C中的兩個數字之間生成隨機數字
- 15. 在數組中生成隨機數字
- 16. 如何在django中生成隨機數
- 17. 隨機數生成兩個區間之間的雙打[a,b]
- 18. 生成0之間的隨機數10000在C#
- 19. Java在兩個給定值之間生成隨機數
- 20. 通過隨機字符生成生成隨機名字太慢
- 21. 我應該如何生成0到2之間的隨機數? BCL隨機不是隨機的
- 22. jQuery在隨機時間生成隨機數
- 23. 在php中生成隨機數字
- 24. 在2個數字之間生成一個唯一的隨機數
- 25. 生成隨機數
- 26. 隨機數生成
- 27. 生成隨機數
- 28. 隨機數生成在PySpark
- 29. 如何用r.nextInt()生成除一個數字之外的隨機數字?
- 30. 我如何在1到16之間的C++中生成一個隨機數?
好的答案,但使用arc4random()更好,因爲它將生成隨機數字,無論任何種子。使用沒有唯一種子的rand()將產生相同的結果,每次應用程序已運行。 – zaph
我認爲對開發者來說主觀性更好。如果他們每次都需要相同的隨機數序列會怎麼樣? – Danny
@Danny:+1 - 每次程序運行時,我都沒有在問題中看到任何需要獨特序列的要求。而且'rand()'更具可移植性,如果需要的話,用適當的種子調用'srand()'也是相當簡單的。 –