Talk About Network

Google





Science > Crypt Random-numbers > Re: Skybuck's R...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 24 Topic 398 of 428
Post > Topic >>

Re: Skybuck's Racing Random Number Generator V2 (duplicates solved, lehmer used as well) EAT THAT ! =D

by "Skybuck Flying" <spam@[EMAIL PROTECTED] > Dec 26, 2007 at 11:02 AM

(Re-post of version 2, I forgot to include the other newsgroup as well, so 
there ya go folks ! ;))

Now you experts can play with some real numbers.

It's looking quite good.

Can you predict it ? HMMMMMMMM ?

program ProjectTest3;

{$APPTYPE CONSOLE}

// Skybuck's "pseudo (?) random number generator" based on
concurrency/race 
conditions.

// I shall call it: "Skybuck's Racing Random Number Generator"

// Now it's up to the "experts" to proof it's not random.

// Now it's up to the "experts" to predict the next generated random
number.

// That would be impressive which means I don't believe it's possible ;)
=D

// duplicate numbers are prevented by taking the result from thread 1 or 
thread 2 when it's done.

// interestingly enough the numbers do seem to be random on different runs
! 
;) =D

// v2

uses
  SysUtils,
  Cl*****;

var
 Done1 : boolean;
 Done2 : boolean;

 vLehmerRandSeed : integer = 0;
 vLehmerMultiplierA : integer = $08088405; // delphi's random parameter
 vLehmerAdditiveConstantC : integer = $1; // delphi's random parameter

 ParaLehmerModulesM : integer;
 RandomNumber : integer;

type
 Ttest1 = class(Tthread)
 private

 protected

  procedure Execute; override;
 public


 end;

procedure Ttest1.Execute;
begin
 while not terminated do
 begin
  Done1 := false;

  {$RANGECHECKS OFF}
  {$OVERFLOWCHECKS OFF}
  vLehmerRandSeed := vLehmerRandSeed * vLehmerMultiplierA;
  vLehmerRandSeed := vLehmerRandSeed + vLehmerAdditiveConstantC;
  RandomNumber := ( int64( longword(ParaLehmerModulesM) ) * int64( 
longword(vLehmerRandSeed) ) ) shr 32; // ****ft upper 32 bits to lower 32 
bits.
  {$OVERFLOWCHECKS ON}
  {$RANGECHECKS ON}

  Done1 := true;
 end;
end;

type
 Ttest2 = class(Tthread)
 private

 protected

  procedure Execute; override;
 public


 end;

procedure Ttest2.Execute;
begin
 while not terminated do
 begin
  Done2 := false;

  {$RANGECHECKS OFF}
  {$OVERFLOWCHECKS OFF}
  vLehmerRandSeed := vLehmerRandSeed * vLehmerMultiplierA;
  vLehmerRandSeed := vLehmerRandSeed + vLehmerAdditiveConstantC;
  RandomNumber := ( int64( longword(ParaLehmerModulesM) ) * int64( 
longword(vLehmerRandSeed) ) ) shr 32; // ****ft upper 32 bits to lower 32 
bits.
  {$OVERFLOWCHECKS ON}
  {$RANGECHECKS ON}

  Done2 := true;
 end;
end;

type
 Ttest3 = class(Tthread)
 private

 protected

  procedure Execute; override;
 public


 end;

procedure Ttest3.Execute;
var
 i : integer;
begin
 i := 0;
 while not terminated do
 begin
  if Done1 or Done2 then
  begin
   if i < 100 then
   begin
    writeln('Number ', i, ': ', RandomNumber );
    i := i + 1;
   end;
  end;
 end;
end;

var
 Test1 : Ttest1;
 Test2 : Ttest2;
 Test3 : Ttest3;
begin
 ParaLehmerModulesM := 2000000;

 Test1 := Ttest1.Create( true );
 Test2 := Ttest2.Create( true );
 Test3 := Ttest3.Create( true );

 writeln('press enter to start');
 readln;

 Test1.Resume;
 Test2.Resume;
 Test3.Resume;

 writeln('press enter to stop');
 readln;

 Test1.Terminate;
 Test2.Terminate;
 Test3.Terminate;

 Test1.WaitFor;
 Test2.WaitFor;
 Test3.WaitFor;

 Test1.Free;
 Test2.Free;
 Test3.Free;

 writeln('press enter to exit');
 readln;
end.

