2
我希望某個東西(一個「目標」)以隨機順序顯示五次(共10次)。半控制隨機結果
與下面的代碼的問題是我能得到它以隨機順序顯示出來,但不一定五次:
function rand_float(min:Number,max:Number=NaN):Number {
if (isNaN(max)) { max = min; min=0; }
return Math.random()*(max-min)+min;
}
function rand_integer(min:Number,max:Number=NaN):int {
if (isNaN(max)) { max = min; min=0; }
return Math.floor(rand_float(min,max));
}
function rand_boolean(chance:Number=0.5):Boolean {
return (Math.random() < chance);
}
var a_list:Array = ['a','b','d','e'];
var target:String = 'b';
for (var i:int = 0; i < 10; i++) {
if (rand_boolean()) {
trace('random other thing: ' + a_list[rand_integer(0,3)]);
} else {
trace('target! :' + target);
}
}
因爲rand_boolean方法是50-50,它要麼「顯示, 「或」不顯示「,但不能保證它始終是10次中的5次。
我想我可以放一個計數器,然後限制它5次後(如果它結束)或強迫它顯示更多(如果說,8次後它只顯示一次),但是有沒有更好的方法去做這件事?
由於這是偉大的。但對於第二個建議的解決方案......我不確定「播種」是如何工作的(在Google快速搜索之後),也許您可以展示代碼示例? – redconservatory 2012-07-23 17:31:06
我投入了一個簡短的樣本。如果您需要更多解釋,請告訴我。 – 2012-07-23 17:44:21
哇,這太好了,謝謝(不知道你可以複製一個數組,我想我必須克隆它)。 – redconservatory 2012-07-23 17:52:53