1,5 miljoonaa meni sivu suun!

Seuraa 
Viestejä8560
Liittynyt16.3.2005

"1,5 miljoonaa meni sivu suun!
Julkaistu: 23.02.2009 20:18

Seinäjoen Kauppakadun R-kioskillle palautettiin viime viikolla lottokuponki, jonka jokerissa oli noin 1.5 miljoonan euron päävoitto.

Lottolapun palauttanut mies ei ollut kuitenkaan pelannut jokeria. Miljoonapotti jäi näin saamatta.

Asiasta kertoi maanantaina Ilkka-lehti verkkosivullaan.

Lottokuponki on puukehyksissä nähtävillä Kauppakadun R-kioskin tiskillä. Tietojen mukaan kupongin palauttanut mies oli suhtautunut jokerivoiton menetykseen huumorilla."

Lainaus on Iltalehdestä. Herättelen taas perhosvaikutusta henkiin. Olen sitä mieltä, ettei ole mitenkään varmaa tuokaan voitto vaihtoehtoisena. Eli jos heppu olisi valinnut jokerin voimaan, olisi satunnaisgeneraattori osoittanut jotain muuta lukua pelkästään ajoitussyistä. Valintatilanne on ajallisesti erilainen riippuen vastauksesta "ei" tai "joo" sekä ei- ja joo-näppäimien sijoittelusta johtuen. Vai onko jokeri-numero tehty etukäteen? En usko. Jos on, niin silloin joutuu arvioimaan ulottuuko perhosvaikutus muuta kautta arvontaan asti.

Perhosvaikutus on noihin ajoitusjuttuihin ehkä väärä nimitys, mutta samaa sukua kuitenkin.

Hiirimeluexpertti. Majoneesitehtailija. Luonnontieteet: Maailman suurin uskonto. Avatar on halkaistu tykin kuula

Kommentit (11)

visti
Seuraa 
Viestejä6331
Liittynyt16.11.2009
Paul M
"1,5 miljoonaa meni sivu suun!
Julkaistu: 23.02.2009 20:18

Seinäjoen Kauppakadun R-kioskillle palautettiin viime viikolla lottokuponki, jonka jokerissa oli noin 1.5 miljoonan euron päävoitto.

Lottolapun palauttanut mies ei ollut kuitenkaan pelannut jokeria. Miljoonapotti jäi näin saamatta.

Asiasta kertoi maanantaina Ilkka-lehti verkkosivullaan.

Lottokuponki on puukehyksissä nähtävillä Kauppakadun R-kioskin tiskillä. Tietojen mukaan kupongin palauttanut mies oli suhtautunut jokerivoiton menetykseen huumorilla."

Lainaus on Iltalehdestä. Herättelen taas perhosvaikutusta henkiin. Olen sitä mieltä, ettei ole mitenkään varmaa tuokaan voitto vaihtoehtoisena. Eli jos heppu olisi valinnut jokerin voimaan, olisi satunnaisgeneraattori osoittanut jotain muuta lukua pelkästään ajoitussyistä. Valintatilanne on ajallisesti erilainen riippuen vastauksesta "ei" tai "joo" sekä ei- ja joo-näppäimien sijoittelusta johtuen. Vai onko jokeri-numero tehty etukäteen? En usko. Jos on, niin silloin joutuu arvioimaan ulottuuko perhosvaikutus muuta kautta arvontaan asti.

Perhosvaikutus on noihin ajoitusjuttuihin ehkä väärä nimitys, mutta samaa sukua kuitenkin.


Tarinan opetus lottoajille on, että sinun on osallistuttava mahd. moneen rahapeliin. Me muut näemme silmissämme puoli miljoonaa kehystettyä kuponkia, joissa jokeri ohitettiin rahaa säästäen.

Paul M
Seuraa 
Viestejä8560
Liittynyt16.3.2005

Tuleeko Jokerinumero randomina? Eli vaihtuuko se joka mikrosekunti noissa ostotilanteissa? Vai onko numero saatavilla ennen ostopäätöstä? Jos se on mikrosekuntirandomi, niin on huijausta esitellä ostamatonta voittoa menetettynä voittona.

Hiirimeluexpertti. Majoneesitehtailija. Luonnontieteet: Maailman suurin uskonto. Avatar on halkaistu tykin kuula

Vierailija

Itse tarvitsin hyvää satunnaislukugeneraattoria. Sellaisen ohjelmointi löytyi 64-bittisistä alkuluvuista. Generaattorissa siis siemenluvut muuttuvat hiljalleen kokonaan uusiksi.

Generaattori laskee joka askeleella jonkin verran seuraavaa alkulukua. Kun se löytyy, siemenlukuja vieritetään yksi ylöspäin, ja alimmaiseksi tulee uusi alkulukuinen kokonaisluku.

Tämän lisäksi operaattorit +=, -=, ^= ja bittisiirrot, etc. operaattorit saavat kyytiä. Omasta mielestä satunnaisuus on parempi, kuin mitä on lottokoneessa. Nyt päästään varsinaisesti asian ytimeen:

Lottopallot pitäisi pyöriä omalla koneella yhtä hyvin, silti tilastollinen yhteensopivuus heittää eniten härän persettä päivä-kenossa.

Olisi melko helppo tehdä "satunnais-" generaattori, joka arpoo kaikkien rivien ohi suhteellisen hyvin. Veikkaus-Lotto huijaa. Eipä olisi uskonut siitä putiikista aivan heti, että linssiin viilaaminen on näin räikeää.

Vierailija

Ja siinä on koodi, jos joku haluaa exelillä tutkia, kuinka monta prosenttia satunaisempia on tämän funktion tuottamat satunnaisluvut, kuin esim.
kääntäjän mukana tullut valmis random, drand tai rand -funktio.

[code:4q51emh3]
// This produktion is Makkaraperseen.
// Copyright only Makkaraperse.
// Made in Makkaraperse.
// 6.9.20011 M.perse.

#pragma #hdrstop

#include
#include
#include
#include
#include
#include

typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned __int64 uint64;

unsigned rnd(unsigned max)
{
static uint64 luku[4]={0};
static uint64 next=7;
static uint64 jak=5;

// funktion alustus-lohko. jos lohkoa
// yritetään ajaa toista kertaa, syntyy
// virhe-tilanne, koska funktio alkaisi
// luultavasti toistamaan samaa sykliä.
if (luku[0]==0x00)
{
if (next!=7)
{
#define VIRHE 0
assert(VIRHE);
}
else
{
luku[0]=2;
luku[1]=2;
luku[2]=3;
luku[3]=5;
}
}

// lohkossa lasketaan vähän
// seuraavaa alkulukua.
if ((jak+=2)>=next)
{
// next oli uusi alkuluku. on selkeästi
// parempi xor:ata next vain lukuihin.
luku[0]^=next;
luku[1]^=next;
luku[2]^=next;
luku[3]^=next;
// ja seuraavan alkuluvun haku.
next+=2; jak=3;
}
else
{
if (!(next%jak))
{
// next ei ollut alkuluku,
// kokeillaan next+2:lla.
next+=2; jak=3;
}
}

// sekoitetaan vähän pakkaa
luku[0] += ((luku[0]<< 2)^(luku[1]>> 3)) - ((luku[2]<< 5)^(luku[3]>> 7));
luku[1] -= ((luku[1]<<11)^(luku[2]>>13)) + ((luku[3]<<17)^(luku[0]>>19));
luku[2] += ((luku[2]<<23)^(luku[3]>>29)) - ((luku[0]<<31)^(luku[1]>>37));
luku[3] -= ((luku[3]<<41)^(luku[0]>>43)) + ((luku[1]<<47)^(luku[2]>>53));

// palautetaan uusi "satunnaisluku"
return (unsigned)((luku[0]+luku[1]-luku[2]*luku[3])%max);
}
[/code:4q51emh3]

Vierailija

No onnittelut vain Makkaraperseelle hyvästä funktiosta.

1. Nimittäin, laitetaan tuo sinun funktiosi arpomaan nollaa ja ykköstä.

2. Laitetaan Borlandin kääntäjän valmisfunktio arpomaan niinikään nollaa ja ykköstä viereen.

3. Jos satunnaislukufunktio on hyvä, sen ei saa pitää mitään lukua erityisasemassa.

4. Näin ollen funktion tulee arpoa ykköstä ja nollaa tilastoon niin, että niiden erotus pyörii jatkuvasti plus tahi miinuksen ympärillä.

5. Nyt tuossa tulosteessa on:

524106(M.perseen nollat) 524459(Borlandin nollat)
524471(M.perseen ykköset) 524118(Borlandin Ykköset)
-365(M.perseen erotus) 341(Borlandin erotus)

Lasketaan jälleen tilastoon 2^20 tapausta, ja tulostetaan tilanne.

TILASTO
======

1048356 1049394
1048797 1047759
-441 1635

1572329 1574174
1573400 1571555
-1071 2619

2096719 2098822
2097586 2095483
-867 3339

2621202 2623079
2621679 2619802
-477 3277

3145410 3147849
3146047 3143608
-637 4241

3670651 3672662
3669382 3667371
1269 5291

4194005 4197258
4194604 4191351
-599 5907

4718342 4722093
4718843 4715092
-501 7001

5242842 5246978
5242919 5238783
-77 8195

5767017 5770609
5767320 5763728
-303 6881

6291829 6294451
6291084 6288462
745 5989

6816223 6818279
6815266 6813210
957 5069

7340451 7342680
7339614 7337385
837 5295

7864905 7866114
7863736 7862527
1169 3587

8388703 8390189
8388514 8387028
189 3161

8913436 8914576
8912357 8911217
1079 3359

9437293 9438496
9437076 9435873
217 2623

9960533 9963845
9962412 9959100
-1879 4745

10484423 10488263
10487098 10483258
-2675 5005

11008699 11012399
11011398 11007698
-2699 4701

11533395 11537180
11535278 11531493
-1883 5687

12057821 12061797
12059428 12055452
-1607 6345

12581431 12586225
12584394 12579600
-2963 6625

13104824 13109960
13109577 13104441
-4753 5519

13628982 13635042
13633995 13627935
-5013 7107

14152754 14159311
14158799 14152242
-6045 7069

14677087 14684101
14683042 14676028
-5955 8073

15201756 15208700
15206949 15200005
-5193 8695

15726467 15732557
15730814 15724724
-4347 7833

16250277 16256766
16255580 16249091
-5303 7675

16774249 16780652
16780184 16773781
-5935 6871

17299440 17304547
17303569 17298462
-4129 6085

17824328 17828620
17827257 17822965
-2929 5655

18347837 18353066
18352324 18347095
-4487 5971

18872677 18876857
18876060 18871880
-3383 4977

