| 
 Генератор случайных чисел без повторений в последующих генерациях Всем привет! Прошу помочь с одной задачей. Нужно сделать генератор случайных чисел из диапазона чисел, но так чтобы в последующих генерациях числа не повторялись, и чтобы можно было менять кол-во генерации значений. Генерация до тех пока числа не кончатся, потом заново генерация. Возможно ли как то реализовать это? 
 Пример: Диапазон чисел: 0-48 Количество значений за 1 генерацию: 6 Нажимаем кнопку, генерируются числа Результат: Генерация 1: 12 5 7 23 8 9 Генерация 2: 25 6 3 4 36 2 Генерация 3: 17 21 27 42 15 39 Не просто генерация чисел, не так чтобы выдала: Генерация 1: 12 5 7 23 8 9 Генерация 2: 11 7 15 33 43 10 Генерация 3: 8 22 34 47 0 13 Выделены цифры которые повторяются при последующей генерации | 
| 
 Samik, создали массив, перемешали, пока длина массива больше n, то return arr.splice(0,n) иначе ... ??? | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Samik, :blink: не понимаю, что вы пишите. вопрос вроде простой: что будет на 9-ой генерации? | 
| 
 Цитата: 
 диапазон: 0-10 Количество значений за 1 генерацию: 3 Генерация 1: 1 3 5 Генерация 2: 2 4 6 Генерация 3: 7 9 8 Генерация 4: 0 10 Генерация 5: уже ничего не будет генерировать Если к 9ой генерации чисел из диапазона уже не останется то результата не будет, и нужно делать сброс чтобы начать с начала | 
| 
 Samik, 
<script>
function gn(b, d, c) {
    for (var a = []; b <= d; b++) a = a.concat(a.splice(Math.random() * a.length | 0, 1, b));
    return function() {
        return a.length >= c ? a.splice(a.length - c) : a.splice(0)
    }
};
var x = gn(0,10,3)
for (var i=0; i<5; i++)  {document.write(x()+"<br>")}
  </script>
 | 
| 
 Цитата: 
  | 
| 
 
<!DOCTYPE html>
<html lang="en">
<head>
	<style>
		input{
			width: 30px;
		}
	</style>
</head>
<body>
	От <input type="text" value="0" id="ot"> до <input type="text" value="10" id="do"> по <input type="text" value="3" id="num"> чисел<br>
	<button id="gen">Генерировать</button><button id="sb">Сброс</button>
	<div id="res"></div>
	<script>
		function gn(b, d, c) {
			for (var a = []; b <= d; b++) a = a.concat(a.splice(Math.random() * a.length | 0, 1, b));
				return function() {
					return a.length >= c ? a.splice(a.length - c) : a.splice(0);
				};
			}
			function sm(){
				var x = gn(document.querySelector('#ot').value,document.querySelector('#do').value,document.querySelector('#num').value);
				document.querySelector('#gen').onclick = function(){
					document.querySelector('#res').innerHTML += x()+"<br>";
				};
				document.querySelector('#res').innerHTML='';
			};
			sm();
			document.querySelector('#sb').onclick=sm;
		</script>
	</body>
	</html>
 | 
| Часовой пояс GMT +3, время: 00:31. |