SE250:lab-5:kkan048
This is my testing condition.
int sample_size = 300; int n_keys = 1000; int table_size = 100;
Sample_size can not be too low/high.If it is too low/high,the results between different function will not be shown.
buzhash is a most common hash function.So i think it is a high standard function in the test. buzhash has a Entropy greater than 7 just after sample_size 300. So i choose 300 as a sample size.
SAMPLE SIZE 300 In Typical entropy source, buzhash buzhashn hash CRC base256 Entropy : 7.258579 7.392708 6.288118 3.901501 Optimum compression: 9% 7% 21% 51% Chi square: 25.00% 99.00% 0.01% 0.01% Arithmetic mean:(127.5 = random) 127.6200 122.2267 101.9633 103 Monte Carlo error: 6.95% 4.41% 4.41% 27.32% Serial correlation coefficient: 0.030493 0.035384 0.072278 0.282614 (totally uncorrelated = 0.0) In Low entropy source, buzhash buzhashn hash CRC base256 Entropy : 7.348095 7.392708 3.614340 0.000000 Optimum compression: 8% 7% 54% 100% Chi square: 75.00% 99.00% 0.01% 0.01% Arithmetic mean:(127.5 = random) 131.6200 122.2267 94.1633 97 Monte Carlo error: 3.23% 4.41% 27.32% 27.32% Serial correlation coefficient: -0.083985 0.035384 -0.386868 all values equal! (totally uncorrelated = 0.0)
Unix Random Number Generator SAMPLE SIZE 300 In Typical entropy source, Rand high_rand Entropy of the output : 7.258579 7.392708 Optimum compression: 9% 7% Chi square: 25.00% 99.00% Arithmetic mean:(127.5 = random) 127.6200 122.2267 Monte Carlo error: 6.95% 4.41% Serial correlation coefficient: 0.030493 0.035384 (totally uncorrelated = 0.0) In Low entropy source, Rand high_rand Entropy of the output : 7.317278 7.247632 Optimum compression: 8% 9% Chi square: 50.00% 25.00% Arithmetic mean:(127.5 = random) 108.3600 128.2033 Monte Carlo error: 14.59% 0.69% Serial correlation coefficient: -0.041849 0.010037 (totally uncorrelated = 0.0)
I am still looking at the randomness meaning of the individual output parameters. So i just rank them in 3 group.
Rank 1:buzhash,buzhashn,UNRG Rank 2:hash CRC Rank 3:base256