19397086 19401641
19400227 19395672
-3141 5969

19921152 19925373
19924737 19920516
-3585 4857

20445296 20449306
20449169 20445159
-3873 4147

20970034 20973337
20973007 20969704
-2973 3633

21494672 21497831
21496945 21493786
-2273 4045

22019078 22022870
22021115 22017323
-2037 5547

22544501 22547857
22544268 22540912
233 6945

23068271 23071626
23069074 23065719
-803 5907

23592120 23595982
23593801 23589939
-1681 6043

24116124 24120216
24118373 24114281
-2249 5935

24639956 24644681
24643117 24638392
-3161 6289

25164499 25169139
25167150 25162510
-2651 6629

25688538 25693023
25691687 25687202
-3149 5821

26211786 26217080
26217015 26211721
-5229 5359

26734839 26742236
26742538 26735141
-7699 7095

27258761 27266717
27267192 27259236
-8431 7481

27783555 27791033
27790974 27783496
-7419 7537

28307363 28315995
28315742 28307110
-8379 8885

28831162 28840686
28840519 28830995
-9357 9691

29356285 29364684
29363972 29355573
-7687 9111

29880265 29888374
29888568 29880459
-8303 7915

30404876 30411933
30412533 30405476
-7657 6457

30929008 30935394
30936977 30930591
-7969 4803

31453446 31459917
31461115 31454644
-7669 5273

31977869 31985242
31985268 31977895
-7399 7347

32501642 32510166
32510071 32501547
-8429 8619

33025987 33034352
33034302 33025937
-8315 8415

33549600 33559324
33559265 33549541
-9665 9783

34073956 34083445
34083485 34073996
-9529 9449

34597149 34607390
34608868 34598627
-11719 8763

35121496 35131677
35133097 35122916
-11601 8761

35645915 35655615
35657254 35647554
-11339 8061

36170108 36179811
36181637 36171934
-11529 7877

36694419 36703625
36705902 36696696
-11483 6929

37218547 37227941
37230350 37220956
-11803 6985

37742207 37751537
37755266 37745936
-13059 5601

38266666 38274332
38279383 38271717
-12717 2615

38790485 38798559
38804140 38796066
-13655 2493

39315022 39321807
39328179 39321394
-13157 413

39839020 39846572
39852757 39845205
-13737 1367

40363293 40370706
40377060 40369647
-13767 1059

40887382 40895410
40901547 40893519
-14165 1891

41411687 41419288
41425818 41418217
-14131 1071

41936031 41942735
41950050 41943346
-14019 -611

42459322 42466821
42475335 42467836
-16013 -1015

42982718 42989870
43000515 42993363
-17797 -3493

43506306 43513987
43525503 43517822
-19197 -3835

44030307 44037775
44050078 44042610
-19771 -4835

44554719 44562118
44574242 44566843
-19523 -4725

45079214 45086117
45098323 45091420
-19109 -5303

45603504 45610447
45622609 45615666
-19105 -5219

46128730 46135227
46145959 46139462
-17229 -4235

46652414 46659292
46670851 46663973
-18437 -4681

47177050 47183839
47194791 47188002
-17741 -4163

47700662 47707849
47719755 47712568
-19093 -4719

48224720 48232528
48244273 48236465
-19553 -3937

48749122 48756787
48768447 48760782
-19325 -3995

49273155 49281305
49292990 49284840
-19835 -3535

49798138 49806032
49816583 49808689
-18445 -2657

50322211 50330263
50341086 50333034
-18875 -2771

50846458 50854052
50865415 50857821
-18957 -3769

51372111 51378836
51388338 51381613
-16227 -2777

51895626 51903056
51913399 51905969
-17773 -2913

52420098 52426615
52437503 52430986
-17405 -4371

52944912 52949792
52961265 52956385
-16353 -6593

53468787 53473695
53485966 53481058
-17179 -7363

53992611 53998528
54010718 54004801
-18107 -6273

54516636 54522699
54535269 54529206
-18633 -6507

55041300 55046797
55059181 55053684
-17881 -6887

55565725 55570913
55583332 55578144
-17607 -7231

56090470 56095401
56107163 56102232
-16693 -6831

56614845 56619651
56631364 56626558
-16519 -6907

57139064 57143237
57155721 57151548
-16657 -8311

57663828 57666826
57679533 57676535
-15705 -9709

58187661 58191978
58204276 58199959
-16615 -7981

58711569 58715950
58728944 58724563
-17375 -8613

59236245 59240230
59252844 59248859
-16599 -8629

59760538 59765354
59777127 59772311
-16589 -6957

60285407 60289871
60300834 60296370
-15427 -6499

60809357 60814162
60825460 60820655
-16103 -6493

61334371 61338378
61349022 61345015
-14651 -6637

61858727 61862969
61873242 61869000
-14515 -6031

62382779 62386725
62397766 62393820
-14987 -7095

62907553 62911420
62921568 62917701
-14015 -6281

63431523 63436703
63446174 63440994
-14651 -4291

63954878 63961698
63971395 63964575
-16517 -2877

64478251 64485734
64496598 64489115
-18347 -3381

65002637 65009286
65020788 65014139
-18151 -4853

65527836 65533908
65544165 65538093
-16329 -4185

66051966 66058622
66068611 66061955
-16645 -3333

66576923 66582604
66592230 66586549
-15307 -3945

67101504 67107092
67116225 67110637
-14721 -3545

67626281 67632178
67640024 67634127
-13743 -1949

68150219 68157580
68164662 68157301
-14443 279

68675079 68681835
68688378 68681622
-13299 213

69199313 69206295
69212720 69205738
-13407 557

69723026 69730382
69737583 69730227
-14557 155

70247470 70255683
70261715 70253502
-14245 2181

70772240 70779528
70785521 70778233
-13281 1295

71296841 71303564
71309496 71302773
-12655 791

71820555 71827592
71834358 71827321
-13803 271

72345030 72352065
72358459 72351424
-13429 641

72869368 72876976
72882697 72875089
-13329 1887

73393619 73402488
73407022 73398153
-13403 4335

73917053 73926415
73932164 73922802
-15111 3613

74441388 74450668
74456405 74447125
-15017 3543

74964822 74974219
74981547 74972150
-16725 2069

75488980 75497899
75505965 75497046
-16985 853

76013182 76022986
76030339 76020535
-17157 2451

76537594 76548394
76554503 76543703
-16909 4691

77061961 77073069
77078712 77067604
-16751 5465

77585919 77597176
77603330 77592073
-17411 5103

78110546 78121045
78127279 78116780
-16733 4265

78634884 78645925
78651517 78640476
-16633 5449

79159690 79170635
79175287 79164342
-15597 6293

79685091 79694856
79698462 79688697
-13371 6159

80208497 80219851
80223632 80212278
-15135 7573

80733292 80744121
80747413 80736584
-14121 7537

81258148 81267985
81271133 81261296
-12985 6689

81782729 81792433
81795128 81785424
-12399 7009

82306210 82316592
82320223 82309841
-14013 6751

82830064 82840890
82844945 82834119
-14881 6771

83354266 83365385
83369319 83358200
-15053 7185

83878696 83888316
83893465 83883845
-14769 4471

84403549 84412541
84417188 84408196
-13639 4345

84928578 84936805
84940735 84932508
-12157 4297

85453087 85461442
85464802 85456447
-11715 4995

85976744 85985338
85989721 85981127
-12977 4211

86500338 86509487
86514703 86505554
-14365 3933

87024616 87033745
87039001 87029872
-14385 3873

87549096 87558689
87563097 87553504
-14001 5185

88074557 88083095
88086212 88077674
-11655 5421

88599437 88606841
88609908 88602504
-10471 4337

89123445 89130725
89134476 89127196
-11031 3529

89647381 89655417
89659116 89651080
-11735 4337

90171777 90180036
90183296 90175037
-11519 4999

90696607 90704992
90707042 90698657
-10435 6335

91221654 91229179
91230571 91223046
-8917 6133

91746500 91754876
91754301 91745925
-7801 8951

92271174 92279416
92278203 92269961
-7029 9455

92794706 92803773
92803247 92794180
-8541 9593

93318398 93328021
93328131 93318508
-9733 9513

93842411 93851127
93852694 93843978
-10283 7149

94366215 94375549
94377466 94368132
-11251 7417

94890039 94900777
94902218 94891480
-12179 9297

95414379 95424528
95426454 95416305
-12075 8223

95938474 95948659
95950935 95940750
-12461 7909

96462447 96473337
96475538 96464648
-13091 8689

96985764 96997268
97000797 96989293
-15033 7975

97510060 97521438
97525077 97513699
-15017 7739

98034233 98046776
98049480 98036937
-15247 9839

98557822 98570806
98574467 98561483
-16645 9323

99081887 99094506
99098978 99086359
-17091 8147

99606382 99618998
99623059 99610443
-16677 8555

100130046 100142170
100147971 100135847
-17925 6323

100654233 100666912
100672360 100659681
-18127 7231

101178726 101191198
101196443 101183971
-17717 7227

101703307 101715753
101720438 101707992
-17131 7761

102227950 102239452
102244371 102232869
-16421 6583

102752268 102763371
102768629 102757526
-16361 5845

103277243 103287932
103292230 103281541
-14987 6391

103800449 103812292
103817600 103805757
-17151 6535

104324830 104337144
104341795 104329481
-16965 7663

104850291 104861051
104864910 104854150
-14619 6901

105375268 105385609
105388509 105378168
-13241 7441

105899142 105909868
105913211 105902485
-14069 7383

106423925 106434650
106437004 106426279
-13079 8371

106947742 106958608
106961763 106950897
-14021 7711

107472368 107483138
107485713 107474943
-13345 8195

107996666 108007468
108009991 107999189
-13325 8279

108520727 108531951
108534506 108523282
-13779 8669

109044474 109055856
109059335 109047953
-14861 7903

109569415 109579975
109582970 109572410
-13555 7565

110093979 110103698
110106982 110097263
-13003 6435

110618106 110628250
110631431 110621287
-13325 6963

111143265 111152255
111154848 111145858
-11583 6397

111667739 111677459
111678950 111669230
-11211 8229

112192292 112202840
112202973 112192425
-10681 10415

112717648 112728455
112726193 112715386
-8545 13069

113242030 113252958
113250387 113239459
-8357 13499

113766044 113776984
113774949 113764009
-8905 12975

114290850 114300932
114298719 114288637
-7869 12295

114814421 114825648
114823724 114812497
-9303 13151

115339217 115349858
115347504 115336863
-8287 12995

115863351 115874452
115871946 115860845
-8595 13607

116387034 116398974
116396839 116384899
-9805 14075

