Sujet : Re: permutation sur N quelconque
De : me (at) *nospam* pla.net.invalid (robby)
Groupes : fr.sci.mathsDate : 24. Aug 2024, 14:08:54
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <66c9db66$0$3708$426a74cc@news.free.fr>
References : 1 2 3
User-Agent : Mozilla Thunderbird
Le 24/08/2024 à 14:49, efji a écrit :
from numpy import random
je parle de programmer vraiment l'algo ( en C, GLSL, assembleur )...
pas d'utiliser un package tout fait (et possiblement couteux).
Mais le "sans boucle" me laisse perplexe :)
... et sans stockage de la permutation, j'ai oublié de préciser.
xorshift(index) , linearcongruence(index), etc sont de telles opérations directes sans boucle ni stockage.
Bref, ce que je recherche est une fonction de hashage.
Sur 2^n , ce sont souvent naturellement des permutations.
sur n quelconque, obtenir l'uniformité est déjà pas simple, et que ce soit une permutation non plus.
Pour certaines valeurs, par ex 12 = 4x3, j'envisage des solutions, genre
a0 = hash4(i,seed0);
a1 = hash4(i,seed1); if (a1==3) a1 = hash4(3,seed1); // is hash3
return a0 + a1*4;
mais c'est difficilement généralisable.
a noter que les hash4 peuvent consister a récupérer des paires de bits dans un unique hash entier... s'il est vraiment de bonne qualité ( randomness pour tous les sous-groupes de bits ).
-- Fabrice