यदि आपके पास NSMutableArray
है, तो आप तत्वों को यादृच्छिक रूप से कैसे घुमाते हैं?एनएसएमयूटेबलएरे को शफल करने का सबसे अच्छा तरीका क्या है?
(मैं इस बात के लिए अपने ही जवाब है, जो नीचे पोस्ट किया जाता है है, लेकिन मैं कोको के लिए नया हूँ और मैं अगर वहाँ एक बेहतर तरीका है पता करने के लिए इच्छुक हूँ।)
अद्यतन: के रूप में @Mukesh द्वारा नोट किया गया, आईओएस 10+ और मैकोज़ 10.12+ के रूप में, -[NSMutableArray shuffledArray]
विधि है जिसका उपयोग शफल करने के लिए किया जा सकता है। विवरण के लिए https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc देखें। (लेकिन ध्यान दें कि यह तत्वों को स्थानांतरित करने के बजाए एक नई सरणी बनाता है।)
स्विफ्ट में एक कार्यान्वयन है: http://iosdevelopertips.com/swift-code/swift-shuffle-array-type में ऐरे के लिए एक सहायक है।एचटीएमएल –
इस सवाल पर एक नज़र डालें: [बेवकूफ शफलिंग के साथ वास्तविक दुनिया की समस्याएं] (http://stackoverflow.com/questions/96840/real-world-problems-with-naive-shuffling) आपके शफल एल्गोरिदम के संबंध में। – craigb
वर्तमान सर्वोत्तम [फिशर-येट्स] है (https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle): 'के लिए (NSUInteger i = self.count; i> 1; i--) [self exchangeObjectAtIndex: i - 1 withObjectAtIndex: arc4random_uniform ((u_int32_t) i)]; ' –