मैं एक सरणी @number = [1,2,3,4,5,6,7,8,9]
अब है, मैं सरणी सामग्री randomize करना चाहते हैं ... जैसे की तरह कुछ: [5,3,2,6,7,1,8]
मेरा मार्गदर्शन करें कि यह कैसे के साथ आगे बढ़ना।randomizing सरणी तत्वों
उत्तर
shuffle
विधि का उपयोग करें ...
irb(main):001:0> [1,2,3,4,5].shuffle
=> [3, 4, 2, 5, 1]
loop n times
i = random array index
j = random array index
swap elements i and j
end
यादृच्छिक रूप से वितरित परिणाम देने की गारंटी नहीं है। इसलिए, दो यादृच्छिक अनुक्रमणिका वाले तत्वों को स्वैप करने से आप मध्य में अपरिवर्तित अनुक्रमों के ब्लॉक के साथ सरणी दे सकते हैं। आपको 0 से एन तक बढ़ाना चाहिए और यह सुनिश्चित करने के लिए यादृच्छिक जे लेना चाहिए कि सभी * तत्व कम से कम एक बार बदल जाएंगे। –
Awful। यहां तक कि विषम 'n' क्रमपरिवर्तन के दो अलग-अलग सेट देता है। यह बहुत दुखी है, लेकिन फिर भी कुछ शिक्षक इस विधि के छात्रों को सिखाते हैं ... ऐसा कभी नहीं करें! – Nakilon
@ नकिनॉन: आप किसके बारे में बात कर रहे हैं? यह क्यों मायने रखता है कि एन भी अजीब है या नहीं? – RyanHennig
shuffle
आदेश
जैसे एक सरणी के एक यादृच्छिक संस्करण रिटर्न:
[1,2,3].shuffle => [2,3,1]
1.8.7p249 –
पर काम करता है और यदि आप जगह में यादृच्छिक बनाना चाहते हैं, तो आप केवल '@ number.shuffle लिख सकते हैं!' – Peter
आप पुराने संस्करण का उपयोग कर रहे हैं रूबी का ... यह काम करेगा
def randomize(array)
b = []
array.length.downto(1) { |n|
b.push array.delete_at(rand(n))
}
b
अंत
एक = [1,2,3,4,5] ख = अनियमित (क) प्रिंट ख
[1,2,3,4,5,6,7,8,9].sort_by {rand}[0,9]
=> [5, 7, 3, 8, 9, 4, 2, 1, 6]
1.8.6 के लिए अच्छा :) लेकिन अब तारीख से बाहर! – horseyguy
- 1. पासिंग सरणी तत्वों
- 2. सरणी तत्व सभी तत्वों
- 3. सभी सरणी तत्वों एक बहुआयामी सरणी
- 4. स्थिर सरणी और गतिशील सरणी में तत्वों की संख्या
- 5. कुछ मानदंडों से सरणी तत्वों को नष्ट
- 6. सरणी के तत्वों को कैसे निकालें?
- 7. Zend_Form सरणी संकेतन और खाली तत्वों नाम
- 8. php पाने दो अलग यादृच्छिक सरणी तत्वों
- 9. स्काला को अपडेट करने में सरणी तत्वों
- 10. मुझे छोड़कर सभी सरणी तत्वों को हटाएं?
- 11. सरणी से तत्वों को निकालना रूबी
- 12. कॉलिंग varargs विधि तत्वों और तत्वों की सरणी मिश्रण काम नहीं करता है
- 13. सी: किसी सरणी में तत्वों की संख्या ढूंढना []
- 14. NumPy सरणी से पंक्ति-वार तत्वों का चयन कैसे करें?
- 15. मैं चार सरणी में तत्वों का पता कैसे प्राप्त करूं?
- 16. एक numpy सरणी में विशिष्ट तत्वों को कैसे निकालें
- 17. किसी सरणी के तत्वों को कैसे पास करें विविधता फ़ंक्शन
- 18. गतिशील रूप से एक सरणी बना सकते हैं और तत्वों
- 19. जावा में एक सरणी के भीतर तत्वों की स्थिति स्वैपिंग?
- 20. एक सरणी के भी क्रमांकित तत्वों को रखते हुए?
- 21. हो रही उलटा (1/एक्स) एक numpy सरणी के तत्वों
- 22. निहित तत्वों को संयोजित करके दो जेसन.NET सरणी मर्ज करें
- 23. स्ट्रिंग सरणी में तत्वों को गतिशील रूप से कैसे जोड़ें?
- 24. एक गोलाकार सरणी में तत्वों को स्थानांतरित करना
- 25. जावा में स्ट्रिंग सरणी में सभी तत्वों को कैसे निकालें?
- 26. एकाधिक सरणी तत्वों को अनसेट करने का बेहतर तरीका
- 27. एक सरणी के तत्वों को निकालें अगर यह एक और
- 28. php - एक सरणी से निकालने तत्वों एक निर्दिष्ट कुंजी
- 29. एल्गोरिदम - LogLogN विशिष्ट तत्वों के साथ एक सरणी सॉर्ट करें
- 30. सरणी तत्वों की LIKE क्वेरी के लिए LINQ
डुप्लिकेट http://stackoverflow.com/questions/1816378/कैसे-यादृच्छिक रूप से-क्रमबद्ध-scramble-an-array-in-ruby – Nakilon
आपका हाइपोटेटिक फ़ंक्शन सरणी से 2 तत्वों को छोड़ देता है। यहां तक कि 'shuffle' भी ऐसा नहीं कर सकता, जीजी! – Nakilon