プログラミングのアルゴリズムに詳しい人に聞きたいけどこれで合ってる?
■ このスレッドは過去ログ倉庫に格納されています
https://i.imgur.com/lZkjzYA.jpg
フィッシャー−イェーツのシャッフルのアルゴリズムをWikipediaの説明を見てPHPでコーディングしたのだけど…
画像は無駄にmb_strlen使っているけど引数で与えられる文字列は1バイト文字のみ文字列です できるのかも知れんけど配列と文字列扱いが危なく見える mb_substrとconcatとかのほうがいいんじゃない? >>5
とりあえず絶対に渡す文字列が1バイト文字のみだからこれでやったけど入れ替えはやっぱり文字列扱う関数使ってしっかりやった方が良いか…
フィッシャー−イェーツのシャッフルのアルゴリズムの実装はこれで合ってますか? >>6
PHPの公式ドキュメント呼んでマルチバイト文字列でも安全に正しく交換してシャッフルできるように修整します! フィッシャー−イェーツのシャッフルのアルゴリズムはこれで正しく実装できてますかね? 実行してみれば良くね
あってたら正しく動作するし間違えてたらわかるだろ >>10
何度か実行してみましたが最初の文字も最後の文字も変わるので変わらないってことはないような…
もう一度トレースしてみます >>12
パット見はうまくいっているように見えるけど本当に正しく実装できているか不安で… そのwikiで言うところの
消されてない数字の順を変えてしまうのと
後ろから埋まっていくのが違うな
それで良いなら良いのでは >>17
ごめん
【現在のアルゴリズム】の項目の例を見て実装したから【改良されたアルゴリズム】の方のアルゴリズムを作ってた…
そればらこの実装で合っているのだろうか? ■ このスレッドは過去ログ倉庫に格納されています