我有整數中的數字是0,17,23,44,57,60,66,83,89,91,100,但我想隨機選擇6號碼,要做到這一點?我只能顯示0-100的一個隨機數,但我不知道如何從選定的數字中顯示6個數字。請教。隨機xcode中的選定號碼
回答
如果你想挑選六個號碼不脫離重複陣列,使用Knuth-Fisher–Yates shuffle對數組進行混洗,並取前六個數字:
int data[] = {0, 17, 23, 44, 57, 60, 66, 83, 89, 91, 100};
// Knuth-Fisher-Yates
for (int i = 10 ; i > 0 ; i--) {
int n = rand() % (i+1);
int tmp = data[i];
data[i] = data[n];
data[n] = tmp;
}
data
數組的前六個元素包含來自原始11元素數組的隨機選擇。
+1:事實上,在這種特殊情況下,他需要一個隨機的行爲! –
將數字放入數組中。使用一個隨機數生成器來獲得一個小於數組長度的0到1之間的隨機數,然後獲得該索引處的數字。
這只是一種方法。
看到這個職位:Generating random numbers in Objective-C
有很多方法可以做到這一點。這個特殊的方法有很好的反應。要獲得6個隨機數字,只需運行6次函數。
有關讀取該隨機數到數組爲下面的代碼可以是你
[array objectAtIndex: (random() % [array count])]
這裏有用的是例如
NSUInteger firstObject = 0;
for (int i = 0; i<[myNSMutableArray count];i++) {
NSUInteger randomIndex = random() % [myNSMutableArray count];
[myNSMutableArray exchangeObjectAtIndex:firstObject withObjectAtIndex:randomIndex];
firstObject +=1;
}
你的實現包含一個非常常見的[從整個範圍中挑選一個隨機元素的實現錯誤](http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Implementation_errors)。正如維基文章中所解釋的那樣,選擇是有偏見的。 – dasblinkenlight
感謝您通知我。+1爲它 –
- 1. xcode中的隨機重複符號(C++)
- 2. 隨機uint8_t號碼
- 3. 隨機化預定義的號碼
- 4. Javascript隨機號碼顯示
- 5. 隨機非重複編號Xcode
- 6. 加權隨機選號
- 7. Xcode中的隨機圖像
- 8. 需要隨時撥打電話號碼創建隨機號碼
- 9. 如何從一些中獎號碼中挑選隨機數字?
- 10. 獲取Android中隨機聯繫號碼
- 11. 隨機號碼,其中一個號碼有較高几率
- 12. 不要重複的號碼隨機
- 13. 未使用的隨機dosieid號碼
- 14. 指定隨機密碼
- 15. 從固定種子文件中選取隨機行(僞隨機)
- 16. 通過隨機訂購號碼
- 17. 基於輸入號碼隨機密鑰
- 18. VBA:添加隨機號碼,在網格
- 19. 如何創建隨機移動號碼
- 20. Javascript隨機號碼選取器不工作
- 21. 推向Xcode中的隨機veiwcontroller?
- 22. Core Data Xcode中的隨機函數
- 23. 比較用戶輸入的號碼和Javascript中隨機生成的號碼
- 24. 隨機電話號碼xxx或yyy +運營商號碼mm或nn +隨機6或7位數字在php中
- 25. Xcode int返回隨機數
- 26. 隨機圖像方向xcode
- 27. 隨機整數號
- 28. 如何從選定的複選框中選擇隨機對象
- 29. 如何通過自定義編號創建隨機選擇器?
- 30. 隨機密碼的代碼
這些整數值插入數組還是不是? –