如果我有一個數組給我9個隨機數,從9個數字的列表中,我如何確保它只能複製3個相同的數字?例如,如果我的隨機數組是[4,3,4,4,7,8,8,8,9],則爲 。 我需要在那裏只有一個數組在任何一個數組中的三個不像上面看到的兩個。3個數字相同從1-9之間的隨機數列表
0
A
回答
0
你需要有什麼是你正在使用存儲被添加到陣列中的隨機數來代替randomNum
,但試試這個:
var arrayOfRandomNums = [];
function maxInstancesInArray(arr, val) {
var hits = [];
for(i = 0; i < arr.length; i++)
if (arr[i] === val)
indexes.push(i);
return indexes.length > 2;
}
if(!maxInstancesInArray(arrayOfRandomNums, randomNum) {
arrayOfRandomNums.push(randomNum);
}
如果有該函數將返回true 3或數組中已有更多的傳入數字實例,因此您可以使用它來定義是否將下一個數組推入數組。
0
我做了一個jsFiddle,可以幫助。這個想法是,不要試圖每次都得到rundom數字並檢查,以獲得數組中可用數字的列表,並隨機選擇該數組的索引。
https://jsfiddle.net/m8ohmxmb/
function randNumber(maxRange,maxOccurrencies, resultArrayLenght) {
var num = [];
var occ = [];
var result = [];
var randElem;
for (var i = 0; i < maxRange; i++) {
num.push(i + 1);
occ.push(0);
}
for(i = 0; i < resultArrayLenght; i++) {
randElem = Math.floor(Math.random() * num.length);
occ[randElem] = occ[randElem] + 1;
result.push(num[randElem]);
if(occ[randElem] === maxOccurrencies) {
occ.splice(randElem,1);
num.splice(randElem,1);
}
}
return result;
}
+0
感謝所有的幫助,我現在修復了它,我只是使用indexOf並循環訪問我的數組,直到它匹配indexOf元素。 –
+0
例如:在一個do循環中使用一個if語句如下:if randomNumber == 1 && this.array.indexOf(1)!= - 1然後這將會將do循環開始時設置的變量更改爲true –
0
這是爲保持insertet值及其數的臨時對象一個直接的方法。
function push(n) {
if (count.full && count[n] === 2) {
alert('can not insert ' + n);
return;
}
array.push(n);
count[n] = (count[n] || 0) + 1;
if (count[n] === 3) {
count.full = true;
}
}
var array = [],
count = {};
[4, 3, 4, 4, 7, 8, 8, 8, 9].forEach(push);
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');
相關問題
- 1. Python:列表和隨機。如何從0到[列表中的字符串數量]之間選擇隨機數字?
- 2. 隨機數字序列,停止2個相同的數字
- 3. 1和3之間的隨機數
- 4. 在一系列數字之間生成N個隨機數列表
- 5. 分叉進程之間的隨機數是相同的
- 6. 生成相同的隨機數序列
- 7. 兩個數字之間的隨機數字生成器 - MatLab
- 8. 生成Java Card中兩個數字之間的隨機數字
- 9. C#隨機總是相同的數字
- 10. 相同的隨機數
- 11. .delay()之間的隨機數
- 12. 從列表中選擇不同的和隨機的數字
- 13. 如何同時顯示3個隨機數和時間間隔
- 14. 多個隨機數是相同的
- 15. 選擇一個隨機數的隨機數次,但從來沒有相同的隨機數的兩倍
- 16. Smarty多個隨機數字列表
- 17. 隨機數字全部相同
- 18. 2個數字之間的C++隨機數重置
- 19. 如何生成[0,1]和3分數之間的隨機數
- 20. 從隨機數序列中選擇相同大小的數字組
- 21. 80-130之間的1000個不同的隨機數的總和?
- 22. 隨機數=相同數量的星星
- 23. 兩個隨機數始終以相同數字開頭
- 24. 在兩個數字之間生成隨機數
- 25. MATLAB:生成相同的隨機數字序列
- 26. 動作2:從數組中挑選3個隨機數字
- 27. 紅寶石 - 隨機數是相同的隨機數,每次
- 28. iPhone:隨機()函數每次給我相同的隨機數
- 29. 隨機數發生器產生相同的隨機數
- 30. Vb.net隨機數字生成器重複相同的數字
可以共享代碼產生這些隨機數字? – gurvinder372