Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как заполнить массив не повторяющимися случайными числами? (https://javascript.ru/forum/misc/52097-kak-zapolnit-massiv-ne-povtoryayushhimisya-sluchajjnymi-chislami.html)

Aetae 04.12.2014 03:43

Мой велосипед:
unction rand(max, min, length){
	var result = [],
		resultSorted = [];

	if(typeof max !== 'number') return Math.random();
	if(typeof min !== 'number') return Math.floor(Math.random() * ++max);

	if(min > max) min = [max, max = min][0];                 

	if(!length || typeof length !== 'number') return Math.floor(Math.random() * (max - min + 1)) + min;

	if(length > max - min + 1) throw new RangeError('invalid length.');

	for(var j = 0, random, index; j < length; j++, max--){
		random = Math.floor(Math.random() * (max - min + 1)) + min;

		for(index = j; index && resultSorted[index-1] <= random; index--) random++; 

		result.push(random);
		resultSorted.splice(index, 0, random);
	}

	return result;
}


рони, кстати твой вариант по ссылке создаёт массив массивов.)

рони 12.04.2015 13:04

Цитата:

Сообщение от Aetae
рони, кстати твой вариант по ссылке создаёт массив массивов.)

исправлено )))
http://javascript.ru/forum/showthread.php?p=56975


Часовой пояс GMT +3, время: 15:01.