导航:首页 > 编程语言 > js生成不重复随机数组

js生成不重复随机数组

发布时间:2023-07-20 13:51:53

1. js实现1百到1万的数字,生成2-30组随机的数字相加等于输入值且每组数字不重复,个十百位不重复

一位乐于分享学生精彩笔记的大学教授对于扫描版的文件非常不满意——颜色不清晰并且文件巨大。他因此用python自己写了一个小程序来解决这个问题。

这个程序可以用来整理手写笔记的扫描件哦,输出的图片不仅很清晰,而且文件大小只有100多KB!

先来看一个例子:

对应的颜色簇:

由three.js提供支持的交互式三维图

综上,这四份PDF文件大小约788KB,平均每页130KB大小。

结论与展望

我很高兴能开发一个实用的工具,这个工具可以将课程网站中的手写笔记的PDF进行加工和美化。与此同时,记录下这整个过程也让我受益匪浅,我先后在维基网络上补充了关于颜色量化的更多内容,也促使我尝试并学习了three.js。

如果再次启动这个项目,我想尝试一下其他的量化方案,就在前几天还在想用光谱簇结合最近邻图的方式去尝试一下,当时十分兴奋认为这是一个绝佳的方案,然后就发现已经有一篇2012年的论文提出了完全一样的构思,哎…

你也可以尝试使用最大期望算法来生成描述颜色分布的高斯混合模型——不确定之前是否有人做过类似的实现。当然感兴趣的同学也可以试试其他有趣的想法,如使用Lab这

2. js生成不重复的1到5的4个数字

你这写的有点混乱,稍微整理下:

<body>
<divid='odiv'></div>
<script>
varodiv=document.getElementById('odiv');
varnum='';
vararr=[];
/*//这里修改下
for(vari=0;i<4;i=i+1){//生成4个1-5不重复的数字
vart=Math.floor(Math.random()*5);//生成随机数
arr.push(t);//把生成的数字放进这个数组里
}
*/
//修改成这样的:
//定义一个while循环,循环的条件是集合arr的子集少于4个
while(arr.length<4){
vart=Math.floor(Math.random()*5);//生成随机数
if(arr.indexOf(t)==-1){
//如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。
//如果不存在,indexOf会返回-1
arr.push(t);//把生成的数字放进这个数组里
}
}
for(vari=0;i<=arr.length;i++){
num=num+(i+1)+':'+arr[t]+'<br/>';
}
odiv.innerHTML=num;
/*//上面用到了while循环,并且在内部就直接判断了生成的数字是否在集合中存在
//所以,这里就不需要判断了
functionpd(){
for(vari=0;i<arr.length;i++){
if(arr[i]===t){
returntrue;
}else{
returnfalse;
}
}
}
varbol=pd();//比较是否重复

if(bol){
i--;
continue;
}else{
num=num+(i+1)+':'+t+'<br/>';
}*/
odiv.innerHTML=num;
</script>
</body>

把上面不需要的去掉:

<body>
<divid='odiv'></div>
<script>
varodiv=document.getElementById('odiv');
varnum='';
vararr=[];
//修改成这样的:
//定义一个while循环,循环的条件是集合arr的子集少于4个
while(arr.length<4){
vart=Math.floor(Math.random()*5);//生成随机数
if(arr.indexOf(t)==-1){
//如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。
//如果不存在,indexOf会返回-1
arr.push(t);//把生成的数字放进这个数组里
}
}
for(vari=0;i<=arr.length;i++){
num=num+(i+1)+':'+arr[t]+'<br/>';
}
odiv.innerHTML=num;
</script>
</body>

3. JS中,输出1-10之间的随机整数,用Math.random()咋搞呢

使用Math.floor(Math.random()*10+1)函数实现。

1、floor():返回小于等于x的最大整数。

2、函数返回一个浮点, 伪随机数在专范围[0,1),也就属是说,从0(包括0)往上,但是不包括1(排除1)。实现将初始种子选择到随机数生成算法,它不能被用户选择或重置。

实例演示如下:

1、html代码如下,绑定生成函数:

4. 用js实现随机选取10–100之间的10个且不重复的数字,存入一个数组。

前面几个都可以,我只是来写出我的答案的专。。

vararr=(function(){
var_arr=[];
for(vari=1;i<=100;i++){
属_arr.push(i);
}
return_arr;
})().sort(function(a,b){
returnMath.random()-0.5;
}).slice(0,10);

5. 请使用javascript生成10个20~200之间的随机数,要确保生成的随机数不重复.

vararr=[];
functionrec(r,i){
for(varj=0;j<i;j++){
if(r==arr[j]){
r=Math.floor(Math.random()*(200-20+1)+20);
rec(r,i);
break;
}
}
if(j==i){
arr.push(r);
}
}
functionrandom(){
for(vari=0;i<10;i++){
varr=Math.floor(Math.random()*(200-20+1)+20);
i==0&&arr.push(r);
if(i>0){
rec(r,i);
}
}
console.log(arr);
}
random();

运用了递归排除重复复制的可能,10个数重复的可能性很小,你可以生成更多数测试,是不会出现重复数字的

生成的10个随机数

6. 怎么用JavaScript生成一个数组,数组里有十个随机数。并且不重复。数字

还有这种方式:
var arr = [];
var a = 0;
console.log(arr.length)
while(arr.length<10){
var count=0;
var integer = Math.ceil(Math.random()*10);
for(var i = 0; i<arr.length; i++){
if (integer==arr[i]) {
count++;
}
}
if (count==0) {
arr.push(integer);
}
a++;
}
console.log(arr);
性能不咋滴,自己想的,挺锻炼逻辑思维的

