トップページ > プログラム > 2014年06月05日 > frJCi6Xi

書き込み順位&時間帯一覧

27 位/289 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000120010000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
データ構造,アルゴリズム,デザインパターン総合スレ 2

書き込みレス一覧

データ構造,アルゴリズム,デザインパターン総合スレ 2
463 :デフォルトの名無しさん[sage]:2014/06/05(木) 13:22:26.50 ID:frJCi6Xi
>>462
xからyまでの個数の配列作って乱数でシャッフル
先頭からz個取得

でいいんじゃないの?
データ構造,アルゴリズム,デザインパターン総合スレ 2
466 :デフォルトの名無しさん[sage]:2014/06/05(木) 14:01:49.36 ID:frJCi6Xi
>>464
>先頭から取得するとどうしてても最初のほうの数が選ばれる確率が高くなるのは避けられない。
根拠は?

z個取得する位置もランダムで選択してもいいんじゃないの
データ構造,アルゴリズム,デザインパターン総合スレ 2
468 :デフォルトの名無しさん[sage]:2014/06/05(木) 14:27:18.69 ID:frJCi6Xi
>>467
配列からz個読み出す初期位置を先頭からズラすって意味なんだけどね
データ構造,アルゴリズム,デザインパターン総合スレ 2
473 :デフォルトの名無しさん[sage]:2014/06/05(木) 17:09:28.41 ID:frJCi6Xi
>>470
xとyに大きな隔たり、つまり配列が大きい場合、最終的にz個取り出す位置にもランダム性があれば
よりランダム性のあるz個の列を何度も取り出せるって意味合い程度だよ、思いつきだよ

シャッフルでありがちな実装ってこんなんかな
乱数生成エンジンが質の良い物ならこんなんでいいと思うけどね

int size = 10;
int a[size] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

for(int i=size-1; i>0;i--)
{
int j = rand()%i;
swap(a[i], a[j]);
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。