[Plugin] [REL] MerRandom v2.0 - Mersenne Twister Randoms
#13

Quote:
Originally Posted by Tannz0rz
In this case, speed honestly shouldn't be a reason as to why you wouldn't want to use this. The randoms with Mersenne are, pardon my lack of words, more "random", while the pawn-generated version is a tad bit sad.
The real question is, is it REALLY worth using this plugin? I'm sorry if you take my posts as offensive, cyber_punk, but i like discussing this sort of things and i like testing/comparing things, and also giving proofs, not just saying. We are here to progress isn't it?

I did a small code to compare probabilities of each functions:
pawn Code:
#define TESTS  20  //How many times to reproduce the test
#define CALLS  3  //How many function calls
#define MAX   3  //Numbers from 0 to MAX (not included)

//Obviously..
#if CALLS < MAX
  #undef CALLS
  #define CALLS MAX
#endif
pawn Code:
new a[MAX][2], i, j;

public OnFilterScriptInit()
{
  for (i = 0; i < TESTS; i++)
  {
    for (j = 0; j < CALLS; j++)
    {
      a[ random(MAX)  ][0]++;
      a[ MRandom(MAX-1) ][1]++;
    }
    for (j = 0; j < MAX; j++)
    {
      printf("Probability of %4d -> random: %3.2f%% - MRandom: %3.2f%%",j, (a[j][0]/CALLS.0)*100,(a[j][1]/CALLS.0)*100);
      a[j][0] = 0;
      a[j][1] = 0;
    }
    print(" ");
  }
}
This gives those results:
Code:
Probability of  0 -> random: 33.33% - MRandom: 33.33%
Probability of  1 -> random:  0.00% - MRandom: 33.33%
Probability of  2 -> random: 66.66% - MRandom: 33.33%

Probability of  0 -> random:  0.00% - MRandom: 66.66%
Probability of  1 -> random: 100.00% - MRandom:  0.00%
Probability of  2 -> random:  0.00% - MRandom: 33.33%

Probability of  0 -> random: 100.00% - MRandom: 33.33%
Probability of  1 -> random:  0.00% - MRandom: 33.33%
Probability of  2 -> random:  0.00% - MRandom: 33.33%

Probability of  0 -> random: 33.33% - MRandom: 33.33%
Probability of  1 -> random: 33.33% - MRandom: 66.66%
Probability of  2 -> random: 33.33% - MRandom:  0.00%

Probability of  0 -> random: 33.33% - MRandom: 66.66%
Probability of  1 -> random:  0.00% - MRandom: 33.33%
Probability of  2 -> random: 66.66% - MRandom:  0.00%

Probability of  0 -> random:  0.00% - MRandom: 66.66%
Probability of  1 -> random: 33.33% - MRandom:  0.00%
Probability of  2 -> random: 66.66% - MRandom: 33.33%

Probability of  0 -> random: 66.66% - MRandom: 66.66%
Probability of  1 -> random:  0.00% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom: 33.33%

Probability of  0 -> random:  0.00% - MRandom: 33.33%
Probability of  1 -> random: 33.33% - MRandom:  0.00%
Probability of  2 -> random: 66.66% - MRandom: 66.66%

Probability of  0 -> random: 33.33% - MRandom: 33.33%
Probability of  1 -> random: 33.33% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom: 66.66%

Probability of  0 -> random:  0.00% - MRandom: 66.66%
Probability of  1 -> random: 66.66% - MRandom: 33.33%
Probability of  2 -> random: 33.33% - MRandom:  0.00%

Probability of  0 -> random:  0.00% - MRandom: 100.00%
Probability of  1 -> random: 66.66% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom:  0.00%

Probability of  0 -> random: 66.66% - MRandom: 33.33%
Probability of  1 -> random:  0.00% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom: 66.66%

Probability of  0 -> random: 33.33% - MRandom:  0.00%
Probability of  1 -> random: 33.33% - MRandom: 33.33%
Probability of  2 -> random: 33.33% - MRandom: 66.66%

Probability of  0 -> random: 66.66% - MRandom:  0.00%
Probability of  1 -> random: 33.33% - MRandom: 100.00%
Probability of  2 -> random:  0.00% - MRandom:  0.00%

Probability of  0 -> random: 33.33% - MRandom:  0.00%
Probability of  1 -> random: 33.33% - MRandom: 33.33%
Probability of  2 -> random: 33.33% - MRandom: 66.66%

Probability of  0 -> random: 100.00% - MRandom: 33.33%
Probability of  1 -> random:  0.00% - MRandom: 66.66%
Probability of  2 -> random:  0.00% - MRandom:  0.00%

Probability of  0 -> random: 66.66% - MRandom:  0.00%
Probability of  1 -> random:  0.00% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom: 100.00%

Probability of  0 -> random: 33.33% - MRandom: 33.33%
Probability of  1 -> random: 33.33% - MRandom: 33.33%
Probability of  2 -> random: 33.33% - MRandom: 33.33%

