download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Джава скрипт за генериране на числа от предварително зададени му такива?

Автор
Съобщение
programings
Нед, 28.08.11, 19:03
Трябва ми джава скрипт, който да генерира числа от предварително зададени му такива, например задавам му 20 числа, и самият скрипт при изпълнение да ми изведе 6 произволно избрани числа от тези 20, които съм му задал предварително!

Предварително благодаря!

insecteater
Пон, 29.08.11, 10:48
А върши ли ти работа, скрипт, който от предварително зададен масив произволно маха елементи, докато останат да речем 6 (или колкото искаш) в него. Ефекта май е същия (с малко повечко използване на процесора при огромни масиви).
<script language="JavaScript"> 
 
Array.prototype.sortn = function() {
        return this.sort(function(a, b){return a-b;});
}
 
Array.prototype.reduceRandom = function(count) {
	while (this.length > count) {
		var ri = Math.floor((Math.random()*this.length));
		this.splice(ri, 1);
		if (this.length == 0) break;
	}
}
 
var nums = new Array(2, 4, 6, 8, 10, 12, 14, 16, 18, 20);
nums.reduceRandom(3); //Колко елемента да останат - в случая 3
document.write(nums.sortn());
 
</script>

Резултат:
4,6,10
или
4,10,20
или
2,16,20
или
10,14,16
и т. н. (всеки път различно)

programings
Пон, 29.08.11, 11:56
Мерси, и така става!

Получи се страхотен тото генератор !

phrozencrew
Чет, 22.09.11, 20:24
Едно предложение и от мен:
<script language="JavaScript">
// Деклариране на минимално и максимално число
var min = 1;
var max = 69;
// Брой на случайно-генерираните числа
var randnums = 6;
 
var nums = [];
var c = 0;
var seqarr =[];
 
function compare(a,b){return a - b}
 
for (var num = min; num <= max; num++){nums.push(num)}
 
do{
	var el = nums[Math.floor(Math.random() * nums.length)];
	if(seqarr.indexOf(el) != -1){continue}
	else {
		seqarr.push(el);
		c++;
	}
}while(c<randnums);
 
document.write(seqarr.sort(compare));
</script>

И файлче за тест: JavaScript_random.html

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.