C#学习笔记- 随机函数Random()的用法详解

2019-12-30 13:43:23王冬梅

如果要返回m以内的数,可以把n值改为0。如果要随机返回不确定个数,可以把入口参数的K值赋为k=random(m-n);

随机返回不一定互异的数,把判断去掉就可以了,注意i++不要漏掉。这里不再给出。

#指定若干个字符/数字,然后从中随机返回一个(或多个)字符/数字,可以把原字符赋给一个数组,再根据数组的下标来

决定返回值。这里不再举出函数,大家可以自己尝试。

#另需指出,对于随机设定一个MC的颜色值,我们较多采用mcColor.setRBG(random(0xFFFFFF));下面的例子中会有说明。

如果要指定一个色域,可以采用上面给出的函数。如果对Color对象不太了解的可以查帮助,这里不作讨论。

以上函数算是由random直接衍生的,下面再举个例子,可以说是衍生函数的衍生函数,其中会直接用到上面给出的函数,请注意。

#6: 返回一个指定长度的随机大写英文字符串


function randomString(n){

var arrayA = randomKdiffer(1, 26, n);

var arrayB = "";

for (var i = 0; i < n; i++) {

c=String.fromCharCode(arrayA[i]+64);

/* if(random(2)){

c=c.toLowerCase();

}

*/

arrayB = arrayB+c;

}

return arrayB;

}

注意到StringCharCode方法,如果要写成小写,则把返回值写成arrayB.toLowerCase();如果返回一个不区分大小写的字符串,

则把注释去掉.如果要返回一个不指定长度的字符串,则可以把入口参数赋值为random(n);这样只指定其上限.此函数也可以用

randomAscii函数实现,留给大家自己思考.

#7:在几个区域中选出随机数

比如,在1~20,45~70这两段数之间选取一个随机数。因为区域数未定,所以直接用一个确定的函数编写多有不便,

我们要使用的方法就是用switch语句进行定向,具体的我们给出一个函数,返回一个1~20,45~70内的数,其它区域读者请自行更改。


function randomArea(){

var a=random(2);

switch(a){

case 0:

return randomNm(1,20);break;

case 1:

return randomNm(45,70);break;

}

}

注意,我们并没有写入口参数,而是直接在函数中就确定了是两段数,而且范围也是确定的。如果是三段,则改为a=random(3);

同样增加一个case就可以了。当然,你也可以把第段数的范围设为入口参数,这里就不再举例了。但是这样做可能会使参数增多,

我个人是不太喜欢一个需要很多参数的函数的。类似的,我们也可以随机返回一个字母段或几个字母段或者字母加数字段的一个数。

方法也只是前几个函数的一个结合。这里仅举一例,返回指定的大写字母段的一个随机字母。

提醒一下,小写字母的ASCII码a~z分别对应97~122.


function randomAArea(a,b){

if (ord(a) <= ord(b) && 65<=ord(a) && ord(b) <= 90) {

return String.fromCharCode(randomNm(ord(a), ord(b)));

} else {

return false;

}

}