Нужен генератор случайных чисел без Math.random 
		
		
		
		Помогите сделать код есть вот такая формула "Если пользователю потребуется, чтобы случайное число x находилось в интервале (a; b), отличном от (0;1), нужно воспользоваться формулой x=a+(b-a)*r, где r - случайное число из интервала (0;1)." 
	 | 
	
		
 Помочь вам написать генератор псевдослучайных чисел? :) 
	 | 
	
		
 без Math.random? но почему? :blink:  
	можно по колдовать с тайм кодом. с ms  | 
	
		
 Цитата: 
	
 Если использовать метку времени, то случайным число не будет.  | 
	
		
 Nexus, 
	как его еще получить?  | 
	
		
 
function rand(){
	return (new Date()).getMilliseconds()/1000;
};
alert(rand()+'; '+rand());
 | 
	
		
 j0hnik, понятия не имею, мне всегда Math.random хватало. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 и еще один вопрос, как сделать так чтобы число генерировалось в заданном в ручную диапазоне например от 1 до 10? 
	 | 
	
		
 Kirill_98, 
	
var rnd =(a, b)=> Math.floor(('0.'+ new Date().getMilliseconds()) * (b - a)) + a;
console.log(rnd(10,20));
 | 
	
		
 Цитата: 
	
 Мне даже интересно взялся бы кто-нибудь действительно писать ГПСЧ. Чтобы ваше задание выполнить, можно отправить запрос на сервер, который вернет случайное число.  | 
	
		
 Kirill_98, 
	
var rnd =(a, b)=> Math.floor(('0.'+ (new Date().getMilliseconds()+''.slice(1)) ) * (b - a)) + a;
console.log(rnd(0,100));
дайте преподу секундомер, и пусть попробует угадать генерируемое число, если не угадает значит случайное.  | 
	
		
 Цитата: 
	
 я попробывал сделать вот так 
function rand(){
                return (new Date()).getMilliseconds()/1000;
            };
			function getRandomCount(){
				var resultObject = document.getElementById('resultPlace');
				resultObject.innerHTML = "";
				for (var i = 0; i < 5; i++) {
					 var a = Number (document.getElementById('a').value);
					 var b = Number (document.getElementById('b').value);
					 var result = a + (b - a) * rand();
					 resultObject.innerHTML += "<br>Сгенерированное число: " + result;
				}
			}
		</script>
вопрос как сделать так чтобы выкидывал допустим 5 разных чисел, в моем коде он выдает одно и тоже число 5 раз  | 
	
		
 
var rnd =(a, b)=> {
	var n = 99999900;
	while(n--) n;
	return Math.floor(('0.'+ (new Date().getMilliseconds()+''.slice(1)) ) * (b - a)) + a;
};
console.log(rnd(0,100)+'--'+rnd(0,100)+'--'+rnd(0,100)+'--'+rnd(0,100)+'--'+rnd(0,100));
Nexus проблема решена  | 
	
		
 генератор случайных чисел без Math.random 
		
		
		
		Цитата: 
	
 Цитата: 
	
 
<script>
function rund(b) {
    var a = (new Date).getMilliseconds();
    return function() {
        a = (25173 * a + 13849) % 65536;
        return a % b + 1
    }
};
var x =  rund(10);
for (var i=0; i< 1000; i++)  document.write(x()+",")
  </script>
 | 
	
		
 Цитата: 
	
  | 
	
		
 Рони, прокомментируй 
	a = (25173 * a + 13849) % 65536;  | 
	
		
 рони, 
	есть варианты генерировать без date?  | 
	
		
 
var __rand_last_val, __rand_last_time;
function rand() {
    var res = (new Date()).getMilliseconds() / 1000;
    if (res == __rand_last_time)
        res = res * +('0.' + __rand_last_val.toString().substr(-2)) + __rand_last_val / 1000;
    else
        __rand_last_time = res;
    return __rand_last_val = res;
};
var i = 10,
    r = []
while (i--)
    r.push(rand());
console.log(r);
 | 
	
		
 Цитата: 
	
  | 
	
		
 в голову приходит только генерировать используя различные таймкоды, 
	время выполнения определенных частей кода, время ответа сервера, время общения с какому либо адресу и ответ сервера... в общем все связано со временем.  | 
	
		
  | 
	
		
 Цитата: 
	
  | 
	
		
 
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
	min	<input type="number" min="0" max="999999" value="0" id="inp1"><br>
	max <input type="number" min="0" max="999999" value="10" id="inp2"><br>
	чисел <input type="number" min="0" max="100" value="1" id="inp3"><br>
	<button>Кнопка</button>
	<div id="text"></div>
	<script>
		$('button').click(function(){
			var data = {
				'jsonrpc': '2.0',
				'method': 'generateIntegers',
				'params': {
					'apiKey': '00000000-0000-0000-0000-000000000000',
					'n': inp3.value,
					'min': inp1.value,
					'max': inp2.value,
					'replacement': true,
					'base': 10
				},
				'id': 2601
			};
			$.ajax({
				url: 'https://api.random.org/json-rpc/1/invoke',
				type: "POST",
				data: JSON.stringify(data),
				contentType: "application/json; charset=utf-8",
				dataType: "json",
				success: function(result) {
					$('#text').html(result.result.random.data.toString());
				}
			});
		});
	</script>