116911992 116923639
116920457 116908810
-8465 14829

117436585 117447960
117444440 117433065
-7855 14895

117960341 117972890
117969260 117956711
-8919 16179

118485654 118496702
118492523 118481475
-6869 15227

119010255 119020898
119016498 119005855
-6243 15043

119533940 119544901
119541389 119530428
-7449 14473

120057853 120068974
120066052 120054931
-8199 14043

120582060 120592545
120590421 120579936
-8361 12609

121106785 121116903
121114272 121104154
-7487 12749

121630828 121641814
121638805 121627819
-7977 13995

122155424 122166356
122162785 122151853
-7361 14503

122679463 122690945
122687322 122675840
-7859 15105

123203646 123215534
123211715 123199827
-8069 15707

123727239 123739464
123736698 123724473
-9459 14991

124251900 124264290
124260613 124248223
-8713 16067

124776792 124788109
124784297 124772980
-7505 15129

125302089 125313118
125307576 125296547
-5487 16571

125825991 125837115
125832250 125821126
-6259 15989

126350749 126361111
126356068 126345706
-5319 15405

126875346 126885147
126880047 126870246
-4701 14901

127399527 127409351
127404442 127394618
-4915 14733

127923455 127933546
127929090 127918999
-5635 14547

128447145 128457426
128453976 128443695
-6831 13731

128970885 128981943
128978812 128967754
-7927 14189

129495130 129506218
129503143 129492055
-8013 14163

130019470 130030469
130027379 130016380
-7909 14089

130543421 130554837
130552004 130540588
-8583 14249

131067562 131079311
131076439 131064690
-8877 14621

131592342 131603618
131600235 131588959
-7893 14659

132116808 132128035
132124345 132113118
-7537 14917

132640913 132652303
132648816 132637426
-7903 14877

133164709 133177721
133173596 133160584
-8887 17137

133689149 133702207
133697732 133684674
-8583 17533

134213734 134226496
134221723 134208961
-7989 17535

134738589 134750946
134745444 134733087
-6855 17859

135261835 135274595
135270774 135258014
-8939 16581

135786201 135798548
135794984 135782637
-8783 15911

136310268 136323188
136319493 136306573
-9225 16615

136834445 136847619
136843892 136830718
-9447 16901

137358723 137371758
137368190 137355155
-9467 16603

137882645 137896395
137892844 137879094
-10199 17301

138406990 138419804
138417075 138404261
-10085 15543

138931227 138943751
138941414 138928890
-10187 14861

139455513 139467577
139465704 139453640
-10191 13937

139980043 139992152
139989750 139977641
-9707 14511

140504687 140516719
140513682 140501650
-8995 15069

141028787 141041408
141038158 141025537
-9371 15871

141553457 141565616
141562064 141549905
-8607 15711

142077883 142090140
142086214 142073957
-8331 16183

142601971 142614664
142610702 142598009
-8731 16655

143126468 143138646
143134781 143122603
-8313 16043

143650845 143662934
143658980 143646891
-8135 16043

144175384 144187461
144183017 144170940
-7633 16521

144699611 144711840
144707366 144695137
-7755 16703

145224198 145236685
145231355 145218868
-7157 17817

145747829 145760412
145756300 145743717
-8471 16695

146272629 146284585
146280076 146268120
-7447 16465

146796750 146808654
146804531 146792627
-7781 16027

147319665 147333387
147330192 147316470
-10527 16917

147843602 147857140
147854831 147841293
-11229 15847

148368472 148381630
148378537 148365379
-10065 16251

148891840 148906883
148903745 148888702
-11905 18181

149415714 149431801
149428447 149412360
-12733 19441

149940334 149956461
149952403 149936276
-12069 20185

150464814 150480790
150476499 150460523
-11685 20267

150988470 151004801
151001419 150985088
-12949 19713

151513818 151528033
151524647 151510432
-10829 17601

152038391 152051700
152048650 152035341
-10259 16359

152562964 152576499
152572653 152559118
-9689 17381

153088293 153100305
153095900 153083888
-7607 16417

153612520 153625377
153620249 153607392
-7729 17985

154136618 154149404
154144727 154131941
-8109 17463

154660809 154673884
154669112 154656037
-8303 17847

155186060 155198416
155192437 155180081
-6377 18335

155710197 155722946
155716876 155704127
-6679 18819

156234116 156247572
156241533 156228077
-7417 19495

156758891 156771928
156765334 156752297
-6443 19631

157283128 157295977
157289673 157276824
-6545 19153

157807395 157820478
157813982 157800899
-6587 19579

158332717 158344824
158337236 158325129
-4519 19695

158856176 158869506
158862353 158849023
-6177 20483

159380345 159393462
159386760 159373643
-6415 19819

159904418 159918366
159911263 159897315
-6845 21051

160429081 160441428
160435176 160422829
-6095 18599

160953174 160965100
160959659 160947733
-6485 17367

161477993 161489280
161483416 161472129
-5423 17151

162002190 162013952
162007795 161996033
-5605 17919

162525717 162537854
162532844 162520707
-7127 17147

163050166 163061724
163056971 163045413
-6805 16311

163573932 163585851
163581781 163569862
-7849 15989

164097515 164110136
164106774 164094153
-9259 15983

164622537 164634587
164630328 164618278
-7791 16309

165146578 165159588
165154863 165141853
-8285 17735

165670461 165684366
165679556 165665651
-9095 18715

166193937 166208798
166204656 166189795
-10719 19003

166717803 166732925
166729366 166714244
-11563 18681

167242267 167258284
167253478 167237461
-11211 20823

167765533 167782827
167778788 167761494
-13255 21333

168289601 168306766
168303296 168286131
-13695 20635

168813310 168831013
168828163 168810460
-14853 20553

169338556 169355607
169351493 169334442
-12937 21165

169863237 169880523
169875388 169858102
-12151 22421

170387116 170405622
170400085 170381579
-12969 24043

170911230 170930001
170924547 170905776
-13317 24225

171435521 171453888
171448832 171430465
-13311 23423

171959337 171978440
171973592 171954489
-14255 23951

172483824 172502672
172497681 172478833
-13857 23839

173007949 173027504
173022132 173002577
-14183 24927

173532366 173551651
173546291 173527006
-13925 24645

174056641 174076893
174070592 174050340
-13951 26553

174580576 174600939
174595233 174574870
-14657 26069

175104437 175124622
175119948 175099763
-15511 24859

175628626 175649476
175644335 175623485
-15709 25991

176152974 176173360
176168563 176148177
-15589 25183

176677741 176697933
176692372 176672180
-14631 25753

177202486 177222244
177216203 177196445
-13717 25799

177726512 177746485
177740753 177720780
-14241 25705

178250589 178271227
178265252 178244614
-14663 26613

178775516 178795754
178788901 178768663
-13385 27091

179299733 179318939
179313260 179294054
-13527 24885

179824407 179843559
179837162 179818010
-12755 25549

180348775 180368207
180361370 180341938
-12595 26269

180872013 180892696
180886708 180866025
-14695 26671

181395979 181416606
181411318 181390691
-15339 25915

181920301 181941369
181935572 181914504
-15271 26865

182444749 182465633
182459700 182438816
-14951 26817

182969319 182990056
182983706 182962969
-14387 27087

183493941 183514051
183507660 183487550
-13719 26501

184018203 184039422
184031974 184010755
-13771 28667

184543020 184563922
184555733 184534831
-12713 29091

185067824 185088755
185079505 185058574
-11681 30181

185592370 185612897
185603535 185583008
-11165 29889

186117286 186136326
186127195 186108155
-9909 28171

186641747 186660855
186651310 186632202
-9563 28653

187166195 187185269
187175438 187156364
-9243 28905

187690722 187710663
187699487 187679546
-8765 31117

188214460 188235905
188224325 188202880
-9865 33025

188738018 188760523
188749343 188726838
-11325 33685

189262695 189285887
189273242 189250050
-10547 35837

189788034 189809974
189796479 189774539
-8445 35435

190312140 190334110
190320949 190298979
-8809 35131

190835556 190858308
190846109 190823357
-10553 34951

191359922 191382779
191370319 191347462
-10397 35317

191883794 191907299
191895023 191871518
-11229 35781

192407625 192431638
192419768 192395755
-12143 35883

192932004 192956536
192943965 192919433
-11961 37103

193456550 193481233
193467995 193443312
-11445 37921

193980712 194005819
193992409 193967302
-11697 38517

194504843 194530719
194516854 194490978
-12011 39741

195029219 195055511
195041054 195014762
-11835 40749

195553791 195578984
195565058 195539865
-11267 39119

196078534 196104175
196088891 196063250
-10357 40925

196603556 196628670
196612445 196587331
-8889 41339

197127092 197152351
197137485 197112226
-10393 40125

197651810 197676199
197661343 197636954
-9533 39245

198176210 198200305
198185519 198161424
-9309 38881

198699990 198724479
198710315 198685826
-10325 38653

199224903 199248835
199233978 199210046
-9075 38789

199749109 199772433
199758348 199735024
-9239 37409

200272953 200297123
200283080 200258910
-10127 38213

200797417 200821241
200807192 200783368
-9775 37873

201321176 201345425
201332009 201307760
-10833 37665

201845416 201870344
201856345 201831417
-10929 38927

202369409 202394265
202380928 202356072
-11519 38193

202893240 202917059
202905673 202881854
-12433 35205

203418659 203441402
203428830 203406087
-10171 35315

203943955 203966202
203952110 203929863
-8155 36339

204468593 204491138
204476048 204453503
-7455 37635

204992875 205015702
205000342 204977515
-7467 38187

205517637 205539280
205524156 205502513
-6519 36767

206041758 206063540
206048611 206026829
-6853 36711

206566407 206586917
206572538 206552028
-6131 34889

207090136 207111653
207097385 207075868
-7249 35785

207615395 207635865
207620702 207600232
-5307 35633

208139239 208159289
208145434 208125384
-6195 33905

208662939 208683107
208670310 208650142
-7371 32965

209186777 209206250
209195048 209175575
-8271 30675

209711041 209729427
209719360 209700974
-8319 28453

210235558 210253637
210243419 210225340
-7861 28297

210759163 210777981
210768390 210749572
-9227 28409

211283183 211302816
211292946 211273313
-9763 29503

211806954 211827474
211817751 211797231
-10797 30243

212331137 212352333
212342144 212320948
-11007 31385

212854854 212877461
212867003 212844396
-12149 33065

213379453 213401623
213390980 213368810
-11527 32813

213904754 213926409
213914255 213892600
-9501 33809

214428307 214450573
214439278 214417012
-10971 33561

214953070 214974917
214963091 214941244
-10021 33673

215477508 215498944
215487229 215465793
-9721 33151

