Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2015, 20:38
Интересующийся
Отправить личное сообщение для lolpops Посмотреть профиль Найти все сообщения от lolpops
 
Регистрация: 02.10.2015
Сообщений: 14

генерация нескольких чисел в сумме равных = 100
Здравствуйте! Есть задача, случайно генерировать 7 чисел в сумме равных = 100, числа не могут быть < 0 и быть отрицательными!
http://jsbin.com/lifowi/edit?html,js,output Вот с чем играюсь, но появляются и отрицательные числа, подскажите где ошибка!
Ответить с цитированием
  #2 (permalink)  
Старый 10.10.2015, 21:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

lolpops,
первая генерация не 1, 100 а минумум 1,94
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2015, 21:15
Интересующийся
Отправить личное сообщение для lolpops Посмотреть профиль Найти все сообщения от lolpops
 
Регистрация: 02.10.2015
Сообщений: 14

откуда взялось число 94?
теперь сумма не равняется 100 и отрицательные числа остались все равно..
Ответить с цитированием
  #4 (permalink)  
Старый 10.10.2015, 21:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

lolpops,
ок тогда наверно от 0, 100 ?
Ответить с цитированием
  #5 (permalink)  
Старый 10.10.2015, 21:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

lolpops,
проверять надо перед генерацией -- есть ли из чего генерировать
Ответить с цитированием
  #6 (permalink)  
Старый 10.10.2015, 22:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064


шифровка алексу
<!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.
Ответить с цитированием
  #7 (permalink)  
Старый 10.10.2015, 22:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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.
Ответить с цитированием
  #8 (permalink)  
Старый 10.10.2015, 22:13
Интересующийся
Отправить личное сообщение для lolpops Посмотреть профиль Найти все сообщения от lolpops
 
Регистрация: 02.10.2015
Сообщений: 14

Всем спасибо, подстроил свой вариант под себя (так сказать которые реально отражает положение дел в использовании браузеров)
Рони спасибо за отклик!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация случайных уникальных чисел karakym Общие вопросы Javascript 0 02.10.2015 14:29
Помогите с кодом. Поиск и вывод нужного значения Sav2907 Элементы интерфейса 30 17.09.2015 16:54
генерация чисел и проверка на повтор Javascript jesuspunk Общие вопросы Javascript 7 25.03.2008 15:32