7. 用JS实现随机生成10个1-1100之间的不重复的整数存放在数组中,并由用户输入一个数判断是否在该

这是我以前写的,封装成独立函数,那个ran()是主要的,不过可能写得会有点乱,但是用是ok的,
"use strict";
var random, arr = [], random_oo, oo = 0;
var r, a = 1, b = 1, c, n, num, k, result, m;

/**
* 生成min到max之间的随机整数并返回。
* @param min
* @param max
* @returns {number}
*/
function ran_sc(min, max) {
random = Math.round(Math.random() * (max - min)) + min;
return random;
}
/**
* 生成唯一随机数需要,检测当前随机数与数组内所有数字重复情况。
* @param x 随机数
* @returns {number} 重复情况
* 唯一(数组内所有数字没有和x重复,返回0;
* 有重复,返回1。
*/
function csqian(x) {
oo = 0;
for (var l = 0; l < arr.length; l++) {
if (x === arr[l]) oo = 1;
}
return oo;
}

/**
* 主调用函数。
* @param min 最小值
* @param max 最大值
* @param zushu 组数,要生成随机数的个数。
* @param chong_fu 是否重复,随便生成为true,生成唯一为false、
* @returns {Array} 随机数数组
*/
function ran(min, max, zushu, chong_fu) {
arr = [];
if (chong_fu === true) {//随便
random = arrran(min, max, zushu);
return random;
} else if (chong_fu === false) {//唯一
random = arrran_oo(min, max, zushu);
return random;
}
}

/**
* 随便生成
* @param min
* @param max
* @param zushu
* @returns {Array}
*/
function arrran(min, max, zushu) {
for (var i = 0; i <= (zushu - 1); i++) {
arr[i] = ran_sc(min, max);
}
return arr;
}

/**
* 生成唯一随机数函数的判断选择。。
* @param min
* @param max
* @param zushu
* @returns {Array}
*/
function arrran_oo(min, max, zushu) {
if (zushu > (max - min + 1)) {
console.log(min);
console.log(max);
console.log(zushu);
alert("组数应不超过能生成的所有不一样的随机数的数目\n(即组数不超过(最大值-最小值+1))");
} else {
random = c_s(min, max, zushu);
return random;
}
}

/**
* 生成唯一随机数
* @param min
* @param max
* @param zushu 组数
* @returns {Array}
*/
function c_s(min, max, zushu) {
for (m = 0; m <= Infinity; m++) {
if (m === zushu) break;
random_oo = ran_sc(min, max);
if (csqian(random_oo) === 0) {
arr[m] = random_oo;
} else if (csqian(random_oo) === 1) {
random_oo = ran_sc(min, max);
m -= 1;
}
}
return arr;
}

var r_ = ran(1, 1100, 10, false);
let INum = 0;//这里是用户输入的数
let EP = -1;
for (let i = 0; i < r_.length; ++i) {
if (r_[i] === INum) EP = i;
}
console.log("输入的数: " + INum);
console.log("生成随机数结果: " + r_.toString());
console.log("结果: " + EP);

8. JS生成不重复随机数组的函数代码

复制代码
代码如下:
//获取数组中的随机数
//HF.Math.RandomNumbers是前缀,可以自己定义,主要看逻辑代码
HF.Math.RandomNumbers
=
function
(startNum,
endNum,
count,
repeat)
{

var
ret
=
[];

if
(repeat)
{

for
(var
i
=
0;
i
<
count;
i++)
{

ret[i]
=
HF.Math.Random(startNum,
endNum);

}

return
ret;

}

var
tmp
=
[];

var
i
=
0;

for
(var
s
=
startNum;
s
<=
endNum;
s++)
{

tmp[i++]
=
s;

}

var
l
=
tmp.length;

for
(i
=
0;
i
<
count;
i++)
{

ret[i]
=
HF.Array.Remove(tmp,
HF.Math.Random(0,
--l));

}

return
ret;
}

9. javascript 如何生成不重复的随机数

Math.random()函数返回一个浮点, 伪随机数在范围[0,1)

得到两数之间的随机数:
functiongetRandomArbitrary(min,max){
returnMath.random()*(max-min)+min;}
得到一个两数之间的随机整数,包括两个数在内:
functiongetRandomIntInclusive(min,max){
min=Math.ceil(min);
max=Math.floor(max);
returnMath.floor(Math.random()*(max-min+1))+min;
阅读全文

与js生成不重复随机数组相关的资料

热点内容
如何从数控编程小白到大师 浏览:183
更改微信共享实时位置信息 浏览:13
js姓名正则 浏览:843
如何利用串口传输文件夹 浏览:346
jca文件怎么用word打开 浏览:965
U盘文件木马隐藏exe工具 浏览:152
下载优酷app视频播放器安装 浏览:38
两个excel文件不同 浏览:585
如何更新网站内容 浏览:953
什么网站下载广场舞是免费的 浏览:307
西门子编程软件怎么变成中文 浏览:984
居客来wifi密码 浏览:604
文件为何为空linux 浏览:630
美剧鸟app安装包在手机哪里 浏览:985
苹果5s16g升级ios103 浏览:850
word红头文件中怎么加双线 浏览:825
切割机用什么编程 浏览:787
文件修订题目 浏览:572
魅族pro5自带浏览器怎么升级 浏览:342
为什么用数据还是加载慢 浏览:171

友情链接