]> AND Private Git Repository - 16dcc.git/blob - evalPRNG/calculeTailleFenetreMin.py
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
pch, section 6
[16dcc.git] / evalPRNG / calculeTailleFenetreMin.py
1 import random as rn
2 import numpy as np 
3 from math import *
4 from optparse import OptionParser
5
6  
7 def bin(elem,n):
8     """Convertit un nombre en binaire"""
9     q = -1
10     res =[0 for i in range(n)]
11     i = 1
12     while q != 0:
13         q = elem // 2
14         r = elem % 2
15         res[n-i] =  r
16         elem = q
17         i+=1
18     return res
19
20 def dec(ch,n):
21     l = len(ch)
22     acc = 0
23     for i in range(l):
24         if ch[i]==1 :
25             acc = acc + 2**(n-i-1)        
26     return acc
27
28
29 f=[2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4]
30 f=[5,2,6,3,5,4,6,1,5,4,6,3,5,2,6,3,5,1,6,4,6,1,5,3,6,2,6,1,5,2,6,4,5,2,6,3,5,4,6,1,5,4,6,3,5,2,6,3,5,1,6,4,6,1,5,3,6,2,6,1,5,2,6,4]
31
32 f=[4, 2, 1, 5, 1, 2, 6, 2, 1, 2, 6, 5, 3, 5, 6, 1, 4, 6, 4, 5, 4, 1, 3, 2, 5, 2, 3, 6, 3, 2, 3, 4, 6, 4, 5, 4, 1, 5, 6, 4, 6, 5, 3, 5, 2, 6, 2, 5, 3, 4, 1, 4, 3, 2, 3, 1, 4, 1, 3, 2, 1, 2, 4, 6]
33
34 def main():
35     global f
36     n = int(log(len(f))/log(2))
37     lf = len(f)
38     f = f+f
39     mx=n
40     for start in range(lf):
41         test = True
42         t=n
43         #print start, f[start:start+t],set(f[start:start+t]),len(set(f[start:start+t])),n
44         while len(set(f[start:start+t]))<n:
45             t +=1
46         mx = max(mx,t)
47         #print "mx",mx
48         start +=1
49         t=n
50     print f,mx
51             
52         
53 main()