Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет sadkov ([info]sadkov)
@ 2019-09-04 21:44:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: amused

XOR
Didn't knew one can use XOR to quickly make permutations:
https://crypto.stackexchange.com/questions/60147/reproducable-pseudorandom-permutation

and they also say XOR is related to factorials (usual way to get permutations: https://medium.com/@aiswaryamathur/find-the-n-th-permutation-of-an-ordered-string-using-factorial-number-system-9c81e34ab0c8 ). Guess everything is related to everything in the end. Anyway, I'm trying to make my shuffle function more efficient. Currently it calls rand for each element, which is, well, slow. Ideally, I need to generate one random number, which would pick the desired permutation.


list.shuffle =
| Xs = $copy
| N = Xs.size
| while N > 1
  | N--
  | R = N.rand
  | X = Xs.R
  | Xs.R <= Xs.N
  | Xs.N <= X
| Xs


(Читать комментарии)

Добавить комментарий:

Как:
(комментарий будет скрыт)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Имя пользователя:
Пароль:
Тема:
HTML нельзя использовать в теме сообщения
Сообщение: