問題タブ [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.
python - ワンライナースクランブルプログラム
プログラマーがリストをシャッフルして、元の位置に要素が存在しないようにしたいのは、今年もその時期です(少なくともオランダでは、シンタークラースを祝い、誰が誰の詩を書くかを決めるためにストローを選びます)。誰かがそのための素晴らしいPythonシングルステートメントを持っていますか?
したがって、入力例:range(10)
出力例:[2,8,4,1,3,7,5,9,6,0]
間違った出力は、が元の位置にある[2,8,4,1,3,5,7,9,6,0]
ためです。5
これは、人5が自分自身に詩を書かなければならないことを意味し、それはあまり楽しくありません。
編集多くの人は、幸運に恵まれ、実際に解決策が満足のいくものであることに気付くために、必要なだけ割り当てを繰り返します。理論的にはこれには無限に時間がかかる可能性があるため、これは悪いアプローチです。より良いアプローチは確かにバートによって提案されていますが、私は何らかの理由でそれをワンライナーに入れることができません...
編集ワンライナーとは、単一のステートメントを意味します。表示されているように、Pythonは1行で複数のステートメントを圧縮することもできます。私はそれを知りませんでした。現在、単一行の複数行の動作を模倣するためにセミコロンのみを使用する非常に優れたソリューションがあります。したがって、「1つのステートメントでそれを実行できますか?」
java - Javaの大きなリストに最適なリスト実装は何ですか?
n 要素 (最大 100,000) の大きなリストを作成する必要があります。リスト内の各要素は、リストのインデックスに相当する整数です。この後、このリストで Collections.shuffle を呼び出す必要があります。私の質問は、どのリスト実装 (Java コレクションまたは Apache コレクション) を使用する必要があるかということです。私の直感では、ここで ArrayList を十分に使用できます。すべての考えに感謝します。ありがとう!
入力していただきありがとうございます。私はArrayListに固執していると思います。現在、initialCapacity パラメータを指定して ArrayList コンストラクタを使用しており、リストのサイズを渡しています。したがって、元のリストが 100000 の場合、この新しいリストを new ArrayList(100000) で作成します。したがって、サイズ変更がないため、配列を作成してasListを実行する必要はないと思います。また、GrowthList や LazyList などのほとんどの Apache コレクション リストは、RandomAccess を実装していません。これは確かにシャッフルを遅くします(javadocsによる)。FastArrayList は RandomAccess を実装しますが、Apache にはこのクラスに関する「このクラスはクロスプラットフォームではありません。使用すると、一部のアーキテクチャで予期しないエラーが発生する可能性があります」というメモがあります。
php - 配列内のいくつかの(すべてではない)要素を選択して、PHPでシャッフルできますか?
配列内のいくつかの要素を選択して、PHPでシャッフルできますか?あなたが使用するとき、あなたは知っています
、配列内のすべての要素をシャッフルしますが、他の要素を変更せずに配列内の一部の要素をシャッフルしたいのですが、どうすればよいですか?
php - PHPコードが機能しないのはなぜですか?
以下はコードです:
これはMySQLクエリからの2次元配列であり、キーがoption1、option2、option3、およびoption4である値をシャッフルしたいと思います。しかし、私のコードは機能しません。私は自分でエラーを見つけることができます。提案してください。前もって感謝します!
ruby - Rubyで配列をランダムにソート(スクランブル)する方法は?
配列アイテムをスクランブルしたいと思います。このようなもの:
など、ランダムに
algorithm - シャッフルされたリストをインプレースで O(1) メモリで出力するアルゴリズム
この質問を読んだ後、私は疑問に思い始めました:元のリストを変更またはコピーしないシャッフルアルゴリズムを持つことは可能ですか?
明確にするために:
オブジェクトのリストが与えられたと想像してください。リストのサイズは任意ですが、かなり大きいと仮定します (たとえば、10,000,000 アイテム)。リストの項目をランダムな順序で印刷する必要があり、できるだけ速くそれを行う必要があります。ただし、次のことを行うべきではありません。
- 元のリストは非常に大きく、コピーすると大量のメモリが浪費されるため (おそらく使用可能な RAM の制限に達する)、元のリストをコピーします。
- 元のリストは何らかの方法でソートされており、後で他の部分がソートされることに依存するため、元のリストを変更します。
- 繰り返しになりますが、リストは非常に大きく、コピーには多くの時間とメモリが必要になるため、インデックス リストを作成します。(明確化: これは、元のリストと同じ数の要素を持つ他のリストを意味します)。
これは可能ですか?
追加:より明確化。
- すべての順列が同じ確率で真のランダムな方法でリストをシャッフルする必要があります (もちろん、最初に適切な Rand() 関数があると仮定します)。
- ポインターのリスト、インデックスのリスト、または元のリストと同じ数の要素を持つその他のリストを作成するという提案は、元の質問によって非効率的であると明示的に見なされます。必要に応じて追加のリストを作成できますが、元のリストよりも桁違いに小さいものにする必要があります。
- 元のリストは配列のようなもので、O(1) のインデックスによって任意の項目を取得できます。(したがって、目的のアイテムに到達するためにリストを反復処理する必要がある、二重にリンクされたリストのものはありません。)
追加 2 : OK、次のように言いましょう: 1 TB の HDD があり、それぞれ 512 バイト (単一セクター) のデータ項目でいっぱいです。すべてのアイテムをシャッフルしながら、このすべてのデータを別の 1TB HDD にコピーします。これをできるだけ速く実行したい (データの単一パスなど)。512MB の RAM が利用可能であり、スワップは必要ありません。(これは理論上のシナリオです。実際にはこのようなものはありません。完璧なアルゴリズムを見つけたいだけです。)
php - PHP でオブジェクトをシャッフルする
PHPでオブジェクトをソートするにはどうすればよいですか? 私は試しshuffle()
ましたが、それは配列を期待しています:
これは私のコードです:
Avar_dump($items);
はこれを返します:
c# - 1 から 4 までの数字をすばやくシャッフルする方法は?
4 つの変数をシャッフルしようとしています (複数選択リストに表示される順序を変更しようとしています)。
私はしばらくいじっていましたが、ロジックに頭を悩ませることはできません。過去の質問でランダムなシャッフルを調べると、初心者のスキルを超えた非常に詳細なアルゴリズムが得られます (そして、このプログラムのニーズ書き込もうとしているのですが、複数選択の画像ピッカーを作りたいだけです)。
理想的には、この疑似コードに従うものが欲しいです:
現在の通常のコードを投稿しますが、率直に言って、それはゴミです。:(これは十分に単純な問題のように思えますが、私はそれを正しく理解できません.
前もって感謝します!
shell - Unixコマンドラインまたはシェルスクリプトでテキストファイルの行をシャッフルするにはどうすればよいですか?
テキストファイルの行をランダムにシャッフルして、新しいファイルを作成したいと思います。ファイルには数千行が含まれる場合があります。
、、、などcat
でそれを行うにはどうすればよいですか?awk
cut
java - Java's Collections.shuffle is doing what?
I recently found myself needing to be sure my list wasn't in order. Hibernate was nice enough to return it in perfect order. Silly hibernate, not reading my mind.
I looked at my Java API and it tells me its shuffle method does this:
Randomly permutes the specified list using a default source of randomness.
Being the curious george that I am, I want to know what exactly this means. Is there a math course I can take to learn this? Can I see the code? Java, what are you doing to my ArrayList?!?!?
To be more specific, which math concepts are being used here?