( 7, 7)= 1
( 8, 4)= 2 ( 8, 5)= 2 ( 8, 6)= 2 ( 8, 7)= 1
( 9, 3)= 6 ( 9, 4)= 10 ( 9, 5)= 7 ( 9, 6)= 4
( 9, 7)= 1
( 10, 2)= 4 ( 10, 3)= 30 ( 10, 4)= 28 ( 10, 5)= 15
( 10, 6)= 6 ( 10, 7)= 1
( 11, 2)= 26 ( 11, 3)= 89 ( 11, 4)= 60 ( 11, 5)= 26
( 11, 6)= 8 ( 11, 7)= 1
( 12, 2)= 96 ( 12, 3)= 205 ( 12, 4)= 110 ( 12, 5)= 40
( 12, 6)= 10 ( 12, 7)= 1
( 13, 1)= 1 ( 13, 2)= 266 ( 13, 3)= 405 ( 13, 4)= 182
( 13, 5)= 57 ( 13, 6)= 12 ( 13, 7)= 1
( 14, 1)= 7 ( 14, 2)= 616 ( 14, 3)= 721 ( 14, 4)= 280
( 14, 5)= 77 ( 14, 6)= 14 ( 14, 7)= 1
( 15, 1)= 28 ( 15, 2)= 1260 ( 15, 3)= 1190 ( 15, 4)= 408
( 15, 5)= 100 ( 15, 6)= 16 ( 15, 7)= 1
( 16, 1)= 84 ( 16, 2)= 2352 ( 16, 3)= 1854 ( 16, 4)= 570
( 16, 5)= 126 ( 16, 6)= 18 ( 16, 7)= 1
( 17, 1)= 210 ( 17, 2)= 4092 ( 17, 3)= 2760 ( 17, 4)= 770
( 17, 5)= 155 ( 17, 6)= 20 ( 17, 7)= 1
( 18, 1)= 462 ( 18, 2)= 6732 ( 18, 3)= 3960 ( 18, 4)= 1012
( 18, 5)= 187 ( 18, 6)= 22 ( 18, 7)= 1
( 19, 1)= 924 ( 19, 2)= 10582 ( 19, 3)= 5511 ( 19, 4)= 1300
( 19, 5)= 222 ( 19, 6)= 24 ( 19, 7)= 1
( 20, 1)= 1716 ( 20, 2)= 16016 ( 20, 3)= 7475 ( 20, 4)= 1638
( 20, 5)= 260 ( 20, 6)= 26 ( 20, 7)= 1
( 21, 1)= 3003 ( 21, 2)= 23478 ( 21, 3)= 9919 ( 21, 4)= 2030
( 21, 5)= 301 ( 21, 6)= 28 ( 21, 7)= 1
( 22, 1)= 5005 ( 22, 2)= 33488 ( 22, 3)= 12915 ( 22, 4)= 2480
( 22, 5)= 345 ( 22, 6)= 30 ( 22, 7)= 1
( 23, 1)= 8008 ( 23, 2)= 46648 ( 23, 3)= 16540 ( 23, 4)= 2992
( 23, 5)= 392 ( 23, 6)= 32 ( 23, 7)= 1
( 24, 1)= 12376 ( 24, 2)= 63648 ( 24, 3)= 20876 ( 24, 4)= 3570
( 24, 5)= 442 ( 24, 6)= 34 ( 24, 7)= 1
( 25, 1)= 18564 ( 25, 2)= 85272 ( 25, 3)= 26010 ( 25, 4)= 4218
( 25, 5)= 495 ( 25, 6)= 36 ( 25, 7)= 1
( 26, 1)= 27132 ( 26, 2)= 112404 ( 26, 3)= 32034 ( 26, 4)= 4940
( 26, 5)= 551 ( 26, 6)= 38 ( 26, 7)= 1
( 27, 1)= 38760 ( 27, 2)= 146034 ( 27, 3)= 39045 ( 27, 4)= 5740
( 27, 5)= 610 ( 27, 6)= 40 ( 27, 7)= 1
( 28, 1)= 54264 ( 28, 2)= 187264 ( 28, 3)= 47145 ( 28, 4)= 6622
( 28, 5)= 672 ( 28, 6)= 42 ( 28, 7)= 1
( 29, 1)= 74613 ( 29, 2)= 237314 ( 29, 3)= 56441 ( 29, 4)= 7590
( 29, 5)= 737 ( 29, 6)= 44 ( 29, 7)= 1
( 30, 1)= 100947 ( 30, 2)= 297528 ( 30, 3)= 67045 ( 30, 4)= 8648
( 30, 5)= 805 ( 30, 6)= 46 ( 30, 7)= 1
( 31, 1)= 134596 ( 31, 2)= 369380 ( 31, 3)= 79074 ( 31, 4)= 9800
( 31, 5)= 876 ( 31, 6)= 48 ( 31, 7)= 1
( 32, 1)= 177100 ( 32, 2)= 454480 ( 32, 3)= 92650 ( 32, 4)= 11050
( 32, 5)= 950 ( 32, 6)= 50 ( 32, 7)= 1
( 33, 1)= 230230 ( 33, 2)= 554580 ( 33, 3)= 107900 ( 33, 4)= 12402
( 33, 5)= 1027 ( 33, 6)= 52 ( 33, 7)= 1
( 34, 1)= 296010 ( 34, 2)= 671580 ( 34, 3)= 124956 ( 34, 4)= 13860
( 34, 5)= 1107 ( 34, 6)= 54 ( 34, 7)= 1
( 35, 1)= 376740 ( 35, 2)= 807534 ( 35, 3)= 143955 ( 35, 4)= 15428
( 35, 5)= 1190 ( 35, 6)= 56 ( 35, 7)= 1
( 36, 1)= 475020 ( 36, 2)= 964656 ( 36, 3)= 165039 ( 36, 4)= 17110
( 36, 5)= 1276 ( 36, 6)= 58 ( 36, 7)= 1
( 37, 1)= 593775 ( 37, 2)= 1145326 ( 37, 3)= 188355 ( 37, 4)= 18910
( 37, 5)= 1365 ( 37, 6)= 60 ( 37, 7)= 1
( 38, 1)= 736281 ( 38, 2)= 1352096 ( 38, 3)= 214055 ( 38, 4)= 20832
( 38, 5)= 1457 ( 38, 6)= 62 ( 38, 7)= 1
( 39, 1)= 906192 ( 39, 2)= 1587696 ( 39, 3)= 242296 ( 39, 4)= 22880
( 39, 5)= 1552 ( 39, 6)= 64 ( 39, 7)= 1
1:n jonoja 7:n mittaisia:( 39) joukossa: 4272048
2:n jonoja 7:n mittaisia:( 39) joukossa: 9182448
3:n jonoja 7:n mittaisia:( 39) joukossa: 1710456
4:n jonoja 7:n mittaisia:( 39) joukossa: 197472
5:n jonoja 7:n mittaisia:( 39) joukossa: 17424
6:n jonoja 7:n mittaisia:( 39) joukossa: 1056
7:n jonoja 7:n mittaisia:( 39) joukossa: 33
Kun nuo laskee yhteen, tulee 39 nCr 7 = 15380937, joten tulos on oikein...
Ohjelma ei ollut pitkä, joten haluaako joku nähdä sen?
Se hyppäsi sellaisten rivien yli, jossa oli alle 7 merkkiä, ja joissa yli, se ei heti välttämättä päässyt sellaisen ali kohtaan, jossa 7 merkkiä, mutta yleensä siinä niin kävi....
Voin sen ohjelman Copy-pasteta tänne, jos haluatte?
Pari minuuttia meni kääntäjällä....
Tulkilla olisi kestänyt monta päivää...
( 8, 4)= 2 ( 8, 5)= 2 ( 8, 6)= 2 ( 8, 7)= 1
( 9, 3)= 6 ( 9, 4)= 10 ( 9, 5)= 7 ( 9, 6)= 4
( 9, 7)= 1
( 10, 2)= 4 ( 10, 3)= 30 ( 10, 4)= 28 ( 10, 5)= 15
( 10, 6)= 6 ( 10, 7)= 1
( 11, 2)= 26 ( 11, 3)= 89 ( 11, 4)= 60 ( 11, 5)= 26
( 11, 6)= 8 ( 11, 7)= 1
( 12, 2)= 96 ( 12, 3)= 205 ( 12, 4)= 110 ( 12, 5)= 40
( 12, 6)= 10 ( 12, 7)= 1
( 13, 1)= 1 ( 13, 2)= 266 ( 13, 3)= 405 ( 13, 4)= 182
( 13, 5)= 57 ( 13, 6)= 12 ( 13, 7)= 1
( 14, 1)= 7 ( 14, 2)= 616 ( 14, 3)= 721 ( 14, 4)= 280
( 14, 5)= 77 ( 14, 6)= 14 ( 14, 7)= 1
( 15, 1)= 28 ( 15, 2)= 1260 ( 15, 3)= 1190 ( 15, 4)= 408
( 15, 5)= 100 ( 15, 6)= 16 ( 15, 7)= 1
( 16, 1)= 84 ( 16, 2)= 2352 ( 16, 3)= 1854 ( 16, 4)= 570
( 16, 5)= 126 ( 16, 6)= 18 ( 16, 7)= 1
( 17, 1)= 210 ( 17, 2)= 4092 ( 17, 3)= 2760 ( 17, 4)= 770
( 17, 5)= 155 ( 17, 6)= 20 ( 17, 7)= 1
( 18, 1)= 462 ( 18, 2)= 6732 ( 18, 3)= 3960 ( 18, 4)= 1012
( 18, 5)= 187 ( 18, 6)= 22 ( 18, 7)= 1
( 19, 1)= 924 ( 19, 2)= 10582 ( 19, 3)= 5511 ( 19, 4)= 1300
( 19, 5)= 222 ( 19, 6)= 24 ( 19, 7)= 1
( 20, 1)= 1716 ( 20, 2)= 16016 ( 20, 3)= 7475 ( 20, 4)= 1638
( 20, 5)= 260 ( 20, 6)= 26 ( 20, 7)= 1
( 21, 1)= 3003 ( 21, 2)= 23478 ( 21, 3)= 9919 ( 21, 4)= 2030
( 21, 5)= 301 ( 21, 6)= 28 ( 21, 7)= 1
( 22, 1)= 5005 ( 22, 2)= 33488 ( 22, 3)= 12915 ( 22, 4)= 2480
( 22, 5)= 345 ( 22, 6)= 30 ( 22, 7)= 1
( 23, 1)= 8008 ( 23, 2)= 46648 ( 23, 3)= 16540 ( 23, 4)= 2992
( 23, 5)= 392 ( 23, 6)= 32 ( 23, 7)= 1
( 24, 1)= 12376 ( 24, 2)= 63648 ( 24, 3)= 20876 ( 24, 4)= 3570
( 24, 5)= 442 ( 24, 6)= 34 ( 24, 7)= 1
( 25, 1)= 18564 ( 25, 2)= 85272 ( 25, 3)= 26010 ( 25, 4)= 4218
( 25, 5)= 495 ( 25, 6)= 36 ( 25, 7)= 1
( 26, 1)= 27132 ( 26, 2)= 112404 ( 26, 3)= 32034 ( 26, 4)= 4940
( 26, 5)= 551 ( 26, 6)= 38 ( 26, 7)= 1
( 27, 1)= 38760 ( 27, 2)= 146034 ( 27, 3)= 39045 ( 27, 4)= 5740
( 27, 5)= 610 ( 27, 6)= 40 ( 27, 7)= 1
( 28, 1)= 54264 ( 28, 2)= 187264 ( 28, 3)= 47145 ( 28, 4)= 6622
( 28, 5)= 672 ( 28, 6)= 42 ( 28, 7)= 1
( 29, 1)= 74613 ( 29, 2)= 237314 ( 29, 3)= 56441 ( 29, 4)= 7590
( 29, 5)= 737 ( 29, 6)= 44 ( 29, 7)= 1
( 30, 1)= 100947 ( 30, 2)= 297528 ( 30, 3)= 67045 ( 30, 4)= 8648
( 30, 5)= 805 ( 30, 6)= 46 ( 30, 7)= 1
( 31, 1)= 134596 ( 31, 2)= 369380 ( 31, 3)= 79074 ( 31, 4)= 9800
( 31, 5)= 876 ( 31, 6)= 48 ( 31, 7)= 1
( 32, 1)= 177100 ( 32, 2)= 454480 ( 32, 3)= 92650 ( 32, 4)= 11050
( 32, 5)= 950 ( 32, 6)= 50 ( 32, 7)= 1
( 33, 1)= 230230 ( 33, 2)= 554580 ( 33, 3)= 107900 ( 33, 4)= 12402
( 33, 5)= 1027 ( 33, 6)= 52 ( 33, 7)= 1
( 34, 1)= 296010 ( 34, 2)= 671580 ( 34, 3)= 124956 ( 34, 4)= 13860
( 34, 5)= 1107 ( 34, 6)= 54 ( 34, 7)= 1
( 35, 1)= 376740 ( 35, 2)= 807534 ( 35, 3)= 143955 ( 35, 4)= 15428
( 35, 5)= 1190 ( 35, 6)= 56 ( 35, 7)= 1
( 36, 1)= 475020 ( 36, 2)= 964656 ( 36, 3)= 165039 ( 36, 4)= 17110
( 36, 5)= 1276 ( 36, 6)= 58 ( 36, 7)= 1
( 37, 1)= 593775 ( 37, 2)= 1145326 ( 37, 3)= 188355 ( 37, 4)= 18910
( 37, 5)= 1365 ( 37, 6)= 60 ( 37, 7)= 1
( 38, 1)= 736281 ( 38, 2)= 1352096 ( 38, 3)= 214055 ( 38, 4)= 20832
( 38, 5)= 1457 ( 38, 6)= 62 ( 38, 7)= 1
( 39, 1)= 906192 ( 39, 2)= 1587696 ( 39, 3)= 242296 ( 39, 4)= 22880
( 39, 5)= 1552 ( 39, 6)= 64 ( 39, 7)= 1
1:n jonoja 7:n mittaisia:( 39) joukossa: 4272048
2:n jonoja 7:n mittaisia:( 39) joukossa: 9182448
3:n jonoja 7:n mittaisia:( 39) joukossa: 1710456
4:n jonoja 7:n mittaisia:( 39) joukossa: 197472
5:n jonoja 7:n mittaisia:( 39) joukossa: 17424
6:n jonoja 7:n mittaisia:( 39) joukossa: 1056
7:n jonoja 7:n mittaisia:( 39) joukossa: 33
Kun nuo laskee yhteen, tulee 39 nCr 7 = 15380937, joten tulos on oikein...
Ohjelma ei ollut pitkä, joten haluaako joku nähdä sen?
Se hyppäsi sellaisten rivien yli, jossa oli alle 7 merkkiä, ja joissa yli, se ei heti välttämättä päässyt sellaisen ali kohtaan, jossa 7 merkkiä, mutta yleensä siinä niin kävi....
Voin sen ohjelman Copy-pasteta tänne, jos haluatte?
Pari minuuttia meni kääntäjällä....
Tulkilla olisi kestänyt monta päivää...
Vastaukset 6
Vanhimmat
Meni noin viisi minuuttia tarkkaan ottaen....
En tiedä, miksi meni niinkin kauan, ilmeiesesti koodi ei ollut ihan "optimaalista"
Tulkilla olisi mennyt ainakin 100-1000-kertaa kauemmin eli monta päivää....
Hiukan paremmin muotoiltuna, sarkaimet ei tässä näköjään sattuneet samaan kohtaan.
7: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
1
8: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
2 2 2 1
9: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
6 10 7 4 1
10: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
4 30 28 15 6 1
11: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
26 89 60 26 8 1
12: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
96 205 110 40 10 1
13: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
1 266 405 182 57 12 1
14: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
7 616 721 280 77 14 1
15: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
28 1260 1190 408 100 16 1
16: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
84 2352 1854 570 126 18 1
17: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
210 4092 2760 770 155 20 1
18: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
462 6732 3960 1012 187 22 1
19: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
924 10582 5511 1300 222 24 1
20: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
1716 16016 7475 1638 260 26 1
21: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
3003 23478 9919 2030 301 28 1
22: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
5005 33488 12915 2480 345 30 1
23: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
8008 46648 16540 2992 392 32 1
24: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
12376 63648 20876 3570 442 34 1
25: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
18564 85272 26010 4218 495 36 1
26: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
27132 112404 32034 4940 551 38 1
27: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
38760 146034 39045 5740 610 40 1
28: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
54264 187264 47145 6622 672 42 1
29: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
74613 237314 56441 7590 737 44 1
30: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
100947 297528 67045 8648 805 46 1
31: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
134596 369380 79074 9800 876 48 1
32: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
177100 454480 92650 11050 950 50 1
33: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
230230 554580 107900 12402 1027 52 1
34: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
296010 671580 124956 13860 1107 54 1
35: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
376740 807534 143955 15428 1190 56 1
36: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
475020 964656 165039 17110 1276 58 1
37: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
593775 1145326 188355 18910 1365 60 1
38: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
736281 1352096 214055 20832 1457 62 1
39: | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
906192 1587696 242296 22880 1552 64 1
1:n jonoja 7:n mittaisia:( 39) joukossa: 4272048
2:n jonoja 7:n mittaisia:( 39) joukossa: 9182448
3:n jonoja 7:n mittaisia:( 39) joukossa: 1710456
4:n jonoja 7:n mittaisia:( 39) joukossa: 197472
5:n jonoja 7:n mittaisia:( 39) joukossa: 17424
6:n jonoja 7:n mittaisia:( 39) joukossa: 1056
7:n jonoja 7:n mittaisia:( 39) joukossa: 33
Mitä järkeä? Minulla rähmäkäpälällä meni taskulaskimella n. 5 sekuntia moiseen. Siis
39!/ (7! * 32!). Käsinkin onnistuu takuulla alle minuutissa.
REM UUSILOTTO
REM Lyhykäiset rivit löytää kaikki
REM FreeBasic, vanha Basic-kääntäjä, imuroi jos jaksat....
REM kommentti koodista: AND maskia ei käytetty, kosk kääntäjä ei osannut
REM maskata yli 32 bittisillä...
type tyyppi
bits as byte
ybit as byte
bitm2 as byte
maski as double
lisays as double
end type
declare sub tulosta(binjono as double, yhtbit as byte)
declare function binaariksi(binjono as double, maxjono as byte, bitlkm as byte) as tyyppi
dim tulos(50, 10) AS INTEGER
dim a as integer
dim c as integer
dim maskiapu as double
dim maski as double
dim lisays as double
dim suurinjono as double
dim lask as byte
dim binjono as double
dim bkohta as double
dim i as byte
dim ii as byte
dim bitm as byte
dim bitm2 as byte
dim lisa as byte = 0
FOR a = 0 TO 49: FOR c = 0 TO 9
tulos(a, c) = 0
NEXT c
NEXT a
dim bitlkm as integer
dim maxjono as byte
virhe:
dim kysy as string
dim tlsta as byte
INPUT "Montako bitti„ (max 48)?"; bitlkm
if bitlkm > 48 THEN goto virhe
INPUT "Mik„ on maxjono?"; maxjono
IF maxjono > bitlkm OR maxjono > 10 THEN GOTO virhe:
INPUT "Tulostetaanko rivit?(K = k = kyllä)";kysy
if kysy = "k" or kysy = "K" then tlsta = 1
DIM jonoja(48) AS DOUBLE
DIM jonostr(48) AS STRING
dim bitteja as byte
jonoja(0) = 1
FOR i = 1 TO 48
jonoja(i) = 2 ^ i - 1!
NEXT
dim maxluku as double
maxluku = 2 ^ bitlkm
FOR i = 1 TO bitlkm
jonostr(i) = "0" STRING$(i, "1") "0"
NEXT
dim edkohta as integer
dim yhtkohta as byte
edkohta = -1
yhtkohta = 0
dim yhtbit as byte
dim j as double
dim omatype as tyyppi
dim as byte tls = 0
suurinjono = jonoja(maxjono) * 2 ^ (bitlkm - maxjono)
j = jonoja(maxjono)
looppi:
while (j maxjono THEN
j = j lisays
IF j > suurinjono THEN goto tulostin
edkohta = yhtbit
omatype = binaariksi(j, maxjono, bitlkm)
bitteja = omatype.bits
yhtbit = omatype.ybit
bitm2 = omatype.bitm2
maski = omatype.maski
lisays = omatype.lisays
GOTO ylimeni
End if
tokameni:
IF bitteja < maxjono THEN
j = j maski
edkohta = yhtbit
IF j > suurinjono then goto tulostin
omatype = binaariksi(j, maxjono, bitlkm)
bitteja = omatype.bits
yhtbit = omatype.ybit
bitm2 = omatype.bitm2
maski = omatype.maski
lisays = omatype.lisays
END IF
tulos(yhtbit, bitm2) = tulos(yhtbit, bitm2) 1
if tlsta = 0 then goto jatkuu
PRINT yhtbit; ":";:tulosta(j, yhtbit)
PRINT ":"; bitm2; ":"; j;
PRINT ":"; tulos(yhtbit, bitm2);" ";
tls = tls 1
if tls = 20 then input"";kysy: tls = 0
if tls mod 2 = 1 then print
jatkuu:
j = j 1
rem end if
edkohta = yhtbit
wend
REM JATKUU....
REM Toivottavasti tämä ei ollut se BUGINEN versio!
REM jatkoa....
tulostin:
dim SUMMA as integer
dim arvo as integer
dim as byte tulo = 0
FOR i = 1 TO bitlkm
print i;":";
for ii = 1 to maxjono
print tab(ii*8);"| ";ii;tab(ii*8 6);"|";
next
print
print "-------------------------------------------------------------------------------"
FOR ii = 1 TO maxjono
arvo = tulos(i,ii)
IF arvo > 0 THEN
SUMMA = SUMMA arvo
PRINT TAB(ii * 8); arvo;
tulo = 1
END IF
NEXT
if tulo = 1 then
print
print "------------------------------------------------------------------------------ "
end if
NEXT
PRINT
SUMMA = 0
FOR i = 1 TO maxjono
SUMMA = 0
PRINT i; "; n jonoja "; maxjono; ":n mittaisia:("; bitlkm; ") joukossa:";
FOR ii = 1 TO bitlkm
arvo = tulos(ii,i)
SUMMA = SUMMA arvo
NEXT
PRINT SUMMA
NEXT
dim vastaus as string
dim nimi as string
tulo = 0
INPUT "Haluatko tiedotoon tuloksen?(E=Ei)"; vastaus
IF vastaus = "e" OR vastaus = "E" THEN END
INPUT "Tiedoston nimi?"; nimi
OPEN nimi FOR OUTPUT AS 1
FOR i = 1 TO bitlkm
lask = 0
print #1, i;":";
for ii = 1 to maxjono
print #1, tab(ii*8);"| ";ii;tab(ii*8 6);"|";
next
print #1, " "
print #1, "-------------------------------------------------------------------------------"
FOR ii = 1 TO maxjono
arvo = tulos(i,ii)
IF arvo > 0 THEN
SUMMA = SUMMA arvo
PRINT #1, TAB(ii * 8); arvo;
tulo = 1
END IF
NEXT
if tulo = 1 then
print #1, " "
print #1, "------------------------------------------------------------------------------ "
end if
NEXT
PRINT #1," "
FOR i = 1 TO maxjono
SUMMA = 0
PRINT #1, i; ":n jonoja"; maxjono; ":n mittaisia:("; bitlkm; ") joukossa:";
FOR ii = 1 TO bitlkm
arvo = tulos(ii,i)
SUMMA = SUMMA arvo
NEXT
PRINT #1, SUMMA
NEXT
CLOSE #1
PRINT "Tallennettu!"
end
rem end sub
function binaariksi(binjono as double, maxjono as byte, bitlkm as byte) as tyyppi
dim paluu as tyyppi
dim as byte i, bitm, bitm2, bitteja, yhtbit, lisa, mbits
dim as double maxluku, lisays, maski, maskiapu, bkohta, tuloss
dim arvo as integer
bitm = 0: bitm2 = 0: mbits = 0
lisays = 1: maski = 0
bitteja = 0: yhtbit = 0: lisa = 0
bkohta = 1
WHILE (bkohta = .5 THEN
bitteja = bitteja 1
IF lisa = 0 THEN lisays = bkohta: lisa = 1
bitm = bitm 1
ELSE
IF bitm2 < bitm THEN bitm2 = bitm
bitm = 0
END IF
bkohta = bkohta * 2
WEND
bkohta = 1
IF bitm > bitm2 THEN bitm2 = bitm
IF bitteja < maxjono THEN
for i = 1 to bitlkm
maskiapu= int(binjono/bkohta)/2 - int(binjono/bkohta/2)
if maskiapu < 0.5 then mbits = mbits 1:maski = maski bkohta
if mbits = (maxjono - bitteja) then i = bitlkm
bkohta = bkohta * 2
next
if maski = 0 then maski = 1
END IF
paluu.bits = bitteja
paluu.ybit = yhtbit
paluu.bitm2 = bitm2
paluu.maski = maski
paluu.lisays = lisays
return paluu
end function
sub tulosta(binjono as double, yhtbit as byte)
dim as string binjonos = ""
dim as string merkki
dim as double bkohta = 1
dim as byte s
dim as double tulos = 0
FOR s = 1 TO yhtbit
merkki = "0"
tulos = INT(binjono / bkohta) / 2 - INT(binjono / bkohta / 2)
IF tulos >= .5 THEN merkki = "1"
binjonos = merkki binjonos
bkohta = bkohta * 2
NEXT
print binjonos;
end sub
loppu:
END
REM itse turhien rivien skippaus algyrytmi ei välttämättä tehokkain mahdollinen....
Anteeksi, elvistelyni, mutta jos keksit, miten miten voidaan skipata paremmin, turhia rivejä, niin melelläni kehittelisin algorytmiä...
ON todella hidas esim QBasic-tulkilla(dim lauseit ei siinä tarvita kuin taulukoille), lottoriveissa menisi monta tuntia, mutta kääntäjä oli YLLÄTTÄVÄN nopea...
39 bittiä, lottorivissä, kaikille jonon pituuksille, on suuri määrä, joten skippaus olis silti melko tehokasta...
Itselleni tuli pieni pari viikkoa sitten, kun tein ohjelman, pieni "päänsärky", ja kuuntelin Aki Sirkesaloa juuri, ja Antti Tuiskun "Hyökyaallon", toivottavasti Zunami ei johtunut tästä?
Varmaan iso-paha super-cray, ilmatieteenlaitoksella on suurempi syyllinen?