C# 随机函数 典型用法集锦.doc_第1页
C# 随机函数 典型用法集锦.doc_第2页
C# 随机函数 典型用法集锦.doc_第3页
C# 随机函数 典型用法集锦.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简介摘要: 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)返回一个0number-1之间的随机整数.参数can shunumber代表一个整数.示例:trace(random(5);2、Math.random()见帮助文档wen dang。返回一个有14位精度jing du的01之间的数,注意没有参数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 zi的ASCII码。toLowerCase()用于yong yu将大写字母转为小写。# 5: 返回一个n到m之间的k个互异随机数sui ji shu private void RandomKDiffer(int n, int m, int k, int 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 = arrayKj) break; if (j = i) arrayKi = a; i+; 数组shu zuarrayK中的元素即为所得值。注意到我们借用了random(m-n+1)+n来返回一个nm的随机数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(arrayAi+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 比如,在120,4570这两段数之间选取xuan qu一个随机数sui ji shu。因为区域qu yu数未定,所以直接用一个确定的函数han shu编写多有不便,我们要使用的方法fang fa就是用switch语句yu ju进行定向,具体的我们给出一个函数han shu,返回一个120,4570内的数,其它区域qu yu读者请自行更改。function randomArea()var a=random(2);switch(a)case 0:return randomNm(1,20);break;case 1:return randomNm(45,70);break;注意,我们并没有写入口参数can shu,而是直接在函数han shu中就确定了是两段数,而且范围fan wei也是确定的。如果是三段,则改为a=random(3);同样增加一个case就可以了。当然,你也可以把第段数的范围fan wei设为入口参数can shu,这里就不再举例了。但是这样做可能会使参数can shu增多,我个人是不太喜欢一个需要很多参数can shu的函数han shu的。类似的,我们也可以随机返回一个字母段或几个字母段或者字母加数字shu zi段shu zi duan的一个数。方法fang fa也只是前几个函数han shu的一个结合。这里仅举一例,返回指定的大写字母段的一个随机字母。提醒一下,小写字母的ASCII码az分别对应97122.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;其中用到一个函数han shuord(char),这是一个不推荐的函数han shu.用于yong yu返回char字符zi fu的ASCII码。如果大家想在任何地方调用tiao yong函数han shu,则需要稍稍变一下,把我们写的函数han shu改变为全局函数han shu.这样就可以不用标明路径lu jing而自如地向调用tiao yong系统xi tong函数han shu一样了.方法fang fa如下.例如:函数han shu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论