投稿者 メッセージ
<  PHPプログラミング  ~  数字をランダムに並び替え
take
投稿1時間: 金 10月 06, 2006 11:30 pm  引用



登録日: 2006年2月 01日
投稿記事: 21

こんばんわ。
1から10までの数字をデタラメに並び替えたいのですがぼくが思いつく方法では

rand()でまず数字を一つ取り出す。
次にまたrand()で数字を取り出すのですがさっきのと違う数字が出るまで何度もループさせる。
次にまたまたrand()で数字を取り出す。さっきの2つと違う数字が出るまで何度もループ。
の繰り返し。

なんかすごく無駄があるように思うのですがもっとスマートな方法ってないものでしょうか?
トップに移動
ユーザー情報を表示 メッセージを送信
ach
投稿1時間: 土 10月 07, 2006 8:41 pm  引用



登録日: 2006年8月 19日
投稿記事: 19

array_randを使うのが一般的だと思いますが,あえてコーディングするなら
Code:

$rand = array();
for($i = 1; $i <= 10; $i++)
{
    while(@$rand[($key = mt_rand())]);
    $rand[$key] = $i;
}
ksort($rand);
//$rand = array_value($rand);

でしょうか

逆バケットソート???
トップに移動
ユーザー情報を表示 メッセージを送信
ちぴ
投稿1時間: 火 10月 10, 2006 9:53 pm  引用



登録日: 2006年4月 05日
投稿記事: 14

二行でできます。

Code:

//1から10までの要素を有する配列を作成
$array = range(1, 10);

//配列$arrayをシャッフル
shuffle($array);

//確認用ダンプ
var_dump($array);


リロードするたびに順番が変わります。
トップに移動
ユーザー情報を表示 メッセージを送信
take
投稿1時間: 金 10月 13, 2006 10:20 pm  引用



登録日: 2006年2月 01日
投稿記事: 21

できました。
お二方どうもありがとうございました。
トップに移動
ユーザー情報を表示 メッセージを送信
859
投稿1時間: 水 2月 07, 2007 10:28 pm  引用



登録日: 2007年2月 07日
投稿記事: 3

http://Jennifer-Lopez-Doing-A-Huge-Black-Man.info
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.