• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# Bit permutations (oeis.org/A195665) mate2code  Aug 1st, 2013 111 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. % code to calculate bit-permutations, here matrix M of size 120x32
2. % below calculations for OEIS A195665
3.
4. num = 5 ;
5. fnum = factorial(num) ;
6. pnum = 2^num ;
7.
8. Powtwo = zeros(1,num) ;
9. for m=1:num
10.     Powtwo(m) = 2^(m-1) ;
11. end
12.
13. Perms = perms(Powtwo) ;  % all permutations
14. Perms = horz(sortrows(horz(Perms))) ;  % reverse colex
15.
16. % matrix
17.
18. M = zeros( fnum , pnum ) ;
19. for m=1:fnum
20.     M(m,1:pnum) = cv2wp( Perms(m,:) ) ;  % compression vector to Walsh permutation
21. end
22.
23. % sequence
24.
25. Fact = 1 ;  % when m reaches this factorial, the current row length will be applied the last time, than doubled
26. Count = 2 ;  % used to calculate the next Fact
27. Length = 2 ;  % current row length
28. S = [] ;
29. for m=1:fnum
30.     S = [ S M(m,1:Length) ] ;
31.     if m == Fact
32.         Fact = Fact * Count ;
33.         Count = Count + 1 ;
34.         Length = 2 * Length ;
35.     end
36. end
37.
38. % b-file
39.
40. B = '' ;
41. for m=1:length(S)
42.     B = [ B num2str(m-1) ' ' num2str(S(m)) '\n' ] ;
43. end
44. fid = fopen('bfile','wt');
45. fprintf(fid,char(B));
46. fclose(fid);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top