問題タブ [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 投票する
1 に答える
213 参照

algorithm - シャッフルグループアルゴリズム

foob​​ar2kのように、オーディオプレーヤーに「アルバムのシャッフル」アルゴリズムが必要です。したがって、問題は次のとおりです。同じアルバムのトラックがすべて隣接するように、いくつかの基準に従ってソートされたトラックのリストがあります。次に、プレイリストの曲を「アルバムのシャッフル」モードで再生できるようにする必要があります。つまり、次のトラックが同じアルバムの場合は再生するだけです。それ以外の場合は、次のランダムアルバムの最初のトラックに移動します。ユーザーが前のトラックを再生したい場合は、同じことを逆方向に実行します。だから問題は、前のアルバムが何であったかをどうやって知るのかということです。再生したアルバムの履歴を保持したり、別のリストを保持したりしたくありません。

現在、各トラックにランダムなシャッフルインデックスを付けて通常のシャッフルモードを実装しているので、最大のシャッフルインデックスが現在より小さく、最小のシャッフルインデックスが現在よりも大きいトラックを見つけることで、前のトラックと次のトラックを見つけることができます。ただし、シャッフルアルバムモードでは機能しません。誰かがこれを手伝ってくれますか?

サンプル入力:

現在のトラックがトラック1、アルバムAであるとします。次のトラックはトラック2、アルバムAになります。次のトラックは同じアルバムのものではないため、ランダムなアルバムの最初のトラックを選択する必要があります。たとえば、トラック1、アルバムCです。 。私が今していることは、通常のシャッフルモードであるかのように次のトラックを選択し、次にそのアルバムの最初のトラックに移動することです。そのため、このアルバムに到達した場所から情報が失われます。そのため、ユーザーが前のアルバムに行きたいと思ったとき、どうやってそこにたどり着いたのかわかりません。それが質問をより明確にすることを願っています。

ありがとうございました。

0 投票する
1 に答える
18271 参照

java - Javaを使用して単語をスクランブリングする

文字列をスクランブリングして読みにくくしたかったので、次のメソッドを思いつきました。

そのため、最初に文字列をchar配列に変換し、メソッドでchar配列「dummywordarray」を複製する必要がありました。このアルゴリズムを1回通過すると、単語のすべての文字の位置が変更されます。しかし、一目で元に戻すことができるという意味で、うまくスクランブルされることはありません。そのため、9文字未満の特定の文字列をメソッドに7回渡しましたが、単語はかなりスクランブルされています。つまり、判読できません。しかし、30文字の文字列で試してみたところ、うまくスクランブルされていることを保証できるようになるまでに500パスかかりました。500!より良いアルゴリズムがあると確信しています。a)この方法を改善するか、b)より良い方法についてアドバイスをお願いします。

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

math - 番号の並べ替え

私は 1 から 62 の範囲の数字を持っています。それらを「暗号化」できるようにしたいので、それらが何らかの順序で生成されたと推測するのは困難です。

したがって、たとえば、いくつかのマッピングである必要があります

1->35 2->19 3->61 ...

1 対 1 のマッピングで、100% リバーシブルです。


マッピングをハードコードすることはできますが、それよりも数値を引数として取り、1 ~ 62 の範囲の数値を生成し、重複を生成しない数式のような数学的なソリューションを好むでしょう。この式が存在する可能性はありますか?


履歴のために、検証スクリプト:

アップデート:

これらの回答のおかげで生成された ID は次のとおりです。

甘い :-)

0 投票する
1 に答える
149 参照

objective-c - Objective-C の 3 つの異なる配列から要素をリンクする

アラビア語学習用のマッチングゲームを作ろうとしています。3 つの plist から 3 つの異なる配列を作成し、UIPicker を使用して情報を表示しています。配列の作成と UIPickerView への転送の間に、配列の要素をシャッフルしました。残念ながら、これにより、配列内のアイテムの最初のインデックスを追跡できなくなります。plist 内の各要素は同じ順序で (異なる言語で) リストされているため、一致を確認するために、各要素の初期インデックスを思い出すことができる必要があります。