216001242 216022555
216012071 215990758
-10829 31797

216524770 216547031
216537119 216514858
-12349 32173

217049006 217070759
217061459 217039706
-12453 31053

217573726 217595127
217585315 217563914
-11589 31213

218097859 218119921
218109758 218087696
-11899 32225

218622019 218643739
218634174 218612454
-12155 31285

219145881 219167889
219158888 219136880
-13007 31009

219670181 219691979
219683164 219661366
-12983 30613

220195120 220215361
220206801 220186560
-11681 28801

220719709 220739720
220730788 220710777
-11079 28943

221243480 221264317
221255593 221234756
-12113 29561

221768293 221789168
221779356 221758481
-11063 30687

222291724 222313890
222304501 222282335
-12777 31555

222815686 222838378
222829115 222806423
-13429 31955

223340380 223362500
223352997 223330877
-12617 31623

223864190 223886726
223877763 223855227
-13573 31499

224389060 224410960
224401469 224379569
-12409 31391

224914678 224935954
224924427 224903151
-9749 32803

225439023 225460329
225448658 225427352
-9635 32977

225962709 225984518
225973548 225951739
-10839 32779

226487802 226508862
226497031 226475971
-9229 32891

227011750 227033861
227021659 226999548
-9909 34313

227536056 227557924
227545929 227524061
-9873 33863

228059812 228082110
228070749 228048451
-10937 33659

228583804 228606268
228595333 228572869
-11529 33399

229108333 229130310
229119380 229097403
-11047 32907

229632580 229655468
229643709 229620821
-11129 34647

230157188 230179724
230167677 230145141
-10489 34583

230681180 230704791
230692261 230668650
-11081 36141

231205379 231229160
231216638 231192857
-11259 36303

231730350 231753536
231740243 231717057
-9893 36479

232255516 232278127
232263653 232241042
-8137 37085

232780367 232801705
232787378 232766040
-7011 35665

233304529 233326089
233311792 233290232
-7263 35857

233828260 233849684
233836637 233815213
-8377 34471

234352244 234373941
234361229 234339532
-8985 34409

234876299 234898291
234885750 234863758
-9451 34533

235401426 235423235
235409199 235387390
-7773 35845

235925935 235947380
235933266 235911821
-7331 35559

236450273 236470739
236457504 236437038
-7231 33701

236975004 236994144
236981349 236962209
-6345 31935

237499772 237517950
237505157 237486979
-5385 30971

238023644 238042660
238029861 238010845
-6217 31815

238548056 238566742
238554025 238535339
-5969 31403

239072367 239091049
239078290 239059608
-5923 31441

239596548 239616007
239602685 239583226
-6137 32781

240120543 240140254
240127266 240107555
-6723 32699

240644418 240664615
240651967 240631770
-7549 32845

241168916 241188658
241176045 241156303
-7129 32355

241694325 241712445
241699212 241681092
-4887 31353

242218904 242235965
242223209 242206148
-4305 29817

242743115 242760380
242747574 242730309
-4459 30071

243267429 243285908
243271836 243253357
-4407 32551

243791604 243809868
243796237 243777973
-4633 31895

244315788 244334201
244320629 244302216
-4841 31985

244840809 244858702
244844184 244826291
-3375 32411

245365144 245383224
245368425 245350345
-3281 32879

245890464 245906826
245891681 245875319
-1217 31507

246414490 246431020
246416231 246399701
-1741 31319

246938885 246955545
246940412 246923752
-1527 31793

247463251 247479463
247464622 247448410
-1371 31053

247987609 248004232
247988840 247972217
-1231 32015

248511612 248528779
248513413 248496246
-1801 32533

249035924 249053320
249037677 249020281
-1753 33039

249559603 249577682
249562574 249544495
-2971 33187

250083368 250101610
250087385 250069143
-4017 32467

250608048 250624974
250611281 250594355
-3233 30619

251133679 251148771
251134226 251119134
-547 29637

251658610 251672166
251657871 251644315
739 27851

Vierailija
_jone_
4. Näin ollen funktion tulee arpoa ykköstä ja nollaa tilastoon niin, että niiden erotus pyörii jatkuvasti plus tahi miinuksen ympärillä.



vai niin

Koko työpäivä ja ilta meni rnd -funktion parantelussa (terveiset vaan työnantajalle, että tänään tein omia juttuja ).

kokeileppa seuraavalla viritetyllä rnd:llä:

[code:12ggks72]#pragma #hdrstop

#include
#include
#include
#include
#include
#include

struct uint4
{
unsigned f:4;
};

typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned __int64 uint64;

unsigned rnd(unsigned max)
{
static uint64 luku[4]={0};
static uint64 next=11;
static uint64 jak=9;
static uint4 *f=(uint4*)&luku;

// funktion alustus-lohko. jos lohkoa
// yritetään ajaa toista kertaa, syntyy
// virhe-tilanne, koska funktio alkaisi
// luultavasti toistamaan samaa sykliä.
if (luku[0]==0x00)
{
if (next!=11)
{
#define VIRHE 0
assert(VIRHE);
}
else
{
luku[0]=2;
luku[1]=3;
luku[2]=5;
luku[3]=7;
}
}

// lohkossa lasketaan vähän
// seuraavaa alkulukua.
if ((jak+=2)>=next)
{
// next oli uusi alkuluku. on selkeästi
// parempi xor:ata next vain lukuihin.
luku[0]^=next;
luku[1]^=next;
luku[2]^=next;
luku[3]^=next;
// ja seuraavan alkuluvun haku.
next+=2; jak=3;
goto else_block;
}
else
{
else_block:;
if (!(next%jak))
{
// next ei ollut alkuluku,
// kokeillaan next+2:lla.
next+=2; jak=1;
}
}

// sekoitetaan vähän pakkaa
luku[0] += ((luku[0]<>f[ 1].f))
+ ((luku[2]<>f[ 3].f));
luku[1] -= ((luku[1]<>f[ 5].f))
- ((luku[3]<>f[ 7].f));
luku[2] += ((luku[2]<>f[ 9].f))
+ ((luku[0]<>f[11].f));
luku[3] -= ((luku[3]<>f[13].f))
- ((luku[1]<>f[15].f));

// palautetaan uusi "satunnaisluku"
return (unsigned)((luku[0]+luku[1]-luku[2]*luku[3])%max);
}
[/code:12ggks72]

Vierailija

Mitä ihmettä? Jos pitää olla kryptinen, niin ota seuraavasta mallia, millaista sillisalaattia minä parhaimmillani kirjoitan:

Sivuttiin lyhyesti salausalgoritmeja ja niiden taipumusta syödä ahneesti prosessointikapasiteettia. Siitä sain herätteen käydä probleemaan kiinni, kuin sika sapuskaan.

Oheisessa koodinpätkässä äärimmäisyydet kohtaavat. Vaikka koodaamiseen, testaamiseen, optimointiin ja todentamiseen kului vain kaksi työpäivää, aiheeseen liittyviä tiedonmuruja on haalinut ja harrastanut jo pitkään.

Ylinumeroituvat joukot ja numerot tunnettiin jo 1600 luvulla, joita historian suurmiehet ja todelliset taiturit tutkivat päässälaskuna, kynällä ja paperilla. Ylinumeroituva numero on yksinkertaisesti numero, jota ei voi enää numerolla esittää.

Soluautomaatti on yksi esimerkki ylinumeroituvasta numerosta. Sen tulosta ei voi esittää numerolla, koska se on äärettömän takaisinkytkennän häilyvä pysäytyskuva. Raskailla rekursiolla numerosta voidaan kyllä sanoa jotain ympäripyöreää, mutta mitään täsmällistä tietoa numerosta ei saada irti.

INFORMAATION SALAUS

Aihe on hyvin mielenkiintoinen ja lukeutuu likimain sovelletun, ennustamattoman ja kokeellisen numerologiikan aihepiiriin.

Salauksen ensimmäinen päämäärä on redundanssin poisto. Datan möyhennyksen toisena tavoitteena on saada informaation palauttaminen mahdollisimman mahdottomaksi ilman oikeita taikasanoja.

Jos salaus- ja purkuavaimen pituus on esimerkiksi 256 bittiä, datasekvenssin avaamista pitäisi kokeilla suunnilleen 10^77 erilaisella avaimella. Vaikka käytössä olisi miljoona supertietokonetta, joista jokainen murjoisi yötä päivää miljoona avausyritystä millisekunnissa, kaikkien vaihtoehtojen seulomiseen kuluisi siltikin osapuilleen 10^51 miljoonaa vuotta.

Salausalgoritmit voidaan laittaa paremmuusjärjestykseen sen perusteella, kuinka paljon redundanssia palautuu, kun purkuavain lähestyy bitti bitiltä oikeaa taikasanaa. Hyvä salausmetodi pitää pintansa viimeiseen bittiäijään asti: vaikka avain olisi enää vain yhden bitin päässä oikeasta, purkufunktio tuottaisi edelleenkin järjetöntä bittimössöä.

Päinvastoin kehnompi salausalgoritmi antaa mahdollisuuden avaimen interpolointiin, ja palauttaa redundanssia yhä enemmän suhteessa avaimen oikeisiin bitteihin.

Sulautetut järjestelmät asettavat salausalgoritmeille rankat tehovaatimukset. Jos salausmetodi tuottaa umpimähkäisen kaaoksen jokaisella väärällä avaimella, ja käyttää vain murto-osan prosessointitehoa, silloin koodinpätkä täyttää asiansa paremmin kuin hyvin.

LIFE-SALAUSALGORITMI

Muun muassa Esko Valtaoja kirjoittaa eloisasti kirjassaan ”Kotona maailmankaikkeudessa” soluautomaateista. Life-pelissä bitit ”elävät” ja generoivat uusia sukupolvia. Tiettyyn tulevaisuuden hetkeen voidaan iteroitua äärettömän monella nykyhetkellä, jonka vuoksi peliä ei voi pelata menneisyyteen päin. 2^n -kutsukannalla taaksepäin interpoloiva rekursio hyydyttäisi hetkessä kaikki maailman läppärit.

Vuosien tutkimisen ja harrastamisen jälkeen onnistuin tekemään Life-pelin soluautomaatista vastaavan ja tehokkaan funktiosimulaation, jossa bittiotukset käyttäytyvät samalla tavalla. Mallia voi soveltaa parhaiten satunnaislukujen tuottamiseen ja informaation salaamiseen.

