導航:首頁 > 編程語言 > 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生成不重復隨機數組相關的資料

熱點內容
文件斜著的一排字用ps怎麼刪除 瀏覽:995
港版iphone5ios7有幾種系統 瀏覽:770
qq歡迎使用影音播放 瀏覽:322
網路列印機怎麼查看電腦的密碼 瀏覽:980
淘寶賣二手的app叫什麼名字 瀏覽:217
安卓代碼讀取界面信息 瀏覽:714
數控車床車55度螺紋怎麼編程 瀏覽:391
word桌面找不到文件 瀏覽:585
數控車床編程怎麼做到的 瀏覽:639
哈爾濱市行政區劃代碼 瀏覽:716
如何顯示文件擴張 瀏覽:283
ps怎麼移植文件 瀏覽:443
傳奇補丁文件說明 瀏覽:513
奧維地圖怎麼設置網路疊加 瀏覽:407
linux載入庫文件so失敗 瀏覽:714
大家都想要的app 瀏覽:58
程序員比特幣 瀏覽:568
mysqlfrm是什麼文件 瀏覽:665
win10點擊文件夾聲音消失 瀏覽:963
蘋果手機空白文件名 瀏覽:833

友情鏈接