| 
 | 
	
	
	
	
	
		
	
		
		
		
			
			 
			
				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,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 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,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 lolpops, 
 ок тогда наверно от 0, 100 ? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2015, 21:24
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 lolpops, 
 проверять надо перед генерацией -- есть ли из чего генерировать 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.10.2015, 22:06
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		    
шифровка алексу
 
<!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,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		   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
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Всем спасибо, подстроил свой вариант под себя (так сказать которые реально отражает положение дел в использовании браузеров) 
Рони спасибо за отклик! 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |