![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 26.10.2013
Сообщений: 5
|
![]()
Здравствуйте все!
Возникла вот проблема, к решению которой не знаю как подступиться. Может быть, кто сталкивался, подскажет, что и как. Так вот, представьте себе, что есть некая программа, в начале выполнения которой пользователь может указать желаемые вероятности исполнения трех различных ветвей внутри содержащегося в теле программы цикла. Например, что-то типа этого: объявление массива М[0..99] каких-то констант; объявление какой-то процедуры № 1; объявление какой-то процедуры № 2; объявление какой-то процедуры № 3; ввод параметра Р1 (матожидание для ветви № 1); ввод параметра Р2 (то же для ветви № 2); ввод параметра Р3 (то же для № 3); for і:=0 то 99 do begin if <какое-то условие> then вызов процедуры № 1 (М[i]) //первая ветвь еlse if <еще какое-то условие> then вызов процедуры № 2 (М[i]) //вторая ветвь еlse вызов процедуры № 3 (М[i]); //третья ветвь end; Как видим, отдельные константы из массива М обрабатываются не только по-разному в зависимости от условий, но еще и с вероятностью, не обязательно равной 1 (то есть некоторые могут и вообще остаться нетронутыми, если пользователь установит значение параметра , например, Р2, равным нулю, а другие могут иногда подвергнуться какой-то обработке, а могут и не подвергнуться - случай определяет). Надеюсь, что понятно объяснил задачу. Заранее огромное спасибо тому или тем, кто хотя бы направление укажет, КАК это можно реализовать. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
Не уверен, но можно попробовать:
Код:
![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 26.10.2013 в 04:29. |
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 26.10.2013
Сообщений: 5
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 26.10.2013
Сообщений: 5
|
![]()
Попробую чуток конкретизировать. Предположим, что ВСЕ константы, содержащиеся в массиве М, вполне соответствуют условию, при котором происходит выбор вызова ВТОРОЙ процедуры. Но вызов, не взирая на это, происходит (должен происходить, если точнее) НЕ ВСЕГДА, а согласно матожиданию, равному параметру Р2. Вот, может, так будет более ясным описание проблемы.))
|
![]() |
![]() |
![]() |
#5 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Итак, Вы перебираете все константы
Код:
Код:
Код:
Примеры приведены на С++, но, думаю, алгоритм из этого вывести можно.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#6 | |
Новичок
Джуниор
Регистрация: 26.10.2013
Сообщений: 5
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
1) random() вернет вещественное число 0<=a<1
2) Приведенный вариант вызывает одну из трех процедур с заданными вероятностями (обязательно будет вызвана одна), но я не учел, что Вы хотите вызвать каждую процедуру с какой-либо вероятностью. Тогда, можно: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 26.10.2013
Сообщений: 5
|
![]() Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ветвление | Rfn.if | Помощь студентам | 4 | 13.10.2010 14:26 |
Ветвление | Woxx | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 07.09.2010 17:26 |
ветвление | beygul | Помощь студентам | 11 | 25.08.2010 13:20 |
Ветвление | cerega87 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 07.06.2010 22:43 |
ветвление | felmor | Помощь студентам | 1 | 28.02.2009 13:42 |