是否有可能產生一個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. 如何在Swift中生成0-5之間的隨機數字?
- 2. 在[0,1)之間生成隨機數
- 3. 我如何隨機生成75-100%之間的數字?
- 4. 如何生成-1000到1000之間的隨機數字?
- 5. 如何在'X'和'O'之間隨機生成一個字符?
- 6. 在兩個數字之間生成隨機數
- 7. 兩個數字之間的隨機數字生成器 - MatLab
- 8. 生成Java Card中兩個數字之間的隨機數字
- 9. 如何在1到1,000,000之間生成FreePascal中的隨機數
- 10. 如何在C++中生成0到4之間的隨機數?
- 11. 如何在0和2pi之間生成隨機數?
- 12. 如何在C中生成-1和1之間的隨機數?
- 13. 在兩個限制之間生成隨機數字
- 14. 如何生成[0,1]和3分數之間的隨機數
- 15. 如何在一定量之間生成隨機數量的數字?
- 16. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 17. 如何隨機生成數字?
- 18. 如何並行生成隨機數字?
- 19. 如何用arc4random生成隨機數字?
- 20. AS3 - 如何生成隨機數字?
- 21. 如何生成-1和1之間的隨機數?
- 22. 如何生成1000和-1000 C++之間的隨機數?
- 23. 如何在SystemVerilog仿真器之間生成重複的隨機數字序列?
- 24. 如何在0和用戶輸入號碼之間生成隨機數字?
- 25. 我如何(僞)隨機生成數字0和1(不在)之間?
- 26. 使用隨機數生成器生成5到25之間的數字
- 27. 生成0到10之間的隨機數字
- 28. Javascript生成0到75之間的隨機數字
- 29. Matlab與Python之間隨機生成數字的精度差異
- 30. 隨機生成數字?
好的答案,但使用arc4random()更好,因爲它將生成隨機數字,無論任何種子。使用沒有唯一種子的rand()將產生相同的結果,每次應用程序已運行。 – zaph
我認爲對開發者來說主觀性更好。如果他們每次都需要相同的隨機數序列會怎麼樣? – Danny
@Danny:+1 - 每次程序運行時,我都沒有在問題中看到任何需要獨特序列的要求。而且'rand()'更具可移植性,如果需要的話,用適當的種子調用'srand()'也是相當簡單的。 –