Генератор случайных чисел и дроп карт.
-
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к райдриков
Ах да, счетчик функций... Короче, я надеюсь ты сам понимаешь, что это бардак. - Да я так предложил, для общего развития...
-
- rtfm насчёт таймера. таймер не часы! это совершенно отдельное устройство, работающее незваисимо ото всех остальных, которое изменяет значение одного слова! можно замкнуть на встроенный динамик, тогда он будет издавать звук (так в 99% случаев программируют встроенный динамик, можно ещё вручную подавать-снимать ток с динамика, но это маразм. я сам писал музыку на втроенном динамике и знаю это всё прекрасно;)). частота у таймера может быть такая, что динамик становится неслышным (ультразвук), и этой частоты достаточно для любых выпаданий карт и пр.. пока процессор выполнит одну команду и перескочит на другую, таймер уже на большую цифирку изменит значиние того заветного слова)
-
- Что-то я тебя не пойму. То ты говоришь про минуты и секунды (логичн предположить что суперслово "таймер" подразумевает часы), то про железяку
- Я могу ошибаться, но это то что берется 8-м прерыванием? Так оно работает с частотой раз в 55 миллисекунд (18.(18) Гц), откуда тут взяться инфразвуку???
- Если ты говоришь о счетчике тактов процессора, то и говори о счетчике тактов процессора, а не о "таймере".
- В любом раскладе, в твоей формуле сплошные арифм. прогрессии - что "таймер", что "время", что "номер вызова функции", любая математика с ними будет той же прогрессией, арифм. или геом.. Координаты курсора изменяются во вполне конкретных пределах, плюс к тому они весьма дискретны. Температура из той же области. Такой генератор никому бесплатно не нужен.
- Ты, я уверен, понимаешь, что игрушки - далеко не самая денежная и не самая важная область, где нужны генераторы случайных чисел. Криптография, оборонка, наука... Просто математика в принципе не дает необходимого матаппарата.
-
ай, ну вас.
таймер не часы и вообще это совсем разные вещи. работают отдельно и т.п. я не помню его аппаратного прерывания (мой старый компьютер давно сдох, а с ним всё, что у меня было написано, книжки дал почитать, записи потерял), а простым прерыванием (если это и можно) программировать будут его только анацефалы.. программируется он напрямую выводом-вводом в порты (есть такие никому неизвестные внутренние порты, для доступа к периферии) 61h и 42h (если верить яндексу, но вроде как правильные.. что-то помню еще). откуда 55 миллисекунд - я не знаю, но частоты там можно самому свои устанавливать.. не помню я всего этого.а какой был бы идеальный генератор случайных чисел?.. блондинки отпадают.
з.ы. нашёл пример, вроде то.. правда, насчёт частоты ничего сказать не могу:
[code:nhpswxwk] model tiny
.code
org 100hStart:
; Тестовый пример:; Восходящая гамма: mov ax, 100 mov cl, 0
M1: call Sound ; Звучание с новой частотой, кратной 100Гц.
push ax
mov ax, 200 ; Задержка звучания на 200 мс.
call Delay
pop ax
add ax, 100 ; Новая частота.
inc cl ; Завершение цикла.
cmp cl, 10
jb M1
; Нисходящая гамма:
M2: call Sound ; Звучание с новой частотой, кратной 100Гц.
push ax
mov ax, 200 ; Задержка звучания на 200 мс.
call Delay
pop ax
sub ax, 100 ; Новая частота.
dec cl ; Завершение цикла.
cmp cl, 0
ja M2
; Выключаем звук:
call NoSoundret ; Описание вспомогательных подпрограмм:
Sound proc
; Включает воспроизведение звука встроенным динамиком с частотой AX герц.
push ax
push dx
push cx
; Программирование таймера:
mov al, 10110110b ; Будем программировать канал 2 (отвечает за
; динамик) с настройкой двумя байтами (сначала
; маладший, затем старший) в режиме генерации
; прямоугольных импульсов, подаваемых на
; динамик.
out 43h, al
; Определяем делитель частоты: X = 1 193 180 / AX(наша частота, Гц)
mov cx, ax ; Сохраняем частоту в CX.
mov dx, 12h
mov ax, 34DCh ; DX:AX = 1 193 180
div cx
; Записываем делитель частоты в порт 42H (он имеется в AX)
out 42h, al
mov al, ah
out 42h, al
; Включаем звук, установив биты 0 и 1 в порте 61h в 1.
in al, 61h
or al, 00000011b
out 61h, alpop cx pop dx pop ax ret
Sound endp
NoSound proc
; Выключает воспроизведение звука встроенным динамиком.
; Просто обнуляем биты 0 и 1 в порте 61h.
in al, 61h
and al, 11111100b
out 61h, al
ret
NoSound endpDelay proc
; Реализует задержку выполнения программы на AX миллисекунд.
push ax
push dx
push cx
mov dx, 0 ; Переводим миллисекунды в микросекунды,
mov cx, 1000 ; (умножая содержимое AX на 1000),
mul cx ; т.к. функция задержки работает с мкс.
mov ah, 86h ; Установить задержку в микросекундах.
mov cx, dx ; Старшее слово числа.
mov dx, ax ; Младшее слово числа
int 15H ; Вызов BIOS
pop cx
pop dx
pop ax
ret
Delay endpend Start [/code:nhpswxwk]
-
Если б ты ссылку по диагонали пробежал, такого вопроса бы не было
Идеальный генератор случайных чисел был бы у физиков. Например, генератор каких-нить частиц с измерялкой. Кстати, мыслил ты с температурой процессора в правильном направлении- просто это решение зависит от камня, а надо математическое решение.Физическое моделирование случайности с помощью таких физических явлений, как радиоактивное излучение, дробовой шум в электронной лампе или туннельный пробой полупроводникового стабилитрона не дают настоящих случайных процессов. Хотя известны случаи удачных применений их в генерации ключей, например, в российском криптографическом устройстве КРИПТОН. Поэтому вместо физических процессов для генерации гаммы применяют программы для ЭВМ, которые хотя и называются генераторами случайных чисел, но на самом деле выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей
А квотинг твой, имхо, лишний. Прости, это не мануал и не пояснение.
-
думали про таймер - вот он вам и таймер.
"выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей"..
это никуда не годится.. особенно так, как это реализовано в ро. самое интересное - наблюдать двойные удары воришек. так, можно сделать 30-40 ударов подряд совершенно без двойного удара и наоборот.
дело в том, что генератор случайных чисел, приведённый выше, работает вне зависимости от внешних условий, то есть, числа будут совпадать и вообще ряд чисел будет предопределён (какая ж это случайность?).. а в "моей" функции внешним фактором служит процессорное время, а на него влияет очень многое, начиная от температуры в комнате и кончая скоростью соединения Васи Пупкина из Смольного.
можно, конечно, использовать и ваш метод, но тогда нужно как можно меньше инициировать поток чисел или инициировать возрастающими, разными числами.. ну и формула нужна нормальная.
я дурак, не судите строго
-
интел уже давным давно делает в своих чипсетах хардварный генератор случайных чисел (на тепловом шуме вроде)
но всё это фигня
т.к. спак упёрся в сверхстабильную-и-неглючную жопену и на еАфину и смотреть не хочет.
а разработчики жопены похоже ни с кем не общаются. -
хардварный генератор случайных чисел О___О
-
и чем вам rand() ненравится? работает отлично, раскидывает цыфры
просто фантастика есть правдо погрешность в положительную
сторону ну да и фиг с ней, нам от этого не хужечто мне ненравится: это указаные в базе-даннах droprate типа (0.01),
она не соответствует фактическому дропу! как на данный момент
генератор случайны чисел имплементирован и работает, стоило бы
писать вместо 0.01 просто неизвестно.повторяю: чтоб делать прогнозы типа 0.01, надо чтоб и генератор
работал именно по одному типу шмотки! -
sivka, как это не соответствует?... почему это?
-
@"mjaffk":
sivka, как это не соответствует?... почему это?ну сам подумай , как мона длать какие-то прогнозы если генератор
не только по одному типу ITEMa работает. это просто обсолютно
случайные совподения, что вообще что-то дропается (немногу перегнул).прогноз droprate -> 0,01 (~10.000 мобов оного типа) уже некатит.
-
да там все просто
почитай <!-- m --><a class="postlink" href="http://motronline.com/f/viewtopic.php?t=1281">http://motronline.com/f/viewtopic.php?t=1281</a><!-- m -->