Нужна реализация функции на php. суть такая, есть массив напр: $ar['310']=0.5; $ar['311']=0.375; $ar['312']=0.1; в массиве может быть как больше так и меньше элементов, необходимо высчитать все различные комбинации сумм элементов, чтобы в результате получилось число 1.5. в данном примере должно получится 0.5+0.5+0.5=1.5 0.5+0.5+0.1+0.1+0.1+0.1+0.1=1.5 0.5+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1=1.5 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0. 1+0.1+0.1=1.5 0.375+0.375+0.375+0.375=1.5 нужно написать функцию, на входе в которую будет передаваться массив значений и число 1.5 (может быть любое другое), а на выходе массив элементов с ключами, которые мы передали вначале. на выходе в общем должно получиться что-то типо такого $arr[0]="310,310,310" $arr[0]="310,310,312,312,312,312,312" $arr[0]="310,312,312,312,312,312,312,312,312, 312 ,312" $arr[0]="312,312,312,312,312,312,312,312,312, 312 ,312,312,312,312,312" $arr[0]="311,311,311,311"
216
359
Ответы на вопрос:
< ? php $result = array(); $arr = array ('310'=> 0.5, '311'=> 0.375, '312'=> 0.1); function rec($str) { $sum = 0; foreach ($str as $i) #вычисляем уже имеющуюся сумму $sum += $globals["arr"][$i]; if ($sum == 1.5) $globals["result"][] = $str; if ($sum > 1.5) return; foreach ($globals["arr"] as $key=> $value) { $hello = $str; #не знаю, насколько это легально, но заработало только $hello[] = $key; rec($hello); } } if (min(array_values($arr)) < = 0) die(); #бесконечнная рекурсия должна быть предотвращена rec(; foreach ($result as & $value) #переделываем массив массивов в массив строк $value = implode(', ', $value); unset($value); print_r($result); ? >
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
viktoria220619.04.2022 04:25
-
marusi22006.10.2020 17:37
-
olechkapushkareva20.04.2020 12:28
-
ЭллинаРодионова1117.10.2022 20:37
-
ПРИВЕТ174rus24.06.2021 11:52
-
брагим10.03.2021 05:18
-
pro100leramakh22.01.2021 22:37
-
х0мя03.10.2021 11:38
-
Yana2005657891002.10.2020 02:00
-
volkow2711ovuu5e10.10.2020 01:38
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.