О поиске магических чисел

Тема в разделе "Машинное отделение", создана пользователем WinPooh, 29 май 2008.

  1. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Поиск в пространстве значений ~(Rand64() | Rand64()) оказывается гораздо эффективнее, чем просто в Rand64(). Причина, вероятно, в том, что хороший набор magic-ов состоит из достаточно разрежённых чисел, см. например http://www.prism.gatech.edu/~gtg365v/Buzz/research/magic/magics.txt

    С линейным конгруэнтным 64-битным генератором по первой формуле у меня числа для всей доски находятся меньше чем за минуту, в то время как со второй - на поиск для ладьи a1 или h8 уходило по несколько часов.

    ~(Rand64() | Rand64() | Rand64()) тоже неплохо работает.
     
  2. akupr
    Оффлайн

    akupr Новичок

    Репутация:
    0
    А что, генератор в Греке на магических числах работает?
    Для ладьи скольки-битовый используется?
     
  3. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    В 6-й версии, которая пока только пишется.
    Для ладьи - 12 бит, для слона - 9.
    Есть ещё вариант с разделением ладьи по направлениям, на 2 таблицы по 6 бит. Для экономии памяти.
     
  4. akupr
    Оффлайн

    akupr Новичок

    Репутация:
    0
    12...
    Я года полтора назад изучал вопрос.
    На тот момент лучше, чем 12-битовых генераторов не было (если не считать "гибридный" того же Праду).
    Я нашел несколько 10-битовых чисел, но, возможно, это утопия — 10-битовый генератор для ладьи.
    Винни, Вы не в курсе, сейчас кто-нибудь нашел все числа хотя бы для 11-битового генератора?