プロフィール

pueblo del script
作者
azul-palazzo
作者プロフィール
業務PG暦6年、趣味のPGは10年以上の微妙な中堅プログラマ。言語はVB, VB.NET(ASP.NETも込), Java, JSP。WSHはオフィシャルなEngineであるVBScript, JScript両方をカバー。最近はRubyやDMonkeyをかじろうかなと考えている。あとネコアレルギーの疑いも何のその、無類のネコ好き。
メッセージを送る

»プロフィール

マイサイト



記事

JScriptで配列のシャッフル(Fisher-Yates for JScript)

JScript

公開日:2009/04/21 00:00

PerlにはFisher-Yatesという配列をシャッフルする有名なアルゴリズムがあるのですが、これをJScriptに移植してみました。

//  配列を拡張
Array.prototype.shuffule = function(){

var l = this.length; // 要素数
var i; // ループ用
var wk; // ソート用のワーク

// 配列の要素が尽きるまでループ
while(--l){

i = Math.floor( Math.random() * (l + 1) );

if(i == l) continue;

// 要素の入替
wk = this[i];
this[i] = this[l];
this[l] = wk;

}

}


// メイン処理
function main(){

var z = [
0, 1, 2, 3, 4,
5, 6, 7, 8, 9
];

var i = 0;

try{

// メイン処理

// これは初期状態
WScript.Echo(z);

// 検証用に数回シャッフルする
for(i = 1; i <= 5; i++){

z.shuffule();

WScript.Echo(z);

}

}catch(ex){

// 例外処理

WScript.Echo(ex.description);


}finally{

// 終了処理

}

};
main();

テストデータの作成とかに役立つかな。

»コメント(0)一覧

クリップ