導航:首頁 > 編程語言 > js生成多個隨機數

js生成多個隨機數

發布時間:2023-04-27 05:25:28

1. js如何實現多次計算隨機數

<scripttype="text/javascript">
vararr=newArray(4);
for(vari=0;i<arr.length;i++){
varrandomvalue=Math.round(Math.random()*10);
arr[i]="pic/Sky/"+randomvalue+".jpg";
}
$(document).ready(function(){
$('.demoo').bgStretcher({
images:arr,
slideDirection:'N',
slideShowSpeed:1000,
transitionEffect:'fade',
sequenceMode:'normal',
});
});
</script>

2. 請使用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個隨機數

3. js 隨機生成不同的數

建議先生成一個33的數組

var reds=setnum(33);//紅球
var blues=setnum(16);//藍球

var items=[];
while(items.length<6){
var index=rang(1,reds.length);
if(reds[index]!=0){
items.push(index);
reds[index]=0;
}
}

alert(items) // 這樣就獲取到了 隨機的6個紅球

//產生隨機數
function rang(min,max){
var cur=max-min+1;

return Math.floor(Math.random()*cur+min);
}

//生成球
function setnum(n){
var numbs=[];
for(var i=1;i<=n;i++){
numbs.push(i);
}
return numbs;
}

//完全手敲 有錯誤請見諒 希望多你有所幫助

4. 使用js Math.random()函數生成n到m間的隨機數字

摘要:
本文講解如何使用js生成n到m間的隨機數字,主要目的是為後期的js生成驗證碼做准備。
Math.random()函數返回0和1之間的偽隨機數,可能為0,但總是小於1,[0,1)
生成n-m,包含n但不包含m的整數:
第一步算出
m-n的值,假設等於w
第二步Math.random()*w
第三步Math.random()*w+n
第四步parseInt(Math.random()*w+n,
10)
生成n-m,不包含n但包含m的整數:​
第一步算出
m-n的值,假設等於w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.floor(Math.random()*w+n)
+
1
生成n-m,不包含n和m的整數:
第一步算出
m-n-2的值,假設等於w
第二步Math.random()*w
第三步Math.random()*w+n
+1
第四步Math.round(Math.random()*w+n+1)
或者
Math.ceil(Math.random()*w+n+1)
生成n-m,包含n和m的隨機數:
第一步算出
m-n的值,假設等於w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.round(Math.random()*w+n)
或者
Math.ceil(Math.random()*w+n)
例子:
生成800-1500的隨機整數,包含800但不包含1500
復制代碼
代碼如下:
1500-800
=
700
Math.random()*700
var
num
=
Math.random()*700
+
800;
num
=
parseInt(num,
10);
只需要簡單的四步就可以完成。
補充:
Math.ceil()
返回大於等於數字參數的最小整數(取整函數),對數字進行上舍入
Math.floor()
返回小於等於數字參數的最大整數,對數字進行下舍入
Math.round()
返回數字最接近的整數,四捨五入

5. js如何生成指定范圍內的隨機數

function getarrayitems(arr, num) {
//新建一個數組,將傳入的數組復制過來,用於運算,而不要直接操作傳入的數組;
var temp_array = new array();
for (var index in arr) {
temp_array.push(arr[index]);
}
//剔除一些數字
//取出的數值項,保存在此數組
var return_array = new array();
for (var i = 0; i
//判斷如果數組還有可以取出的元素,以防下標越界
if (temp_array.length>0) {
//在數組中產生一個隨機索引
var arrindex = math.floor(math.random()*temp_array.length);
//將此隨機索引的對應的數組元素值復制出來
return_array[i] = temp_array[arrindex];
//然後刪掉此索引的數組元素,這時候temp_array變為新的數組
temp_array.splice(arrindex, 1);
} else {
//數組中數據項取完後,退出循環,比如數組本來只有10項,但要求取出20項.
break;
}
}
return return_array;
}
var my_array = new array();
for (i = min; i < max; i++) //max,min指定范圍
{
my_array[i] = i;
}
my_array = getarrayitems(my_array,1000); //得到數組
function rand(u,d){
++d;
return parseint(math.random()*(u-d)+d);
}

6. js中如何同時產生八個不同的隨機數

js中的random()方法能夠產生隨機數,要產生8個就循環8次就行了,這沒別的方法!

7. javascript如何產生60-100的隨機數

var hehe = Math.floor(Math.random()*41)+60;
alert(hehe);
Math.random()產生的隨機數范圍為0~1的數字,但請注意隨機數不含1,即范圍為[0,1),所以這里內數字(Math.random()*41)應該容為41而不是40.

8. js生成固定數量的隨機數,如果已經存在幾個,則生成剩餘數量的數

js生成隨機數主要用到了內置的Math對象的random()方法。用法如:Math.random()。它返回的是一個 0 ~ 1
之間的隨機數。有了這么一個方法,那生成任意隨機數就好理解了。比如實際中我們可能會有如下的需要:
(1)生成一個 0 - 100 之間的隨機整數,那麼則可以:
parseInt(100*Math.random());

注意:因為Math.random()的返回值是包括0和1的,所以這里是有生成0和100的可能性的。
(2)生成一個從 m - n 之間的隨機整數,例如要生成一個 5 - 15
之間的隨機數,則可以:
parseInt(Math.random()*(15-5+1) + 5);

概括即為:

parseInt(Math.random()*(n-m+1)+m);//生成一個從 m - n 之間的隨機整數

另外根據需要總結了另外兩種常用到的方法,如下:
(3)生成指定位數的隨機整數