Salausalgoritmien lähdekoodit ovat avoimia. Ne eivät kaipaa näennäisiä kommentteja tai epätoivoisia selityksiä. Kukaan ei ymmärrä kovin perusteellisesti soluautomaatin, CRC:n tahi latinalaisen neliön toimintaperiaatteita. Ne ovat kummallisia ja kiinnostavia olioita, mutta verhoutuvat valitettavasti salaperäisyyteensä sisään. Ja vaikka ymmärtäisikin, ei ole olemassa niin tehokasta myllyä, jolla voisi rouhia esimerkiksi soluautomaatin tuottamat kaikki esipolvet.

Hyvä niin. Näistä komponenteista voidaan sitten soveltaa meidän tarpeisiin tehokas ja varma salausalgoritmi. Salausfunktio käsittelee dataa 32 tavun lohkoissa. Salausavain on myös 32 tavua = 256 bittiä pitkä:

[code:tbkyquzf]/******************************************************************************
* Function: LifeCrypt *
* *
* Use: Kryptaa tai purkaa datalohkon. Ei saa kutsua suoraan, koska *
* luuppi möyhentää salaus- / purkuavaimen käyttökelvottomaksi. *
* Kutsu funktioita LifeEncrypt ja LifeDecrypt. *
* *
* Rajoitus: Latinalaisen neliön vuoksi datalohkon pituus pitää *
* olla muotoa 2 potenssiin n, ja vähintään 32 tavua *
* pitkä, koska 17 virittää 32*32 kerrannaisneliöt. *
* *
* Input: char *data on osoitin 32 tavun data-lohkoon. *
* char *key on osoitin 32 tavun = 256 bitin avaimeen. *
* *
* Output: Salaamaton data kryptataan ja palautetaan samaan data-lohkoon. *
* Salattu data puretaan samoin annettuun data-lohkoon. *
* *
* Version: 0.01 09.10.04 JAr ensimmäinen versio. *
* *
******************************************************************************/
static void LifeCrypt(char *data, char *key)
{
int i, f;
long *life;
long *apu, *upa;
long BreakUp=0x00L;

upa=(long*)(key+16);
apu=life=(long*)key;

for (i=0; i<32; i++)
{
life[0]+=(life[0]>>11)^(life[1]<<17);
life[1]+=(life[0]<<19)^(life[1]>>13);

life[0]+=life[2];
life[1]-=life[3];

BreakUp+=life[0]^life[1];
life=life==apu? upa: apu;

f=(int)(BreakUp>>28)&0x0f;
data[i] ^= (char)(BreakUp>>f);
data[i^17]^=(char)(BreakUp>>(8+f));
}
}

/******************************************************************************
* Function: LifeEncrypt *
* *
* Use: Salakoodaa datalohkon. *
* *
* Input: void *block32 on osoitin 32 tavun lohkoon. *
* const void *key32 on osoitin 32 tavun = 256 bitin avaimeen. *
* *
* Output: Salattu data palautetaan lohkoon block32. *
* *
* Version: 0.01 09.10.04 JAr ensimmäinen versio. *
* *
******************************************************************************/
void LifeEncrypt(void *block32, const void *key32)
{
char key[32];
memcpy(key, key32, 32);
LifeCrypt((char*)block32, key);
}

/******************************************************************************
* Function: LifeDecrypt *
* *
* Use: Purkaa salakoodatun datalohkon. *
* *
* Input: void *block32 on osoitin 32 tavun salakoodattuun lohkoon. *
* const void *key32 on osoitin 32 tavun = 256 bitin avaimeen. *
* *
* Output: Alkuperäiseksi purettu data palautetaan lohkoon block32. *
* *
* Version: 0.01 09.10.04 JAr ensimmäinen versio. *
* *
******************************************************************************/
void LifeDecrypt(void *block32, const void *key32)
{
LifeEncrypt(block32, key32);
}
[/code:tbkyquzf]

Kommentteja koodista ja esimerkkejä:

• Salaus- ja purkufunktio käyttävät samaa avainta, mutta sen perusteella salauksen voimasta ei voi tehdä johtopäätöksiä puoleen eikä toiseen.

• Miksi meidän järjestelmässä tarvittaisiin epäsymmetrinen salausmetodi, jossa olisi erikseen salausavain, purkuavain ja mahdollisesti vielä julkinenkin avain?

• Sulautetuissa järjestelmissä prosessointikapasiteetti per tehtävä on rajallinen, jonka vuoksi funktiot ja niiden tarkoitusperät pitää olla viimeisen päälle optimoituja.

• LifeCrypt-funktio on rehellisesti avoin koodi, ja sen voi turvallisin mielin laittaa yleiseen jakeluun. Ainoastaan oikea velho jossain muussa sfäärissä onnistuisi loihtimaan suunnilleen 128-kutsukannalla taaksepäin interpoloivan rekursion.

• Hyvä. Tämän vuoksi LifeCrypt-funktio pystyy ottelemaan viimeiseen bittiukkoon saakka, koska soluautomaatti pöyhii ja poimuttaa informaation likimain 128^32 = 10^67 askeleen päähän.

Esim.

• Seuraavassa main-funktiossa salataan 32-tavun informaatiolohko “TimoAnitaRikuSannaRistoOlliJouni”.

• 256-bitin avain on arvottu satunnaisluvuilla.

• Avaimesta kolhitaan vain yksi bitti, jolla data sitten yritetään avata.

• Tulos on yhtä kaoottista sekä teksti- että binäärimuodossa.

• Tämän jälkeen avaimen korruptoitu bitti korjataan ja salattu data avataan uudelleen täsmälleen oikealla avaimella, jolloin alkuperäinen informaatio saadaan takaisin.

main-funktion tuloste:

