| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash经验技巧 > 文章正文 用户登录
关于blog程序的几
弈天广告联盟关于
RealTracker提供免
全球著名社区网站
网络幼虫:关于我的
关于╃木蚂蚁㊣的
关于web2.0盈利模
关于网站定位,寻找
关于关于IT创业的
关于个人网站发展

关于random()随机数的理解           

关于random()随机数的理解

作者:佚名 来源:闪吧 作者: 关中晶 更新:2007-1-13 20:59:03 错误报告 我要投稿

       随机数是电脑随机产生的一个任意数字,经常会被用到。
语法:
random(数字)
需要注意的是random(1)产生的是数字0,而不是1,因为random()产生的是由0到数字减一的效果。例如random(10)产生的实际上是0~9的数字。
效果:
点击浏览该文件

点击浏览该文件
实际中我们经常要用到一定范围的随机数,例如15~25之间的随机数,这样该怎么写呢?
具体思路是这样的,25减15等于10;而10的随机数是0~9之间,random(10)+15反应的是15~24之间的数字;因此正确的写法为a=random(10+1)+15;赋值给a。效果:
点击浏览该文件

点击浏览该文件
random()是flash4版本的语法,flashmx中建议用Math.random()方法了代替。
语法:Math.random()该参数反应的是0~0.99999……之间的随机数。由于Math.random()反应的是0~0.99999……之间的数字,那么乘以需要的参数,就可以得到想要的数字。
例如:Math.random()*30,得到的就是0~29.999999……之间的数字,为了取得整数的效果,再利用Math.floor(),该语句是取得小于等于指定数字的最接近的整数。
这样的话取得0~30之间的整数就写成:

var a=Math.floor(Math.random()*30)和原来的
var a=random(31);

有所不同噢。
效果:
点击浏览该文件

点击浏览该文件
有时我们需要同时显示几个随机数。但是他们经常会出现重复,这样狠尴尬。我们就可以用下面的方法防止随机数字重复出现。
例如我们在1~20之间产生5个随机数,显示的时候他们不可重复,可以这样写:

onEnterFrame = function () {//测试用,无关
// 声明两个数组,分别用来储存旧的数组和以后顺序打乱的数组;
a_array = new Array();
b_array = new Array();
var a;
// 声明变量; // 在0~20之间取得数字
for (n=0; n<20; n++) {
// 注意这里是n+1;
a_array[n] = n+1;
}
// 因为要显示5个数字所以重复执行5次
for (k=0; k<5; k++) {
// 随机抽出a_array数组位置;
a = Math.floor(Math.random()*a_array.length);
// 将该位置的元素值反馈给b_array;
b_array[k] = a_array[a];
// 将该位置上的元素从 a_array数组中删除,避免下次再抽中。
a_array.splice(a, 1);
}
// 新的数组产生后,删除a和 a_array
delete a_array;
delete a;
// 动态文本显示新数组
t1 = b_array;
};

1~20之间显示5个数字,不重复效果:


点击浏览该文件

点击浏览该文件


文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。