次のシャッフル アルゴリズムを使用します。

}

}

および次の初期化:

助言がありますか?どんな助けでも大歓迎です:]

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

java - Java での 2D 配列のシャッフル

Java で 2D オブジェクト配列をシャッフルしようとしています。Collections.shuffle でうまくいくと思いましたが、各行のオブジェクトをシャッフルするだけで、行を混ぜ合わせないように見えます。私のために2D配列をシャッフルできる組み込みメソッドまたは実装が簡単なメソッドはありますか? 配列はcards[13][4].

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

c# - C#で内部順序を維持しながら、2つの並べ替えられたリストを1つのシャッフルリストにマージする方法

リストの内部順序を維持する、シャッフルされたマージ済みリストを生成したいと考えています。

例えば:

リストA: 11 22 33

リスト B: 6 7 8

有効な結果: 11 22 6 33 7 8

無効な結果: 22 11 7 6 33 8

0 投票する
17 に答える
163132 参照

python - 2つのnumpy配列を一斉にシャッフルするためのより良い方法

形状が異なるが、長さが同じ(リーディングディメンション)の2つのnumpy配列があります。対応する要素が引き続き対応するように、それぞれをシャッフルしたいと思います。つまり、主要なインデックスに関して一斉にシャッフルします。

このコードは機能し、私の目標を示しています。

例えば:

ただし、これは不格好で非効率的で低速であると感じ、配列のコピーを作成する必要があります。配列は非常に大きくなるため、その場でシャッフルしたいと思います。

これについてもっと良い方法はありますか?実行の高速化とメモリ使用量の削減が私の主な目標ですが、洗練されたコードもいいでしょう。

私が持っていたもう一つの考えはこれでした:

これは機能します...しかし、それが機能し続けるという保証はほとんどないので、少し怖いです-たとえば、numpyバージョン全体で存続することが保証されているようなもののようには見えません。

0 投票する
3 に答える
1963 参照

python - Python の何百万もの要素のランダム リストを効率的に

Python で文字列のリストをランダム化する最良の方法として、この回答を潜在的に読んだことがあります。次のコードを介して約3000万の要素のリストがあるため、それが最も効率的な方法であるかどうか疑問に思っています:

より効率的な方法があれば、その方法についてアドバイスをいただければ幸いです。

ありがとう、

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

java - プレイリストシャッフルのオン/オフ

私はJavaでプログラミングしていますが、C ++(または疑似)コードを採用することもできます。問題ありません。これが私がいるところです:

のようなプレイリストのようなものがありList<MyPlayListItem> lsMyPlaylistます。ここで、ユーザーにアイテムをシャッフルする機会を与えたいと思いますが、その後、注文リストに戻ります。つまり、ユーザーが「シャッフルモード」になっているとしましょう。たとえば、プレーヤーは曲7から5にジャンプしますが、次に曲6を聞きたいので、ユーザーは「シャッフルモード」をオフにします。この問題にどのようにアプローチしますか?

私にはいくつかのアイデアがあります:

  • 2つのリストを使用するには、1つはオリジナル、もう1つはシャッフル(ストレージが多すぎる)
  • シャッフルしてから要素を取得するためのインデックスとして使用するintのリストがあります(もう少し良いかもしれませんが)
  • ハッシュテーブルを使用します(解決策?私はそれについてアドバイスが必要かもしれませんが)

ああ、これは宿題ではありません(私がその年齢に戻ったらいいのにと思います:-D)。

編集:

私はちょうどこのような実装を終えました:

しかし今、私は次のようなことを考えています:

これについてはよくわかりません...まだアドバイスが必要な場合があります。リスト内のオブジェクトを指定した場合でも、リストを実装できますか?うーん...

0 投票する
1 に答える
268 参照

c# - 文字列の配列を指定して、それらをランダムに並べ替える最も簡単な方法は何ですか?

私が思いついたのは次のとおりです。

他の方法はありますか、おそらくaDictionaryまたは何かを使用していますか?ありがとう。