この配列の場合:a = [8, 2, 22, 97, 38, 15]
、どのように値の順序を乱すことなく、スライディングウィンドウの方法で長さ3のすべてのサブ配列を取得できますか?配列の値の順序を変えずに並べ替える方法は?
たとえば、結果は次のようになります。[[8,2,22],[2,22,97],[22,97,38],[97,38,15]]
ここ
この配列の場合:a = [8, 2, 22, 97, 38, 15]
、どのように値の順序を乱すことなく、スライディングウィンドウの方法で長さ3のすべてのサブ配列を取得できますか?配列の値の順序を変えずに並べ替える方法は?
たとえば、結果は次のようになります。[[8,2,22],[2,22,97],[22,97,38],[97,38,15]]
ここ
は私が思いついたものです:あなたが達成するために、このようにするためにパラメータを渡すことができ
def ordered_permutations(array: [1,2,3], length: n)
array = array.dup
[].tap do |result|
(array.count - (length - 1)).times do
result << array[0..(length-1)]
array.shift
end
end
end
p ordered_permutations(array: a, length: 3)
Rubyの '配列#1 permutation'は既にソースの順序に従って値を返します。 –
@Alexander、それは無関係です。なぜなら、OPの質問は(望ましい結果を考慮して)順列とは関係がないからです。 :-) –
あなたの質問は不明です。あなたは順列について尋ねていますが、あなたの結果は順列ではありません。あなたが望んでいるものは何ですか? –