我不確定你嘗試解決什麼問題。如果你的代碼僅僅是一個更復雜的問題的例子,你真的需要以編程方式檢查每一個permumation,那麼你可能要與lazy
實驗:
[*1..3].repeated_permutation(30).lazy.each do ||
# your condition
end
或者你可能想使嵌套iteratior非常明確:
[1,2,3].each do |x1|
[1,2,3].each do |x2|
[1,2,3].each do |x3|
# ...
[1,2,3].each do |x30|
permutation = [x1,x2,x3, ... , x30]
# your condition
end
end
end
end
end
但是我覺得用Ruby枚舉來解決這類問題感覺不對。讓我們看看你的字符串:
111111111111111111111111111111
111111111111111111111111111112
111111111111111111111111111113
111111111111111111111111111121
111111111111111111111111111122
111111111111111111111111111123
111111111111111111111111111131
...
333333333333333333333333333323
333333333333333333333333333331
333333333333333333333333333332
333333333333333333333333333333
我建議只使用enumerative combinatorics。只要看看模式並分析(或計算)您的情況可能會多久出現true
。例如,在字符串中有28個索引,子字符串可以放在222
的子字符串中,只有27個子字符串可以放在2222
子字符串中。如果放置子字符串,字符串的其他部分中可能沒有1
?
我認爲你的問題是一個數學問題,而不是編程問題。
不清楚。 ..... – sawa
需要澄清的是什麼?我會很樂意詳細說明! – Caleb
您需要編輯您的問題以包含示例。顯示所需的輸出,例如'arr = [[1,3,3,2,2],[4,1,1,1,2],[5,1,3,1,1]]''。確保包含一個變量(這裏是'arr'),其值是輸入數組,因此可以在答案和註釋中引用它。 –