</body>
</html>
вот трушный рандом, сгенерированный на основе атмосферного шума! преподу привет.  | 
	
		
 
function getRandom(a, b){
  var r = window.crypto.getRandomValues(new Uint32Array(1))/0xffffffff;
  var x = a+(b-a)*r;
  return x
}
Вот вам без Math.random().:) Но если не использовать никаких API, а лишь чистый javascript - то и получить соответственно можно лишь псевдослучайные числа. А псвевдослучайные и случайные - две большие разницы. Алгоритмов же для псевдослучайных чисел навалом, гуглите да копипастите. При всех алгоритмических хитростях принцип и результат един.  | 
	
		
 Всем коллегам привет, препод сказал еще один способ получения СЧ, подстановка чисел и что они там как то меняться должны я чет вообще не догнал может кто сталкивался ? 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Похоже, что это нетотспособ-сенсэй - такие дают задание, а после правильного решения говорят что ты решил его не тем способом и ставят два (хотя в задании ничего не сказано про способ). 
	Вспоминай что было на парах, никак иначе не понять чего он хочет.  | 
	
		
 прикол в том что он не преподавал 
	 | 
	
		
 Цитата: 
	
 в статье есть метод перемешивания скорей всего это оно и есть, и еще одно данная статья использовалась у меня на предмете  | 
	
		
 почитал вашу статью, всю математику можно переменить в JS , но чем генерировать 1 и 0 ? из того что нашел в статье и применимо в целом к JS это подкидывать монетку, вбивать в input значения, например 1-орел, 0-решка, и пропускать через вашу формулу. или другой подобный тому нехитрый метод. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 кто сделает больше?  | 
	
		
 
<head>
  <script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
  <style>
      .c0 {color:blueviolet;}
      .c1 {//color:red;}
      .c0, .c1 { position:relative; font-family:monospace;}
      .bits {color:brown; position:absolute; left:100pt;}
  </style>
</head>
<body>
  <button id="b">ещё</button> (<span id="num">0</span>)
  <div id="r"></div>
  <script>
	var r0 = 285017901, clr = true, cnt = num = 0;
	function random() {
//console.log('r0:', r0.toString(2).padStart(32, '0'));
		var left = ((parseInt('01111111110000000000000000000000', 2) & r0) >>> 23);
		var r1 = (r0 << 10 >>> 1) | left;
//console.log('r1:', r1.toString(2).padStart(32, '0'));
		var right = ((parseInt('111111111', 2)) & r0) << 24 >>> 1;
		var r2 = (r0 >>> 9) | right;
//console.log('r2:', r2.toString(2).padStart(32, '0'));
		r0 = r1 + r2;
		$('#r').prepend($('<div>'+r0+'	 <span class="bits">'+ (r0.toString(2).padStart(32, '0')) +'</span>'+'</div>').addClass('c'+Number(clr)));
		//console.log('r0:', r0.toString(2));
		if(++cnt >= 5) {
			clr = !clr;
		 	cnt = 0;
		}
		$('#num').text(++num);
	}
	$('#b').on('click', random);
  </script>
</body>
 | 
	
		
 Белый шум, 
	:)  | 
	
		
 Цитата: 
	
 jquery-1.9.1.js Failed to load resource: net::ERR_FILE_NOT_FOUND rand.html:34 Uncaught ReferenceError: $ is not defined at rand.html:34 после того как добавил <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> rand.html:25 Uncaught TypeError: r0.toString(...).padStart is not a function at HTMLButtonElement.random (rand.html:25) at HTMLButtonElement.dispatch (jquery-1.9.1.js:3074) at HTMLButtonElement.elemData.handle (jquery-1.9.1.js:2750)  | 
	
		
 Kirill_98, 
	Удали падстарт либо обнови браузер - https://developer.mozilla.org/ru/doc...tring/padStart А работает он в соответствии с алгоритмом по твоей ссылке, только я взял смещение в 9 бит (в js числа 32-битные ЕЯПО, минус 1 бит на знак).  | 
	
		
 Вернее, немного не соответствовал. Сейчас поправил, теперь должен соответствовать вроде. С цифирками можно поиграться, если где-то накосячил (я просто сам принцип проверял, а не домашку за студента делал). 
	 | 
| Часовой пояс GMT +3, время: 02:39. |