|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Syrexizoldov-roskiniКто-бы еще сказал как посчитать максимально кол-во комбинаций наборов из 6 чисел от 1 до 30, порядок числа в наборе не имеет значения, т.е. 1 5 26 3 16 4 равно 5 3 16 26 4 1. Может проще сгенерить все возможные варианты, а после этого случайным образом "выдергивать" их? PS - по крайней мере так генерировали в Русском Лото. Генерилось у них минут 10-15А смысл? Выше приведён алгоритм, который получает комбинацию по числу, где число - от 0 до (количество вариантов-1). То есть, "все возможные варианты" - просто множество чисел. Вопрос в том, как нормально "выдернуть" без повторов, с равномерным распределением. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:01 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
beg-in-erАлексей КВроде как при компиляции производится инлайнинг методов. не знаю что там именно происходит, но я вижу что происходит замедление исполнения команд.Не замечал. beg-in-erКак раз в рекурсии использовать return самое оно. цель как раз отказаться от рекурсии по причине ускорения ( до 10 раз , а то и более)Опять же нужен пример. Верить наслово никому нельзя. :-) beg-in-erАлексей К Неправильное и необдуманное использование goto.... так это чьи проблемы , оператора goto , или хомосапиенса его использующего???Вроде как все "обдуманные" стратегии использования goto завёрнуты в конструкции структурного программирования: if, while, throw, return и т. п. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:18 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
beg-in-erАлексей КВроде как при компиляции производится инлайнинг методов. не знаю что там именно происходит, но я вижу что происходит замедление исполнения команд. Элементарно... При вызове процедуры/функции добавляется, самое меньшее, передача параметров и возврат результатов - и это не считая выделения памяти под локальные переменные и их инициализацию. Переход по метке всего этого не требует. Соответственно, и работает быстрее... beg-in-erКак раз в рекурсии использовать return самое оно. цель как раз отказаться от рекурсии по причине ускорения ( до 10 раз , а то и более) Конкретная цель -> конкретное решение -> конкретный результат... И если решениеи использовать (или не использовать) какое-то средства положительно сказывается на этой цепочке - решение правильное... И пусть весь мир подождет... beg-in-erАлексей К Неправильное и необдуманное использование goto.... так это чьи проблемы , оператора goto , или хомосапиенса его использующего???+100500 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:22 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Алексей Кbeg-in-erтак это чьи проблемы , оператора goto , или хомосапиенса его использующего???Вроде как все "обдуманные" стратегии использования goto завёрнуты в конструкции структурного программирования: if, while, throw, return и т. п. Десяток-другой вложенных друг в друга "завернутых" if/else со сложными условиями в каждом операторе - вынос мозга гарантирован... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:36 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
beg-in-erАлексей КВроде как при компиляции производится инлайнинг методов. не знаю что там именно происходит, но я вижу что происходит замедление исполнения команд. Тут и тут . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:37 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
sphinx_mvАлексей Кпропущено... Вроде как все "обдуманные" стратегии использования goto завёрнуты в конструкции структурного программирования: if, while, throw, return и т. п. Десяток-другой вложенных друг в друга "завернутых" if/else со сложными условиями в каждом операторе - вынос мозга гарантирован...Ещё раз - не нужно пихать всё в один метод. Желание сделать goto - одна из причин для выделения метода(ов). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 13:44 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Алексей Кsphinx_mvпропущено... Десяток-другой вложенных друг в друга "завернутых" if/else со сложными условиями в каждом операторе - вынос мозга гарантирован...Ещё раз - не нужно пихать всё в один метод. Желание сделать goto - одна из причин для выделения метода(ов).Ага... А желание выделить класс - причина еще раз хорошо подумать... "Иметь причину" что-либо сделать, совершенно не означает "иметь основание" делать именно это. :) Исхожу из того, что в "homo sapiens" ключевой частью служит все же "разумный"... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 14:02 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
AbstractionSyrexпропущено... Может проще сгенерить все возможные варианты, а после этого случайным образом "выдергивать" их? PS - по крайней мере так генерировали в Русском Лото. Генерилось у них минут 10-15А смысл? Выше приведён алгоритм, который получает комбинацию по числу, где число - от 0 до (количество вариантов-1). То есть, "все возможные варианты" - просто множество чисел. Вопрос в том, как нормально "выдернуть" без повторов, с равномерным распределением. После генерации создать "массив_а" на 500 000 элементов (цифр от 0 до 499 999) и далее по этим номерам вытаскивать строки из массива "всех возможных вариантов", номера которых соответствуют числам из "массив_а" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 14:15 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
izoldov-roskiniГоспода, какая разница, зачем и почему, надо быстро сгенерить 500 000 комбинаций из 6 чисел каждая, причем чтобы соблюдалась уникальность вне зависимости от порядка чисел внутри одной комбинации. Как это какая разница? Хотелось бы знать что бы прикинуть стоимость этой затеи. Если ЭТО немецкое LOTTO 6 из 49, на что это очень похоже, то тогда 500 000 комбинаций это будет 41667 билетов по 12 полей в каждом и ценой в 9,25 Евро, ИТОГО = 385419,75 € Ну а дальше не сложно посмотреть какие у вас шансы выиграть и сколько вы можете выиграть. Хотите умереть молодым и красивым - найдите какого-нить бандита уважаемого человека который даст вам денег на эту затею. Вот затем и хотелось бы знать. Давайте колитесь уже. А то может и правда надо уже бежать покупать 41667 билетов что бы разбогатеть, а мужики то не знают. ;) Я жду. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2012, 17:05 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Сделал генерацию комбинаций из 6 цифр от 1 до 30, расположение цифр в комбинации не имеет значения, т.е. 1 2 3 4 5 6 = 2 1 3 5 6 5, но почему-то при 475020 идет резкое падение скорости, падение практически до нуля, не могу понять в чем причина, комбинаций по комбинаторике должно получаться чуть больше 593 000, где косяк? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 18:37 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Забыл написать что Hashes - это HashSet<string> ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 18:55 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Все нашел косяк, Random.Next(1,30) - максимальное число которое он возвращает = 29 , чтобы было 30 надо указывать 31 - в документации написано что это верхний исключенный предел Е мае :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 18:58 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
izoldov-roskini, о, я что то узнаю но вот этот фрагмент в предложенном варианте безсмысленен Код: c# 1. 2.
нулей то нет в последовательности )) и отсутствует проверка на повторения. ну это дело ваше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 19:39 |
|
Перебор 500 000 строк
|
|||
---|---|---|---|
#18+
Тему не осилил. так как взорвался мозг. но если я правильно понимаю то задача получить комбинацию k - чисел в диапазоне от 1 до n без учета порядка. - это сочетания. . теперь нам остается посчитать кол-во. потом в диапазоне 1..cnt генерить номер. (тут его можно проверять на уникальность, или алгоритм чтобы сразу не давал повторений). далее по номеру строить сочетание. и все. чего там 4 страницы обсуждать, или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 22:53 |
|
|
start [/forum/topic.php?fid=20&msg=38034617&tid=1405371]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 191ms |
0 / 0 |