私は単語スクランブラーを作ろうとしています。使用するべきアルゴリズムがあるのか、それともゼロから構築するべきなのか疑問に思っています。すべてのポインタが役立つだろう!単語をスクランブルするアルゴリズムはありますか?
0
A
答えて
4
要素のシーケンスのランダム置換を見つけるための標準アルゴリズムは(または、あなたのケースでは、単語の文字)は線形時間での要素の順序を真にランダム順列を生成Fisher-Yates shuffle、です。アルゴリズムは確立されており、多くの標準ライブラリがその実装を提供しています(たとえば、C++ std::random_shuffle
アルゴリズムは通常このアルゴリズムを使用して実装されています)ので、事前に実装された実装を見つけることができます。そうでない場合、アルゴリズムは実装が非常に簡単であり、ここではそのためのいくつかの擬似コードです:これを実装する場合
for each index i = 0 to n - 1, inclusive:
choose a random index j in the range i to n - 1, inclusive.
swap A[i] and A[j]
はランダムなインデックスを選ぶとき、あなたはないは0とN-間のインデックスを選ぶんので注意してください1を含む。これは不均一な文字の分布を作り出します(それについての詳細はin this earlier questionを読むことができます)。
希望すると便利です。
1
Knuth Shuffle(AKA Fisher-Yates Shuffle)をご覧ください。それは、セットのあらゆる順列が等しくなることを確実にする望ましい特徴を有する。 Here's a linkを、任意のサイズのオブジェクトに作用するCの実装(他の言語の実装と共に)に変換します。
関連する問題
- 1. 単語が英語かどうかを判断するアルゴリズム?
- 2. 単語検索アルゴリズム
- 3. 単語のテキストを分析するアルゴリズム
- 4. 提案単語を与えるAPIはありますか?
- 5. ラップアラウンドマップの単純な「ポイントイン・イン」アルゴリズムはありますか?
- 6. 選択したテキストをスクランブルする必要があります
- 7. 単純な単語差分アルゴリズム
- 8. オーディオファイルの一部を自動的にスクランブル/ブレンドするソフトウェアがありますか?
- 9. PHPでGD2の単語ラップ機能はありますか?
- 10. 通常の言語Lには無限の単語がありますか?
- 11. 英語のテキストの意味のあるタグを抽出するアルゴリズムはありますか
- 12. divに長い単語をワードラップする方法はありますか?
- 13. Xcodeでカーソル下の単語を検索するショートカットはありますか?
- 14. EditTextでタップした単語を検出する方法はありますか
- 15. 単語を分析するためのアルゴリズムを開発する
- 16. VB2010の単一の単語に色を追加する簡単な方法はありますか?
- 17. 別の意味のある単語を構成するはずの繰り返しごとに各文字を変更することによって、ある単語を他の単語に変換するアルゴリズムですか?
- 18. PHPで文法単語を区切る方法はありますか?
- 19. 関連する単語をテキスト内で見つけるアルゴリズム
- 20. 単語に誤りがあります。 SCARD_READERSTATE
- 21. 再帰的な単語検索アルゴリズム
- 22. 単語の複雑さを推定するアルゴリズム
- 23. Boggleボードで単語を検索するアルゴリズム
- 24. 入力アルゴリズムに基づく単語の提案ですか?
- 25. 複合(混合)文から簡単な文を抽出するアルゴリズムはありますか?
- 26. preg_match_allは完全に英語の単語に一致しますが、ヘブライ語では運がありません
- 27. 単純なリンクリストを反転するためのO(nlog(n))アルゴリズムはありますか?
- 28. 3Dサーフェスの「上」の浮動単語のHtml5/CSS3トリックはありますか?
- 29. 同じ単語が何回あるかを数えます
- 30. 記号の隣に単語があります
アレイのシャッフルとはどのように違いますか? – SLaks
「単語をスクランブルする」ということは、正確にはどういう意味ですか? – Staven
スクランブルされた単語は有意義であるか、まったくランダムであるべきですか? – nikhil