背負い投げとENTER_FRAME

Icon

なんちゃってWebクリエイターがFlashやらActionScriptやらを淡々と書く。ときとき柔道の話しもする。

重複しない乱数の生成

0〜100まで乱数5個が欲しい、5個の乱数は重複しない

ってやりたいので、ここを参考に3.0に書き換えた(関数拝謝)。

function generateRandomInt():Array {
	
	//ここだけ変更すればよい
	var maxN:Number = 100;//乱数の最大値
	var Need:Number = 5;//必要な個数
	
	var int_a = new Array();
	var int_b = new Array();
	
	//0〜maxNの数字を全部配列に入れる
	for (var i:int=0; i<= maxN; i++) {
		int_a[i] = i;
	}
	
	var j:Number = 0;
	var a_length:Number = int_a.length;
	
	//要は配列をシャッフルする
	while (a_length) {
		var int_r:Number = Math.floor(Math.random()*(maxN+1-j));

		//乱発生した整数を配列int_bに順番に入れ、int_aから削除する
		int_b[j] = int_a.splice(int_r, 1);
		j++;

		//配列int_a内の数字が一つずつ減っていく
		a_length = int_a.length;
	}
	
	//ここで配列int_bがシャッフルされた
	
	//int_bの頭から必要な分を取り出す
	var int_c = new Array();
	for (var k:int = 0; k < Need; k++) {
		int_c[k] = int_b[k];
	}
	
	//配列を返す
	return int_c;
}

trace(generateRandomInt());

このエントリーをはてなブックマークに追加  

Category: Action Script 3.0

Tagged: ,

Leave a Reply

中の人のプロフィール

柔道歴約20年だが諸理由で未だ初段。162cm、60kgくらいの軽量級。得意は背負い投げと巴投げ。2009年、左ヒザ前十字靭帯損傷。ただ今柔道復帰を企んでいる真っ最中。仕事では最近、ActionScriptを書いたり、WordPressをいじったりの日々が続いてる。@renowanにてつぶやいてる。

アーカイブ

Flicker

This movie requires Flash Player 9.0.0