16.02.2018, 13:28
|
Интересующийся
|
|
Регистрация: 15.02.2018
Сообщений: 10
|
|
Сообщение от рони
|
недостаточно информации
|
http://stratum.ac.ru/education/textb...lection22.html
в статье есть метод перемешивания скорей всего это оно и есть, и еще одно данная статья использовалась у меня на предмете
|
|
16.02.2018, 16:25
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
почитал вашу статью, всю математику можно переменить в JS , но чем генерировать 1 и 0 ? из того что нашел в статье и применимо в целом к JS это подкидывать монетку, вбивать в input значения, например 1-орел, 0-решка, и пропускать через вашу формулу. или другой подобный тому нехитрый метод.
|
|
16.02.2018, 17:40
|
Интересующийся
|
|
Регистрация: 15.02.2018
Сообщений: 10
|
|
Сообщение от j0hnik
|
почитал вашу статью, всю математику можно переменить в JS , но чем генерировать 1 и 0 ? из того что нашел в статье и применимо в целом к JS это подкидывать монетку, вбивать в input значения, например 1-орел, 0-решка, и пропускать через вашу формулу. или другой подобный тому нехитрый метод.
|
а как это реализовать ?
|
|
16.02.2018, 17:49
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Сообщение от j0hnik
|
почитал вашу статью, всю математику можно переменить в JS , но чем генерировать 1 и 0 ?
|
Читать надо только про метод перемешивания. Начальное значение, видимо, нужно задавать отдельно.
Последний раз редактировалось Белый шум, 16.02.2018 в 18:40.
|
|
16.02.2018, 17:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Цитата:
|
про метод перемешивания
|
не смог создать цепочку длиннее 4 , примерно так 50,84,102,50,84,102,50,84,102,50,84,102,50,84,102, 50,84,102,50,84,102,50,84,102,50,84,102,
кто сделает больше?
|
|
16.02.2018, 20:14
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
<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>
Последний раз редактировалось Белый шум, 16.02.2018 в 22:17.
|
|
16.02.2018, 21:09
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Белый шум,
|
|
16.02.2018, 21:27
|
Интересующийся
|
|
Регистрация: 15.02.2018
Сообщений: 10
|
|
Сообщение от Белый шум
|
<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() {
var left = ((parseInt('11111111100000000000000000000000', 2) & r0) >> 23);
var r1 = (r0 << 10 >>> 1) | left;
var right = (parseInt('111111111', 2)) & r0;
var r2 = (r0 >>> 9) | right;
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, 16.02.2018 в 21:43.
|
|
16.02.2018, 22:00
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Kirill_98,
Удали падстарт либо обнови браузер -
https://developer.mozilla.org/ru/doc...tring/padStart
А работает он в соответствии с алгоритмом по твоей ссылке, только я взял смещение в 9 бит (в js числа 32-битные ЕЯПО, минус 1 бит на знак).
|
|
16.02.2018, 22:20
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Вернее, немного не соответствовал. Сейчас поправил, теперь должен соответствовать вроде. С цифирками можно поиграться, если где-то накосячил (я просто сам принцип проверял, а не домашку за студента делал).
|
|
|
|