|
10.10.2015, 20:38
|
Интересующийся
|
|
Регистрация: 02.10.2015
Сообщений: 14
|
|
генерация нескольких чисел в сумме равных = 100
Здравствуйте! Есть задача, случайно генерировать 7 чисел в сумме равных = 100, числа не могут быть < 0 и быть отрицательными!
http://jsbin.com/lifowi/edit?html,js,output Вот с чем играюсь, но появляются и отрицательные числа, подскажите где ошибка!
|
|
10.10.2015, 21:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
lolpops,
первая генерация не 1, 100 а минумум 1,94
|
|
10.10.2015, 21:15
|
Интересующийся
|
|
Регистрация: 02.10.2015
Сообщений: 14
|
|
откуда взялось число 94?
теперь сумма не равняется 100 и отрицательные числа остались все равно..
|
|
10.10.2015, 21:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
lolpops,
ок тогда наверно от 0, 100 ?
|
|
10.10.2015, 21:24
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
lolpops,
проверять надо перед генерацией -- есть ли из чего генерировать
|
|
10.10.2015, 22:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
шифровка алексу
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<div class="search2">
<input type="number" min="0" max="100" name="brouser[0]" id="brouser" value="0"> % <label for="brouser-1">Internet Explorer</label><br />
<input type="number" min="0" max="100" name="brouser[1]" id="brouser" value="30"> % <label for="brouser-2">FireFox</label><br />
<input type="number" min="0" max="100" name="brouser[2]" id="brouser" value="20"> % <label for="brouser-3">Google Chrome</label><br />
<input type="number" min="0" max="100" name="brouser[3]" id="brouser" value="30"> % <label for="brouser-4">Opera</label><br />
<input type="number" min="0" max="100" name="brouser[4]" id="brouser" value="5"> % <label for="brouser-5">Safari</label><br />
<input type="number" min="0" max="100" name="brouser[5]" id="brouser" value="3"> % <label for="brouser-6">Mobile</label><br />
<input type="number" min="0" max="100" name="brouser[6]" id="brouser" value="7"> % <label for="brouser-7">Прочие браузеры</label><br />
<span class="warning2">Сумма должна быть равной 100!</span>
</div>
<input type="submit" onclick="rnd(100)" value="заполнить ✎">
<script>
function rnd(h) {
var e = document.querySelectorAll(".search2 input"),
g = function(f, c) {
for (var d = [], a = 0; a < f - 1; a++) {
var b;
c ? (b = c, b = Math.floor(Math.random() * (b + 1))) : b = 0;
c -= b;
d[a] = b
}
d.push(c);
for (a = d.length - 1; 0 < a; a--) {
b = Math.floor(Math.random() * (a + 1));
var e = d[b];
d[b] = d[a];
d[a] = e
}
return d
}(e.length, h),
f = 0;
[].forEach.call(e, function(e, c) {
e.value = g[c];
f += g[c]
});
alert(f)
};</script>
</body>
</html>
Последний раз редактировалось рони, 10.10.2015 в 22:14.
|
|
10.10.2015, 22:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
33 с темже кодом
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<div class="search2">
<input type="number" min="0" max="100" name="brouser[0]" id="brouser" value="2"> % <label for="brouser-1">Internet Explorer</label><br />
<input type="number" min="0" max="100" name="brouser[1]" id="brouser" value="30"> % <label for="brouser-2">FireFox</label><br />
<input type="number" min="0" max="100" name="brouser[2]" id="brouser" value="1"> % <label for="brouser-3">Google Chrome</label><br />
<span class="warning2">Сумма должна быть равной 33!</span>
</div>
<input type="submit" onclick="rnd(33)" value="заполнить ✎">
<script>
function rnd(h) {
var e = document.querySelectorAll(".search2 input"),
g = function(f, c) {
for (var d = [], a = 0; a < f - 1; a++) {
var b;
c ? (b = c, b = Math.floor(Math.random() * (b + 1))) : b = 0;
c -= b;
d[a] = b
}
d.push(c);
for (a = d.length - 1; 0 < a; a--) {
b = Math.floor(Math.random() * (a + 1));
var e = d[b];
d[b] = d[a];
d[a] = e
}
return d
}(e.length, h),
f = 0;
[].forEach.call(e, function(e, c) {
e.value = g[c];
f += g[c]
});
alert(f)
};</script>
</body>
</html>
Последний раз редактировалось рони, 10.10.2015 в 22:14.
|
|
10.10.2015, 22:13
|
Интересующийся
|
|
Регистрация: 02.10.2015
Сообщений: 14
|
|
Всем спасибо, подстроил свой вариант под себя (так сказать которые реально отражает положение дел в использовании браузеров)
Рони спасибо за отклик!
|
|
|
|