|
|
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
Нужно написать программу которая определит 111 победителей литореи. Условья таковы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 15:19 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
для начала теорию вероятностей почитайте, а дальше через ифы и елсе можно наваять :) COBECTb™ защищена законом ؟؟؟ © ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 19:07 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
БомжПосоветуйте с чего начать, Ну, лично я начал бы с Код: plaintext А вообще - ее надо просто сесть и сделать, с начала и до конца. Абсолютно ничего сложного. Если что-то вызывает вопрос - рассказывайте, как собираетесь делать и что на этом пути не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 20:21 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
БомжЕсли участник выиграл то он не может выиграть повторно.участник (Иван Иванович) или билет (которых у И.И. двенадцать штук) не может выиграть повторно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 10:41 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat БомжЕсли участник выиграл то он не может выиграть повторно.участник (Иван Иванович) или билет (которых у И.И. двенадцать штук) не может выиграть повторно? И.И. 2 раза повести НЕ может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 11:11 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
softwarer А вообще - ее надо просто сесть и сделать, с начала и до конца. Абсолютно ничего сложного. Если что-то вызывает вопрос - рассказывайте, как собираетесь делать и что на этом пути не получается. Излагаю первый алгоритм который появился в моих скромных мозгах. 1.Создать набор данных (таблица или массив ...) Набор[1] = "Иван Иванович" ..... Набор[12] = "Иван Иванович" ..... ... Набор[X] = "Вася Пупкин" ..... Набор[X+Y] = "Вася Пупкин" ..... Набор[N] = "Вася Пупкин" 2. Привести набор в несортированный вид. Так чтобы 1,2,3 ... билет не принадлежали И.И. или В.П. . При каждом розыгрыше(До 111) 3. Сгенерировать случайное число. RandomVal in [1..N]. 4. Встать на позицию RandomVal 5. Начать прокрутку вперед или назад при СТАРТ. 6. Остановится когда СТОП. 7. Удалить все записи этого участника из набора. При таком алгоритме меня пугает размер набора . Примерно 10 миллионов билетов. Может кто поделится опытом и возможно скажет оптимальный вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 11:56 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
Бомж softwarer А вообще - ее надо просто сесть и сделать, с начала и до конца. Абсолютно ничего сложного. Если что-то вызывает вопрос - рассказывайте, как собираетесь делать и что на этом пути не получается. Излагаю первый алгоритм который появился в моих скромных мозгах. 1.Создать набор данных (таблица или массив ...) Набор[1] = "Иван Иванович" ..... Набор[12] = "Иван Иванович" ..... ... Набор[X] = "Вася Пупкин" ..... Набор[X+Y] = "Вася Пупкин" ..... Набор[N] = "Вася Пупкин" 2. Привести набор в несортированный вид. Так чтобы 1,2,3 ... билет не принадлежали И.И. или В.П. . При каждом розыгрыше(До 111) 3. Сгенерировать случайное число. RandomVal in [1..N]. 4. Встать на позицию RandomVal 5. Начать прокрутку вперед или назад при СТАРТ. 6. Остановится когда СТОП. 7. Удалить все записи этого участника из набора. При таком алгоритме меня пугает размер набора . Примерно 10 миллионов билетов. Может кто поделится опытом и возможно скажет оптимальный вариант? 1. Объект - таблица 2. Строка таблицы - 2 поля: номер билета, идентификатор владельца 3. Определение выигрыша 3.1 Сгенерировать случайное число. RandomVal in [1..N]. - Начальная позиция 3.2 Сгенерировать случайное число. RandomUpDown in [0, 1]. - Направление движения (вверх или вниз) 3.3 Сгенерировать случайное число. RandomDelta (тут уж как хочется) как количество позиций от начальной по направлению вверх или вниз. 3.4 Ура! мы имеем номер выигравшего билета. Ну а как удалить из таблицы данные по билетам с идентификатором владельца выигравшего? Ну тут уж уже сами. З.Ы. Описание алгоритма намеренно оставлено с пробелами, чтобы дать пищу для размышлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 14:12 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
Бомж2. Привести набор в несортированный вид. Зачем? Ответь на вопрос: кому станет хуже, если этого не делать? Бомж4. Встать на позицию RandomVal 5. Начать прокрутку вперед или назад при СТАРТ. 6. Остановится когда СТОП. Опять же зачем? Планируешь какое-то визуальное отображение? Крутящийся барабан на 10 миллионов ячеек? БомжМожет кто поделится опытом и возможно скажет оптимальный вариант? В общем, давай смотреть. Во-первых, ты собираешься плодить записи для одной-единственной задачи: для того, чтобы, получив число N, легко (по индексу в массиве) найти человека. Представь себе, что вместо этого Иванова ты характеризуешь диапазоном - скажем 0..9, Петрова - следующим диапазоном, скажем, 10..82 итп. Внимание, вопрос: как при этом искать запись, соответствующую номеру N? Далее, удалять записи по человеку - плохая и лишняя операция. При солидном количестве участников куда лучше ставить признак "человек уже выиграл", и при попадании на такого - просто запускать выбор еще раз. Правда, этот подход становится неудачным, когда участников становится почти столько же, сколько призов, в частности, нужно будет предусмотреть защиту от зацикливания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 14:27 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
Бомж(Пример если Иван Иванович вложил 1299 руб. то у него 12 билетов). Сначала разыгрывается 100 мелких призов а потом 10 средних и в конце 1 супер приз. Если участник выиграл то он не может выиграть повторно. И.И. 2 раза повести НЕ может.допустим разыгрывается 1 мелкий приз, 1 - средний и 1 - крупный. принимают участие Ваня с 90 билетами, Петя с 9 билетами и Миша с 1 билетом. первый мелкий приз с верятностью 90% выиграет Ваня. и второй средний приз с верятностью 90% выиграет Петя. первый мелкий приз с верятностью 9% выиграет Петя. и второй средний приз с верятностью ~98.9% выиграет Ваня. то есть с вероятностью ~89.9% крупный приз достанется Мише. ура! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 10:21 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatдопустим разыгрывается 1 мелкий приз, 1 - средний и 1 - крупный. принимают участие Ваня с 90 билетами, Петя с 9 билетами и Миша с 1 билетом. первый мелкий приз с верятностью 90% выиграет Ваня. и второй средний приз с верятностью 90% выиграет Петя. первый мелкий приз с верятностью 9% выиграет Петя. и второй средний приз с верятностью ~98.9% выиграет Ваня. то есть с вероятностью ~89.9% крупный приз достанется Мише. ура! :-) А в чём, по Вашему, смысл лотереи, если не в перераспределении капиталов? :) Если крупные призы будут доставаться крупным вкладчикам, то проще вообще ничего не устраивать :) У кого было много средств - столько же и останется. ------------- По сабжу. А зачем вам вообще диапазоны? Они у вас исключительно в голове присутствуют. Единственная характеристика каждого участника - это число билетов. Вот её и храните. Вы хотите сделать рандом по билетам и участникам (условно говоря, перемешать билеты), и затем еще рандомно выбрать из них выигрыш. Зачем 2 рандома? Если вы выстроите всех участников по порядку (т.е. забыть про диапазоны и номера билетов) а затем рандомно выберите из этой цепочки кого-нибудь - случайности будет нисколько не меньше. Другое дело, что про общую механику такой лотереи вам очень доходчиво LeXa NalBat сказал. ЗЫ: Если из участников сделать связанную цепочку с единственной хар-кой "число билетов" - и сравнений будет куда меньше, и победителя найти легче, да и удалять ненужных из связанной цепочки легко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 12:16 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
softwarer Бомж2. Привести набор в несортированный вид. Зачем? Ответь на вопрос: кому станет хуже, если этого не делать? Бомж4. Встать на позицию RandomVal 5. Начать прокрутку вперед или назад при СТАРТ. 6. Остановится когда СТОП. Опять же зачем? Планируешь какое-то визуальное отображение? Крутящийся барабан на 10 миллионов ячеек? Дело в том что задача требует чтобы был “БАРАБАН”. А несортированный вид нужен для того чтобы имя В.П. не торчала на "Барабане" несколько секунд. Конечно же без "Барабана" все намного легче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 15:48 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
БомжИ.И. 2 раза повести НЕ может. Крутая у вас лотерея! Что-то я не вижу трудностей... Например данные такие Таблица№ по порядкуФИО Т.е. человек с K-билетами встречается R-раз... Всего записей N, как и проданых билетов... 1. Генерим число с 1 по N 2. Проверяем есть ли такой номер в таблице (если нет - переходим к п 1.) 3. Берем ФИО счастливчика 4. Удаляем все записи с таким ФИО 5. Если розыгрыш не окончен - переходим к п 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 15:48 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
krvsaТ.е. человек с K-билетами встречается R-раз... В буквах что-то запутался Читать как: Т.е. человек с K-билетами встречается К-раз ... А че там про барабан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 15:51 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
krvsa[quot krvsa] А че там про барабан? Барабан это скроллинг по этому набору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 15:53 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
Бомж , тогда опиши словами чего хочеш получить на экране... ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 16:09 |
|
||
|
Лоторея
|
|||
|---|---|---|---|
|
#18+
БомжДело в том что задача требует чтобы был “БАРАБАН”. А несортированный вид нужен для того чтобы имя В.П. не торчала на "Барабане" несколько секунд. Конечно же без "Барабана" все намного легче. Пофиг. Не обязательно каждую глупость понимать буквально. Если просто будешь пять раз в секунду выплевывать на экран очередную случайную фамилию - будет все то же самое, но без этих идиотизмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2008, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35187159&tid=1345439]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
197ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 574ms |

| 0 / 0 |
