OFFSET
0,3
COMMENTS
A very simple hash function for the nonnegative integers.
a(A000079(n))=A133145(n); a(A000302(n))=A010685(n); a(A001025(n))=A161452(n); a(A161440(n))=0; a(A161441(n))=1; a(A161442(n))=2; a(A161443(n))=3; a(A161444(n))=4; a(A161445(n))=5; a(A161446(n))=6; a(A161447(n))=7; a(A161448(n))=8; a(A161449(n))=9; a(A161450(n))=10; a(A161451(n))=11; a(A161452(n))=12; a(A161453(n))=13; a(A161454(n))=14; a(A161455(n))=15. - Reinhard Zumkeller, Jun 10 2009
LINKS
R. Zumkeller, Table of n, a(n) for n = 0..10000
MAPLE
read("transforms") ;
A160700 := proc(n)
if n < 16 then
n;
else
XORnos(procname(floor(n/16)), modp(n, 16))
end if;
end proc: # R. J. Mathar, Jul 12 2016
MATHEMATICA
a[n_] := a[n] = If[n < 16, n, a[Floor[n/16]] ~BitXor~ Mod[n, 16]];
Table[a[n], {n, 0, 100}] (* Jean-François Alcover, Jan 25 2018 *)
PROG
(Maxima)
load(functs)$
A160700(n):=if n<16 then n else logxor(floor(n/16), mod(n, 16))$
makelist(A160700(n), n, 0, 60); /* Martin Ettl, Nov 05 2012 */
(Haskell)
import Data.Bits (xor)
a160700 n = a160700_list !! n
a160700_list = [0..15] ++ map f [16..] where
f x = a160700 x' `xor` m :: Int where (x', m) = divMod x 16
-- Reinhard Zumkeller, Nov 07 2012
(PARI) a(n)=my(t=n%16); while(n>15, n>>=4; t=bitxor(t, n%16)); t \\ Charles R Greathouse IV, Jan 25 2018
CROSSREFS
KEYWORD
nonn,easy
AUTHOR
Reinhard Zumkeller, Jun 01 2009
STATUS
approved