{

First run:

Number 0: 398792
Number 1: 866092
Number 2: 38131
Number 3: 571676
Number 4: 344072
Number 5: 1714387
Number 6: 1700082
Number 7: 174692
Number 8: 242132
Number 9: 878580
Number 10: 1101507
Number 11: 6000
Number 12: 1443182
Number 13: 1341074
Number 14: 128992
Number 15: 1014569
Number 16: 251558
Number 17: 261773
Number 18: 153057
Number 19: 595572
Number 20: 1658776
Number 21: 492741
Number 22: 1664116
Number 23: 1086962
Number 24: 1895747
Number 25: 1877973
Number 26: 1881052
Number 27: 892336
Number 28: 1000724
Number 29: 1800394
Number 30: 1933273
Number 31: 1757432
Number 32: 1745491
Number 33: 1677679
Number 34: 1991461
Number 35: 480379
Number 36: 1333358
Number 37: 1073735
Number 38: 1360658
Number 39: 1700224
Number 40: 1092007
Number 41: 742527
Number 42: 1689747
Number 43: 1452394
Number 44: 1249169
Number 45: 844687
Number 46: 127619
Number 47: 1275937
Number 48: 124140
Number 49: 279520
Number 50: 411681
Number 51: 1403264
Number 52: 1099637
Number 53: 1810507
Number 54: 76907
Number 55: 869416
Number 56: 1197831
Number 57: 330051
Number 58: 694180
Number 59: 821424
Number 60: 224259
Number 61: 973821
Number 62: 222758
Number 63: 1973975
Number 64: 176404
Number 65: 762197
Number 66: 1761676
Number 67: 279611
Number 68: 9475
Number 69: 1579698
Number 70: 1138999
Number 71: 1298263
Number 72: 882959
Number 73: 1454297
Number 74: 1855628
Number 75: 784301
Number 76: 916442
Number 77: 274528
Number 78: 1181196
Number 79: 1942902
Number 80: 363432
Number 81: 1172394
Number 82: 1505713
Number 83: 82129
Number 84: 1762523
Number 85: 1081490
Number 86: 441255
Number 87: 1718261
Number 88: 36829
Number 89: 125647
Number 90: 68374
Number 91: 1313201
Number 92: 220996
Number 93: 784612
Number 94: 990272
Number 95: 19558
Number 96: 1643136
Number 97: 559066
Number 98: 1729033
Number 99: 1432904

Second Run:

Number 0: 601353
Number 1: 850969
Number 2: 493068
Number 3: 1778436
Number 4: 338744
Number 5: 337199
Number 6: 775792
Number 7: 1174641
Number 8: 710776
Number 9: 421987
Number 10: 651811
Number 11: 1000625
Number 12: 572727
Number 13: 695978
Number 14: 283631
Number 15: 285022
Number 16: 1262639
Number 17: 279436
Number 18: 1444648
Number 19: 35199
Number 20: 1153416
Number 21: 442745
Number 22: 931275
Number 23: 1577362
Number 24: 734889
Number 25: 1020672
Number 26: 651251
Number 27: 351089
Number 28: 1517943
Number 29: 1005915
Number 30: 118868
Number 31: 454407
Number 32: 1043757
Number 33: 627776
Number 34: 29210
Number 35: 1070077
Number 36: 901946
Number 37: 1116270
Number 38: 363722
Number 39: 891859
Number 40: 1386557
Number 41: 897796
Number 42: 1500
Number 43: 1719075
Number 44: 445056
Number 45: 416223
Number 46: 639592
Number 47: 580672
Number 48: 1685112
Number 49: 554751
Number 50: 1935984
Number 51: 492884
Number 52: 715309
Number 53: 54643
Number 54: 523709
Number 55: 1830674
Number 56: 903298
Number 57: 1654145
Number 58: 102059
Number 59: 1083561
Number 60: 871178
Number 61: 728490
Number 62: 1272532
Number 63: 209510
Number 64: 1267831
Number 65: 312020
Number 66: 1437286
Number 67: 476418
Number 68: 753427
Number 69: 372701
Number 70: 1955126
Number 71: 1670354
Number 72: 981665
Number 73: 1587510
Number 74: 973585
Number 75: 40957
Number 76: 1236929
Number 77: 1482954
Number 78: 517500
Number 79: 1395900
Number 80: 374453
Number 81: 1019994
Number 82: 1727789
Number 83: 722668
Number 84: 1502115
Number 85: 1810203
Number 86: 1183363
Number 87: 43126
Number 88: 1421851
Number 89: 613006
Number 90: 134208
Number 91: 1289960
Number 92: 788137
Number 93: 248376
Number 94: 1418343
Number 95: 1182001
Number 96: 429917
Number 97: 1727004
Number 98: 20611
Number 99: 1239182

Third run:

Number 0: 1400859
Number 1: 1311818
Number 2: 1027287
Number 3: 566018
Number 4: 804711
Number 5: 1950674
Number 6: 148157
Number 7: 148157
Number 8: 148157
Number 9: 309649
Number 10: 1444648
Number 11: 593894
Number 12: 195077
Number 13: 746653
Number 14: 1546678
Number 15: 963893
Number 16: 308202
Number 17: 145238
Number 18: 863218
Number 19: 389039
Number 20: 1443248
Number 21: 1541864
Number 22: 1938236
Number 23: 1495254
Number 24: 1271039
Number 25: 795880
Number 26: 1710340
Number 27: 813001
Number 28: 921967
Number 29: 294642
Number 30: 1933781
Number 31: 1510224
Number 32: 1618123
Number 33: 1025109
Number 34: 1849811
Number 35: 1187559
Number 36: 1514997
Number 37: 1497229
Number 38: 902165
Number 39: 1785992
Number 40: 543806
Number 41: 438230
Number 42: 1689112
Number 43: 1679502
Number 44: 1821999
Number 45: 209703
Number 46: 181340
Number 47: 558277
Number 48: 318602
Number 49: 1861913
Number 50: 1364595
Number 51: 295263
Number 52: 623212
Number 53: 1447495
Number 54: 1387397
Number 55: 1172756
Number 56: 738719
Number 57: 1874501
Number 58: 1725739
Number 59: 1169887
Number 60: 331417
Number 61: 420609
Number 62: 1864222
Number 63: 319987
Number 64: 261296
Number 65: 684482
Number 66: 1025287
Number 67: 358437
Number 68: 1490672
Number 69: 1538725
Number 70: 705472
Number 71: 1040673
Number 72: 170305
Number 73: 653300
Number 74: 482700
Number 75: 1152559
Number 76: 1380885
Number 77: 1659549
Number 78: 1588409
Number 79: 1199944
Number 80: 1945148
Number 81: 1682487
Number 82: 102292
Number 83: 1840783
Number 84: 1223075
Number 85: 1788481
Number 86: 40952
Number 87: 37555
Number 88: 1513026
Number 89: 1788637
Number 90: 1069420
Number 91: 462510
Number 92: 1322047
Number 93: 237960
Number 94: 1663932
Number 95: 445527
Number 96: 76188
Number 97: 1498670
Number 98: 591881
Number 99: 639003

}
 




 24 Posts in Topic:
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-26 11:02:15 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-26 11:10:43 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
=?ISO-8859-1?Q?Danny_Str=  2007-12-26 11:21:43 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Jim P <Jim_P@[EMAIL PR  2007-12-26 16:09:42 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Rudy Velthuis"  2007-12-27 00:17:35 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-27 01:37:43 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Jim P <Jim_P@[EMAIL PR  2007-12-26 18:55:52 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-27 06:43:45 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Jim P <Jim_P@[EMAIL PR  2007-12-26 22:33:57 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Rudy Velthuis"  2007-12-27 12:44:24 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
William <william_156@[  2007-12-30 17:24:55 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-31 09:29:03 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-31 09:43:46 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
=?ISO-8859-1?Q?Danny_Str=  2007-12-31 10:28:23 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Jim P <Jim_P@[EMAIL PR  2007-12-31 10:35:35 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Zathras <webnewsgroup@  2007-12-31 10:02:51 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-31 15:31:54 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"Skybuck Flying"  2007-12-31 15:44:52 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
"MikeB" <m.b  2007-12-31 10:12:35 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Zathras <webnewsgroup@  2007-12-31 16:53:05 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
=?ISO-8859-1?Q?Danny_Str=  2007-12-31 18:07:27 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Zathras <webnewsgroup@  2008-01-01 11:23:56 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Jim P <Jim_P@[EMAIL PR  2007-12-31 10:34:46 
Re: Skybuck's Racing Random Number Generator V2 (duplicates solv
Zathras <webnewsgroup@  2008-01-01 11:25:34 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
localhost-V2008-12-19 Thu Jan 8 0:05:32 PST 2009.