Деление рандомных чисел без остатка
Добрый день. Ситуация такая:
Пользователь на сайте выбирает разряд чисел(двухзначное, трехзначное) и операцию (умножение, деление). Генерируется два числа рандомно и пользоатель дает ответ в input, дальше проверка ответа верно или нет. С умножением проблем нет. А вот с делением проблемка.
var int1;
var int2;
if (razryad == 21) {
int1 = Math.floor((Math.random() * 99) + 10);
int2 = Math.floor((Math.random() * 9) + 2);
$('#questions tr').remove();
if (int1 % int2 == 0) {
$('#questions').append('<tr><td class="q1">' + int1 + '</td></tr>');
$('#questions').append('<tr><td class="q2">' + int2 + '</td></tr>');
} else {
for(;int1 % int2 != 0;){
int2 = Math.floor((Math.random() * 9) + 2);
if (int1 % int2 == 0) {
$('#questions tr').remove();
$('#questions').append('<tr><td class="q1">' + int1 + '</td></tr>');
$('#questions').append('<tr><td class="q2">' + int2 + '</td></tr>');
break;
}
}
}
if (operation == 'divide') {
if(int1/int2 == answer) {
$('.answ'+cntr).css('visibility', 'visible');
$('.answ'+cntr+' td').append(answer);
} else {
var right = int1/int2;
$('.answ'+cntr).css('visibility', 'visible');
$('.answ'+cntr+' td').append(answer + '/' + right);
}
}
}
Проверка идет на деление без остатка. Первое число не трогаю, а в цикле генерирую второе пока не будет делится без остатка. Вроде работает, но периодически сайт виснет и не закрывается. Консоль молчит. Подскажите как можно реализовать. Я недавно начал изучать jquery. |
Цитата:
Он будет рандомно генерировать значение для "int2" до тех пор, пока "int1" не будет без остатка делиться на "int2". |
Gzz,
может вы не учли, что 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 нельзя разделить без остатка на 2 ... 11 |
Цитата:
|
Gzz,
Цитата:
Попробуйте наоборот - по второму по случайному множителю создавать первое |
Цитата:
Цитата:
|
Dilettante_Pro, а подскажите еще вот что. Только что рандомом мне выдало 104 и 4. Хотя
var int1 = Math.floor((Math.random() * 99) + 10); |
Gzz,
Цитата:
Math.random() выдает диапазон от 0 до 1 Math.random() * 99 выдает диапазон от 0 до 99 И еще + 10 Могло и 109 выдать. |
Gzz,
<script>
function fn() {
var int1 = Math.floor(Math.random() * 81 + 20),
int2 = Math.floor(Math.random() * 9 + 2);
int1 = (int1 / int2 | 0) * int2;
return [int1, int2];
}
for (var i = 0; i < 59; i++) {
var a = fn().join("/");
document.write(a + "=" + eval(a) + "<br>");
};
</script>
|
| Часовой пояс GMT +3, время: 13:21. |