C#随机函数random()典型用法集锦
C#随机函数random()典型用法集锦
Random.Next() 返回非负随机数;
Random.Next(Int) 返回一个小于所指定最大值的非负随机数
Random.Next(Int,Int) 返回一个指定范围内的随机数
1、random(number)函数介绍
见帮助文档,简单再提一下,random(number)返回一个0~number-1之间的随机整数.参数number代表一个整数.
示例:
trace(random(5));
2、Math.random()
见帮助文档。返回一个有14位精度的0~1之间的数,注意没有参数。
示例:
trace(Math.random());
3、自定义的函数
我们有时候需要的随机数可不是这么简单。
比如我们想返回一个有两位小数的随机数,返回两个数之间的随机数,返回字母随机数,返回多个随机数等等,
这些都需要我们自己编写函数来实现。下面的网站源码直接复制到主场景第一帧就可以调用了。注意有的函数需要入口参数。
#1: 返回一个共有n位数,其中m位是小数的随机数
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));实验一下。这个函数简单。Math.pow(n,m)用于返回一个以n为底,m为指数的数。乘方!
# 2: 返回一个n到m之间的随机数
function randomNm(n,m){
if(m>=n){
return random(m-n+1)+n;
}
else {
return false;
}
}
之所以用random(m-n+1)是因为随机数的范围是m-n,加上1使得m也能在里面。加上n保证随机数以n为下限。
加上判断使函数更完整。另外,如果要返回一个负数随机数,也可以用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条件句去掉就行了。如果要返回小写,可以把条件句改为恒成立,或者去掉条件,最后一句改为:
return c.toLowerCase(); String.fromCharCode(number)函数返回number代表数字的ASCII码。
toLowerCase()用于将大写字母转为小写。
# 5: 返回一个n到m之间的k个互异随机数
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 == arrayK[j]) {
break;
}
}
if (j == i) {
arrayK[i] = a;
i++;
}
}
}
数组arrayK中的元素即为所得值。注意到我们借用了random(m-n+1)+n来返回一个n~m的随机数。所以m本身也会被返回。
如果要返回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;
}
}
其中用到一个函数ord(char),这是一个不推荐的函数.用于返回char字符的ASCII码。
如果大家想在任何地方调用函数,则需要稍稍变一下,把我们写的函数改变为全局函数.这样就可以不用标明路径而自如地向调用系统
函数一样了.方法如下.例如:函数randomXiao如果要声明为全局函数,需要把第一行改为:
_global.randomXiao=function(n,m){
//statment
}
对全局函数的概念不很清楚的朋友不用被这个名词吓倒.
这样改了函数第一行之后,在任何地方,比如在一个MC里,直接用(对,直接用,不用加_root路径了)randomXiao(n,m)就可以了
原文:http://www.codesocang.com/news/Webqianduan/javascriptjishu/2013/0409/1184.html
C#随机函数random()典型用法集锦的更多相关文章
- python中的随机函数random的用法示例
python中的随机函数random的用法示例 一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据 ...
- ResultSet用法集锦
ResultSet用法集锦 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数 ...
- ASP.NET MVC HtmlHelper用法集锦
ASP.NET MVC HtmlHelper用法集锦 在写一个编辑数据的页面时,我们通常会写如下代码 1:<inputtype="text"value='<%=View ...
- spring security 3中的10个典型用法小结
spring security 3比较庞大,但功能很强,下面小结下spring security 3中值得 注意的10个典型用法 1)多个authentication-provide可以同时使用 &l ...
- 20190313 org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法
org.apache.commons.lang3.builder.EqualsBuilder的两种典型用法 public boolean equals(Object obj) { if (obj == ...
- $Python常用内置函数典型用法
Python中有许多功能丰富的内置函数,本文基于Python 2.7,就常用的一些函数的典型用法做一些积累,不断更新中. sorted函数的三种用法 # coding:utf-8 # sorted函数 ...
- Python 中 -m 的典型用法、原理解析与发展演变
在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command | -m module- ...
- delphi webbrowser用法集锦
delphi webbrowser用法集锦 (2012-05-13 08:29:00) 标签: it 分类: 软件_Software WebBrowser1.GoHome; //到浏览器默认主页 We ...
- 【VS开发】【C/C++开发】传递双重指针申请内存,典型用法
传递双重指针申请内存,典型用法 指针参数是如何传递内存的? 如果函数的参数是一个指针,不要指望用该指针去申请动态内存.如下示例中,Test函数的语句GetMemory(str, 100)并没有使str ...
随机推荐
- Colored Sticks
poj2513:http://poj.org/problem?id=2513 题意:就是求一个欧拉回路. 题解:本题是判断欧拉通路是否存在,但是如果是用map的话就会超时,这里采用了trie树,有发现 ...
- SDUT 2351 In Danger
点我看题目 题意 : 有n个兵想要自杀,所以他们决定围成一个圈,从1开始一直环到n,然后每第2个开始自杀,但是有一个兵不想死,所以让你编程求出最后一个应该死的人的位置,这样的话就剩他自己他可以不自杀了 ...
- ListView getView中放置多个item和getItemViewType的用法
ListView 和 Adapter 的基础 工作原理: ListView 针对List中每个item,要求 adapter “给我一个视图” (getView). 一个新的视图被返回并显示 如果我们 ...
- [LeetCode] 306. Additive Number [Medium]
306. Additive Number class Solution { private: string stringAddition(string &a, string &b) { ...
- nohup.out
nohup.out 文件的产生 linux的nohup命令的用法 不输出nohup.out nohup node app.js > /dev/null 2>&1 &
- Delphi的BPL介绍和使用 转
了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作.运用和动态.静态编译的工作方式.对初学DELPHI但仍对DELPHI开发不甚清晰的朋友有一定帮助.BPL vs. DLL(原文ht ...
- ARM学习笔记7——乘法指令
ARM乘法指令完成两个数据的乘法,两个32位二进制数相乘的结果是64位的4积. 其中: 1.“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)链接形成的64位数,“[3 ...
- 解决eclipse插件svn不显示svn信息和显示的信息为数字的问题
1.选择window-->preferences如下图 通过上面步骤svn信息便显示了 2.解决显示的信息为数字问题 选择svn-label decoration format里面的author ...
- uva 3523 Knights of the Round Table
题意:给你n,m n为有多少人,m为有多少组关系,每组关系代表两人相互憎恨,问有多少个骑士不能参加任何一个会议. 白书算法指南 对于每个双联通分量,若不是二分图,就把里面的节点标记 #include ...
- SWFUpload无刷新文件批量上传
一.首先将SWFUpload所有文件加入项目中,如图