主题:  mmommo 来看!:)

dearsammi

职务:普通成员
等级:1
金币:0.0
发贴:103
#12002/8/27 18:22:37
我的理解对吗?大家看看!谢谢

for (i=0; i//判断该数在数组中是否存在
if (random_num[i] == random_num[k-1]) {
//如果该数在数组中已存在,就再多算一次
k--;
break;
}
}
应该是不会被执行的!完全可以去掉!是那样的吗?
我去掉后结果完全一样!



function randomNumbers(max_num, count) {
k = 0;
//避免数目大于最大取值范围
if(count>max_num){
count=max_num
}
random_num = new Array();
while (k//取得随机整数。
random_num[k] = Math.floor(Math.random()*max_num);
k++;
for (i=0; i//判断该数在数组中是否存在
if (random_num[i] == random_num[k-1]) {
//如果该数在数组中已存在,就再多算一次
k--;
break;
}
}
}
return random_num;
}



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#22002/8/27 20:17:57
请注意,要取得的是不重复随机数,如果你觉得重复无所谓,当然去掉完全一样了。



dearsammi

职务:普通成员
等级:1
金币:0.0
发贴:103
#32002/8/27 23:09:54
我觉得
那一段代码是永远不会被执行的!
是多余的!

是那样的吗?

它一次都不会被执行!对吗



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#42002/8/28 2:07:44
试着多取一些随机数,用trace语句看看结果。总有重复的随机数。 ;)
再次说明:那段语句是保证其不重复性用的。



darkvn

职务:普通成员
等级:1
金币:1.0
发贴:222
#52002/8/28 10:23:24
产生不重复随机数数组的原代码在哪里?



dearsammi

职务:普通成员
等级:1
金币:0.0
发贴:103
#62002/8/28 11:44:19
我的意思是它不会被执行!是多余的!

你理解我意思吗?

如果他被执行,是什么时候被执行呢?

SAMMI



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#72002/8/28 12:05:19
代码:
------------------------------------------------------------------------------
function randomNumbers(max_num, count) {
    k = 0;
    //避免数目大于最大取值范围
    if (count>max_num) {
        count = max_num;
    }
    random_num = new Array();
    while (k        //取得随机整数。
        random_num[k] = Math.floor(Math.random()*max_num);
        k++;
        for (i=0; i            //判断该数在数组中是否存在
            if (random_num[i] == random_num[k-1]) {
                trace("重复,再执行!");
                //如果该数在数组中已存在,就再多算一次
                k--;
                break;
            }
        }
    }
    return random_num;
}
a = randomNumbers(10, 9);
trace(a);
------------------------------------------------------------------------------------------------
请看trace结果:

重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
重复,再执行!
6,7,3,4,2,8,9,1,0

---------------------------------------------
一共执行了16次!
^_^



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#82002/8/28 12:07:17
darkvn在上个帖子中说
引用:
产生不重复随机数数组的原代码在哪里?

http://asp.6to23.com/mmommo/x-woods/tutorial/random.swf



darkvn

职务:普通成员
等级:1
金币:1.0
发贴:222
#92002/8/28 18:08:10
我偏向第二种方法。
因为我认为第一种方法,存在不可测因素。
如果每次random出来的都是已经有的那程序岂不没的完了?
虽然机会很小,但这个几率是存在的。晕~~~~



dearsammi

职务:普通成员
等级:1
金币:0.0
发贴:103
#102002/8/28 19:58:33
for (i=0; iFOR里面的AS永远不会被执行的:(

是那样的吗



dearsammi

职务:普通成员
等级:1
金币:0.0
发贴:103
#112002/8/28 19:58:38
for (i=0; iFOR里面的AS永远不会被执行的:(

是那样的吗



5D荣誉版主

职务:普通成员
等级:2
金币:1.0
发贴:515
#122002/8/28 20:46:58
darkvn在上个帖子中说
引用:
我偏向第二种方法。
因为我认为第一种方法,存在不可测因素。
如果每次random出来的都是已经有的那程序岂不没的完了?
虽然机会很小,但这个几率是存在的。晕~~~~ :D

第一种方法在取少量随机数的时候效果好啊。只要取值的数目和最大值有一定的差距,效率还是不错的。