問題タブ [shuffle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
12 に答える
78004 参照

objective-c - NSMutableArray をシャッフルする最良の方法は何ですか?

がある場合NSMutableArray、要素をランダムにシャッフルするにはどうすればよいですか?

(これについては私自身の回答があり、以下に掲載されていますが、私は Cocoa を初めて使用するので、より良い方法があるかどうか知りたいと思っています。)


更新: @Mukesh が指摘したように、iOS 10 以降および macOS 10.12 以降では、-[NSMutableArray shuffledArray]シャッフルに使用できる方法があります。詳細については、 https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objcを参照してください。(ただし、要素をその場でシャッフルするのではなく、新しい配列を作成することに注意してください。)

0 投票する
6 に答える
3749 参照

algorithm - 素朴なシャッフルに関する現実の問題

私はポーカー関連のトピックを使ってプログラミングの概念を始めることを教えることを目的とした多くの記事を書いています。現在、シャッフルのテーマに取り組んでいます。

Jeff AtwoodがCodingHorror.comで指摘しているように、1つの単純なシャッフル方法(配列を繰り返し、各カードを配列内の他の場所のランダムなカードと交換する)は、順列の不均一な分布を作成します。実際のアプリケーションでは、より均一なランダム性のためにKnuthFisher-Yatesシャッフルを使用します。しかし、私は、プログラミングの概念の説明を、はるかにコーダーに適さないアルゴリズムで行き詰まらせたくありません。

これは質問につながります:あなたが52枚のカードのデッキの素朴なシャッフルを使用していることを彼らが知っていたら、ブラックハットはどれだけの利点を持っているでしょうか?非常に小さいようです。

0 投票する
2 に答える
2818 参照

java - Collections API を使用してシャッフルする

コレクションのシャッフルが正しく機能しない理由が分からないので、とてもイライラしています。

randomizer配列 をシャッフルしようとしているとしましょう。

何らかの理由で、シャッフル メソッドを呼び出すかどうかに関係なく、要素はまったく同じように並べ替えられたままになります。何か案は?

0 投票する
5 に答える
1978 参照

algorithm - 同一の要素が隣り合うのを避けるために、リストをシャッフルします (重複あり)

array[i] == array[i+1] が可能な限り回避されるように、重複を含む要素のリストをシャッフルする「最良の」方法があるかどうか疑問に思っています。

重み付けされた広告表示に取り組んでおり (特定の広告主のローテーションあたりの表示数を調整できます)、同じ広告主が 2 回続けて表示されるのを避けたいと考えています。

0 投票する
5 に答える
2395 参照

algorithm - シャッフルではなく PRNG を使用してシャッフル範囲を生成する

任意のシード値が与えられた場合、線形時間と定数空間 (出力が反復的に生成される場合) でシャッフルされた範囲 [0..n) を生成できる既知のアルゴリズムはありますか?

n が数百万のように大きいと仮定すると、すべての可能な順列を潜在的に生成する必要はありません。特に、それは実行不可能です (シード値のスペースが巨大である必要があるため)。これは、一定のスペースが必要な理由でもあります。(したがって、範囲を長さ n の配列に格納する必要があり、線形空間を使用するため、特に配列シャッフル アルゴリズムを探しているわけではありません。)

私は質問 162606を認識していますが、この特定の質問に対する回答は提示されていません。その質問で指定された順列インデックスから順列へのマッピングには、巨大なシード値スペースが必要になります。

理想的には、周期と範囲がのLCGのように機能しますが、 LCGnを選択する技術は微妙です。LCG の全期間の制約を満たすだけで、私の要件を満たすことができるかもしれませんが、他にもっと良いアイデアがあるかどうか疑問に思っています。acac

0 投票する
8 に答える
8450 参照

java - Knuth shuffle を Stack データ構造に適用する方法はありますか?

プログラミングのクラスで、最初の宿題としてブラックジャック プログラムを作成しています。教授はサンプル カード クラスを提供してくれました。これには、それらをデッキに追加する方法が含まれています。彼女のデッキでは、Collections.shuffle() メソッドを使用して簡単に Knuth シャッフルできる ArrayList を使用しています。

ただし、その方法は (明らかに) スタックでは機能しませんが、カードをデックに出し入れする可能性があるため、このプログラムにはスタック構造が最適であると思います。

0 投票する
7 に答える
930 参照

shuffle - バイアスされた乱数のシャッフル

この質問について考え、参加者と話し合っていると、明確にバイアスされた乱数の有限集合をシャッフルすると、選択された順序がわからないため、乱数がランダムになるという考えが浮かびました。これは本当ですか?もしそうなら、誰かがいくつかのリソースを指すことができますか?

編集:私は少し不明確だったかもしれないと思います。不正な乱数ジェネレーターを想定します。n個の値を取ります。これらは偏っています(rngは悪いです)。複数の試行にわたるrngの出力を、既知の良好なrngの出力と統計的に一致させる方法はありますか?

0 投票する
11 に答える
273427 参照

python - Pythonで配列をシャッフルし、Pythonで配列項目の順序をランダム化する

Pythonで配列をシャッフルする最も簡単な方法は何ですか?

0 投票する
7 に答える
3973 参照

c# - IComparer を使用したシャッフル

まず、フィッシャー・イェーツ・シャッフルについて知っています。しかし、引数のために、ユーザーがドロップダウン リストから並べ替えオプションを選択できるようにしたいとしましょう。このリストには、「ランダム」オプションが含まれます。彼らの選択の結果に基づいて、ソートを IComparer インスタンスに置き換えたいだけです。IComparer はどのように見えるでしょうか?

Google は多くの欠陥のある結果を表示しますが、これらはすべて次の形式を取ります。

ただし、その実装には偏りがあり、状況によっては例外をスローすることさえあります。バイアスは、次のコードで実証できます。

IComparer<T>では、これらの問題を解決するランダムをどのように実装できるのでしょうか? .Sort()これを行う他の方法が見当たらないため、各呼び出しで個別の IComparer インスタンスを使用するように要求することが許可されてます特定のソート操作内。

私はここから始めましたが、急いで投稿され、非常に遅く、可能なすべてのソートを返すことさえありません(テストでは、欠落しているオプションを数えなければ、少なくともバイアスを排除することが示されています)。Fisher-Yates のような O(n) のパフォーマンスは期待していませんが、合理的なもの (小さな n に対して n log n) が必要であり、考えられるすべての並べ替えが表示されることを期待しています。残念ながら、そのリンクはその質問に対する現在受け入れられている回答であるため、もう少し良いものに置き換えることができることを望んでいます。

他に何もないとしても、これが IComparable ソリューションを探しているすべての Google クエリの磁石になることを望んでいます。つまり、間違ったバージョンを使用するように他の場所に指示するのではなく、ここに行き着くということです。

0 投票する
4 に答える
1901 参照

random - 256個のランダムビットで数値を生成する最良の方法は?

256個のランダムビットで数値を生成する最良の方法は何ですか?

ランダムバイトの連結は機能しますか?

さらに、これらの番号の重複しないものを使用してカードのデッキを並べ替えることは適切でしょうか?