Генератор случайных чисел и дроп карт.
-
@"sivka":
но мугу себе представить 2 варианта:- это когда на одич тип мобов, один раз запускается seed-функцыя.
(к этой методе, подойдёт моя теория "чем больше мобов убьёш,
тем ближе к цели"). - это когда при каждом дропе запускается seed-функцыя
иницыализируется временем сервера и затем запускается
rand-функцыя.
(к этой методе нету никаких приспособлений!)Не вижу никакого смысла заниматься такими извращениями. Отметь, что генератор по-любому один, его можно сеять несколько раз, но бессмысленно - все равно генератор ровно один.
Обычно практика такова. Генератор один раз сеется при запуске сервера и дальше используется для всех случайных величин, будь то попытка заточки, удар по монстру, удар монстра, отход монстра в каком-либо направлении, выпадание каждой единицы лута, величина урона и т.д. и т.п. и пр.
Генераторы могут давать одинаковые числа если их сеять с одним смещением - так делать будет только глупец. Обычно в качестве смещения используют значение времени с большой точностью - оно не повторится. Если несколько процессов одновременно посеют свои генераторы, то ряды чисел будут одинаковы, но это ничего нам не дает. Даже если предположить, что несколько серверов МОТРа запускаются в один квант времени и генераторы у них генерят одни и те же числа, тем не менее ряды немедленно расходятся и перестают быть друг на друга похожими из-за разных процессов (как по характеру, так и по интенсивности), протекающих на серверах.
Короче, господа, под рандом не ккопайте, бесполезно - копайте под теорию вероятности, я предвижу здесь массу интересных вещей...
- это когда на одич тип мобов, один раз запускается seed-функцыя.
-
sivka, иди покури порингов, не умничай и не сбивай людей с толку. шанс не делится никуда и ни на что, а рассчитывается ДЛЯ КАЖДОЙ ВЕЩИ ОТДЕЛЬНО В МОМЕНТ УБИЙСТВА МОБА функцией rand(), которая НАПРЯМУЮ ЗАВИСИТ ОТ ТАЙМЕРА КОМПЬЮТЕРА. ты же крутой программист. я не собираюсь объяснять, что такое таймер, как он работает и чему он служит. это нудно и долго. или ты думал, что "генератор случайных чисел" - это такая микросхемка в системном блоке? lmao omfg stfu and rtmf.
-
@"Smolniy":
Генератор один
o_O точно, мдя упустил из виду такую тонкую вещь, спасибо за поправку!кто бы мог подумать, что РО такой плоский?! а вообще я изходил из
своего калькулятора. в разделе RefineSIM использую 3 thread-а.
при каждом запуске сеедю генератор, хотя мона это и один раз в
каком-нибуть init() делать!лана вернёмся к теории вероятности
если теорию немного разширить карта->мир, то выходит что во время
ГВ (или при другом максимальном онлайне) само выгодно выбивать
рарный шмот -
@"mjaffk":
sivka, иди покури порингов, не умничай и не сбивай людей с толку. шанс не делится никуда и ни на что, а рассчитывается ДЛЯ КАЖДОЙ ВЕЩИ ОТДЕЛЬНО В МОМЕНТ УБИЙСТВА МОБА функцией rand(), которая НАПРЯМУЮ ЗАВИСИТ ОТ ТАЙМЕРА КОМПЬЮТЕРА. ты же крутой программист. я не собираюсь объяснять, что такое таймер, как он работает и чему он служит. это нудно и долго. или ты думал, что "генератор случайных чисел" - это такая микросхемка в системном блоке? lmao omfg stfu and rtmf.одно непонятно чего ты на гавно то изходиш???
ДЛЯ КАЖДОЙ ВЕЩИ ОТДЕЛЬНО В МОМЕНТ УБИЙСТВА МОБА функцией rand(),
а где я что-то другое говорил? если ты гониш то я то тут при чём?НАПРЯМУЮ ЗАВИСИТ ОТ ТАЙМЕРА КОМПЬЮТЕРА
ну ты и загнул, и что же это будет? из тя прям рвётся паскаль програмист... ГЫЫЫЫЫты же крутой программист.конешно, а ты ехида!
это такая микросхемка в системном блоке? lmao omfg stfu and rtmf.
a rtmf пишется так: RTFM
-
sivka, довольно быстро пишу - опечатываюсь
паскаль рулит, а вообще я пишу на ассемблере, и поверь, машинных команд SEED и RAND нету.. хотя в си могут быть свои извращения напридуманынормальный rand() берёт значение таймера (1 слово), а так же любые изменяющиеся величины (дату-время-кол-во юзеров на сервере-кол-во свободной памяти и т.д.), проводит с ними мат. операции, вследствие чего получается неопределённое число.. вроде как)
советую выучить русский и научиться по крайней мере уважать себя, если уж других не в состоянии.
-
@mjaffk:
довольно быстро пишу - опечатываюсь
я думаю на говно изходиш быстрее!а вообще я пишу на ассемблере
я тоже пишу вообще-то микрокод и ещё знаю японский :lol:машинных команд SEED и RAND нету..
да мне как-то до ...нормальный rand() берёт значение таймера (1 слово)
если такой умный, разказал бы чего нибуть о interuppt! -
sivka, а что именно? скажи, по какому адресу табличка прерываний расположена? интересно, знаешь ли сам..
-
@"mjaffk":
sivka, а что именно? скажи, по какому адресу табличка прерываний расположена? интересно, знаешь ли сам..RTFM
-
ну вот, не знаешь... а адресок-то нулевой) это если в реальном режиме процессор.. а если во многозадачном - то тут уже смотря как инициализировать будешь)..
в общем..
[code:181gaduy]CLI
JMP $[/code:181gaduy]
это тебе на могилку) -
@mjaffk:
нормальный rand() берёт значение таймера (1 слово), а так же любые изменяющиеся величины (дату-время-кол-во юзеров на сервере-кол-во свободной памяти и т.д.), проводит с ними мат. операции, вследствие чего получается неопределённое число.. вроде как)Генератор итеративно (рекуррентно) строит ряд чисел длиной порядка 2**24, для построения которого требуется пара констант. В качестве такой константы чаще всего используется системное время, как хороший неповторяемый параметр, хотя можно использовать хоть отбалдовый удар кулаком по цифровой клаве, хоть количество спичек в данном конкретном коробке - главное, чтобы оно было доступно программно. Разумеется, ряд строится не весь сразу, а по требованию - по вызову функции. Сеять несколько генераторов бессмысленно, если они не работают в разных программах (потоках, процессах етс, что то же самое).
Хороший текст: <!-- m --><a class="postlink" href="http://criptograf.narod.ru/kr4.html">http://criptograf.narod.ru/kr4.html</a><!-- m --> -
сивка вот ты написал, что чем больше на карте народа тем лучше бить рары. потом ты написал, что не утверждаешь, что если собрать в пронте 4к народа то выпадет в сограте фрионикарта, потом сказал что выгоднее выбивать при гв или вообще при макс онлайне (при гв локации обычно меньше заполнены).
какие-то куски противоречий.
ты, видно, знаешь что такое ранд и сид но применять это "исходя из своего калькулятора" на эмулятор мотровский и делать какие-то противоречивые утверждения - зачем?
(остальные твои посты - оффтопик).
-
Smolniy, тогда эти последовательности можно повторить, если использовать те же константы.. бред..
всегда не любил сиасм рулит, таймер рулит
умножь таймер на минуты на часы на секунды, добавь х курсора и у курсора и отними температуру процессора, и возведи это в степень (1+№ вызова функции) div 10, что ещё нужно?
текст не читал, лениво
-
[code:ne067ila]NOP("
@mjaffk:
ну вот, не знаешь... а адресок-то нулевой) это если в реальном режиме процессор.. а если во многозадачном - то тут уже смотря как инициализировать будешь)..в общем..
[code]CLI
JMP $[/code]
это тебе на могилку)")[/code:ne067ila] -
@"wrigley's":
сивка вот ты написал, что чем больше на карте народа тем лучше бить рары. потом ты написал, что не утверждаешь, что если собрать в пронте 4к народа то выпадет в сограте фрионикарта, потом сказал что выгоднее выбивать при гв или вообще при макс онлайне (при гв локации обычно меньше заполнены).какие-то куски противоречий.
ты, видно, знаешь что такое ранд и сид но применять это "исходя из своего калькулятора" на эмулятор мотровский и делать какие-то противоречивые утверждения - зачем?
(остальные твои посты - оффтопик).
ну зачем мне приписывать, чего я не говорил или говорил иными словами?
ты слепой? или может косоглазый и читаеш то что можеш видеть?
*если теорию немного разширить карта->мир, то выходит что во время *
*ГВ (или при другом максимальном онлайне) само выгодно выбивать *
*рарный шмот * -
кафра, роди меня обратно
а причём тут ноп? признаёшь меня крутым кодером?)) -
да нет, просто твоё КПД равно КПД-NOP
-
Зачем быть крутым программистом чтобы понять что от количества людей на карте, от количества людей бьющих тотже тип монстров ничего не зависит.
Реашет только то что чем больше ты убиваешь монстров за единицу времени тем больше у тебя шанса выбить карту. Не бьёшь никого = 0% шанса, бьёшь бесконечно много монстров, шанс рвен 100%
Система "карта 100% выпадающая из Х монстров" у нас не реализована
П.С.: Домашнее задание sivk'e - построить график распределения функции rand() =*)
-
вообще-то эти две команды вешают компьютер (если он не на нт)
а ноп ничего не делает, только отнимает один-два тика (вроде как один) и жрёт байт памятипойду смотреть фильму)
-
@"Мистикал":
Реашет только то что чем больше ты убиваешь монстров за единицу времени тем больше у тебя шанса выбить карту.да ну нафиг, не верю своим глазам, оказывается есть ещё люди которые могут логический думать, RESPECTП.С.: Домашнее задание sivk'e - построить график распределения функции rand() =*)
неа, домашнее задание не рулит
а насчёт rand() в моём кальк, могу сказать, что при 10.000.000
итерацый происходит погрешность в 0...1.5% в положительную
сторону, что сказывалось бы positiv-но при добыче рарных шмоток -
@"mjaffk":
Smolniy1 тогда эти последовательности можно повторить, если использовать те же константы.. бред..
2 всегда не любил си =)асм рулит, таймер рулит
3 умножь таймер на минуты на часы на секунды, добавь х курсора и у курсора и отними температуру процессора, и возведи это в степень (1+№ вызова функции) div 10, что ещё нужно?
4 текст не читал, лениво- Вообще-то, не совсем, что довольно странно. Об этом есть в тексте
- Си тут ни при чем, это вообще так принято во всех языках. Это вообще математическая проблема, не компьютерная.
- За одну секунду при неподвижном курсоре на сервере вывалится 1к райдриков
Ах да, счетчик функций... Короче, я надеюсь ты сам понимаешь, что это бардак. - Да я так предложил, для общего развития...
- Вообще-то, не совсем, что довольно странно. Об этом есть в тексте