 
			
				30.07.2012, 02:40
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Maxmaxmахimus, 
 Та вообще зависимость факториальная - но имхо нун рыть в сторону рядов - что-то мне напоминает 
Ко всему прочему - мон найти вариации делителей всех чисел до 100, этого должно хватать для боль мень равномерной статистики и оценки при непопадании на  простые числа(ну и их комбинации 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Deff, 30.07.2012 в 02:45.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 12:04
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Прошу прошения, если данный варинат уже был, распределяю добавки к минимальному значению. 
Последнее число, в принципе, и не может быть случайным по самой формулировке задачи (оно закономерно является разницей расчленяемого числа и суммы предыдущих полученных чисел).
 
<script>
window.onload = function () {
	function f(num, part, min) {
		if (num / part < min) {
			alert('не реально');
			return;
		}
		var rest = num - min * part; 
		var mas = [];
		var elem = 0;
		for (var i = 1; i < part; i++) {
			elem = Math.round(rest * Math.random());
			mas.push(min + elem); 
			rest -= elem; 
		}
		mas.push(min + rest);
		alert(mas);
	}
	
	f(130, 3, 20)
}
</script>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 12:14
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Есть мысля рекурсивно дробить число на две рандомные половики пока не получится нужное количество частей, но тестить сейчас лень.) 
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 12:36
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		bes, 
 Вроде родил идентичное Вашему:
 
<style type="text/css">input{margin:4px;}</style>
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<input id=Number type="text" value="100" > Число <br />
<input id=Nparts  type="text" value="4" > Кол-во разбиваемых частей<br />
<input id="Min-a"  type="text" value="1" >   Минимальное значение каждой части<br />
<input id="Out-2"  type="text" size="35" value=""> Выходной массив разбивки  <br />
<input type="button" value="Разбить" onClick="TstNum()">
<script type="text/javascript">
function TstNum(){
 var a = parseInt($('#Number').val());
 var b = parseInt($('#Min-a').val());
 var N = parseInt($('#Nparts').val()); //alert(a+'||'+b+'||'+N)
 var Arr = [];
 var Summ = 0;
    for(var i=0; i<N; i++){
       Arr[i] = Math.random();
       Summ+=Arr[i];
    }
 var DELTA_FromParts = (a - b*N);
 var Ost = a;
    for(var i=0; i<N-1; i++){
       Arr[i] = b + parseInt((DELTA_FromParts*Arr[i])/Summ)
       Ost-= Arr[i];
    }  Arr[N-1] = Ost;
   //alert(Arr);
   b=Arr.join();c=eval(Arr.join('+'));
  $("#Out-2").val(b+'='+c);
}
</script>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Deff, 30.07.2012 в 18:18.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 17:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
<div id="div">
	<input value="130"> Число <br>
	<input value="3"> Количество частей <br>
	<input value="20"> Минимальное значение части<br>
	<input type="button" value="Разбить">
</div>
<script>
window.onload = function () {
	function f(num, part, min) {
		if (num / part < min) {
			alert('не реально');
			return;
		}
		var rest = num - min * part; 
		var mas = [];
		var elem = 0;
		for (var i = 1; i < part; i++) {
			elem = Math.round(rest * Math.random());
			mas.push(min + elem); 
			rest -= elem; 
		}
		mas.push(min + rest);
		alert(mas);
	}
	
	function check (elem) {
		if (isNaN(elem) == false && elem.value != '') {
			return true;
		} else {
			return false;
		}
	}
	
	var div = document.getElementById('div');
	
	div.children[6].onclick = function () {
		 var num = parseInt(div.children[0].value); 
		 var part = parseInt(div.children[2].value);
		 var min = parseInt(div.children[4].value);
		 if (check(num) && check(part) && check(min)) {
			f (num, part, min);
		} else {
			alert('в полях есть не число')
		}
	}
	
}
</script>
PS: добавил поля для ввода  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 17:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Увидел разницу 
 
bes, берёт рандом от остатка за вычетом предыдущего рандома, - что не айс - поскольку увеличивает вероятность больших размеров для первых элементов деления и уменьшает для конечных. 
я же беру рандом для всех частей, с последующим нормированием каждого на общую сумму рандомов - что обеспечивает независимость каждой части 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 18:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Deff, у меня распределение настолько случайно, насколько случайна сама Math.random()     (+ только в том, что это делается за part (количество частей) шагов без лишних проверок)
 
	
 
	| 
		
			Сообщение от Deff
			
		
	 | 
 
	| 
		bes, берёт рандом от остатка за вычетом предыдущего рандома, - что не айс - поскольку увеличивает вероятность больших размеров для первых элементов деления и уменьшает для конечных.
	 | 
 
	
 
 Если потестить, то с этим всё вроде нормально  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось bes, 30.07.2012 в 18:10.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 18:20
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 без статуса 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.05.2012 
					
					
					
						Сообщений: 8,219
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от bes
			
		
	 | 
 
	| 
		Если потестить, то с этим всё вроде нормально
	 | 
 
	
 
 bes, 
 Оки - вызови функцию 100 раз и запиши среднее арифметическое   
для 1-й;2-й; и 3-й доли - они будут убывать!
 
Параметры разделения и начальных условий - не меняем  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 18:31
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 22.03.2012 
					
					
					
						Сообщений: 3,744
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Deff, 100 раз не тестил (не до этого    ), если не нормально, ок, верю, оставляю только первую фразу
 
	
 
	| 
		
			Сообщение от bes
			
		
	 | 
 
	| 
		у меня распределение настолько случайно, насколько случайна сама Math.random()
	 | 
 
	
 
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.07.2012, 18:45
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 ✔ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2012 
					
					
					
						Сообщений: 513
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Deff
			 
		
	 | 
 
	
		bes, 
 Оки - вызови функцию 100 раз и запиши среднее арифметическое для 1-й;2-й; и 3-й доли - они будут убывать! 
 
Параметры разделения и начальных условий - не меняем
	 | 
 
	
 
 Да, чаще всего самая большая - это первая доля! Намного чаще остальных!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |