/ / रूबी क्रमपरिवर्तन (अंतर्निहित) - परिणाम में आसन्न समान अक्षर नहीं होते हैं - रूबी, क्रमपरिवर्तन, रूबी-1.8

रूबी क्रमपरिवर्तन (बिल्टिन) - परिणाम में आसन्न समान अक्षर नहीं होते हैं - रूबी, क्रमपरिवर्तन, रूबी-1.8

कल आपकी मदद के लिए धन्यवाद और मुझे कुछ नया सिखाने के लिए भी धन्यवाद। :)

मेरे पास क्रमपरिवर्तन के आधार पर एक और प्रश्न है ... मेरे पास एल्गोरिदम काम करता है हालांकि मेरे पास यह मुद्दा है कि उत्पन्न आसन्न वर्णों के समान समान वर्ण गायब हैं।

उदाहरण के लिए, यदि मेरे पास चरित्र सूची ए-जेड, 0-9 है, - और मान लें कि अधिकतम लंबाई 2 है, तो मुझे aa, bb, cc, dd, ee, ff, आदि विज्ञापन नोडम देखना चाहिए।

length = 1
alphabet = [("a".."z").to_a, ("0".."9").to_a, ("-").to_a].flatten
prefix = "file-"
suffix = ".txt"


while length < 3


alphabet.permutation(length).each do |x|

@name =  prefix+x.join("").to_s+suffix
puts @name

end

length += 1

end

हालांकि, मैं केवल निम्नलिखित देख रहा हूं:

file-ba.txt
file-bc.txt

गायब "बीबी" नोट करें और यह तब तक जारी है जब तक कार्यक्रम समाप्त नहीं हो जाता है।

मुझे यकीन है कि मुझे कुछ याद आ रहा है, बस यकीन नहीं है कि क्या?

उत्तर:

जवाब के लिए 3 № 1

मुझे लगता है कि आप क्रमपरिवर्तन के बजाय repe_permutation का उपयोग करना चाहते हैं।

http://www.ruby-doc.org/core/classes/Array.html#M000289

यह "file-bb.txt" सहित सभी क्रमपरिवर्तन उत्पन्न करेगा।


उत्तर № 2 के लिए 1

यही कारण है कि "रों एक क्रमपरिवर्तन क्या है। [1,2,3] के केवल 6 क्रमपरिवर्तन हैं

123
132
213
231
312
321