私がしなければならないことは非常に単純なので、複雑なプログラムを作成する必要はなく、これを 1 回使用するだけでよく、この結果を現在取り組んでいる実際のプロジェクトのフィード データにします。
2 から 50 までのすべての値を N として、N 個の要素のセットの最初の 50 個の (または、より適切には 50 個のランダムな) 組み合わせを取得する必要があります。
Rubyでは、論理的には次のようになります
require 'pp'
pp (1..50).to_a.permutation.to_a.first(50)
しかし悲しいことに、そのプログラムは常にメモリ不足になりました。実際のところ、私のマシンで生成できる「最大」数は 10 であり、50 が必要です。
これを達成するためのより効率的な方法が他にあると確信していますが、関連する数学がよくわからないため、必死に助けを求める必要があります. すべてのメモリを消費しない方法でそれを行う宝石、ライブラリ、またはアルゴリズムについて知っている人はいますか。私が言ったように、遅いかどうかは問題ではありません。これを生成する必要があるのは一度だけです。