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

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

  1. TopicStarter Overlay

    WinPooh В.М.

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

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

    ~(Rand64() | Rand64() | Rand64()) тоже неплохо работает.
  2. akupr Новичок

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

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.492
    Симпатии:
    3.122
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    В 6-й версии, которая пока только пишется.
    Для ладьи - 12 бит, для слона - 9.
    Есть ещё вариант с разделением ладьи по направлениям, на 2 таблицы по 6 бит. Для экономии памяти.
  4. akupr Новичок

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

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