MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Генератор случайных чисел и дроп карт.

    Запланировано Прикреплена Закрыта Перенесена Архив Оффтопика
    76 Сообщения 15 Posters 3.9k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • wrigley'sW Не в сети
      wrigley's
      отредактировано

      сивка вот ты написал, что чем больше на карте народа тем лучше бить рары. потом ты написал, что не утверждаешь, что если собрать в пронте 4к народа то выпадет в сограте фрионикарта, потом сказал что выгоднее выбивать при гв или вообще при макс онлайне (при гв локации обычно меньше заполнены).

      какие-то куски противоречий.

      ты, видно, знаешь что такое ранд и сид но применять это "исходя из своего калькулятора" на эмулятор мотровский и делать какие-то противоречивые утверждения - зачем?

      (остальные твои посты - оффтопик).

      1 ответ Последний ответ Ответить Цитировать 0
      • mjaffkM Не в сети
        mjaffk
        отредактировано

        Smolniy, тогда эти последовательности можно повторить, если использовать те же константы.. бред..
        всегда не любил си 😃

        асм рулит, таймер рулит

        умножь таймер на минуты на часы на секунды, добавь х курсора и у курсора и отними температуру процессора, и возведи это в степень (1+№ вызова функции) div 10, что ещё нужно?

        текст не читал, лениво

        1 ответ Последний ответ Ответить Цитировать 0
        • sivkaS Не в сети
          sivka
          отредактировано

          [code:ne067ila]NOP("

          @mjaffk:
          ну вот, не знаешь... а адресок-то нулевой) это если в реальном режиме процессор.. а если во многозадачном - то тут уже смотря как инициализировать будешь)..

          в общем..
          [code]CLI
          JMP $[/code]
          это тебе на могилку)")[/code:ne067ila]

          1 ответ Последний ответ Ответить Цитировать 0
          • sivkaS Не в сети
            sivka
            отредактировано

            @"wrigley's":
            сивка вот ты написал, что чем больше на карте народа тем лучше бить рары. потом ты написал, что не утверждаешь, что если собрать в пронте 4к народа то выпадет в сограте фрионикарта, потом сказал что выгоднее выбивать при гв или вообще при макс онлайне (при гв локации обычно меньше заполнены).

            какие-то куски противоречий.

            ты, видно, знаешь что такое ранд и сид но применять это "исходя из своего калькулятора" на эмулятор мотровский и делать какие-то противоречивые утверждения - зачем?

            (остальные твои посты - оффтопик).

            ну зачем мне приписывать, чего я не говорил или говорил иными словами?

            ты слепой? или может косоглазый и читаеш то что можеш видеть?

            *если теорию немного разширить карта->мир, то выходит что во время *
            *ГВ (или при другом максимальном онлайне) само выгодно выбивать *
            *рарный шмот *

            1 ответ Последний ответ Ответить Цитировать 0
            • mjaffkM Не в сети
              mjaffk
              отредактировано

              кафра, роди меня обратно 😃
              а причём тут ноп? признаёшь меня крутым кодером?))

              1 ответ Последний ответ Ответить Цитировать 0
              • sivkaS Не в сети
                sivka
                отредактировано

                да нет, просто твоё КПД равно КПД-NOP

                1 ответ Последний ответ Ответить Цитировать 0
                • МистикалМ Не в сети
                  Мистикал
                  отредактировано

                  Зачем быть крутым программистом чтобы понять что от количества людей на карте, от количества людей бьющих тотже тип монстров ничего не зависит.

                  Реашет только то что чем больше ты убиваешь монстров за единицу времени тем больше у тебя шанса выбить карту. Не бьёшь никого = 0% шанса, бьёшь бесконечно много монстров, шанс рвен 100% 😃

                  Система "карта 100% выпадающая из Х монстров" у нас не реализована 😃

                  П.С.: Домашнее задание sivk'e - построить график распределения функции rand() =*)

                  1 ответ Последний ответ Ответить Цитировать 0
                  • mjaffkM Не в сети
                    mjaffk
                    отредактировано

                    вообще-то эти две команды вешают компьютер (если он не на нт)
                    а ноп ничего не делает, только отнимает один-два тика (вроде как один) и жрёт байт памяти 😃

                    пойду смотреть фильму)

                    1 ответ Последний ответ Ответить Цитировать 0
                    • sivkaS Не в сети
                      sivka
                      отредактировано

                      @"Мистикал":
                      Реашет только то что чем больше ты убиваешь монстров за единицу времени тем больше у тебя шанса выбить карту.да ну нафиг, не верю своим глазам, оказывается есть ещё люди которые могут логический думать, RESPECT 😄

                      П.С.: Домашнее задание sivk'e - построить график распределения функции rand() =*)
                      неа, домашнее задание не рулит 😄
                      а насчёт rand() в моём кальк, могу сказать, что при 10.000.000
                      итерацый происходит погрешность в 0...1.5% в положительную
                      сторону, что сказывалось бы positiv-но при добыче рарных шмоток 🙂

                      1 ответ Последний ответ Ответить Цитировать 0
                      • SmolniyS Не в сети
                        Smolniy
                        отредактировано

                        @"mjaffk":
                        Smolniy

                        1 тогда эти последовательности можно повторить, если использовать те же константы.. бред..
                        2 всегда не любил си =)асм рулит, таймер рулит
                        3 умножь таймер на минуты на часы на секунды, добавь х курсора и у курсора и отними температуру процессора, и возведи это в степень (1+№ вызова функции) div 10, что ещё нужно?
                        4 текст не читал, лениво

                        1. Вообще-то, не совсем, что довольно странно. Об этом есть в тексте 🙂
                        2. Си тут ни при чем, это вообще так принято во всех языках. Это вообще математическая проблема, не компьютерная.
                        3. За одну секунду при неподвижном курсоре на сервере вывалится 1к райдриков 🙂
                          Ах да, счетчик функций... Короче, я надеюсь ты сам понимаешь, что это бардак.
                        4. Да я так предложил, для общего развития...
                        1 ответ Последний ответ Ответить Цитировать 0
                        • mjaffkM Не в сети
                          mjaffk
                          отредактировано

                          1. rtfm насчёт таймера. таймер не часы! это совершенно отдельное устройство, работающее незваисимо ото всех остальных, которое изменяет значение одного слова! можно замкнуть на встроенный динамик, тогда он будет издавать звук (так в 99% случаев программируют встроенный динамик, можно ещё вручную подавать-снимать ток с динамика, но это маразм. я сам писал музыку на втроенном динамике и знаю это всё прекрасно;)). частота у таймера может быть такая, что динамик становится неслышным (ультразвук), и этой частоты достаточно для любых выпаданий карт и пр.. пока процессор выполнит одну команду и перескочит на другую, таймер уже на большую цифирку изменит значиние того заветного слова)
                          1 ответ Последний ответ Ответить Цитировать 0
                          • SmolniyS Не в сети
                            Smolniy
                            отредактировано

                            1. Что-то я тебя не пойму. То ты говоришь про минуты и секунды (логичн предположить что суперслово "таймер" подразумевает часы), то про железяку
                            2. Я могу ошибаться, но это то что берется 8-м прерыванием? Так оно работает с частотой раз в 55 миллисекунд (18.(18) Гц), откуда тут взяться инфразвуку???
                            3. Если ты говоришь о счетчике тактов процессора, то и говори о счетчике тактов процессора, а не о "таймере".
                            4. В любом раскладе, в твоей формуле сплошные арифм. прогрессии - что "таймер", что "время", что "номер вызова функции", любая математика с ними будет той же прогрессией, арифм. или геом.. Координаты курсора изменяются во вполне конкретных пределах, плюс к тому они весьма дискретны. Температура из той же области. Такой генератор никому бесплатно не нужен.
                            5. Ты, я уверен, понимаешь, что игрушки - далеко не самая денежная и не самая важная область, где нужны генераторы случайных чисел. Криптография, оборонка, наука... Просто математика в принципе не дает необходимого матаппарата.
                            1 ответ Последний ответ Ответить Цитировать 0
                            • mjaffkM Не в сети
                              mjaffk
                              отредактировано

                              ай, ну вас.
                              таймер не часы и вообще это совсем разные вещи. работают отдельно и т.п. я не помню его аппаратного прерывания (мой старый компьютер давно сдох, а с ним всё, что у меня было написано, книжки дал почитать, записи потерял), а простым прерыванием (если это и можно) программировать будут его только анацефалы.. программируется он напрямую выводом-вводом в порты (есть такие никому неизвестные внутренние порты, для доступа к периферии) 61h и 42h (если верить яндексу, но вроде как правильные.. что-то помню еще). откуда 55 миллисекунд - я не знаю, но частоты там можно самому свои устанавливать.. не помню я всего этого.

                              а какой был бы идеальный генератор случайных чисел?.. блондинки отпадают.

                              з.ы. нашёл пример, вроде то.. правда, насчёт частоты ничего сказать не могу:

                              [code:nhpswxwk] model tiny
                              .code
                              org 100h

                              Start:
                              ; Тестовый пример:

                              ; Восходящая гамма:
                              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 NoSound

                              ret
                              
                              
                              	; Описание вспомогательных подпрограмм:
                              

                              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, al

                              pop	cx
                              pop	dx
                              pop	ax
                              ret
                              

                              Sound endp

                              NoSound proc
                              ; Выключает воспроизведение звука встроенным динамиком.
                              ; Просто обнуляем биты 0 и 1 в порте 61h.
                              in al, 61h
                              and al, 11111100b
                              out 61h, al
                              ret
                              NoSound endp

                              Delay 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 endp

                              end Start [/code:nhpswxwk]

                              1 ответ Последний ответ Ответить Цитировать 0
                              • SmolniyS Не в сети
                                Smolniy
                                отредактировано

                                Если б ты ссылку по диагонали пробежал, такого вопроса бы не было 🙂
                                Идеальный генератор случайных чисел был бы у физиков. Например, генератор каких-нить частиц с измерялкой. Кстати, мыслил ты с температурой процессора в правильном направлении- просто это решение зависит от камня, а надо математическое решение.

                                Физическое моделирование случайности с помощью таких физических явлений, как радиоактивное излучение, дробовой шум в электронной лампе или туннельный пробой полупроводникового стабилитрона не дают настоящих случайных процессов. Хотя известны случаи удачных применений их в генерации ключей, например, в российском криптографическом устройстве КРИПТОН. Поэтому вместо физических процессов для генерации гаммы применяют программы для ЭВМ, которые хотя и называются генераторами случайных чисел, но на самом деле выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей

                                А квотинг твой, имхо, лишний. Прости, это не мануал и не пояснение.

                                1 ответ Последний ответ Ответить Цитировать 0
                                • mjaffkM Не в сети
                                  mjaffk
                                  отредактировано

                                  думали про таймер - вот он вам и таймер.

                                  "выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей"..

                                  это никуда не годится.. особенно так, как это реализовано в ро. самое интересное - наблюдать двойные удары воришек. так, можно сделать 30-40 ударов подряд совершенно без двойного удара и наоборот.

                                  дело в том, что генератор случайных чисел, приведённый выше, работает вне зависимости от внешних условий, то есть, числа будут совпадать и вообще ряд чисел будет предопределён (какая ж это случайность?).. а в "моей" функции внешним фактором служит процессорное время, а на него влияет очень многое, начиная от температуры в комнате и кончая скоростью соединения Васи Пупкина из Смольного.

                                  можно, конечно, использовать и ваш метод, но тогда нужно как можно меньше инициировать поток чисел или инициировать возрастающими, разными числами.. ну и формула нужна нормальная.

                                  я дурак, не судите строго

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • FurcubeF Не в сети
                                    Furcube Заблокирован
                                    отредактировано

                                    интел уже давным давно делает в своих чипсетах хардварный генератор случайных чисел (на тепловом шуме вроде)
                                    но всё это фигня
                                    т.к. спак упёрся в сверхстабильную-и-неглючную жопену и на еАфину и смотреть не хочет.
                                    а разработчики жопены похоже ни с кем не общаются.

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • mjaffkM Не в сети
                                      mjaffk
                                      отредактировано

                                      хардварный генератор случайных чисел О___О

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • sivkaS Не в сети
                                        sivka
                                        отредактировано

                                        и чем вам rand() ненравится? работает отлично, раскидывает цыфры
                                        просто фантастика 😉 есть правдо погрешность в положительную
                                        сторону ну да и фиг с ней, нам от этого не хуже 😉

                                        что мне ненравится: это указаные в базе-даннах droprate типа (0.01),
                                        она не соответствует фактическому дропу! как на данный момент
                                        генератор случайны чисел имплементирован и работает, стоило бы
                                        писать вместо 0.01 просто неизвестно.

                                        повторяю: чтоб делать прогнозы типа 0.01, надо чтоб и генератор
                                        работал именно по одному типу шмотки!

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • mjaffkM Не в сети
                                          mjaffk
                                          отредактировано

                                          sivka, как это не соответствует?... почему это?

                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • sivkaS Не в сети
                                            sivka
                                            отредактировано

                                            @"mjaffk":
                                            sivka, как это не соответствует?... почему это?

                                            ну сам подумай , как мона длать какие-то прогнозы если генератор
                                            не только по одному типу ITEMa работает. это просто обсолютно
                                            случайные совподения, что вообще что-то дропается (немногу перегнул).

                                            прогноз droprate -> 0,01 (~10.000 мобов оного типа) уже некатит.

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • Первое сообщение
                                              Последнее сообщение