Rumah  >  Artikel  >  hujung hadapan web  >  Ringkasan kaedah untuk menjana nombor rawak dalam kemahiran javascript_javascript

Ringkasan kaedah untuk menjana nombor rawak dalam kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 15:32:341429semak imbas

Hari ini netizen lain bertanya kepada saya cara menjana nombor rawak dalam julat tertentu menggunakan JavaScript. Saya percaya semua orang tahu bahawa Math.random() ialah kaedah yang digunakan untuk menjana nombor rawak. Walau bagaimanapun, manual rujukan am tidak menerangkan cara menggunakan kaedah ini untuk menjana nombor rawak dalam julat yang ditentukan. Kali ini saya akan memperkenalkan Math.random() secara terperinci dan cara menggunakannya untuk menjana nombor rawak dalam julat yang ditentukan.

Sila lihat di sini untuk tutorial asas

http://www.jb51.net/w3school/js/jsref_random.htm

Selepas membaca tutorial, anda harus mengetahui penggunaan asas kaedah Math.random().

Gunakan parseInt(), Math.floor() atau Math.ceil() untuk pembundaran

Kami melihat bahawa menggunakan kaedah Math.random() terus menjana nombor kurang daripada 1, jadi:

Math.random()*5

Hasil yang diperoleh adalah nombor rawak kurang daripada 5. Perkara yang biasanya kita harapkan untuk diperoleh ialah integer antara 0-5, jadi kita perlu membundarkan keputusan untuk mendapatkan integer yang kita jangkakan. parseInt(), Math.floor() dan Math.ceil() semuanya boleh memainkan peranan pembundaran.

var randomNum = Math.random()*5;
alert(randomNum); // 2.9045290905811183 
alert(parseInt(randomNum,10)); // 2
alert(Math.floor(randomNum)); // 2
alert(Math.ceil(randomNum)); // 3

Kita dapat melihat daripada kod yang diuji bahawa parseInt() dan Math.floor() mempunyai kesan yang sama, kedua-duanya membawa bahagian integer ke bawah. Jadi parseInt(Math.random()*5,10) dan Math.floor(Math.random()*5) kedua-duanya dijana nombor rawak antara 0-4, Math.ceil(Math.random()*5 ) ialah menghasilkan nombor rawak antara 1-5.

Jana nombor rawak dalam julat yang ditentukan

Jadi, jika anda ingin menjana nombor rawak daripada 1 kepada sebarang nilai, formulanya ialah:

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

Jika anda ingin menjana nombor rawak daripada 0 kepada sebarang nilai, formulanya adalah seperti ini:

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

Jika anda ingin menjana nombor rawak daripada sebarang nilai kepada sebarang nilai, formulanya adalah seperti ini:

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

Mari kita lihat cara lain untuk menjana nombor rawak menggunakan javascript

1. Gunakan kaedah penjanaan nombor rawak terbina dalam: (baru disebut, berikut adalah penerangan ringkas)

Math.random(); //该方法产生一个0到1之间的浮点数。
Math.floor(Math.random()*10+1); //1-10
Math.floor(Math.random()*24);//0-23 

2. Berdasarkan masa, nombor rawak juga boleh dijana:

Salin kod Kod tersebut adalah seperti berikut:
var now=new Date(
var number = now.getSeconds(); //Ini akan menjana integer dari 0 hingga 59 berdasarkan masa semasa.

var now=New Date();
var number = now.getSeconds()C; //Ini akan menjana integer dari 0 hingga 42 berdasarkan masa semasa.

3. Program penjana nombor rawak yang sangat baik yang boleh digunakan dalam banyak bidang.

<script language="JavaScript"><!--
// The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)
// See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html 
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd() {
    rnd.seed = (rnd.seed*9301+49297) % 233280;
    return rnd.seed/(233280.0);
};
function rand(number) {
    return Math.ceil(rnd()*number);
};
// end central randomizer. -->
</script>

Mari kita lihat dua lagi contoh khusus,

Kaedah pertama dilaksanakan dengan menulis semula kaedah Math.random, dan kaedah kedua diubah suai daripada pelaksanaan C, kedua-duanya boleh mencapai tujuan pengaturcaraan.

Contoh 1:

<script language="javascript">  
var native_random = Math.random;
Math.random = function(min, max, exact) {
	if (arguments.length === 0) 
	{
		return native_random();
	} 
	else if (arguments.length === 1) 
	{
		max = min;
		min = 0;
	}
	var range = min + (native_random()*(max - min));
	return exact === void(0) &#63; Math.round(range) : range.toFixed(exact);
};
document.write(Math.random());
document.write('<br />');
document.write(Math.random(10));
document.write('<br />');
document.write(Math.random(3,10));
document.write('<br />');
document.write(Math.random(2,10,4));
</script>

Contoh 2:

<script type="text/javascript">
var random = (function(){
	var high = 1, low = 1 ^ 0x49616E42;
	var shuffle = function(seed){
		high = seed;
		low = seed ^ 0x49616E42;
	}
	
	return function(){
  	var a = new Date()-0
   	shuffle(a);
  	high = (high << 16) + (high >> 16);
  	high += low;
  		low += high;
   	return high;
 	}
})();
 
alert( random() );
</script>

Baiklah, melalui contoh-contoh ini, semua orang harus mempunyai pemahaman yang sepadan tentang menjana nombor rawak dengan javascript. Saya harap artikel ini dapat memberi anda sedikit inspirasi.

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