Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Генератор рандомных чисел

Тема в разделе "Разработка плагинов для новичков", создана пользователем Den_Abr, 20 фев 2014.

  1. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Наверное каждый имел с ним дело. Я заметил лично у себя, что в указанном промежутке(от 1 до 100 например) чаще всего выпадают числа(целые) из середины этого промежутка, что мешает высчитывать шанс какого либо действия. Может быть тоже кто-то обращал на это внимание и городил свои костыли? Хотелось бы глянуть.
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Берите для проверки число из центра.
     
  4. dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Это нормально что выпадают из середены с большей вероятностью, т.к. распределение случайной величины всё-таки нормальное, а не равномерное.

    Есть хороший генератор действительно случайных чисел http://habrahabr.ru/post/145283/ , но требует интернет доступ.

    Код:
    public int getRandom(int rand){
    return 42;
    }
    public int getRealytyRandom(int rand){
    return  System.currentTimeMillis() % rand;
    }
    
    
     
    Последнее редактирование: 20 фев 2014
    AngryLogic, 0bsid1, Mik1313 и ещё 1-му нравится это.
  5. kris13

    kris13 Активный участник Пользователь

    Баллы:
    78
    это случайность))) на таком малом промежутке любое скопление можно назвать плохим и пытаться с ним бороться, но это не имеет ни какого смысла. Могу вас заверить, что любая конструкция типа
    random.nextInt(random.nextInt()) или (random.nextInt()*random.nextInt()) % random.nextInt() - будет гораздо чаще попадать в одну область чем просто random.nextInt()
     
    Hephest и Den_Abr нравится это.
  6. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    Может ты каждый раз создаёшь новый объект Random? На сколько я знаю, все стандартные реализации ГПЧ используют равномерное распределение. А вот если ты таскаешь ГПЧ от зачарований, то там всё понятно, он треугольный.
     
  7. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Нет, через nextInt(). Чаще всего в промежутке от 1 до 100 выпадают числа от 40 до 80
     
  8. ptnk

    ptnk Старожил Пользователь

    Баллы:
    173
    Ну создай тогда свой. Стандартный не идеален, но для плагинов его вполне хватит. Напиши простую программу, которая бы сгенерировпла бы несколько триллионов значений и постройки график распределения.
     
    Den_Abr нравится это.
  9. ILUXA2011

    ILUXA2011 Активный участник Пользователь

    Баллы:
    68
    можешь привести пример обычного генератора?
     
  10. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Random r = new Random();
    int ri = r.nextInt();
     
  11. AdMiRaLL

    AdMiRaLL Активный участник Пользователь

    Баллы:
    68
    Skype:
    xxxpro100stasxxx
    Имя в Minecraft:
    AdMiRaLLL
    Обычная функция Random()
     
  12. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Функция?
     
  13. AdMiRaLL

    AdMiRaLL Активный участник Пользователь

    Баллы:
    68
    Skype:
    xxxpro100stasxxx
    Имя в Minecraft:
    AdMiRaLLL
    Да, как-то глупо сказал
     
  14. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Класс, не?
     
  15. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Конструктор, не?
     
  16. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Конструктор вызывается при создание экземпляра класса же.
     
  17. Автор темы
    Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Random - это класс
    new Random() экземпляр класса(я их всех зову конструкторами, сори)
     
  18. ILUXA2011

    ILUXA2011 Активный участник Пользователь

    Баллы:
    68
    можешь привести пример генератора рандомных чисел от 2 до 5 ? =)
     
  19. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    r.nextInt(max - min) + min;
     
  20. ILUXA2011

    ILUXA2011 Активный участник Пользователь

    Баллы:
    68
    + min это шаг?
     
  21. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    В вашем случае
    r.nextInt(5 - 2) + 2 т.е.
    r.nextInt(3) + 2
     

Поделиться этой страницей