Можете Господа программисты и покеристы помогать:
Вот есть у нас стартер
2358А
Нужно поставить возможные сильные
Можете писать какие варианты видите как возможные в разнообразных стартерах
Все идеи в код закину
На счёт примера: 2358А
1. Определим все стритовые последовательности из двух и более карт близкостоящих
Имеются:
8
85 53 32 а2
532 32А
А235
2. Составим варианты сильных стартеров:
-
А235
8
-
А23
85
-
8
А235
А
235
8
А
23
85
И вот на расчет нужно отправить 3 шт максимум
Очевидно это
А
235
8
А
23
85
И
А23
85
Мы с вами это понимаем, но машине то как объяснить?)
Нужны линейные правила...
3. Правила расстановки:
Одно из первых правил приходящих на ум : это карта к фантазии наверху , в данном случае туз...
Тк игра классический и против фантазии то туза так же можно в середину и желательно с комбо дро из трёх карт , в данном случае это А23 и чтобы вниз осталось другое дро на стрит 85, если стритдро нет то такой вариант не подходит : А23 J6 например не берем в насчёт, сразу играем J / 236 / A
Так же можем поставить туза в середину с двумя картами А2 но при наличии стрит дро на три карты вниз , в данном случае 358 не подходит
Вечером прогоню стартера по такому принципу и составлю подробную карту путевую для расчетов... Посчитаем сколько всего надо стартеров отработать ...
Пс если у кого то есть стартера для классического ананаса в любом виде читабельном, даже не правильно посчитанные , напишите мне куда нибудь , в лс в телегу сюда...
c00l0ne @ 16.06.23Хз что вы туда написали, но по факту алгоритм пишется в 100 строк кода , который в вашей программе, а это килобайт текста...
Ну, конечно, п/п которая считает ЕВ позиции занимает немного больше, чем 100 строк.
Но у меня же в программе не только эта п/п. Чтобы до нее дойти надо попробовать несколько вариантов, наброски.
Есть варианты без флешей, с флешами, полный перебор без упрощений и тд. Есть неск вариантов с потоками и без них. Отдельный юнит когда пробовал поработать с видео картой.
Есть юниты для счета фанты, несколько вариантов, для расклада подъема (получили 3 карты), для стартеров (упрощенная, для поиска лучших 10 вариантов, быстрая, примерно как ты только что обсуждал, что куда лучше ложить).
Создание всяких массивов. И тд.
Ты думаешь когда художник рисует портрет, он сразу пишет на чистовую? У него куча набросков. Тут рука так нарисована, тут по другому, тут наклон головы другой и т.д.
И когда он нарисовал Мону Лизу он все наброски сразу выкинул? Чтобы получить финишный вариант надо кучу других портретов написать.
А я никакие наброски, мысли не выкидываю.
Jak, художники тупые( но картины красивые рисуют)
Не думаю что их можно сравнивать с математиками программистами)
Люди разного образа мышления и глубины мышления...
Так и пишите : черновой вариант программы много строк ...
В основном я программирую в тетрадке, за компом стараюсь минимум времени проводить, весь сложный алгоритм в тетрадке накатал... Потом уже перенес в черновую и вчера закончил чистовую писанину за компом...
Из грустного распараллелить не получилось, один поток один вариант стартера
Программирование это как прогнозирование будущего ... Ты загадываешь желание и сквозь пот кровь и слезы приходишь к результату за человекожизне часы... Хорошо если за это ещё заплатят)
Ну и главное кукухой не поехать , потому что алгоритмы сложные и внутри головы они не понятным образом складываются... Выматывает жутко бывает... Держать все под контролем...
Фокус концентрация и логистика и медитация отлично помогают... И никотин(
Кто не верит про "Кровь"
Поранился даже не заметил, потому что голова была где то далеко от реального мира
математическое программирование - истинная высшая деятельность нервной системы человека
Жаль что gpt5 у нас и эту возможность отберёт...
На разработку ещё парочка алгоритмов есть, на базе сложного , ну и простого ...
Могу описать :
Что если вместо Ев для нод писать формулу:
Получим в конечном счёте универсальную формулу для подсчёта Ев:
Там будут правда миллиарды максимумов и умножений и сама она будет грандиозно большой, но в конечном счёте можно будет напрямую ее считать )
Вторая идея :
Относится к упрощению, что если дерево перестроить в виде комбинаций, например конечная нода :
АА
Две пары
Фуллхаус
Ну а предыдущая это
А
Пара и одна ко второй паре
Фулл Хаус...
Таким образом можно упростить 🌲
Стартер в таком дереве точно меньше секунды будет считаться
Но алгоритм с двумя звёздочками)
Но он не совсем матожидание от игры считает, он считает вероятность сделать комбы и ожидание от этих комб
Но для быстрого упорядочивания стартеров сойдёт, скупы правда не учесть в таком... Скуп всегда равен 0...
c00l0ne @ 17.06.23Относится к упрощению, что если дерево перестроить в виде комбинаций, например конечная нода :
АА
Две пары
Фуллхаус
Уф, сейчас подумал как это работать будет, вечером будет бомба... Кекв
Ушел спать ...
Даёшь стартер с флешами за 10 сек ?)
c00l0ne @ 17.06.23скупы правда не учесть в таком
Ещё подумал, их можно учесть но алгоритм с ***
Бля а что если эти две идеи в одну заплести, писать формулы в ноды комбинаций... Надо это обдумать ... сложно но в память влезет точно и скорее всего с игрой оппонента ... напишу что этот алгоритм ****
Про художников, есть у нас в поселке дядя,с прямыми руками и кистями, у меня даже принт его картины в офисе висит , ну нормально так нарисован ... 5/5 ...
Но этот дядя залез в микро кредиты и кредиты , карты Тинькофф и прочую чушь, они ему там бешеные проценты вкрутили, он работу что-ли потерял и короче не вывез платежи по кредитам , попрошу заметить сумма 200-300 т руб была, с процентами она стала 500к , а я с ним бывало на перекур выходил , рассказывал что короче звонят коллекторы москвичи и пугают угрожают, классика короче коллекторского поведения, конченные бастарды ... Ну я ему говорил чтобы не отдавал ни копейки пусть сосут ... А приехать если хотят пусть на наш район приедут))) обратно билет в Москву могут не брать)))
Ну короче шутил с ним так...
Проходит год и как то не особо виделись, вот он заходит на перекур какой то кислый и бедный, прям ппц бедный... Обноски, бабок нет, зубы гниют ... Я ему типо чё за вид?
Он: хату продал ! Сталинку трёхкомнатную с высоченными потолками и крупными комнатами за 900 тр !!!! Отдал долги 500к и купил себе в общаге однушку 30кв м с общей кухней... среди алкашей зеков и прочих тунеядцев...
И как давай мне про теории заговора втирать, что Москву захватили инопланетяне, что они среди нас, что доллар США давно обрушился и печатают фантики и прочую ересь ... Но с пеной у рта, после этого я с ним не общался)
Хату жалко, если бы он подошёл ко мне за 900 я бы взял изи ... А лучше бы отговорил его продавать ... Квартира как у Феди, 3 млн стоит где то ...
Вот такие они художники , богатый духовный мир и ума соломы кусок...
С тремя звёздами сложно пока, не смогу
А вот эти все мысли привели к улучшению алгоритма, подсчет без учёта скупа за 3.3 сек
Jak, вот затем новые алгоритмы и нужны, чтобы считалось быстрее выше сильнее
И это в один поток
Второй этап стал дольше чем первый кек, ща поправим
2.67 с удалось выжать
Хочется уже меньше секунды)
c00l0ne @ 17.06.23Но он не совсем матожидание от игры считает, он считает вероятность сделать комбы и ожидание от этих комб
Но для быстрого упорядочивания стартеров сойдёт, скупы правда не учесть в таком... Скуп всегда равен 0...
Вероятности считать - неверно. Это будет быстро, но ошибочно.
Задачка:
Имеем такой расклад перед последним подъемом
QQх
3322J
678хT, х - пустые места.
очевидно, что из оставшихся 41 карты нам подходят 4-ре 9ки для нескупа, внизу стрит, остальные нам не подходят.
Посчитаем вероятность собрать стрит.
Шансы поймать 9ку из 41 карты двумя картами: шансы = 1-37/41*36/40 = 18,78%
Шансы поймать 9ку из 41 карты тремя картами: шансы = 1-37/41*36/40*35/39 = 27,11%
А если бы дали 4 карты, то вообще шансы будут равны 34,78%. Каждая карта добавляет много.
Очевидно, что получая три карты и выбирая из них лучшие две, мы чаще соберем свой стрит.
И это на последнем подъеме.
Если вернемся назад на 1 подъем, шансы улучшиться из 3-х карт тоже будут лучше, чем из 2-х. Что уж тут говорить про шансы когда имеем чистый стартер.
Имеем только 5 карт
Qxx
22ххх
78ххх, каковы шансы собрать стрит в низ? Просто перебрать все варианты и посчитать подходящие нам для стрита вниз карты?? из всей колоды - это неверно.
Jak @ 19.06.23вероятность сделать комбы и ожидание от этих комб
Jak, завязывайте душить, я понял что Вы ленивы)
С лентяями не по пути мне
Вы задаёте банальные темы для обсуждения
А тем временем тысячи стартеров отправились на расчет (-10 часов жизни)
Ожидаемое время расчета пара дней...
Формат такой
Карты 1 2 3 4 5
Куда их ставим 22012(2 низ 1 середина 0 верх)
И ев
Скоро проверим насколько хорошо против фанты играет алгоритм и насколько значимы флеши и ТД
В кратце ответ на ваши рассуждения:
Никаких там ошибок нет... Проверено.
Результаты как в вашей программулине при скуп=0 , там фишка что ноды можно не отрабатывать нулевые и это бустит скорость до 3-4 сек, дерево обрабатывается только где Ев не нулевое
Jak @ 19.06.23Шансы поймать 9ку из 41 карты двумя картами: шансы = 1-37/41*36/40 = 18,78%
Шансы поймать 9ку из 41 карты тремя картами: шансы = 1-37/41*36/40*35/39 = 27,11%
Вот эти расчеты , а где Вы выбираете из двух карт то ? У вас дерево из двух карт(сброс не учтен) ТК как он минимально влияет на сдачу, а выбор хода идёт перебором трехкрточных комбинаций и выбором из двухкарточных веток дерева лучшего хода... За расчеты 5, но к теме они не относятся , поэтому по предмету троечку. Они к алгоритму не относятся эти расчеты, вы просто загоняетесь ... Разберитесь с матчасть подробней
Вы покажите где в алгоритме идёт выбор из двухкарточных комбинаций? Поймите у вас дерево стратегий, а вы думаете что у вас дерево конечных нод ... У вас дерево стратегий... Не состояний... А когда вы делаете выборку из трехкрточных комбинаций это считается реальной симуляцией игры... Поэтому ваши рассуждения ну уже к теме не относятся... Это просто недопонимание алгоритма...
Пс не душу, не учу терпеть учить не могу... Просто манера общения такая ЧСВ без обид
И вот у вас стратегия : ставить 9 вниз и верх 1 2345678...
Но общая вероятность высчитывается из комбинаций ТРОЕК
Pnode = E p(i,j,k), где Е сумма, а p(i,j,k) вероятность симулируемых троек в этой ноде, ТРОЕК, не двоек и будет равна
Шансы поймать 9ку из 41 карты тремя картами: шансы = 1-37/41*36/40*35/39 = 27,11%
Если вы правильно посчитали
Единственно ошибки идут от отсутствия сброса, как это работает, вот допустим первая сдача:
А
2
ТТТ
И нам падает сдача карт: ТА2
Софт сделает ход без учёта сброса и для него стратегия
АА
22
ТТТ
Будет переоценена , потому что Т в сброс не упадёт, он будет считать что Т в колоде( потому что без сброса при такой симуляции происходит возврат карты в колоду)...
Но таких ходов именно в которых ход будет ложноположительный , крайне мало будет, поэтому это малозначительно...
Со сбросом чтобы решать нужны терагерцовые процессоры или тысячи ядер... Или квантовые системы... И оно того не стоит... Лучше погоду на всей Земле просчитать с точность 1кв см)
Jak @ 19.06.23Имеем только 5 карт
Qxx
22ххх
78ххх, каковы шансы собрать стрит в низ? Просто перебрать все варианты и посчитать подходящие нам для стрита вниз карты?? из всей колоды - это неверно.
А вы попробуйте перебрать только карты к стриту и посчитать только эти ветки и получите искомую вероятность с той же точностью что и перебором полным, но со скоростью исключительно максимальной...
Просто перебрать все варианты и посчитать подходящие нам для стрита вниз карты?
Что значит посчитать подходящие нам для стрита карты вниз? Кекв это что за метод , карты считать) типа их кол-во ))) ну вот не душнилово?
Правильный метод составить все пути собрать стрит , все дерево возможных решений и посчитать вероятность каждого узла и вероятность стрита в каждом узле и потом выбрать максимальный путь собрать стрит , получить ответ, распечатать , вставить в рамку и гордиться... Это достойная работа...
Я к тому что:
Jak @ 19.06.23Вероятности считать - неверно. Это будет быстро, но ошибочно.
Составлять полное дерево и считать вероятность стрита в каждом узле быстро когда стало то? Вероятности посчитать ничем не отличается от процесса нахождения максимального Ев... Аналогичный процесс...
Пс Байчу как могу) дядю на сложный алгоритм пацаны) но боюсь не вывезет... Все же две звёзды
Это вам не роялки в ноды тупо писать, а надо ещё в памяти огромные сложные структуры под контролем держать, да огромные циклы по этим таблицам запускать ...)
Jak, привет.
А помнишь про идею где в массиве HR5 сдвиг по 5му элементу дает силу руки ?
Можно ли сделать массив HR7 где сдвиг по 7й карте даст лучшую руку по 7ми картам ? (У меня массив слишком большой получается - не компилируется. Но я не программист , возможно просто туплю )
Такой массив есть
130 мб.
Куда отправить?
brdss, кастомным файлам я бы не доверял, например у Jaka в файле HR3.dat или HR5 , было две ошибочки) проще скачать с официального репозитория 124 мб
c00l0ne @ 19.06.23Пс Байчу как могу) дядю на сложный алгоритм пацаны) но боюсь не вывезет... Все же две звёзды
Бабу свою будешь байтить, склоняя её на blowjob. Или еще не завел?
Звездочки он развешивает, возомнил себя крутым программистом.
Научись хотя бы распараллеливать, уж не говоря про CUDA.
c00l0ne @ 19.06.23например у Jaka в файле HR3.dat или HR5 , было две ошибочки)
Пиздеть-то, не мешки ворочать. Ошибки он нашел... Да ты бы крик поднял на весь форум. Файлы формируются на лету, во время загрузки программы, по одному алгоритму. Либо ошибок нет, либо их должно быть много. Там все проверено/перепроверено за 15 лет.
Jak @ 20.06.23крутым программистом
"А судьи кто?" (с)
Jak, по факту тема исчерпала себя... Нужен новый проект
Jak @ 20.06.23CUDA
В сложном можно попробовать, но опять же придется линейный алгоритм, натягивать на миллионы вычислительных ячеек, зачем это все? И в программировании на cuda ничего уберсложного нет, прослушал курс с пол года назад. И так прекрасно работает:
36 тыс вариантов стартеров, ещё где то столько же ждём
Jak @ 20.06.2315 лет
Я как раз в 15 лет qbasic изучал) и олимпиады выигрывал школьные) если бы мне кто то сказал в то время что можно будет бахать стартера в китайский на ПК, я бы тому покрутил у виска... Посмотрим что дальше будет, сейчас мощно заряжают сферу ИИ... Гл гл им
Jak @ 20.06.23распараллеливать, уж не говоря про CUDA
Кстати тема оч актуальная в моем воображении , постоянно возникает вопрос:
У нас одни общие данные , много данных и работы с ними много, дробить на мелкие потоки не выгодно, а большие потоки много будут работать с одними и теме же данными вызывая " состояние гонки" . Можно взять мютексы и прочие лабуды костыли и попробовать потоки "выстроить в очередь" к нужным данным, но на это тоже самое время уходит и эффект многопоточности теряется , алгоритм приходит к линейному виду... Почему? Не сделать на аппаратном уровне данный механизм... АМД и Интел халтурят имхо , им надо было механизм синхронизации потоков делать на аппаратном уровне... Раз уж делают столь многоядерные процы...
Jak, вот вам пример хорошей защиты , ну достаточно хорошей, она находиться в драйвере у чела :
вконце видно как вывод делиться на лицензию / триалочку / окончание триалочки и т.д. )
и отключить ее очень очень сложно ) если изменить этот конкретно код то драйвер придется подписывать переподписывать ...
а в посл версиях windows и это не поможет ... сертификат от микрософт нужен будет ... а они его просто так не дают ...
поэтому для хорошей защиты нужен собственный драйвер подписанный ... или сервер лицензирования ...
ждем слива сырцов win7 / win10 ... там можно будет сделать все )
но и такая защита обходится) но через боль в одном месте ...
Хз что вы туда написали, но по факту алгоритм пишется в 100 строк кода , который в вашей программе, а это килобайт текста...
Сто строк в одном файле класса...
У Вас там Gui наверное остальное занимает
Вы как Galax любите космические корабли создавать в программе, у него там тоже тысячи строк кода, у меня каждая строка добавляемая в код проходит через суровый фильтр в голове "она точно тут нужна?"
На выходных выделю время, посчитаем стартера... Если покажет хотя бы 9 кушей Ев против фантазии в классику то буду продолжать в одиночку, если нет то скипну этот алгоритм.