Хорошо. Итак, самый простой способ:
Просто сделайте цикл, который вычитает случайное число из целевого числа ..
Сделайте это n-1 раз и проверьте, находится ли оставшийся в диапазоне.
Я напишу код в php, чем выложу здесь
РЕДАКТИРОВАТЬ: здесь это
Примечание: он работает, но он не без ошибок, вам нужно добавить некоторые защитные элементы, чтобы он не превышал $ targetNum
<?php
$targetNum = 100;
$randMin =10;
$randMax = 35;
$generateNum = 5;
$numArray = array();
$numLeft=$targetNum;
for($i = 0; $i<$generateNum-1;$i++){
$numArray[$i] = rand($randMin,$randMax);
$numLeft -= $numArray[$i];
if($i==$generateNum-2){
$numArray[$i+1] = $numLeft;
}
}
for($i = 0; $i<$generateNum;$i++){
echo $numArray[$i];
echo ", ";
}
?>