`
cxy020
  • 浏览: 63580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

取不同的随机数

阅读更多

引子
话说我想取0-99里面5个不同的随机数,首先我想到的就是直接用random方法。
所有就有了下面的代码

var arr=[];
for(i=0 ; i<5;i++){
	arr.push(Math.round(Math.random() * 100));
}

var s="";
for(var a in arr){
	var b = arr[a]+",";
	s += b;
}
document.write(s);


试过之后我发现其实这5个数 是有可能重复的,所以这样做并不能达到我的目的。
然后我就想了另一个方法,我一次生成100个随机数然后去掉重复的,再取前5个,理论上这也能达到我的目的。
ps:我们暂不考虑出现多余95个相同的数。
//首先写了一个给数组去重的函数
Array.prototype.delRepeat=function(){
	var newarray=[];
	var map = {};
	for(var i = 0, item; i<this.length; i++) {
		if((item= this[i]) != null){
			if(!map[item]){
				newarray.push(this[i]);
				map[item] = true;
			}
		}
	}
	return newarray;
}

var arr=[];
for(i=0 ; i<100;i++){
	arr.push(Math.round(Math.random() * 100));
}
arr = arr.delRepeat();//去重
var newarr= arr.slice(0,5);//取前面5个
var s="";
for(var a in newarr){
	if(typeof newarr[a] == "number"){
		var b = newarr[a]+",";
		s += b;
	}
}
document.write(s);


这样之后我就可以去到0-99之间5个不同的随机数了。
但是仔细一想,我想要的就是0-99之间的数,如果我先准备一个数组存放0-99的数,
然后随即取5个,这样就免去的去重的步骤,这无疑是一个更好的办法。

var arr = [];
for (var i=0;i<100;i++){
	arr[i]=i;
}

arr.sort(function(){ return 0.5-Math.random(); });//随即排序
var newarr = arr.slice(0,5);//取前面5个
var s="";
for(var a in newarr){
	if(typeof newarr[a] == "number"){
		var b = newarr[a]+",";
		s += b;
	}
}
document.write(s);


分享到:
评论

相关推荐

    易语言取不同随机数

    本篇文章将详细探讨易语言中如何实现“取不同随机数”的功能。 易语言,全称“简易编程语言”,是一款以中文编程为特色的编程工具,旨在降低编程学习的门槛。它提供了丰富的内置函数和语句,使得开发者可以方便地...

    易语言源码取不同随机数.rar

    在“易语言源码取不同随机数.rar”这个压缩包中,我们很显然关注的是如何在易语言中生成不重复的随机数。随机数在编程中广泛应用,比如游戏中的随机事件、模拟实验、加密算法等。下面将详细介绍易语言中生成随机数的...

    取不同随机数.rar

    "取不同随机数.rar"这个压缩包文件可能包含的是关于如何在不同的编程语言或环境中生成不重复随机数的示例代码或教程。下面我们将详细探讨这个主题。 1. **Python中的随机数生成** 在Python中,我们可以使用`random...

    e语言-易语言取不同随机数

    在易语言中,"取不同随机数"是一个常见的编程任务,通常用于模拟各种随机事件,比如游戏中的抽奖、模拟实验数据等场景。 在易语言中,生成随机数主要依赖于“随机数”模块。这个模块提供了生成指定范围内的随机整数...

    易语言源码取不同随机数.7z

    "易语言源码取不同随机数.7z" 这个文件包显然包含了一组易语言源代码,其主要功能是生成不重复的随机数。在编程中,生成不同的随机数是一项常见的任务,特别是在模拟、游戏、加密等领域。下面我们将详细探讨易语言中...

    易语言-易语言取不同随机数

    在易语言中,"取不同随机数"是一个常见的操作,尤其对于初学者来说,掌握这个技能是非常重要的。在这个教程中,我们将深入探讨如何在易语言中生成不重复的随机数,并将其添加到列表框中。 首先,我们需要了解易语言...

    取不同随机数-易语言

    在这个"取不同随机数-易语言"的初级教程中,我们将深入探讨如何在易语言中实现这一功能。 首先,我们需要了解易语言中的随机数生成函数。在易语言中,可以使用“随机数”命令来生成一个指定范围内的随机整数。例如...

    易语言取随机数原理模块

    本模块“易语言取随机数原理模块”就是专门用于生成随机数的工具,下面将详细介绍其原理和相关函数。 首先,我们要了解随机数生成的基本概念。在计算机中,由于硬件限制,真正的随机数是无法生成的,因此通常使用伪...

    易语言多种取随机数方法

    易语言虽然没有内置多种随机数生成器,但可以通过不同的策略实现不同分布的随机数,例如二项分布、泊松分布等。这通常涉及到统计学知识和算法实现,开发者需要根据具体需求编写相应的代码。 6. **实际应用示例** ...

    易语言取指定位数的随机数

    3. **随机种子**:为了确保每次运行程序时都能得到不同的随机数,我们通常会使用当前时间作为随机数生成器的种子。易语言中的"设置随机数种子"命令可以完成这个任务: ```易语言 .设置随机数种子 (.时间.毫秒) ``` ...

    易语言取十个随机数

    但为了满足题目要求,我们通常会生成多个随机数,以适应不同的应用场景。 至于提供的压缩包文件“易语言取十个随机数源码”,它可能包含了实现这一功能的具体源代码。你可以打开源代码文件,仔细阅读并理解其中的...

    易语言取随机数的两种方法比较

    这样每次程序运行时,由于系统时间的变化,生成的随机数序列都会不同,提高了随机性。 然而,这种方法虽然提高了随机数的不可预测性,但仍然不能满足某些高级应用,如密码学或高级模拟。在这种情况下,开发者可能...

    易语言源码易语言取随机数不重复源码.rar

    随机数种子`是用来初始化随机数生成器的,通常我们使用当前时间的秒数,以确保每次运行程序时都能得到不同的随机数。`.随机数`是生成的随机数,它的范围由函数的两个参数决定,这里是1到100。 如果要实现不重复的...

    易语言-取随机数

    在实际应用中,你可能需要在程序运行前初始化随机数生成器,以确保每次运行都能得到不同的随机数序列。这可以通过“初始化随机数发生器”命令实现,通常会使用当前时间作为种子,保证随机性: ``` 初始化随机数发生...

    火山PC取随机数使用方法.rar

    例如,在进行结构分析时,可能需要根据不同的概率分布(如正态分布、泊松分布等)生成随机载荷;在绘制图形时,可能需要通过随机数确定点的位置或形状的尺寸。 总的来说,火山PC中的随机数生成功能可以帮助设计师...

    Winform-随机数生成器

    总的来说,"Winform-随机数生成器"是一个实用的小工具,它利用C#的`Random`类和Winform的交互能力,实现了对随机数生成的自定义控制,满足了不同用户在不同场景下的需求。无论是测试数据的生成,还是作为其他应用的...

    易语言多种取随机数方法.rar

    易语言作为一款国内自主开发的编程语言,提供了多种取随机数的方法,以满足不同场景的需求。本文将详细介绍易语言中几种常见的取随机数的方法,并通过源码分析,帮助读者深入理解其工作原理。 1. **基础随机数生成*...

    易语言源码易语言取十个随机数源码.rar

    在描述中提到的“取十个随机数”,我们可以推测源码会包含一个循环结构,例如“重复”或“直到”循环,用于连续生成10个不同的随机数。 首先,我们需要了解易语言中的随机数生成函数。以生成整数为例,我们可以使用...

    MFC实现产生随机数

    在这个例子中,`srand(time(NULL))`用于设置随机数生成器的种子,确保每次运行程序时都能得到不同的序列。`rand() % 100 + 1`用于生成[1, 100]范围内的随机整数。最后,`SetDlgItemInt`函数用于将生成的随机数显示在...

    JS取随机数.rar

    在这个压缩包中的“易语言JS取随机数源码”,可能是用易语言实现了一个类似功能的代码,帮助开发者理解随机数生成的原理或提供了一种不同的实现方式。不过,由于没有具体的源代码内容,具体的实现方式和细节无法详细...

Global site tag (gtag.js) - Google Analytics