Probability of  0 -> random: 66.66% - MRandom: 33.33%
Probability of  1 -> random:  0.00% - MRandom: 33.33%
Probability of  2 -> random: 33.33% - MRandom: 33.33%

Probability of  0 -> random:  0.00% - MRandom: 33.33%
Probability of  1 -> random: 66.66% - MRandom:  0.00%
Probability of  2 -> random: 33.33% - MRandom: 66.66%
As you can see, even for a random number between 0, 1, and 2, the random() function (which suck for small values, i agree) give pretty similar results compared to MRandom(). A perfect random generator should always give 33% for each of these tests, but i guess it's impossible. You could try increase MAX and see what happen: results are more and more similar as MAX is increased.

I agree that this MRandom() give sometimes more randomized numbers than random(), at least for small values, but for me it's really not worth using it.
Reply


Messages In This Thread
[REL] MerRandom v2.1 - Mersenne Twister Randoms - by cyber_punk - 18.11.2009, 15:48
Re: [REL] MerRandom - Mersenne Twister Randoms - by Google63 - 18.11.2009, 16:42
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 18.11.2009, 16:48
Re: [REL] MerRandom - Mersenne Twister Randoms - by Tannz0rz - 18.11.2009, 18:45
Re: [REL] MerRandom - Mersenne Twister Randoms - by Correlli - 18.11.2009, 18:47
Re: [REL] MerRandom - Mersenne Twister Randoms - by potato - 18.11.2009, 21:39
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 18.11.2009, 22:40
Re: [REL] MerRandom - Mersenne Twister Randoms - by potato - 19.11.2009, 12:17
Re: [REL] MerRandom - Mersenne Twister Randoms - by yom - 19.11.2009, 12:58
Re: [REL] MerRandom - Mersenne Twister Randoms - by Tannz0rz - 19.11.2009, 19:08
Re: [REL] MerRandom - Mersenne Twister Randoms - by MenaceX^ - 19.11.2009, 19:54
Re: [REL] MerRandom - Mersenne Twister Randoms - by Tannz0rz - 19.11.2009, 20:21
Re: [REL] MerRandom - Mersenne Twister Randoms - by yom - 19.11.2009, 20:53
Re: [REL] MerRandom - Mersenne Twister Randoms - by MenaceX^ - 20.11.2009, 12:37
Re: [REL] MerRandom - Mersenne Twister Randoms - by yom - 20.11.2009, 12:39
Re: [REL] MerRandom - Mersenne Twister Randoms - by Woet - 20.11.2009, 12:46
Re: [REL] MerRandom - Mersenne Twister Randoms - by MenaceX^ - 20.11.2009, 12:55
Re: [REL] MerRandom - Mersenne Twister Randoms - by DiDok - 20.11.2009, 13:52
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 20.11.2009, 18:12
Re: [REL] MerRandom - Mersenne Twister Randoms - by potato - 20.11.2009, 20:16
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 21.11.2009, 02:45
Re: [REL] MerRandom - Mersenne Twister Randoms - by potato - 21.11.2009, 12:31
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 21.11.2009, 12:55
Re: [REL] MerRandom - Mersenne Twister Randoms - by DiDok - 21.11.2009, 14:40
Re: [REL] MerRandom - Mersenne Twister Randoms - by DiDok - 26.11.2009, 14:19
Re: [REL] MerRandom - Mersenne Twister Randoms - by Destrojer - 26.11.2009, 15:31
Re: [REL] MerRandom - Mersenne Twister Randoms - by Google63 - 01.12.2009, 16:50
Re: [REL] MerRandom - Mersenne Twister Randoms - by MJ! - 11.12.2009, 17:55
Re: [REL] MerRandom - Mersenne Twister Randoms - by Correlli - 11.12.2009, 18:03
Re: [REL] MerRandom - Mersenne Twister Randoms - by Tannz0rz - 11.12.2009, 18:04
Re: [REL] MerRandom - Mersenne Twister Randoms - by MJ! - 11.12.2009, 18:38
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 30.08.2010, 12:10
Re: [REL] MerRandom - Mersenne Twister Randoms - by wups - 05.09.2010, 12:09
Re: [REL] MerRandom - Mersenne Twister Randoms - by cyber_punk - 05.09.2010, 14:35
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by nemesis- - 07.09.2010, 03:18
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by cyber_punk - 07.09.2010, 13:49
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by nemesis- - 07.09.2010, 14:28
Respuesta: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by xenowort - 07.09.2010, 17:43
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by cyber_punk - 26.09.2010, 23:01
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by cyber_punk - 27.10.2010, 20:52
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by MisterTickle - 22.09.2011, 08:53
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by [L3th4l] - 22.09.2011, 09:22
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by aRoach - 22.09.2011, 12:36
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by cyber_punk - 22.09.2011, 17:01
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by Edvin - 22.09.2011, 18:43
Re: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by Kyle - 27.06.2012, 10:59
Respuesta: [REL] MerRandom v2.0 - Mersenne Twister Randoms - by Siralos - 15.08.2012, 15:23

Forum Jump:


Users browsing this thread: 1 Guest(s)