Salattu informaatio: σf2╔←r-h¢S¢d£₧Ö¶ÜΣ╗╬d╒½e▬ª9è♦╫╙k
Avausyrityksen tulos: Ω&→*»m╕[û=Y☻fe0╫:#ⁿ☻¢▌"πk▄4ü•-▀Æ
Alkuperäinen informaatio: TimoAnitaRikuSannaRistoOlliJouni

• Vaikka informaation avaamista yritettiin yhtä bittiä vaille validilla avaimella, LifeCrypt-funktio output on yhä tolkutonta bittisekamelskaa ilman järjen häivää. ”Redundanssia” edustaa lähinnä kaksi mustaa pikku-ukkoa, jotka nauravat ironisesti.

• Näin asian laita pitääkin olla. Hyvän salausmetodin ei saa antaa mahdollisuutta avaimen interpolointiin, vaan taikasanan pitää olla laakista ja prikulleen 256 bitin tarkkuudella oikein!

[code:tbkyquzf]void main(void)
{
const char information[]="TimoAnitaRikuSannaRistoOlliJouni";

char key[32]=
{
0x37, 0x9b, 0x6f, 0x2c, 0x93, 0x1f, 0x74, 0x48,
0x23, 0x61, 0x31, 0x04, 0x5f, 0xb3, 0xbe, 0x2f,
0x6c, 0xcb, 0xb1, 0x2d, 0x94, 0xbd, 0x60, 0xac,
0xd0, 0x3c, 0x3d, 0x07, 0x58, 0xbf, 0xaf, 0xe0,
};

char data[32];
char TextBuf[32+1];
char CopyOfDataCrypt[32];

memset(TextBuf, 0, 32+1);
memcpy(data, information, 32);

/* Salakoodataan informaatio "TimoAnitaRikuSannaRistoOlliJouni" */
LifeEncrypt(data, key);
memcpy(CopyOfDataCrypt, data, 32);

/* Katsotaan, millaiselta mössöltä salakoodaus näyttää */
memcpy(TextBuf, data, 32);
printf(" Salattu informaatio: %s\n", TextBuf);

/* Korruptoidaan avaimesta yksi bitti */
key[0] |= (char)8;

/* Yritetään avata salaus avaimella, joka on yhden bitin päässä oikeasta */
LifeDecrypt(data, key);

/* Katsotaan avauksen tulosta */
memcpy(TextBuf, data, 32);
printf(" Avausyrityksen tulos: %s\n", TextBuf);

/* Korjataan tärvelty bitti oikeaksi ja yritetään uudelleen */
key[0] &= ~(char)8;
memcpy(data, CopyOfDataCrypt, 32);

/* Avataan salaus uudestaan presiis oikealla avaimella */
LifeDecrypt(data, key);

/* Ja nyt pitäisi tulostua alkuperäinen informaatio */
memcpy(TextBuf, data, 32);
printf("Alkuperäinen informaatio: %s\n", TextBuf);

getch();
}
[/code:tbkyquzf]

Vierailija
_jone_
4. Näin ollen funktion tulee arpoa ykköstä ja nollaa tilastoon niin, että niiden erotus pyörii jatkuvasti plus tahi miinuksen ympärillä.

no ei se ihan noinkaan ole!

se on niin, että tilaston karttuessa tehdään yhä suurempia lenkkejä outojen attaktorien molemmin puolin - siis plus ja miinus puolella.

aluksi tilastossa poukkoillaan nopeasti nollan molemmin puolin, mutta tapausten karttuessa vauhti hidastuu, ja tilaston pitää käydä yhä suuremmassa plus ja miinus lenkeillä.

taisi tulla tautologiaakin vähän, but so what - oppia ikä kaikki. niin ja btw. tämä uudestaan valettu funktio tekee juuri näin.

(ks. jokin bittisykli, ja bongaa sen toistumista, niin huomaat eron.)

jKr...kätevä kryptaus. koodi on avoin, koska se toimii vain ja ainoastaan sillä täsmälleen yhdellä oikealla 256 bittisellä avaimella? vähän arveluttaa nuo alkulukuihin perustuvat salausmenetelmät, koska 2^n -bittisiä salausavaimia murretaan tuosta vain lonkalta?

Vierailija
Makkaraperse
_jone_
4. Näin ollen funktion tulee arpoa ykköstä ja nollaa tilastoon niin, että niiden erotus pyörii jatkuvasti plus tahi miinuksen ympärillä.

no ei se ihan noinkaan ole!

Kylläpäs on!

Nimittäin kun noilla sinun rnd-numeroilla yrittää tehdä kenoharavaa, niin harava ei suppene!

Mutta jos käyttää Borlandin valmisfunktiota (random), niin harava suppenee! Revi siitä sitten huumoria?

Vierailija

No, meni mullakin yksi työpäivä, mutta kannatti tehdä, koska voi haastaa päiväkenon oikeuteen, että käytätte fiilunkia.

[quote="_jone_"]1. Nimittäin, laitetaan tuo minun funktio arpomaan nollaa ja ykköstä.

2. Laitetaan Borlandin kääntäjän valmisfunktio arpomaan niinikään nollaa ja ykköstä viereen.

3. Jos satunnaislukufunktio on hyvä, sen ei saa pitää mitään lukua erityisasemassa.

4. Näin ollen funktion tulee arpoa ykköstä ja nollaa tilastoon niin, että niiden erotus pyörii jatkuvasti plus tahi miinuksen ympärillä.

5. Nyt tuossa tulosteessa on:

Lasketaan jälleen tilastoon 2^22 tapausta, ja tulostetaan tilanne.

ps. minun pläjäys toimii lisäksi tuhatkertaisella nopeudella verrattuna sinun innovaatioosi.

TILASTO ja KOODI
=============

2097145(_jone_:n nollat) 2098822(Borland Builderin nollat)
2097160(_jone_:n ykköset) 2095483(Borland Builderin ykköset)
-15(_jone_:n erotus) 3339(Borland Builderin erotus)

4193898 4197258
4194711 4191351
-813 5907

6291914 6294451
6290999 6288462
915 5989

8388119 8390189
8389098 8387028
-979 3161

10483953 10488263
10487568 10483258
-3615 5005

12582917 12586225
12582908 12579600
9 6625

14680295 14684101
14679834 14676028
461 8073

16777129 16780652
16777304 16773781
-175 6871

18873516 18876857
18875221 18871880
-1705 4977

20970511 20973337
20972530 20969704
-2019 3633

23070078 23071626
23067267 23065719
2811 5907

25167811 25169139
25163838 25162510
3973 6629

27264589 27266717
27261364 27259236
3225 7481

29362195 29364684
29358062 29355573
4133 9111

31459859 31459917
31454702 31454644
5157 5273

33555613 33559324
33553252 33549541
2361 9783

35651390 35655615
35651779 35647554
-389 8061

37749880 37751537
37747593 37745936
2287 5601

39846114 39846572
39845663 39845205
451 1367

41941698 41942735
41944383 41943346
-2685 -611

44039186 44037775
44041199 44042610
-2013 -4835

46136670 46135227
46138019 46139462
-1349 -4235

48234783 48232528
48234210 48236465
573 -3937

50332332 50330263
50330965 50333034
1367 -2771

52429765 52426615
52427836 52430986
1929 -4371

54527586 54522699
54524319 54529206
3267 -6507

56623012 56619651
56623197 56626558
-185 -6907

58719534 58715950
58720979 58724563
-1445 -8613

60817685 60814162
60817132 60820655
553 -6493

62912964 62911420
62916157 62917701
-3193 -6281

65011519 65009286
65011906 65014139
-387 -4853

67108205 67107092
67109524 67110637
-1319 -3545

69206704 69206295
69205329 69205738
1375 557

71303703 71303564
71302634 71302773
1069 791

73400719 73402488
73399922 73398153
797 4335

75496336 75497899
75498609 75497046
-2273 853

77593997 77597176
77595252 77592073
-1255 5103

79691066 79694856
79692487 79688697
-1421 6159

81789292 81792433
81788565 81785424
727 7009

83887152 83888316
83885009 83883845
2143 4471

85985941 85985338
85980524 85981127
5417 4211

88084449 88083095
88076320 88077674
8129 5421

90182080 90180036
90172993 90175037
9087 4999

92278737 92279416
92270640 92269961
8097 9455

94377917 94375549
94365764 94368132
12153 7417

96475660 96473337
96462325 96464648
13335 8689

98573874 98570806
98558415 98561483
15459 9323

100672056 100666912
100654537 100659681
17519 7231

102767394 102763371
102753503 102757526
13891 5845

104864524 104861051
104850677 104854150
13847 6901

106962337 106958608
106947168 106950897
15169 7711

109058164 109055856
109045645 109047953
12519 7903

111154362 111152255
111143751 111145858
10611 6397

113252977 113252958
113239440 113239459
13537 13499

115349574 115349858
115337147 115336863
12427 12995

117447228 117447960
117433797 117433065
13431 14895

119544366 119544901
119530963 119530428
13403 14473

121641357 121641814
121628276 121627819
13081 13995

123737396 123739464
123726541 123724473
10855 14991

125834560 125837115
125823681 125821126
10879 15989

127933312 127933546
127919233 127918999
14079 14547

130030971 130030469
130015878 130016380
15093 14089

132128917 132128035
132112236 132113118
16681 14917

134227863 134226496
134207594 134208961
20269 17535

136324304 136323188
136305457 136306573
18847 16615

138421589 138419804
138402476 138404261
19113 15543

140517273 140516719
140501096 140501650
16177 15069

142615497 142614664
142597176 142598009
18321 16655

144713341 144711840
144693636 144695137
19705 16703

146810475 146808654
146790806 146792627
19669 16027

148907139 148906883
148888446 148888702
18693 18181

151003657 151004801
150986232 150985088
17425 19713

153100222 153100305
153083971 153083888
16251 16417

155197567 155198416
155180930 155180081
16637 18335

157294561 157295977
157278240 157276824
16321 19153

159392031 159393462
159375074 159373643
16957 19819

161489653 161489280
161471756 161472129
17897 17151

163587455 163585851
163568258 163569862
19197 15989

165685761 165684366
165664256 165665651
21505 18715

167781898 167782827
167762423 167761494
19475 21333

169879949 169880523
169858676 169858102
21273 22421

171977950 171978440
171954979 171954489
22971 23951

174075507 174076893
174051726 174050340
23781 26553

176172774 176173360
176148763 176148177
24011 25183

178268389 178271227
178247452 178244614
20937 26613

180364735 180368207
180345410 180341938
19325 26269

182462577 182465633
182441872 182438816
20705 26817

184560136 184563922
184538617 184534831
21519 29091

186657416 186660855
186635641 186632202
21775 28653

188753878 188760523
188733483 188726838
20395 33685

190851528 190858308
190830137 190823357
21391 34951

192948656 192956536
192927313 192919433
21343 37103

195046429 195055511
195023844 195014762
22585 40749

197143709 197152351
197120868 197112226
22841 40125

199241886 199248835
199216995 199210046
24891 38789

201339787 201345425
201313398 201307760
26389 37665

203435289 203441402
203412200 203406087
23089 35315

205531962 205539280
205509831 205502513
22131 36767

207630150 207635865
207605947 207600232
24203 35633

209728161 209729427
209702240 209700974
25921 28453

211825146 211827474
211799559 211797231
25587 30243

213923402 213926409
213895607 213892600
27795 33809

216018753 216022555
215994560 215990758
24193 31797

218116104 218119921
218091513 218087696
24591 32225

220214598 220215361
220187323 220186560
27275 28801

222311488 222313890
222284737 222282335
26751 31555

224408939 224410960
224381590 224379569
27349 31391

226507663 226508862
226477170 226475971
30493 32891

228604301 228606268
228574836 228572869
29465 33399

230701194 230704791
230672247 230668650
28947 36141

232798543 232801705
232769202 232766040
29341 35665

234897576 234898291
234864473 234863758
33103 34533

236995580 236994144
236960773 236962209
34807 31935

239093242 239091049
239057415 239059608
35827 31441

241191486 241188658
241153475 241156303
38011 32355

243289105 243285908
243250160 243253357
38945 32551

245385204 245383224
245348365 245350345
36839 32879

247483056 247479463
247444817 247448410
38239 31053

249580150 249577682
249542027 249544495
38123 33187

251677709 251672166
251638772 251644315
38937 27851

253774534 253768580
253736251 253742205
38283 26375

255871334 255864515
255833755 255840574
37579 23941

257968701 257963923
257930692 257935470
38009 28453

260066639 260060771
260027058 260032926
39581 27845

262162846 262157132
262125155 262130869
37691 26263

264260647 264255027
264221658 264227278
38989 27749

266358653 266353241
266317956 266323368
40697 29873

268455377 268451098
268415536 268419815
39841 31283

270552310 270548457
270512907 270516760
39403 31697

272648744 272645901
272610777 272613620
37967 32281

274746182 274744951
274707643 274708874
38539 36077

276842458 276841924
276805671 276806205
36787 35719

278940797 278938695
278901636 278903738
39161 34957

281035177 281034687
281001560 281002050
33617 32637

283132189 283131504
283098852 283099537
33337 31967

285228955 285226248
285196390 285199097
32565 27151

287325561 287323983
287294088 287295666
31473 28317

289420110 289421567
289393843 289392386
26267 29181

291518262 291520768
291489995 291487489
28267 33279

293614246 293618263
293588315 293584298
25931 33965

295711750 295715634
295685115 295681231
26635 34403

297809050 297813023
297782119 297778146
26931 34877

299905817 299909953
299879656 299875520
26161 34433

302003494 302007385
301976283 301972392
27211 34993

304100876 304103772
304073205 304070309
27671 33463

306198002 306198923
306170383 306169462
27619 29461

308293529 308297016
308269160 308265673
24369 31343

310390641 310394176
310366352 310362817
24289 31359

312488369 312492782
312462928 312458515
25441 34267

314584996 314590099
314560605 314555502
24391 34597

316681686 316686618
316658219 316653287
23467 33331

318778399 318784422
318755810 318749787
22589 34635

320875351 320883046
320853162 320845467
22189 37579

322971997 322978815
322950820 322944002
21177 34813

325071136 325076023
325045985 325041098
25151 34925

327168303 327176123
327143122 327135302
25181 40821

329264090 329274171
329241639 329231558
22451 42613

331359876 331371110
331340157 331328923
19719 42187

333457306 333467997
333437031 333426340
20275 41657

335552843 335565944
335535798 335522697
17045 43247

337649511 337663236
337633434 337619709
16077 43527

339746070 339760785
339731179 339716464
14891 44321

341842635 341857486
341828918 341814067
13717 43419

343939053 343954606
343926804 343911251
12249 43355

346037144 346051276
346023017 346008885
14127 42391

348134049 348146473
348120416 348107992
13633 38481

350229595 350242779
350219174 350205990
10421 36789

352326008 352339850
352317065 352303223
8943 36627

354424219 354436095
354413158 354401282
11061 34813

356521185 356531572
356510496 356500109
10689 31463

358619282 358629313
358606703 358596672
12579 32641

360715295 360727016
360704994 360693273
10301 33743

362811361 362825063
362803232 362789530
8129 35533

364909201 364921364
364899696 364887533
9505 33831

367005908 367020128
366997293 366983073
8615 37055

369103191 369117659
369094314 369079846
8877 37813

371199857 371214007
371191952 371177802
7905 36205

373297686 373309422
373288427 373276691
9259 32731

375394152 375405847
375386265 375374570
7887 31277

377492136 377502573
377482585 377472148
9551 30425

379588768 379601579
379580257 379567446
8511 34133

381687172 381699473
381676157 381663856
11015 35617

383784080 383796015
383773553 383761618
10527 34397

385880831 385893839
385871106 385858098
9725 35741

387977444 387990196
387968797 387956045
8647 34151

390074342 390086885
390066203 390053660
8139 33225

392172622 392184419
392162227 392150430
10395 33989

394268264 394278213
394260889 394250940
7375 27273

396364456 396375493
396359001 396347964
5455 27529

398461337 398472242
398456424 398445519
4913 26723

400556588 400569689
400555477 400542376
1111 27313

402654414 402666652
402651955 402639717
2459 26935

404751320 404764454
404749353 404736219
1967 28235

406848720 406862029
406846257 406832948
2463 29081

408945913 408957818
408943368 408931463
2545 26355

411043006 411054795
411040579 411028790
2427 26005

413139131 413152783
413138758 413125106
373 27677

415237030 415250264
415235163 415221929
1867 28335

417336207 417345939
417330290 417320558
5917 25381

419433866 419442774
419426935 419418027
6931 24747

421533006 421540148
421522099 421514957
10907 25191

423628139 423636219
423621270 423613190
6869 23029

425724822 425735368
425718891 425708345
5931 27023

427822062 427832486
427815955 427805531
6107 26955

429918358 429929561
429913963 429902760
4395 26801

432015589 432025732
432011036 432000893
4553 24839

434110829 434121913
434110100 434099016
729 22897

436207044 436217630
436208189 436197603
-1145 20027

438305176 438315511
438304361 438294026
815 21485

440401815 440413017
440402026 440390824
-211 22193

442498481 442510536
442499664 442487609
-1183 22927

444596667 444606871
444595782 444585578
885 21293

446692433 446702562
446694320 446684191
-1887 18371

448789056 448799335
448792001 448781722
-2945 17613

450885926 450894451
450889435 450880910
-3509 13541

452983670 452993216
452985995 452976449
-2325 16767

455081167 455091476
455082802 455072493
-1635 18983

457180602 457190026
457177671 457168247
2931 21779

459277090 459287455
459275487 459265122
1603 22333

461375098 461383598
461371783 461363283
3315 20315

463472748 463481146
463468437 463460039
4311 21107

465569507 465577775
465565982 465557714
3525 20061

467666179 467673804
467663614 467655989
2565 17815

469761728 469772636
469762369 469751461
-641 21175

471859495 471870179
471858906 471848222
589 21957

473956688 473967528
473956017 473945177
671 22351

476054631 476065715
476052378 476041294
2253 24421

478151301 478163423
478150012 478137890
1289 25533

480247860 480260054
480247757 480235563
103 24491

482346067 482358424
482343854 482331497
2213 26927

484444877 484457362
484439348 484426863
5529 30499

486542034 486555674
486536495 486522855
5539 32819

488638175 488652275
488634658 488620558
3517 31717

490735985 490749720
490731152 490717417
4833 32303

492831125 492846310
492830316 492815131
809 31179

494927731 494942986
494928014 494912759
-283 30227

497024673 497041090
497025376 497008959
-703 32131

499121865 499137532
499122488 499106821
-623 30711

501220060 501232977
501218597 501205680
1463 27297

503315089 503329592
503317872 503303369
-2783 26223

505412296 505426033
505414969 505401232
-2673 24801

507508609 507525181
507512960 507496388
-4351 28793

509605668 509622238
509610205 509593635
-4537 28603

511702627 511718301
511707550 511691876
-4923 26425

513798806 513814342
513805675 513790139
-6869 24203

515897040 515910790
515901745 515887995
-4705 22795

517993750 518005710
517999339 517987379
-5589 18331

520090280 520102736
520097113 520084657
-6833 18079

522184516 522201283
522197181 522180414
-12665 20869

524282082 524298190
524293919 524277811
-11837 20379

526380768 526396133
526389537 526374172
-8769 21961

528477352 528493357
528487257 528471252
-9905 22105

530575989 530588754
530582924 530570159
-6935 18595

532674928 532683607
532678289 532669610
-3361 13997

534772308 534781121
534775213 534766400
-2905 14721

536870299 536878153
536871526 536863672
-1227 14481

538966645 538973500
538969484 538962629
-2839 10871

541063403 541069808
541067030 541060625
-3627 9183

543161005 543166348
543163732 543158389
-2727 7959

545255560 545263509
545263481 545255532
-7921 7977

547352971 547361689
547360374 547351656
-7403 10033

549451949 549459318
549455700 549448331
-3751 10987

551548423 551555623
551553530 551546330
-5107 9293

553645314 553651894
553650943 553644363
-5629 7531

555742428 555747858
555748133 555742703
-5705 5155

557839088 557845329
557845777 557839536
-6689 5793

559937162 559946414
559942007 559932755
-4845 13659

562031975 562043477
562041498 562029996
-9523 13481

564129799 564139346
564137978 564128431
-8179 10915

566227195 566236148
566234886 566225933
-7691 10215

568324200 568333920
568332185 568322465
-7985 11455

570418921 570429558
570431768 570421131
-12847 8427

572517472 572526017
572527521 572518976
-10049 7041

574616123 574622617
574623174 574616680
-7051 5937

576715001 576721927
576718600 576711674
-3599 10253

578810631 578819592
578817274 578808313
-6643 11279

580907318 580916844
580914891 580905365
-7573 11479

583004745 583013730
583011768 583002783
-7023 10947

585102954 585111385
585107863 585099432
-4909 11953

587198884 587209848
587206237 587195273
-7353 14575

589296885 589306860
589302540 589292565
-5655 14295

591394360 591403871
591399369 591389858
-5009 14013

593490394 593501151
593497639 593486882
-7245 14269

595587841 595598254
595594496 595584083
-6655 14171

597685054 597696453
597691587 597680188
-6533 16265

599781542 599794395
599789403 599776550
-7861 17845

601877150 601891529
601888099 601873720
-10949 17809

603974570 603988864
603984983 603970689
-10413 18175

606071445 606086143
606082412 606067714
-10967 18429

608167529 608184220
608180632 608163941
-13103 20279

610264607 610280330
610277858 610262135
-13251 18195

612363029 612377744
612373740 612359025
-10711 18719

614460884 614475911
614470189 614455162
-9305 20749

616558756 616575424
616566621 616549953
-7865 25471

618657971 618672799
618661710 618646882
-3739 25917

620754792 620771144
620759193 620742841
-4401 28303

622851355 622867893
622856934 622840396
-5579 27497

624947943 624964882
624954650 624937711
-6707 27171

627045537 627059936
627051360 627036961
-5823 22975

629142892 629156894
629148309 629134307
-5417 22587

631240066 631251699
631245439 631233806
-5373 17893

633338428 633349428
633341381 633330381
-2953 19047

635436120 635446541
635437993 635427572
-1873 18969

637532634 637543855
637535783 637524562
-3149 19293

639630415 639640947
639632306 639621774
-1891 19173

641728647 641737907
641728378 641719118
269 18789

643824360 643836152
643826969 643815177
-2609 20975

645922063 645935892
645923570 645909741
-1507 26151

648018592 648032559
648021345 648007378
-2753 25181

650115672 650127669
650118569 650106572
-2897 21097

652211752 652226593
652216793 652201952
-5041 24641

654308610 654323721
654314239 654299128
-5629 24593

656407551 656422344
656409602 656394809
-2051 27535

658505034 658519322
658506423 658492135
-1389 27187

660601433 660617262
660604328 660588499
-2895 28763

662697646 662715754
662702419 662684311
-4773 31443

664794667 664814225
664799702 664780144
-5035 34081

666890415 666910956
666898258 666877717
-7843 33239

668988273 669006685
668994704 668976292
-6431 30393

671085340 671103786
671091941 671073495
-6601 30291

673182325 673201022
673189260 673170563
-6935 30459

675281040 675298181
675284849 675267708
-3809 30473

677378981 677394959
677381212 677365234
-2231 29725

679475859 679492353
679478638 679462144
-2779 30209

681574815 681588267
681573986 681560534
829 27733

683671269 683684116
683671836 683658989
-567 25127

685769330 685781233
685768079 685756176
1251 25057

687866106 687877843
687865607 687853870
499 23973

689961120 689972865
689964897 689953152
-3777 19713

692058228 692070372
692062093 692049949
-3865 20423

694156287 694167731
694158338 694146894
-2051 20837

696251890 696264385
696257039 696244544
-5149 19841

698347145 698361630
698356088 698341603
-8943 20027

700442673 700458125
700454864 700439412
-12191 18713

702539585 702554157
702552256 702537684
-12671 16473

704636003 704652641
704650142 704633504
-14139 19137

706730982 706750461
706749467 706729988
-18485 20473

708828232 708847825
708846521 708826928
-18289 20897

710925773 710944672
710943284 710924385
-17511 20287

713023767 713041497
713039594 713021864
-15827 19633

715120806 715139378
715136859 715118287
-16053 21091

717217330 717234193
717234639 717217776
-17309 16417

719313876 719332779
719332397 719313494
-18521 19285

721410803 721430535
721429774 721410042
-18971 20493

723510177 723527355
723524704 723507526
-14527 19829

725606942 725625922
725622243 725603263
-15301 22659

727703429 727723142
727720060 727700347
-16631 22795

729801177 729821536
729816616 729796257
-15439 25279

731898377 731919199
731913720 731892898
-15343 26301

733995714 734016863
734010687 733989538
-14973 27325

736092344 736114190
736108361 736086515
-16017 27675

738190858 738213159
738204151 738181850
-13293 31309

740287806 740310333
740301507 740278980
-13701 31353

742386508 742406653
742397109 742376964
-10601 29689

744483526 744505599
744494395 744472322
-10869 33277

746580120 746603498
746592105 746568727
-11985 34771

748675604 748700973
748690925 748665556
-15321 35417

750772481 750797544
750788352 750763289
-15871 34255

752869342 752893763
752885795 752861374
-16453 32389

754966897 754991112
754982544 754958329
-15647 32783

757064533 757088515
757079212 757055230
-14679 33285

759161745 759184133
759176304 759153916
-14559 30217

761257639 761281602
761274714 761250751
-17075 30851

763354091 763378369
763372566 763348288
-18475 30081

765451500 765475069
765469461 765445892
-17961 29177

767548225 767573028
767567040 767542237
-18815 30791

769644693 769672069
769664876 769637500
-20183 34569

771743461 771770361
771760412 771733512
-16951 36849

773840541 773866757
773857636 773831420
-17095 35337

775939202 775964956
775953279 775927525
-14077 37431

778034921 778063720
778051864 778023065
-16943 40655

780131686 780161610
780149403 780119479
-17717 42131

782229307 782258388
782246086 782217005
-16779 41383

784325096 784355136
784344601 784314561
-19505 40575

786421925 786453541
786442076 786410460
-20151 43081

788518732 788551204
788539573 788507101
-20841 44103

790615389 790647772
790637220 790604837
-21831 42935

792713376 792745889
792733537 792701024
-20161 44865

794810167 794842259
794831050 794798958
-20883 43301

796907818 796939578
796927703 796895943
-19885 43635

799005368 799038115
799024457 798991710
-19089 46405

801103000 801134140
801121129 801089989
-18129 44151

803200045 803230509
803218388 803187924
-18343 42585

805295425 805329494
805317312 805283243
-21887 46251

807395002 807425820
807412039 807381221
-17037 44599

809491649 809522885
809509696 809478460
-18047 44425

811589607 811619538
811606042 811576111
-16435 43427

813689974 813716252
813699979 813673701
-10005 42551

815787261 815815080
815796996 815769177
-9735 45903

817884289 817911400
817894272 817867161
-9983 44239

819980518 820007006
819992347 819965859
-11829 41147

822079065 822104045
822088104 822063124
-9039 40921

824175771 824201316
824185702 824160157
-9931 41159

826273449 826297421
826282328 826258356
-8879 39065

828370161 828393587
828379920 828356494
-9759 37093

830466878 830491430
830477507 830452955
-10629 38475

832565934 832588381
832572755 832550308
-6821 38073

834664020 834686536
834668973 834646457
-4953 40079

836759722 836784704
836767575 836742593
-7853 42111

838858507 838883398
838863094 838838203
-4587 45195

840956559 840978191
840959346 840937714
-2787 40477

843053901 843074945
843056308 843035264
-2407 39681

845151301 845171376
845153212 845133137
-1911 38239

847249436 847268727
847249381 847230090
55 38637

849346052 849364768
849347069 849328353
-1017 36415

851442844 851462160
851444581 851425265
-1737 36895

853540177 853558787
853541552 853522942
-1375 35845

855638052 855657432
855637981 855618601
71 38831

857734586 857755063
857735751 857715274
-1165 39789

859831126 859853095
859833515 859811546
-2389 41549

861929927 861949379
861929018 861909566
909 39813

864026170 864047531
864027079 864005718
-909 41813

866124746 866145380
866122807 866102173
1939 43207

868223371 868241513
868218486 868200344
4885 41169
.
.
.

[code:23dqj2c8]#include
#include
#include
#include

typedef signed char int8;
typedef unsigned char uint8;

class LifeRnd256
{
public:

long rnd(void);
~LifeRnd256(void);
LifeRnd256(long *key);

private:

uint8 *a, *b;
uint8 *c, *d;
uint8 abcd[4];
long life[256];
void inc4(void);
};

LifeRnd256::~LifeRnd256(void)
{
}

LifeRnd256::LifeRnd256(long *avain)
{
int n=sizeof(long)*256;
memcpy(life, avain, n);
a=abcd+0; *a=(uint8)0;
b=abcd+1; *b=(uint8)1;
c=abcd+2; *c=(uint8)2;
d=abcd+3; *d=(uint8)3;
}

void LifeRnd256::inc4(void)
{
int i=3;
uint8 t=1;

while (i >= 0)
{
if (!(abcd[i]+=t)) --i;
else if ((++i)==4) return;
else abcd[i]=abcd[i-1];
}

for (i=0; i<4; i++)
abcd[i] = (uint8)i;
}

inline long LifeRnd256::rnd(void)
{
life[*a]+=(life[*a]>>16)^(life[*b]<<16);
life[*b]+=(life[*a]<<16)^(life[*b]>>16);

life[*a]+=life[*c];
life[*b]-=life[*d];

inc4(); /* 174 792 640 */
return life[*a]^life[*b];
}

void main(void)
{
long key[256]=
{
0x1935f4dfL, 0xcf745790L, 0xc4d3f7bbL, 0x1161a60dL,
0x3a0b8bc8L, 0x883cc23fL, 0x3676535eL, 0x72989197L,
0x80eb8a3aL, 0xd5fd72a7L, 0x74ba2922L, 0x49f377a3L,
0xb592209dL, 0xda157096L, 0xfaa6d72cL, 0xb778f819L,
0x136d885cL, 0x8bcc80aeL, 0x417fe363L, 0x4f80b6eaL,
0x431fb8b4L, 0xfdac2702L, 0xda4ebb69L, 0x3c002a4fL,
0xc3465e5aL, 0xe1aa284bL, 0x5363a7a8L, 0x6bdb68c1L,
0x48fa8cf8L, 0x59818937L, 0x1a71a354L, 0xc7e7df19L,
0x41b41329L, 0x554f5382L, 0x21b65363L, 0xbdd12730L,
0xa0832abfL, 0xd7834127L, 0x4738fb70L, 0x66a35d21L,
0x322c08d2L, 0xdd43f192L, 0xf3f122deL, 0x26922f58L,
0xd725f737L, 0xe5051232L, 0x585fbc77L, 0x06b4c0baL,
0x820b2664L, 0x3ffe79efL, 0xac9d32bfL, 0x52aa79efL,
0x2bc26b95L, 0x24473e3aL, 0xa141804cL, 0xa938a51cL,
0x8adf6074L, 0x4581ea07L, 0xdd948b12L, 0xfa2a52bbL,
0x303d76afL, 0x0cd40812L, 0x7c4a52b7L, 0xdc5b31c2L,
0x50701827L, 0x004f76beL, 0x003025b5L, 0x6f299d1eL,
0x0ce5824aL, 0x8ee3237eL, 0x02aec994L, 0xab100f73L,
0xb2dce46fL, 0x3abb44eaL, 0xefdb4f1dL, 0x7283a859L,
0xe173c7d3L, 0x55452103L, 0x0c40e18eL, 0x1e9d7d29L,
0x43e5b091L, 0xa64d6eabL, 0xca842fecL, 0x0ae63d3bL,
0x9a0d415dL, 0x15f38535L, 0x2c2a1248L, 0xef84fa58L,
0xd6c0750aL, 0x1a4428c6L, 0x2c8f83d1L, 0x849094e3L,
0x6334fb0aL, 0xa2be9201L, 0xfd1d64acL, 0x6b03da05L,
0xdc481a78L, 0x522a62caL, 0x456e5946L, 0x4ba4f949L,
0x72b697c0L, 0xb7b27b6eL, 0x58f7ac60L, 0x79e84c3bL,
0x6ed214dcL, 0xe82b7ce5L, 0x611e5f08L, 0xfdc3d2f7L,
0xe21ed654L, 0x5ce7ce25L, 0x24b31c57L, 0xb13dad7aL,
0xc8dd0927L, 0xbd402010L, 0x398f268eL, 0x398fed7fL,
0x4b375398L, 0xf12078d4L, 0x6a70f5d2L, 0x3f122e47L,
0x6f0957edL, 0xf64ead0dL, 0x5b10b4baL, 0x87ef4f90L,
0x5de4f9d6L, 0x82a7895cL, 0x3339f4c0L, 0x986819e8L,
0x80073544L, 0x21e12fc0L, 0xfaeb0ba6L, 0x7c7eab98L,
0xf272837eL, 0xb9f48b3eL, 0xf707f16dL, 0x1fc64046L,
0x4f1267a9L, 0x9818b69bL, 0x7634a635L, 0x081e6356L,
0xc5bbe582L, 0xa0fd437dL, 0x574fa287L, 0x08156141L,
0x0ec4bd22L, 0x851b0048L, 0x6678d01dL, 0xb5dd6eecL,
0x0b5f0e78L, 0x8080c224L, 0x55477c88L, 0xb5cfc2d9L,
0x32d98e63L, 0x992407cfL, 0xe40c61fbL, 0x382e7ff2L,
0xe186392dL, 0x0b7db079L, 0x5d5a81dbL, 0xa62c171fL,
0x576e8615L, 0x09dfdd06L, 0x8e8bc416L, 0x5dca9fd9L,
0x9e120ec2L, 0x2eaebb32L, 0x6f86b35aL, 0x7b74ecc8L,
0xd2a060b6L, 0x0581b253L, 0xc942bb83L, 0x89bf4aadL,
0x1f6032f7L, 0x44579f5fL, 0x76fe70d2L, 0xc898106fL,
0xd4c67731L, 0x72eda4e1L, 0x725b0b00L, 0x21c338bcL,
0x549f0ce3L, 0x19a1c364L, 0x26ad6920L, 0x47b8d3eeL,
0xcf35607bL, 0xf14d8147L, 0x5c11ed77L, 0xc3178933L,
0x9ca7a659L, 0xc68aa9ccL, 0xd4af92b7L, 0x6c5a1383L,
0x1db9c268L, 0xe24b1ec8L, 0x4e324d06L, 0x8a61debbL,
0x84ac3f42L, 0xc8549801L, 0x84297683L, 0x835df3f7L,
0x5cbf3b64L, 0xc4aae49dL, 0xfed5a37cL, 0xb0a60c6cL,
0x3bc33d32L, 0xb671c94cL, 0x917eee23L, 0xc9b598eaL,
0xc3e6ae7aL, 0xf7492308L, 0xcef97c63L, 0x636f206bL,
0x73b7c5f8L, 0x13687bffL, 0x298f08f8L, 0x65dfe5beL,
0x1f732af2L, 0x243813e7L, 0x2a549259L, 0xb9e3b912L,
0xb5ccad60L, 0x440c89fbL, 0xc5a640a5L, 0x1a241bc4L,
0xfa11743aL, 0x8b769f79L, 0xc6d05338L, 0xe5f9f615L,
0x71c9270eL, 0xafcc9603L, 0xb6c543cdL, 0xd81ff736L,
0xffaf566dL, 0x1707ab2dL, 0x9e43ade5L, 0x2b98a54fL,
0x453cb460L, 0x4d375d6aL, 0xf73afbfcL, 0xb66ffe39L,
0xbfa3940fL, 0x020577fbL, 0xd6d28bfbL, 0x7de8b197L,
0xa1eef1e6L, 0x450d00beL, 0xe306f6c5L, 0x0be4da69L,
0x7618708bL, 0xad3d5ffdL, 0xe510f167L, 0x8a557142L,
0x67139054L, 0x4980fe83L, 0x90bbda1fL, 0x99d088c5L,
};

LifeRnd256 inf(key);

int X[2]={0, 0}; // _jone_:n tilasto.
int Y[2]={0, 0}; // Builderin tilasto.
for (int loop=0;; loop++)
{
++Y[random(2)];
++X[inf.rnd()&1];
if (loop==(1<<22))
{
/* Näytetään tilasto 2^22 askeleen välein. */
printf("%d %d\n%d %d\n%d %d\n\n", X[0], Y[0], X[1], Y[1], X[0]-X[1], Y[0]-Y[1]);
loop=0;
}
}
}[/code:23dqj2c8]

Uusimmat

Suosituimmat