function randomNum(n){
var t='';
for(var i=0;i<n;i++){
t+=Math.floor(Math.random()*10);
}
return t;
}

(4)生成指定范圍內的隨機整數

function randomNum(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1);
break;
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum);
break;
default:
return 0;
break;
}
}

例如生成 2 - 9之間的隨機整數,則:randomNum(2,9),生成 1 - 22之間隨機整數,則:randomNum(22)
①從0~6中生成3個隨機數。

②判斷3個隨機數是否相等,不相等則執行隱藏操作。

③3隨機數有重復,則重新執行函數。

實現:生成0~6的一個隨機數

復制代碼
代碼如下:

var ran1=parseInt(Math.random()*7);
//Math.random()生成[0,1)的一個隨機數

完整代碼:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="javascript" type="text/javascript" src="http://libs..com/jquery/1.9.0/jquery.js"></script>
<title>挑戰題</title>
</head>

<body>
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
<a id="btn" onclick="cli()">簡化</a>
</body>
<script>
$(function cli(){
$("#btn").css("cursor","pointer");
if($("#btn").html()=="簡化"){
var ran1=parseInt(Math.random()*7);
var ran2=parseInt(Math.random()*7);
var ran3=parseInt(Math.random()*7); //①從0~6中生成3個隨機數完成
if(ran1!=ran2&&ran1!=ran2&&ran2!=ran3){ //②判斷3個隨機數是否相等,不相等則執行操作。
$('li:eq('+ran1+')').css('display','none');
$('li:eq('+ran2+')').css('display','none');
$('li:eq('+ran3+')').css('display','none');
$("#btn").html("更多");
}else{//③3隨機數有重復,則重新執行函數。
cli();
}
}

else{
$("li:hidden").css('display','list-item');
$("a:contains('更多')").html("簡化");
}

});

</script>
</html>

收獲一:

復制代碼
代碼如下:

var
ran=parseInt(Math.random()*(max-min+1)+min); //生成一個[min,max]區間的一個隨機數

收獲二:

反思了下,決定寫個在一定[min,max]區間,生成n個不重復的隨機數的封裝函數。

思路一:先生成n個[min,max]區間隨機數,比較是否重復,如重復則返回,再次執行。

演示地址:http://jsbin.com/yupuyehuqa/edit?html,js,output

封裝函數:

function my_ran(n,min,max){
var arr=[];
for(i=0;i<n;i++){
arr[i]=parseInt(Math.random()*(max-min+1)+min);
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(arr[i]==arr[j]){
my_ran(n,min,max);
return fault;
}
}
}
return arr;
}

思路二:生成第i個[min,max]區間的隨機數,並與之前i-1個數比較,如有重復,令i=i-1;重復生成第i個隨機數。

演示地址:http://jsbin.com/zorunotosi/edit?html,js,output

封裝函數:
function my_ran2(n,min,max){
var arr=[];
for(i=0;i<n;i++){
arr[i]=parseInt(Math.random()*(max-min+1)+min);
for(j=0;j<i;j++){
if(arr[i]==arr[j]){
i=i-1;
break;
}
}
}
return arr;
}

思路三:生成[min,max]區間的一個順序數組,打亂數組,輸出前n個值。

演示地址:http://jsbin.com/zorunotosi/edit?html,js,output

封裝函數:
function my_ran3(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i<max-min+1;i++){
arr[i]=i+min;
}
for(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);
for(i=0;i<n;i++){
arr2[i]=arr[i];
}
return arr2;
}

思路四:生成[min,max]區間的一個順序數組,從中隨機選出一個值,然後在數組中刪掉這個值,再選第二個隨機值。

演示地址:http://jsbin.com/zorunotosi/edit?html,js,output

封裝函數:
function my_ran4(n,min,max){
var arr=[];
var arr2=[];
for(i=0;i<max-min+1;i++){
arr[i]=i+min;
}
for(i=0;i<n;i++){
var x=parseInt(Math.random()*arr.length);
arr2[i]=arr[x];
for(j=x;j<arr.length;j++){
arr[j]=arr[j+1];
}
arr.length=arr.length-1;
}
return arr2;
}

9. js 取多個隨機數

varbackgroundColorArray=["red","green","violet","peachy","brown","blue"];
varbackgroundColor="t-"+backgroundColorArray[Math.floor(Math.random()*5)];

varbackgroundPic="t-pattern-"+Math.floor(Math.random()*9+1);
document.body.className=backgroundColor+""+backgroundPic;

10. 怎麼用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);
性能不咋滴,自己想的,挺鍛煉邏輯思維的

閱讀全文

與js生成多個隨機數相關的資料

熱點內容
windows7系統共享文件 瀏覽:62
ps前往文件夾 瀏覽:694
信捷plc編程用哪個軟體 瀏覽:939
vba導入文件 瀏覽:690
更新後版本英文怎麼說 瀏覽:267
桌面雲配置文件分離 瀏覽:505
iphone5如何升級4g網路 瀏覽:5
團購是在哪個app 瀏覽:897
打開多個word文檔圖片就不能顯示 瀏覽:855
騰訊新聞怎麼切換版本 瀏覽:269
app安裝失敗用不了 瀏覽:326
桌面文件滑鼠點開會變大變小 瀏覽:536
手機誤刪系統文件開不了機 瀏覽:883
微信兔子甩耳朵 瀏覽:998
android藍牙傳文件在哪裡 瀏覽:354
蘋果6s軟解是真的嗎 瀏覽:310
c語言代碼量大 瀏覽:874
最新網路衛星導航如何使用 瀏覽:425
以下哪些文件屬於圖像文件 瀏覽:774
zycommentjs 瀏覽:414

友情鏈接