Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Подскажите с решением проблемы!
Суть:
1. Есть массивы №1 и №2 значений [0.2 0.5 0.6 0.8 0.7 .......] и [0.3 0.2 0.1 0.3 0.7 .......]
2. Необходимо складывать значения элементов массива№1 (0.2 +0.5.....)
3. При достижении суммы элементов массива№1 S>= 1 необходимо перейти к сложению элементов массива №2 с такими иже условиями (достижение суммы >=1).
4. При достижении суммы элементов массива№2 S>= 1 увеличить значение m++ и вернуться к продолжению сложения оставшихся элементов массива №1
Помогите плз, голову уже сломал
Строитель
Отправлено: 21 Января, 2017 - 20:38:23
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Спасибо! Вот только получается второй цикл всегда просчитывает суммы до единицы, прибавляет m++ пока первый цикл по суммам не закончится! Считает неправильно. ((((
Строитель
Отправлено: 21 Января, 2017 - 22:12:58
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Stibaslo пишет:
прибавляет m++
А переменная $m должна увеличиваться только один раз за всё время выполнения скрипта?
Stibaslo пишет:
Вот только получается второй цикл всегда просчитывает суммы до единицы
На счёт второго цикла - вы изначально вроде бы так и описали алгоритм (пункт №4)
Stibaslo
Отправлено: 21 Января, 2017 - 22:23:42
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Нет, нет
Начинает считать первый, доходит до единицы -> переходит ко второму. Во втором суммирует до единицы -> прибавляет m++ -> возвращается в первый и проводит аналогичные операции с оставшимися элементами массива пока не кончится первый или второй массив.
Заморочка такая
Строитель
Отправлено: 21 Января, 2017 - 22:27:34
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Stibaslo, я подумаю, но не буду обещать что смогу решить.
Stibaslo
Отправлено: 21 Января, 2017 - 22:30:47
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Спасибо большое, если смогу отблагадарю
Строитель
Отправлено: 22 Января, 2017 - 12:38:29
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
С предыдущим вариантом нельзя добавить реализацию такого варианта:
Думаю можно. Попробую, и позже отпишусь. (Добавление)
Stibaslo пишет:
При повторном исполнении 2-го варианта выскакивает ошибка - Cannot redeclare foo() (previously declared in D:\......., как поправить?
Вы наверное описание функции прописали в тело цикла? (Добавление) Stibaslo, и ещё для ясности напишите мне, какое должно быть значение в переменной $m при таких значениях массивов:
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
массивы - это вероятности наступления событий А и Б.
число $m - количество наступлений некоего события В, которое произойдет если произойдет А и Б.
(т.е. массив№1 - вероятности события А, при его наступлении (суммирование в массиве№1 больше единицы) - переход в массив№2 и рассчитывается вероятность наступления события Б (массив№2).
соответственно при переборе всего массива№1 или всего массива№2 - событие в этот "день" не наступит.
Сами массивы просто пример, в реальности значений гораздо больше и массивов будет шесть как минимум. Т.е. матрешка из циклов.
Строитель
Отправлено: 22 Января, 2017 - 17:33:10
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Вероятно кто-то из более опытных программистов сможет помочь? )
Stibaslo
Отправлено: 22 Января, 2017 - 17:48:20
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Вряд ли.
Мне бы в первом варианте если организовать проверку количества "обработанных" элементов массивов и выход при их окончании - дальше сам бы докрутил.
Не могу допереть просто как проверить, кончились элементы в массиве или нет
Строитель
Отправлено: 22 Января, 2017 - 17:53:37
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Stibaslo пишет:
Не могу допереть просто как проверить, кончились элементы в массиве или нет
Ну, я во втором варианте (с двумя рекурсивными функциями) реализовал проверку массивов на наличие элементов. Но тот вариант вам тоже не подошёл?
Stibaslo
Отправлено: 22 Января, 2017 - 17:56:31
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Во втором варианте сложнее (для меня) шесть массивов вложить. Буду пробовать!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.