Rumah  >  Artikel  >  hujung hadapan web  >  Analisis proses penjanaan nombor rawak dengan kemahiran js_javascript

Analisis proses penjanaan nombor rawak dengan kemahiran js_javascript

WBOY
WBOYasal
2016-05-16 15:30:311515semak imbas

1. Pengetahuan awal

Math.ceil(); //向上取整。

Math.floor(); //向下取整。

Math.round(); //四舍五入。

Math.random(); //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494

Math.ceil(Math.random()*10);   // 获取从1到10的随机整数 ,取0的概率极小。

Math.round(Math.random());  //可均衡获取0到1的随机整数。

Math.floor(Math.random()*10); //可均衡获取0到9的随机整数。

Math.round(Math.random()*10); //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。

Kerana keputusannya ialah 0~0.4, 0.5 hingga 1.4 ialah 1...8.5 hingga 9.4 ialah 9, dan 9.5 hingga 9.9 ialah 10. Oleh itu, selang taburan kepala dan ekor hanya separuh daripada nombor lain.

2. Hasilkan integer rawak bagi [n, m]
Fungsi: Hasilkan integer rawak [n, m].

Ia berguna apabila js menjana kod pengesahan atau memilih pilihan secara rawak. .

//生成从minNum到maxNum的随机数
function randomNum(minNum,maxNum){ 
 switch(arguments.length){ 
 case 1: 
  return parseInt(Math.random()*minNum+1,10); 
 break; 
 case 2: 
  return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
 break; 
  default: 
  return 0; 
  break; 
 } 
} 

Analisis Proses:
Math.random() menjana nombor [0,1), jadi Math.random()*5 menjana nombor {0,5).

Biasanya integer dijangka, jadi hasilnya perlu diproses.

parseInt(), Math.floor(), Math.ceil() dan Math.round() semuanya boleh mendapatkan integer.

Keputusan parseInt() dan Math.floor() dibundarkan ke bawah.

Jadi Math.random()*5 menjana integer rawak dalam [0,4].

Jadi nombor rawak [1,maks] dijana, formulanya adalah seperti berikut:

// max - 期望的最大值
parseInt(Math.random()*max,10)+1;
Math.floor(Math.random()*max)+1;
Math.ceil(Math.random()*max);

Jadi jana nombor rawak daripada [0,maks] kepada sebarang nombor, formulanya adalah seperti berikut:

// max - 期望的最大值
parseInt(Math.random()*(max+1),10);
Math.floor(Math.random()*(max+1));

Jadi saya berharap untuk menjana nombor rawak [min, maks], formulanya adalah seperti berikut:

// max - 期望的最大值
// min - 期望的最小值
parseInt(Math.random()*(max-min+1)+min,10);
Math.floor(Math.random()*(max-min+1)+min);

Di atas adalah analisis komprehensif nombor rawak yang dihasilkan oleh js. Saya harap ia dapat membantu semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn