C#_random_函数_C#随机函数random()典型用法集锦
C#_random_函数_C#随机函数random()典型用法集锦
简介摘要: Random.Next() 返回非负随机数; Random.Next(Int) 返回一个小于所指定最大值的非负随机数 Random.Next(Int,Int) 返回一个指定范围内的随机数 1、random(number)函数介绍 见帮助文档,简单再提一下 Random.Next() 返回非负随机数[sui ji shu];
Random.Next(Int) 返回一个小于所指定最大值的非负随机数[sui ji shu]
Random.Next(Int,Int) 返回一个指定范围[fan wei]内的随机数[sui ji shu]
1、random(number)函数[han shu]介绍
见帮助文档[wen dang],简单再提一下,random(number)返回一个0~number-1之间的随机整数.参数[can shu]number代表一个整数.
示例:
trace(random(5));
2、Math.random()
见帮助文档[wen dang]。返回一个有14位精度[jing du]的0~1之间的数,注意没有参数[can shu]。
示例:
trace(Math.random());
3、自定义的函数[han shu]
我们有时候需要的随机数[sui ji shu]可不是这么简单。
比如我们想返回一个有两位小数的随机数[sui ji shu],返回两个数之间的随机数[sui ji shu],返回字母随机数[sui ji shu],返回多个随机数[sui ji shu]等等,
这些都需要我们自己编写函数[han shu]来实现。下面的 代码[dai ma] 直接复制到主场景第一帧就可以调用[tiao yong]了。注意有的函数[han shu]需要入口参数[can shu]。
#1: 返回一个共有n位数,其中m位是小数的随机数[sui ji shu]
function randomXiao(n,m){
var a = Math.pow(10, n+m);
var b = random(a);
return b=b/Math.pow(10, m);
}
可以用trace(randomXiao(3,2));实验一下。这个函数[han shu]简单。Math.pow(n,m)用于[yong yu]返回一个以n为底,m为指数的数。乘方!
# 2: 返回一个n到m之间的随机数[sui ji shu]
function randomNm(n,m){
if(m>=n){
return random(m-n+1)+n;
}
else {
return false;
}
}
之所以用random(m-n+1)是因为随机数[sui ji shu]的范围[fan wei]是m-n,加上1使得m也能在里面。加上n保证随机数[sui ji shu]以n为下限。
加上判断使函数[han shu]更完整。另外,如果要返回一个负数随机数[sui ji shu],也可以用randomNm(n,0);当然,我想更一般的是用-random(n);
# 3: 返回一个字母
function randomAscii(){
var c = String.fromCharCode(random(26)+65);
if(random(2)){
return c.toLowerCase();
}
return c;
}
#4: 返回一个不区分大小写的随机字母
如果要返回大写,把if条件[tiao jian]句去掉就行了。如果要返回小写,可以把条件[tiao jian]句改为恒成立,或者去掉条件[tiao jian],最后一句改为:
return c.toLowerCase(); String.fromCharCode(number)函数[han shu]返回number代表数字[shu z
i]的ASCII码。
toLowerCase()用于[yong yu]将大写字母转为小写。
# 5: 返回一个n到m之间的k个互异随机数[sui ji shu]
private void RandomKDiffer(int n, int m, int k, int[
C#_random_函数_C#随机函数random()典型用法集锦
] arrayK){
int i = 0;
int a,j;
Random random = new Random();
while (i < k) {
a =random.Next(m-n+1)+n;
for (j = 0; j < i; j++) {
if (a == arrayK[j]) {
break;
}
}
if (j == i) {
arrayK[i] = a;
i++;
}
}
}
数组[shu zu]arrayK中的元素即为所得值。注意到我们借用了random(m-n+1)+n来返回一个n~m的随机数[sui ji shu]。所以m本身也会被返回。
如果要返回m以内的数,可以把n值改为0。如果要随机返回不确定个数,可以把入口参数[can shu]的K值赋为k=random(m-n);
随机返回不一定互异的数,把判断去掉就可以了,注意i++不要漏掉。这里不再给出。
#指定若干个字符[zi fu]/数字[shu zi],然后从中随机返回一个(或多个)字符[zi fu]/数字[shu zi],可以把原字符[zi fu]赋给一个数组[shu zu],再根据数组[shu zu]的下标[xia biao]来
决定返回值。这里不再举出函数[han shu],大家可以自己尝试。
#另需指出,对于随机设定一个MC的颜色值,我们较多采用mcColor.setRBG(random(0xFFFFFF));下面的例子中会有说明[shuo ming]。
如果要指定一个色域,可以采用上面给出的函数[han shu]。如果对Color对象[dui xiang]不太了解的可以查帮助,这里不作讨论。
以上函数[han shu]算是由random直接衍生的,下面再举个例子,可以说是衍生函数[han shu]的衍生函数[han shu],其中会直接用到上面给出的函数[han shu],请注意。
#6: 返回一个指定长度的随机大写英文字[wen zi]符串[zi fu chuan]
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方法[fang fa],如果要写成小写,则把返回值写成arrayB.toLowerCase();如果返回一个不区分大小写的字符[zi fu]串[zi fu chuan],
则把注释[zhu shi]去掉.如果要返回一个不指定长度的字符[zi fu]串[zi fu chuan],则可以把入口参数[can shu]赋值[fu zhi]为random(n);这样只指定其上限.此函数[han shu]也可以用
randomAscii函数[han shu]实现,留给大家自己思考.
#7:在几个区域[qu yu]中选出随机数[sui ji shu]
比如,在1~20,45~70这两段数之间选取[xuan qu]一个随机数[sui ji shu]。因为区域[qu yu]数未定,所以直接用一个确定的函数[han shu]编写多有不便,
我们要使用的方法[fang fa]就是用switch语句[yu ju]进行定向,具体的我们给出一个函数[han shu],返回一个1~20,45~70内的数,其它区域[qu yu]读者请自行更改。
function randomArea(){
var a=random(2);
switch(a){
case 0:
return randomNm(1,20);break;
case 1:
return randomNm(45,70);break;
}
}
注意,我们
C#_random_函数_C#随机函数random()典型用法集锦
并没有写入口参数[can shu],而是直接在函数[han shu]中就确定了是两段数,而且范围[fan wei]也是确定的。如果是三段,则改为a=random(3);
同样增加一个case就可以了。当然,你也可以把第段数的范围[fan wei]设为入口参数[can shu],这里就不再举例了。但是这样做可能会使参数[can shu]增多,
我个人是不太喜欢一个需要很多参数[can shu]的函数[han shu]的。类似的,我们也可以随机返回一个字母段或几个字母段或
…… 此处隐藏:2890字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




