データ構造,アルゴリズム,デザインパターン総合スレ 2
■ このスレッドは過去ログ倉庫に格納されています
0124デフォルトの名無しさん
2013/11/19(火) 22:12:20.58いえ、今回は、必ず何らかの値で初期化される、という種類のデータ構造(配列)を使っています。
(言語的は初期値として未定を表す値を指定できる配列も簡単に作れますが、
今回は意味ないので、そのような配列は使っていません)
>>118を採用しようと思ったのは、配列の頭から順に要素をトラバースしながら、
その要素のみを参照して値を設定していけるという点がシャッフルに比べて優れていると思ったからです。
要するに、データ構造そのものをどんどん大きくしながら作っていけます。
シャッフルも Fisher-Yates shuffle でしたら順にトラバースしますが、
その要素と、別のランダムに選んだ要素を参照しなければならず、
シャッフル処理をする前にデータ構造が完全に出来上がっていなければなりません。
その上で要素をスワップしていきます。
じつはプログラミング言語はCではなくHaskellを使っており、Haskellでは後者より前者のように、
値を入れた要素を次々と繋げながらデータ構造を(目的の規模まで)大きくしていく方が
プログラムしやすいんです。
>>123
すいません、0 と 1 を使ったのは単に質問をシンプルにするためでした。
本当は、質問で 1 を入れるところでは min < x < max のランダムな浮動小数点を入れます。
そもそもの目的をぶっちゃけますと、ランダムな重み付き有向グラフの隣接行列を作ることです。
■ このスレッドは過去ログ倉庫に格納されています