Я столкнулся с очень странной проблемой. Я попытался найти его решение, но напрасно. Моя проблема в том, что я хочу создать случайное число между 1-45, и я не хочу, чтобы это число повторялось снова.Хотите создать случайные числа между 1-45 без повторения
ответ
Случайный выбор, по определению, будет повторяться случайным образом.
Однако вы можете построить массив, содержащий каждое из ваших чисел, а затем перетасовать массив, создавая случайный порядок чисел без повторения.
var nums = [], i;
for(i=1; i<=45; i++) nums.push(i);
nums.sort(function(a,b) {return Math.random()-0.5;});
alert(nums.join(","));
То, что вы действительно хотите, чтобы создать набор чисел в заданном диапазоне и случайно удалить один из номеров до тех пор, пока не установятся пуст.
Вот функция, которая генерирует другую функцию, которая делает именно то, что:
function generateRandomRangeSet(beg, end) {
var numbers = []; // Create an array in range [beg, end].
for (var i=beg; i<=end; i++) { numbers.push(i); }
return function() {
if (numbers.length < 1) { throw new Error('no more numbers'); }
var i=Math.floor(Math.random()*numbers.length), number=numbers[i];
numbers.splice(i, 1); // Return and remove a random element of the array.
return number;
}
}
var r = generateRandomRangeSet(1, 45);
r(); // => 9
r(); // => 24
r(); // => 7 ... for each number [1, 45] then ...
r(); // Error: no more numbers
Опираясь на новые методы Object.prototype. Вышеупомянутый код не работает в IE8 и ниже. –
@Kolink: обновлен для работы с любой версией ECMAScript. – maerics
- 1. Случайные числа без повторения
- 2. случайные числа без повторения
- 3. Хотите создать случайные числа. имитируя прокатные кости
- 4. Генерировать случайные числа без повторения в C
- 5. JavaScript генерирует случайные числа без повторения
- 6. Как получить случайные сгенерированные числа без повторения
- 7. генерировать случайные числа без повторения в C#
- 8. vb 2010 Генерировать случайные числа без повторения
- 9. Генерировать случайные числа в диапазоне без повторения
- 10. Генерировать случайные числа без повторения при сохранении перехода между страницами
- 11. Случайные массивы без повторения
- 12. Как генерировать случайные числа без повторения в Swift?
- 13. Как создать Случайные числа
- 14. Выберите случайные строки без повторения
- 15. JQuery случайные слова без повторения
- 16. Слушать случайные звуки без повторения
- 17. Случайные изображения без повторения php
- 18. Случайные числа без дубликатов
- 19. Как генерировать случайные числа из массива без повторения?
- 20. Случайные числа без дубликатов и диапазон между
- 21. Как создать случайные числа без одинакового номера
- 22. Генерировать случайные числа без повторения (или исчезающей вероятности повторения) без сохранения полного списка прошлых сгенерированных чисел?
- 23. Случайные числа (без перестановки)
- 24. Выбирайте случайные элементы из массива без повторения
- 25. Случайные объекты к списку без повторения
- 26. Случайные изображения из массива без повторения
- 27. Как отображать случайные очереди без повторения?
- 28. Показать случайные вопросы из таблицы без повторения
- 29. Случайные направления, без повторения .. (Плохое описание)
- 30. Случайные изображения без повторения (догадка изображения)
принять. Массив, заполнить его диапазоном чисел, перетасовать, вывести значения – C5H8NNaO4
-1. Без усилий. Случайная выборка без замены вовсе не странная проблема, она часто встречается в учебниках по программированию, и есть решения онлайн на многих языках, включая js. Если вы столкнулись с ошибкой «javascript random without replacement», первые три результата из stackoverflow, первый из них - http://stackoverflow.com/questions/12987719/javascript-how-to-randomly-sample-items-without-replacement. См. Также http://stackoverflow.com/questions/11935175/sampling-a-random-subset-from-an-array. – Paul