【メモ】シャッフルアルゴリズム
forked from trace("自分用") (diff: 9)
ActionScript3 source code
/**
* Copyright kaikoga ( http://wonderfl.net/user/kaikoga )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1ji9
*/
// forked from kaikoga's Arrayを走査するfor eachを信じたくて
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
public class FlashTest extends Sprite {
private var v:Array = [];
public function FlashTest() {
const NUM:int = 10;
const ITER:int = 50000;
for (var i:int = 0; i < NUM; i++) {
v[i] = [0,0,0,0,0,0,0,0,0,0];
}
for (var iter:int = 0; iter < ITER; iter++) {
var a:Array = [0,1,2,3,4,5,6,7,8,9];
for (i = 1; i < NUM; i++) {
var n:int = Math.floor(Math.random() * (i + 1));
var x:int = a[n];
a[n] = a[i];
a[i] = x;
}
for (i = 0; i < NUM; i++) {
v[i][a[i]]++;
}
}
for (i = 0; i < 10; i++) {
trace(v[i].join(","));
}
}
private var _traceField:TextField;
public function trace(...message):void {
if (!this._traceField) {
this._traceField = new TextField();
this._traceField.width = this.stage.stageWidth;
this._traceField.height = this.stage.stageHeight;
this._traceField.defaultTextFormat = new TextFormat("_typewriter", 10);
this.addChild(this._traceField);
}
this._traceField.appendText(message.join(" ") + "\n");
}
}
}
