From: Tomas Musil Date: Sat, 17 Mar 2012 17:09:49 +0000 (+0100) Subject: Pocatecni commit X-Git-Url: http://git.tomasm.cz/krypto.git/commitdiff_plain/09f076927cd6294ae6c3db9268496dc3a8fc87f4 Pocatecni commit --- 09f076927cd6294ae6c3db9268496dc3a8fc87f4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa75c40 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.pyc +*.log +*.tmp diff --git a/TODO b/TODO new file mode 100644 index 0000000..2fbefea --- /dev/null +++ b/TODO @@ -0,0 +1,18 @@ +==Nutno dodelat== +efektivni jakobsen +jakobsen bez mezer + tabulky +index(y) koincidence +roztridit a prehazet obsah jednotlivych souboru + v robot.py jenom handling mailu + ostatni nastroje prehledne roztridit +automaticke rozpoznani typu sifry + +==Moznosti rozsireni== +dalsi/lepsi referencni tabulky +polyalfabeticky jakobsen +kasisskeho test? (odhali neco co by nenasli indexy koincidence? asi ne...) + +==Vyzkum== +neco na transpozice? +podivat se jestli nekdo navazal na jakobsena + (rozptyly, optimalita) diff --git a/bref b/bref new file mode 100644 index 0000000..3b867c0 --- /dev/null +++ b/bref @@ -0,0 +1,1475 @@ +(i__main__ +reference +p0 +(dp1 +S'tabulka' +p2 +(dp3 +S'A' +p4 +(dp5 +g4 +F0.001267490780855574 +sS'C' +p6 +F0.0049603901166548935 +sS'B' +p7 +F0.0021313352612648785 +sS'E' +p8 +F0.00049069360058262557 +sS'D' +p9 +F0.0060197002810932912 +sS'G' +p10 +F0.00071374702689450033 +sS'F' +p11 +F0.00071985103928678604 +sS'I' +p12 +F0.00069930368038611038 +sS'H' +p13 +F0.0017683577354253425 +sS'K' +p14 +F0.0056937129295433391 +sS'J' +p15 +F0.0029755933951051642 +sS'M' +p16 +F0.0042605020844480677 +sS'L' +p17 +F0.0095780086077768938 +sS'O' +p18 +F0.0011649370363201305 +sS'N' +p19 +F0.010456095783768198 +sS'Q' +p20 +F1.5629651108274798e-05 +sS'P' +p21 +F0.0042536025087336043 +sS'S' +p22 +F0.0068623567277141476 +sS'R' +p23 +F0.0062187741616057139 +sS'U' +p24 +F0.0012507593097479998 +sS'T' +p25 +F0.0071685324404268547 +sS'W' +p26 +F0.00013247537390939312 +sS'V' +p27 +F0.007052908224142531 +sS'Y' +p28 +F0.00014771076354827 +sS'X' +p29 +F0.00013541121377973124 +sS'Z' +p30 +F0.0056306170136729066 +ssg6 +(dp31 +g4 +F0.0021483518678994278 +sg6 +F0.00016683244481406926 +sg7 +F8.1045373303110518e-05 +sg8 +F0.0080832718523054011 +sg9 +F8.0770798351208385e-05 +sg10 +F1.4988976220503174e-05 +sg11 +F1.9480740818286652e-05 +sg12 +F0.0057741352289171332 +sg13 +F0.0095187285796995633 +sg14 +F0.0029695703471217727 +sg15 +F8.6202454130502991e-05 +sg16 +F0.00014602811191994673 +sg17 +F0.00064149861262733103 +sg18 +F0.0013828897048716697 +sg19 +F0.001731511888995092 +sg20 +F9.9797434441349222e-06 +sg21 +F0.00014787973274944054 +sg22 +F0.00023990458393694501 +sg23 +F0.00018527824927518636 +sg24 +F0.00055891491555523035 +sg25 +F0.00071980527679480237 +sg26 +F5.3929336706930161e-06 +sg27 +F0.00016714926206626402 +sg28 +F0.00010670405053919498 +sg29 +F3.3406619148091856e-06 +sg30 +F0.00011183649002475008 +ssg7 +(dp32 +g4 +F0.0015829210775240587 +sg6 +F0.00040905683507541814 +sg7 +F5.375684731406857e-05 +sg8 +F0.002380871089668544 +sg9 +F0.00019388159776811961 +sg10 +F5.8435182071477849e-06 +sg11 +F8.9483272786564272e-06 +sg12 +F0.0013388239452830698 +sg13 +F3.867634610959802e-05 +sg14 +F9.9871358466861331e-05 +sg15 +F0.00024189701243408092 +sg16 +F2.9020460301039963e-05 +sg17 +F0.00093087597059033321 +sg18 +F0.0021635414950463209 +sg19 +F0.00070848786050806741 +sg20 +F5.3154894534898531e-07 +sg21 +F3.9714802658458619e-05 +sg22 +F0.00041654428280228758 +sg23 +F0.0015416749914799921 +sg24 +F0.0012507276280227801 +sg25 +F4.01125843195476e-05 +sg26 +F5.0233135431324636e-06 +sg27 +F0.00015948932494653294 +sg28 +F0.0039986103832088064 +sg29 +F8.8708830614532638e-07 +sg30 +F4.0746218823937119e-05 +ssg8 +(dp33 +g4 +F0.0020574957203533533 +sg6 +F0.0047914948395098673 +sg7 +F0.0024825377458978421 +sg8 +F0.00059785175584996632 +sg9 +F0.0063960404545920632 +sg10 +F0.00065193246079961172 +sg11 +F0.0010645798913999037 +sg12 +F0.00069236186237135408 +sg13 +F0.0038261808336059635 +sg14 +F0.0041119499950856364 +sg15 +F0.0048664150792705457 +sg16 +F0.0080256251931727189 +sg17 +F0.0066462521598004117 +sg18 +F0.0019799318166326936 +sg19 +F0.013315533413643691 +sg20 +F1.4925612770064221e-05 +sg21 +F0.0044326570590990091 +sg22 +F0.00913449613642945 +sg23 +F0.0092427561116960912 +sg24 +F0.0010825962324747126 +sg25 +F0.0060410432033161446 +sg26 +F0.00019003050805810776 +sg27 +F0.0054019207200802742 +sg28 +F0.00014819655000163532 +sg29 +F0.00087223661740077436 +sg30 +F0.0054003471943943736 +ssg9 +(dp34 +g4 +F0.0035240392605712036 +sg6 +F0.00048926792294774909 +sg7 +F0.00032127381487563237 +sg8 +F0.0054908231612378145 +sg9 +F0.00026840405586770914 +sg10 +F5.3165455109971685e-05 +sg11 +F5.147224290657525e-05 +sg12 +F0.0031356494709139566 +sg13 +F0.00017439381656645086 +sg14 +F0.0010170326622288524 +sg15 +F0.00018937223221188087 +sg16 +F0.00044270282725850156 +sg17 +F0.0014098895751420452 +sg18 +F0.0054766543896813272 +sg19 +F0.0036595560801016662 +sg20 +F2.8196735445333589e-06 +sg21 +F0.00056170642756623527 +sg22 +F0.00094989556629709198 +sg23 +F0.0019106614845361553 +sg24 +F0.0019397875505879267 +sg25 +F0.00021200706478535092 +sg26 +F4.9486854792821425e-05 +sg27 +F0.00093395261812831345 +sg28 +F0.0015465504569721002 +sg29 +F3.0801677296712722e-06 +sg30 +F0.00025559759849565878 +ssg10 +(dp35 +g4 +F0.00073602984029886513 +sg6 +F3.6008040807779937e-05 +sg7 +F3.8204640422996937e-05 +sg8 +F0.0008041490697124295 +sg9 +F4.0904627450034495e-05 +sg10 +F4.2178936842195639e-05 +sg11 +F2.2289853787746854e-05 +sg12 +F0.00066862520979858449 +sg13 +F0.00012731477289030959 +sg14 +F3.6666316654006826e-05 +sg15 +F3.7475960742948985e-05 +sg16 +F6.9048560020002289e-05 +sg17 +F0.00027823595126081984 +sg18 +F0.00052882079678841926 +sg19 +F0.0001744430992501256 +sg20 +F1.1863045998848215e-06 +sg21 +F5.828733402045363e-05 +sg22 +F9.8586488499627028e-05 +sg23 +F0.00066719601197201702 +sg24 +F0.00034666143735150577 +sg25 +F5.4851626929986014e-05 +sg26 +F1.3799151428927299e-05 +sg27 +F4.3752462528096278e-05 +sg28 +F0.00012781464011043912 +sg29 +F1.0102950153321772e-06 +sg30 +F2.2979811359193218e-05 +ssg11 +(dp36 +g4 +F0.00047577150800425238 +sg6 +F3.2832827902450236e-05 +sg7 +F3.9028365278703308e-05 +sg8 +F0.00076852824999066531 +sg9 +F1.8706298646255017e-05 +sg10 +F1.8051542991719181e-05 +sg11 +F9.5678810162817354e-05 +sg12 +F0.0011337727792792394 +sg13 +F1.3549217818862545e-05 +sg14 +F2.9228151610812086e-05 +sg15 +F2.3493759346086939e-05 +sg16 +F2.5109527332280212e-05 +sg17 +F0.00016192881778843261 +sg18 +F0.00069598413962144751 +sg19 +F2.5077845607060736e-05 +sg20 +F4.1890281123529305e-07 +sg21 +F2.6566886692376105e-05 +sg22 +F5.1606010190835257e-05 +sg23 +F0.00056000969517114784 +sg24 +F0.00024029884540634292 +sg25 +F9.9015951885935485e-05 +sg26 +F7.2234333500405155e-06 +sg27 +F2.0645924268025156e-05 +sg28 +F8.0411738798720999e-05 +sg29 +F2.129715973086994e-06 +sg30 +F1.1986252708035065e-05 +ssg12 +(dp37 +g4 +F0.0025461124078382572 +sg6 +F0.0090184037346502169 +sg7 +F0.0013119015192298972 +sg8 +F0.0018420388677107703 +sg9 +F0.0028617046333245305 +sg10 +F0.00054705538974807318 +sg11 +F0.00052885951889702085 +sg12 +F0.0011027246885641528 +sg13 +F0.0017780699443009573 +sg14 +F0.0043911082365695117 +sg15 +F0.0015976636403261882 +sg16 +F0.0044319424601857258 +sg17 +F0.0049278705858129468 +sg18 +F0.0021897810039114294 +sg19 +F0.0075303975856920178 +sg20 +F1.8762621713311866e-05 +sg21 +F0.0033404788648412507 +sg22 +F0.0078062574075613766 +sg23 +F0.0021982118630115011 +sg24 +F0.00070273586728488693 +sg25 +F0.0051049925509399638 +sg26 +F4.5769532367069578e-05 +sg27 +F0.0045342568316861778 +sg28 +F9.6770069587043738e-06 +sg29 +F7.7898321931309239e-05 +sg30 +F0.0035931335830831895 +ssg13 +(dp38 +g4 +F0.0028894789457669374 +sg6 +F0.00024644510009892126 +sg7 +F0.00020522365539669201 +sg8 +F0.0014951169361741266 +sg9 +F0.00039881659744614526 +sg10 +F3.1051610906777474e-05 +sg11 +F8.1826855858524255e-05 +sg12 +F0.0007861221680625476 +sg13 +F0.00016882135311951414 +sg14 +F0.00035302946412062045 +sg15 +F0.00021467184989547793 +sg16 +F0.00033394298477173171 +sg17 +F0.0017551464560088209 +sg18 +F0.0069500341421632021 +sg19 +F0.00081429074197435279 +sg20 +F1.3095113090716723e-06 +sg21 +F0.00064653600693722767 +sg22 +F0.00071051901111380492 +sg23 +F0.0018799302110732636 +sg24 +F0.0012379317312258031 +sg25 +F0.00047271598161641843 +sg26 +F3.2980675953474454e-05 +sg27 +F0.00063850644968993606 +sg28 +F0.00076229399050581066 +sg29 +F2.3620486246964841e-06 +sg30 +F0.00038636919962658231 +ssg14 +(dp39 +g4 +F0.0059078919526020695 +sg6 +F0.00047203658462004525 +sg7 +F0.00017540411158178303 +sg8 +F0.0045753339485290739 +sg9 +F0.00093565639090678306 +sg10 +F4.7033281184157564e-05 +sg11 +F6.0005187565687434e-05 +sg12 +F0.0004288051104622248 +sg13 +F0.0001075911388453403 +sg14 +F0.00018519728486629216 +sg15 +F0.00024573050118563753 +sg16 +F0.0004417453351185352 +sg17 +F0.0017490494839999173 +sg18 +F0.0070770074564594793 +sg19 +F0.00064783847786291729 +sg20 +F6.7587680468215342e-07 +sg21 +F0.00043314550681729301 +sg22 +F0.00042960771416778484 +sg23 +F0.00210543017061042 +sg24 +F0.0039092643978981935 +sg25 +F0.0028115102200018073 +sg26 +F2.324030554433113e-05 +sg27 +F0.00077782155605504494 +sg28 +F0.0044022883653802962 +sg29 +F4.2981540547755698e-06 +sg30 +F0.00028834594179752372 +ssg15 +(dp40 +g4 +F0.0021151811015946366 +sg6 +F0.00011413165500731656 +sg7 +F6.0938038363816449e-05 +sg8 +F0.0074491797229960452 +sg9 +F0.00017194376314947805 +sg10 +F7.3572006343005248e-06 +sg11 +F1.2401635327579305e-05 +sg12 +F0.004077712610698456 +sg13 +F2.8862051674942583e-05 +sg14 +F9.7970454953692773e-05 +sg15 +F3.9630318057873352e-05 +sg16 +F0.00056747954193956209 +sg17 +F8.6392544481819842e-05 +sg18 +F0.00052226619985967879 +sg19 +F0.0005735835543318478 +sg20 +F2.8513552697528347e-07 +sg21 +F0.00026352859037560091 +sg22 +F0.0014346013208132364 +sg23 +F4.8047096391180793e-05 +sg24 +F0.00032589230637429376 +sg25 +F6.9587149348733382e-05 +sg26 +F5.9948864498630591e-06 +sg27 +F0.00030633764153049502 +sg28 +F1.4643997434779993e-06 +sg29 +F1.2919103506164078e-06 +sg30 +F8.9609999687442177e-05 +ssg16 +(dp41 +g4 +F0.0041979130761811475 +sg6 +F0.00046295449005712879 +sg7 +F0.00060233295987267659 +sg8 +F0.0056763971066150498 +sg9 +F0.00040249519776329554 +sg10 +F7.0139819444228687e-05 +sg11 +F0.0001428775403564544 +sg12 +F0.0042335022141776922 +sg13 +F0.00021219011475328566 +sg14 +F0.00066105679766282081 +sg15 +F0.00043829554726130334 +sg16 +F0.00054891053076925808 +sg17 +F0.00046295096986543775 +sg18 +F0.0031134088998098848 +sg19 +F0.0013527815053380945 +sg20 +F3.7666051094265843e-06 +sg21 +F0.0013510108489174948 +sg22 +F0.0012040076438991263 +sg23 +F0.00063616200202369481 +sg24 +F0.0022682179151714697 +sg25 +F0.00043533858624081892 +sg26 +F3.300531729531183e-05 +sg27 +F0.00073764208809336729 +sg28 +F0.0006158469757746286 +sg29 +F6.3821075358788765e-06 +sg30 +F0.00070295059897804114 +ssg17 +(dp42 +g4 +F0.008624550607488457 +sg6 +F0.00044127714962362513 +sg7 +F0.00050350357814636692 +sg8 +F0.0085788197972299883 +sg9 +F0.00057105253650598076 +sg10 +F0.00011312135999198439 +sg11 +F0.00018260994397336828 +sg12 +F0.0064246138505483401 +sg13 +F0.00024024252233928608 +sg14 +F0.0011472903153728824 +sg15 +F0.00040021763373918431 +sg16 +F0.00063517282815850893 +sg17 +F0.00064455061882347383 +sg18 +F0.0060313661963574405 +sg19 +F0.0021715569715268484 +sg20 +F2.6401437682896619e-06 +sg21 +F0.00073525539812683346 +sg22 +F0.0017495739925618842 +sg23 +F0.00021490770273877849 +sg24 +F0.0019025861647968799 +sg25 +F0.00060388536440843092 +sg26 +F2.7197001005074571e-05 +sg27 +F0.00082669941768531425 +sg28 +F0.0017247953632485631 +sg29 +F5.2486058113598476e-06 +sg30 +F0.00061005626044284664 +ssg18 +(dp43 +g4 +F0.00067773898608672041 +sg6 +F0.0034042330565579094 +sg7 +F0.0048275556831930124 +sg8 +F0.00021827652618711609 +sg9 +F0.0076329126081188595 +sg10 +F0.00079829499093020851 +sg11 +F0.00060459996332171465 +sg12 +F0.00028610709988201408 +sg13 +F0.0017647917812423058 +sg14 +F0.0035323046706617956 +sg15 +F0.0022824113280697947 +sg16 +F0.0031446400404929057 +sg17 +F0.0046792852091658652 +sg18 +F0.00090054951917191265 +sg19 +F0.0047911956232161278 +sg20 +F5.9878460664809535e-06 +sg21 +F0.0035720300338953274 +sg22 +F0.0069516710312995415 +sg23 +F0.005785853947056648 +sg24 +F0.0070502469592240956 +sg25 +F0.0034948498310689931 +sg26 +F0.00017315118889950918 +sg27 +F0.011064663003125729 +sg28 +F5.8850564691022093e-05 +sg29 +F9.7009442622035343e-05 +sg30 +F0.0045151809129123617 +ssg19 +(dp44 +g4 +F0.013085985233661824 +sg6 +F0.0020292602627994178 +sg7 +F0.00025842783261526529 +sg8 +F0.012006539572750602 +sg9 +F0.0012807865448726807 +sg10 +F0.00081952878721063948 +sg11 +F0.00024104160585315508 +sg12 +F0.014434781882005646 +sg13 +F0.00015083317357823391 +sg14 +F0.0011869276738141379 +sg15 +F0.00028590292876393305 +sg16 +F0.00020750825980418532 +sg17 +F0.00016583975075719234 +sg18 +F0.0056570677340394785 +sg19 +F0.00092172347219359569 +sg20 +F7.8077851707552936e-06 +sg21 +F0.00037673443496817057 +sg22 +F0.0021924809909384668 +sg23 +F0.0001779386495993411 +sg24 +F0.0019155651115617919 +sg25 +F0.0022053648925277206 +sg26 +F3.9169172946345427e-05 +sg27 +F0.00042310239992271914 +sg28 +F0.0036471790861159242 +sg29 +F8.4871821671284992e-06 +sg30 +F0.00058014871183566133 +ssg20 +(dp45 +g4 +F4.7557789746124442e-06 +sg6 +F6.6179603791794197e-07 +sg7 +F9.3989118151111967e-07 +sg8 +F1.1194209577548166e-06 +sg9 +F7.1811910497478807e-07 +sg10 +F2.7105476021107197e-07 +sg11 +F5.1394798689372084e-07 +sg12 +F2.1860390401438402e-06 +sg13 +F3.5553936079634112e-07 +sg14 +F8.5188638923479755e-07 +sg15 +F9.3285079812901384e-07 +sg16 +F1.3130315007627253e-06 +sg17 +F3.1435311801102241e-06 +sg18 +F1.228546900177456e-06 +sg19 +F8.0260370556005728e-07 +sg20 +F6.8995757144636497e-07 +sg21 +F1.2637488170879849e-06 +sg22 +F1.439758401640629e-06 +sg23 +F1.1053401909906052e-06 +sg24 +F9.5854819747369995e-05 +sg25 +F1.1299815328279752e-06 +sg26 +F5.4914990380424967e-07 +sg27 +F4.2277502209545119e-06 +sg28 +F7.392402551211054e-08 +sg29 +F8.0964408894216303e-08 +sg30 +F4.2594319461739878e-07 +ssg21 +(dp46 +g4 +F0.0030654322072525249 +sg6 +F0.00013251761620968575 +sg7 +F2.5000401389857571e-05 +sg8 +F0.0020449849590833511 +sg9 +F3.3403098956400805e-05 +sg10 +F0.00012831802752225969 +sg11 +F1.6840597049996992e-05 +sg12 +F0.0016488929900060807 +sg13 +F0.00014049437058161161 +sg14 +F7.8366507426219276e-05 +sg15 +F3.6518468602982601e-05 +sg16 +F2.8995818959202593e-05 +sg17 +F0.00120318391904342 +sg18 +F0.0090990196445670194 +sg19 +F0.00037185896947606228 +sg20 +F9.9973444025901858e-07 +sg21 +F0.00012255899391569716 +sg22 +F0.00052895456407267929 +sg23 +F0.0099973514429735691 +sg24 +F0.0012682018595771667 +sg25 +F0.00023268467077859555 +sg26 +F1.050073181441075e-05 +sg27 +F3.9274778697077011e-05 +sg28 +F0.00019298394888690113 +sg29 +F1.1972171941270854e-05 +sg30 +F1.9748275386806672e-05 +ssg22 +(dp47 +g4 +F0.0027221571943078118 +sg6 +F0.0007395993146735927 +sg7 +F0.00033243282253627002 +sg8 +F0.007347745399418357 +sg9 +F0.0002639474931868362 +sg10 +F6.238835734053024e-05 +sg11 +F0.00012962753883133136 +sg12 +F0.0045062361058253965 +sg13 +F0.00035213533543109301 +sg14 +F0.0067325883812151743 +sg15 +F0.00025811101536307051 +sg16 +F0.00099300383374572557 +sg17 +F0.0026441884685426817 +sg18 +F0.0034225063716261652 +sg19 +F0.0014799237888355424 +sg20 +F1.5995751044144297e-05 +sg21 +F0.0023539134616984612 +sg22 +F0.00074793512859800597 +sg23 +F0.00040559648664311316 +sg24 +F0.00091571098478527744 +sg25 +F0.015164999885822582 +sg26 +F5.185242360920896e-05 +sg27 +F0.0019700435981725261 +sg28 +F0.000640234863810243 +sg29 +F8.2266879819905863e-06 +sg30 +F0.00014614427824575149 +ssg23 +(dp48 +g4 +F0.010836346890235731 +sg6 +F0.00082301729717647288 +sg7 +F0.00039384960697006968 +sg8 +F0.0087137804264732655 +sg9 +F0.00067172649867840216 +sg10 +F0.00048254435681783809 +sg11 +F0.0001230870226693551 +sg12 +F0.0072355604104161926 +sg13 +F0.00024278410074022626 +sg14 +F0.00070301396242848017 +sg15 +F0.00016433310871342172 +sg16 +F0.0008060394126505249 +sg17 +F0.00036660684347301139 +sg18 +F0.010674763051233022 +sg19 +F0.0021777102666028091 +sg20 +F6.5088344367567801e-06 +sg21 +F0.00043985147198874876 +sg22 +F0.0014293562351935676 +sg23 +F0.00023608165576046158 +sg24 +F0.0032440396932731661 +sg25 +F0.0011536865036755255 +sg26 +F4.1408014861855061e-05 +sg27 +F0.0013511657373519012 +sg28 +F0.0017463952594648634 +sg29 +F1.0528893347939172e-05 +sg30 +F0.00065625173600453363 +ssg24 +(dp49 +g4 +F0.0014382799211303868 +sg6 +F0.0018544229020798944 +sg7 +F0.0015751731356120513 +sg8 +F0.00031326185858679601 +sg9 +F0.002285142996822052 +sg10 +F0.00022351457142340278 +sg11 +F0.00020889169513876911 +sg12 +F0.00028895493496007584 +sg13 +F0.0011030239048578922 +sg14 +F0.0016453340762064262 +sg15 +F0.0022880612357339346 +sg16 +F0.0019243867119395704 +sg17 +F0.0015452374254713375 +sg18 +F0.00066679118992754593 +sg19 +F0.002239954296084006 +sg20 +F6.2201787180904439e-06 +sg21 +F0.0029934161256369649 +sg22 +F0.004412736294319341 +sg23 +F0.0020619910051428276 +sg24 +F0.00030168394811492307 +sg25 +F0.0020609771899358044 +sg26 +F3.9588075757580718e-05 +sg27 +F0.0023975603184758255 +sg28 +F1.6900440308744889e-05 +sg29 +F3.9922493968230741e-05 +sg30 +F0.0031595832542214253 +ssg25 +(dp50 +g4 +F0.0073170528480640661 +sg6 +F0.00036176305970612261 +sg7 +F0.00026664043983049164 +sg8 +F0.010114176044624541 +sg9 +F0.00030290545463171846 +sg10 +F5.9459557853574242e-05 +sg11 +F8.8311048953443663e-05 +sg12 +F0.006494433332548683 +sg13 +F0.00060424794415260942 +sg14 +F0.0010176205342412583 +sg15 +F0.00031822180867948952 +sg16 +F0.00033855443588701097 +sg17 +F0.00060969368069866824 +sg18 +F0.0065468278656783136 +sg19 +F0.0021497705051509225 +sg20 +F1.7882573790548644e-06 +sg21 +F0.00056427264730901292 +sg22 +F0.0013670523624536228 +sg23 +F0.0048101870573893576 +sg24 +F0.0031051786916362028 +sg25 +F0.00042724566554308834 +sg26 +F5.7224236129755661e-05 +sg27 +F0.0020085157731640434 +sg28 +F0.0018231917613968731 +sg29 +F8.4590206336000767e-06 +sg30 +F0.00046279608143103142 +ssg26 +(dp51 +g4 +F0.00026724239260966169 +sg6 +F9.7650117509806958e-06 +sg7 +F9.4939569907696244e-06 +sg8 +F0.0001609502044983199 +sg9 +F6.5158748201388857e-06 +sg10 +F3.6574791670039451e-06 +sg11 +F5.2450856196687948e-06 +sg12 +F0.00022788312931199941 +sg13 +F3.2755383685247074e-05 +sg14 +F1.3679464911431502e-05 +sg15 +F9.2158618471764475e-06 +sg16 +F8.1598043398605812e-06 +sg17 +F1.2208024784571397e-05 +sg18 +F8.821952396947629e-05 +sg19 +F2.8960617042292065e-05 +sg20 +F2.3585284330054315e-07 +sg21 +F1.0669701015581288e-05 +sg22 +F4.8392075176903975e-05 +sg23 +F1.8903429380953978e-05 +sg24 +F1.4211013856780488e-05 +sg25 +F1.7280621011378599e-05 +sg26 +F1.8477486186336581e-05 +sg27 +F6.9840603150489194e-06 +sg28 +F4.1640347513464546e-05 +sg29 +F7.6740178864952845e-07 +sg30 +F4.2312704126455648e-06 +ssg27 +(dp52 +g4 +F0.0081931053532579429 +sg6 +F0.00057326673707965296 +sg7 +F0.0004153403772439475 +sg8 +F0.0087659285461845222 +sg9 +F0.00041010233200766081 +sg10 +F5.1134304504234174e-05 +sg11 +F2.0128456089440383e-05 +sg12 +F0.0039554281917346607 +sg13 +F0.00019399776409392437 +sg14 +F0.00059339519316909338 +sg15 +F0.0003141207853594129 +sg16 +F0.00027135397650481148 +sg17 +F0.0012050425802562958 +sg18 +F0.0040919658668555296 +sg19 +F0.0024926970191182208 +sg20 +F1.7530554621443355e-06 +sg21 +F0.0007557393935770702 +sg22 +F0.0018486568280899496 +sg23 +F0.0021205106718148905 +sg24 +F0.00097267824692158619 +sg25 +F0.00034372559748116764 +sg26 +F4.9001068339456128e-06 +sg27 +F0.00010434552210618955 +sg28 +F0.0052729056946031862 +sg29 +F2.6542245350538735e-06 +sg30 +F0.00093188978579735642 +ssg28 +(dp53 +g4 +F0.0010398399841951842 +sg6 +F0.0032429237925071025 +sg7 +F0.00099748151757674485 +sg8 +F0.00025084533971273735 +sg9 +F0.00088348362985368831 +sg10 +F0.00010447928939044955 +sg11 +F0.00016563909983080235 +sg12 +F0.00018888292556682452 +sg13 +F0.00052613841071983704 +sg14 +F0.0011892932426305254 +sg15 +F0.00086220759127296465 +sg16 +F0.002362699860159329 +sg17 +F0.0029702919864184386 +sg18 +F0.00065773021651477587 +sg19 +F0.0014217526211408936 +sg20 +F3.632837825166575e-06 +sg21 +F0.0019172336824233509 +sg22 +F0.0029390256438185068 +sg23 +F0.001092480930743189 +sg24 +F0.00043050184285731228 +sg25 +F0.0014411101552499932 +sg26 +F4.0520926555709732e-05 +sg27 +F0.0019071060909281918 +sg28 +F7.0615045322520829e-06 +sg29 +F9.0504128376969604e-06 +sg30 +F0.0014086328667083394 +ssg29 +(dp54 +g4 +F7.5120890687068519e-05 +sg6 +F1.891398995602714e-05 +sg7 +F1.3697065869886766e-05 +sg8 +F5.5791518111497134e-05 +sg9 +F1.7551675771589672e-05 +sg10 +F3.3441821065002384e-06 +sg11 +F1.0997078842849206e-05 +sg12 +F0.00026650667254623166 +sg13 +F7.3818419761378944e-06 +sg14 +F1.4774244527348949e-05 +sg15 +F1.2690291046245642e-05 +sg16 +F2.5014482156621782e-05 +sg17 +F8.4801417837463935e-06 +sg18 +F4.2756248279528313e-05 +sg19 +F2.6000135830116592e-05 +sg20 +F3.0273648543054788e-07 +sg21 +F9.8322474122798068e-05 +sg22 +F2.4137954425549616e-05 +sg23 +F7.2304737334226211e-06 +sg24 +F6.0913397021979079e-05 +sg25 +F0.00047626433484099977 +sg26 +F3.1400109884191712e-06 +sg27 +F1.9896123437830894e-05 +sg28 +F2.0519197367147254e-05 +sg29 +F1.1454703762686079e-05 +sg30 +F6.5053142450657273e-06 +ssg30 +(dp55 +g4 +F0.0049722144405451403 +sg6 +F0.00027000926327882928 +sg7 +F0.00055801726667401193 +sg8 +F0.0052409317934733529 +sg9 +F0.0019199583107922258 +sg10 +F2.3919702540704339e-05 +sg11 +F5.1243430446656811e-05 +sg12 +F0.0040057986146419368 +sg13 +F0.00037354514129607665 +sg14 +F0.00074011326266048649 +sg15 +F0.00028228417170553065 +sg16 +F0.0005036197444721717 +sg17 +F0.00042693588867427569 +sg18 +F0.001188335750490559 +sg19 +F0.0030426284054778843 +sg20 +F1.7812169956727586e-06 +sg21 +F0.0009826685509407942 +sg22 +F0.00082742809736536214 +sg23 +F0.00060616292843254215 +sg24 +F0.00069984931009822358 +sg25 +F0.00037286926449139451 +sg26 +F1.3644262994520974e-05 +sg27 +F0.0010087954136717887 +sg28 +F0.00091984721002226456 +sg29 +F3.5166714993618298e-06 +sg30 +F0.00017014494519535002 +sssS'komentar' +p56 +S'Z cele cswiki bez mezer' +p57 +sS'abeceda' +p58 +S'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +p59 +sS'poradi' +p60 +(lp61 +g8 +ag4 +ag18 +ag12 +ag19 +ag23 +ag22 +ag25 +ag17 +ag27 +ag14 +ag24 +ag6 +ag9 +ag16 +ag21 +ag30 +ag28 +ag13 +ag15 +ag7 +ag10 +ag11 +ag29 +ag26 +ag20 +asb. \ No newline at end of file diff --git a/jakobsen.py b/jakobsen.py new file mode 100644 index 0000000..25f01dc --- /dev/null +++ b/jakobsen.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python + +from itertools import combinations +import pickle +from ocesavac import ocesat + +MABECEDA = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ' + +def nova_tabulka(zprava, abc=MABECEDA): + tabulka = dict() + for i in abc: + tabulka[i] = dict() + for j in abc: + tabulka[i][j] = 0 + for i in range(len(zprava) - 1): + if zprava[i] in tabulka and zprava[i+1] in tabulka[zprava[i]]: + tabulka[zprava[i]][zprava[i+1]] += 1 + celkem = sum(sum(tab2.values()) for tab2 in tabulka.values()) + if celkem != 0: + for i in abc: + for j in abc: + tabulka[i][j] /= float(celkem) + return tabulka + +def vzdalenost(tab1, tab2, abc=MABECEDA): + rozdil = 0 + for i in abc: + for j in abc: + rozdil += abs(tab1[i][j] - tab2[i][j]) + return rozdil + +def substituce(zprava, slovnik, abc=MABECEDA): + pole = [] + for c in zprava: + if c in abc: + pole.append(slovnik[c]) + else: + pole.append(c) + return pole + +def poradi_dle_frekvence(zprava, abc=MABECEDA): + freq = dict() + for char in abc: + freq[char] = 0 + for char in zprava: + if char in abc: + freq[char] += 1 + return sorted(freq.keys(), key=freq.get, reverse=True) + +class reference: + pass + +def jakobsen(zprava, ref): + slovnik = dict(zip(poradi_dle_frekvence(zprava), ref.poradi)) + tabulka = nova_tabulka(substituce(zprava, slovnik)) + vzdal = vzdalenost(tabulka, ref.tabulka) + + vzdal_old = vzdal + 1 + while vzdal_old > vzdal: + vzdal_old = vzdal + for (x, y) in combinations(ref.abeceda, 2): + slovnik[x], slovnik[y] = slovnik[y], slovnik[x] + v1 = vzdalenost(nova_tabulka(substituce(zprava, slovnik)), + ref.tabulka) + if v1 < vzdal: + vzdal = v1 + else: + slovnik[x], slovnik[y] = slovnik[y], slovnik[x] + + return '\n'.join([''.join(substituce(zprava, slovnik)), + ' '.join(ref.abeceda), + ' '.join([slovnik[c] for c in ref.abeceda])]) + +def desifruj(zprava, refs): + f = open(refs, 'rb') + ref = pickle.load(f) + f.close() + return jakobsen(zprava, ref) diff --git a/koincidence.py b/koincidence.py new file mode 100644 index 0000000..c01f28d --- /dev/null +++ b/koincidence.py @@ -0,0 +1,29 @@ +from ocesavac import ocesat +from collections import deque + +def index_koincidence(text): + t = ocesat(text, False) #zatim bez mezer + deq = deque(t) + shod = 0 + for i in range(1, len(t)): + deq.rotate(1) + shod += sum (x == y for x, y in zip(deq, t)) + return float(shod)/(len(t)*(len(t) - 1)) + +def index_rozkladu(text, deleni): + if (deleni == 1): + return index_koincidence(text) + t = ocesat(text, False) #zatim bez mezer + texty = rozklad(t, deleni) + return sum([index_koincidence(text) for text in texty])/len(texty) + +def tabulka_indexu(text): + return '\n'.join(['{1:>2} {0:.3%}'.format( + index_rozkladu(text, d), d) for d in range(1, 11)]) + +def rozklad(text, deleni): + texty = [] + for i in range(deleni): + texty.append(''.join( + [text[j] for j in range(len(text)) if j % deleni == i])) + return texty diff --git a/ocesavac.py b/ocesavac.py new file mode 100644 index 0000000..31e49fb --- /dev/null +++ b/ocesavac.py @@ -0,0 +1,26 @@ +import unicodedata + +ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + +def deaccent(unistr): + return ''.join(aChar + for aChar in unicodedata.normalize('NFD', unistr) + if not unicodedata.combining(aChar)) + +def ocesat(text, mezery=True): + text = deaccent(unicode(text)).upper() + if mezery: + pole = [' '] + lastWh = True + for c in text: + if c in ABECEDA: + pole.append(c) + lastWh = False + elif not lastWh: + pole.append(' ') + lastWh = True + if not lastWh: + pole.append(' ') + return ''.join(pole) + else: # bez mezer + return ''.join([c for c in text if c in ABECEDA]) diff --git a/ref b/ref new file mode 100644 index 0000000..1959ae5 --- /dev/null +++ b/ref @@ -0,0 +1,1585 @@ +(i__main__ +reference +p0 +(dp1 +S'tabulka' +p2 +(dp3 +S' ' +p4 +(dp5 +g4 +F0.0 +sS'A' +p6 +F0.0086919411899263211 +sS'C' +p7 +F0.0052665736732081768 +sS'B' +p8 +F0.0057258675766810431 +sS'E' +p9 +F0.0016614994474099247 +sS'D' +p10 +F0.0073314704688528234 +sS'G' +p11 +F0.0010005083615082979 +sS'F' +p12 +F0.0018976039190979465 +sS'I' +p13 +F0.0020403734350523347 +sS'H' +p14 +F0.0032988245893600561 +sS'K' +p15 +F0.0080138046352504835 +sS'J' +p16 +F0.0078036406283252535 +sS'M' +p17 +F0.006738213978922953 +sS'L' +p18 +F0.0033271875564100692 +sS'O' +p19 +F0.0071621101119058225 +sS'N' +p20 +F0.010170088241316504 +sS'Q' +p21 +F4.0955802215480971e-05 +sS'P' +p22 +F0.016383636555538032 +sS'S' +p23 +F0.016470831720991987 +sS'R' +p24 +F0.0062218868534983564 +sS'U' +p25 +F0.00328547099300833 +sS'T' +p26 +F0.0062491191205891862 +sS'W' +p27 +F0.00042617244978724076 +sS'V' +p28 +F0.013917955850086752 +sS'Y' +p29 +F8.917314453822306e-05 +sS'X' +p30 +F8.2296460089892372e-05 +sS'Z' +p31 +F0.0091984888048860028 +ssg6 +(dp32 +g4 +F0.021007480394691972 +sg6 +F5.1012766760089536e-05 +sg7 +F0.0035188456745574269 +sg8 +F0.0010059828586721534 +sg9 +F0.0001854586603236567 +sg10 +F0.0040681122676583872 +sg11 +F0.00045972052641261103 +sg12 +F0.00033317759905452244 +sg13 +F0.00030533075626028441 +sg14 +F0.0010218991760395479 +sg15 +F0.0037084959798485044 +sg16 +F0.0013154843762594513 +sg17 +F0.0026474190944052781 +sg18 +F0.0076810685760217105 +sg19 +F7.5855348712909322e-05 +sg20 +F0.007539164239455616 +sg21 +F7.8910326966744724e-06 +sg22 +F0.0013269882787465502 +sg23 +F0.0035933704370386854 +sg24 +F0.0045409536870010458 +sg25 +F0.00059143066308285099 +sg26 +F0.0051418893898463177 +sg27 +F5.6520081073156104e-05 +sg28 +F0.0039496453423834357 +sg29 +F0.00011666198206833974 +sg30 +F0.00010093660084180999 +sg31 +F0.0034233955043882765 +ssg7 +(dp33 +g4 +F0.0011213858555616664 +sg6 +F0.0017363941486641084 +sg7 +F0.00010435853449136978 +sg8 +F1.7428889608307097e-05 +sg9 +F0.0068398099061261868 +sg10 +F2.2613999183664463e-05 +sg11 +F3.3204988247254022e-06 +sg12 +F4.2274454938327894e-06 +sg13 +F0.0048798355032639009 +sg14 +F0.0080432505682244641 +sg15 +F0.0024533086401986892 +sg16 +F1.9421785578582539e-06 +sg17 +F7.6338655819473123e-05 +sg18 +F0.00051731760665533219 +sg19 +F0.0011271199065420099 +sg20 +F0.0013805995670487206 +sg21 +F8.1237361183533421e-06 +sg22 +F1.5316658549991209e-05 +sg23 +F8.2776783819255169e-05 +sg24 +F0.00012512582318760835 +sg25 +F0.000453279415035628 +sg26 +F0.00056905831745246839 +sg27 +F8.9501316030334282e-07 +sg28 +F3.5215784480735533e-05 +sg29 +F8.9444631863515076e-05 +sg30 +F1.6020735569429837e-06 +sg31 +F3.8575067209074077e-05 +ssg8 +(dp34 +g4 +F0.00035013511506506973 +sg6 +F0.001312688951822104 +sg7 +F0.00033321339958093454 +sg8 +F2.9180412403089988e-05 +sg9 +F0.0020140809317798236 +sg10 +F0.0001501503911496898 +sg11 +F1.6856081185712958e-06 +sg12 +F2.4791864540402596e-06 +sg13 +F0.0011294379906271954 +sg14 +F2.51409196729209e-05 +sg15 +F6.5881918729929063e-05 +sg16 +F0.00018322112742289834 +sg17 +F1.1673954987556602e-05 +sg18 +F0.00078203564907825191 +sg19 +F0.0018186786752451968 +sg20 +F0.00058169590327595167 +sg21 +F1.8198600926167972e-07 +sg22 +F3.3354157107304578e-06 +sg23 +F0.00031661090545730754 +sg24 +F0.0012886906656171702 +sg25 +F0.0010534006559050244 +sg26 +F2.1889038523818755e-05 +sg27 +F2.7089064985181179e-06 +sg28 +F0.00010397069545523833 +sg29 +F0.0033884929745136472 +sg30 +F5.161242557749277e-07 +sg31 +F1.3150726702057118e-05 +ssg9 +(dp35 +g4 +F0.027225700677610286 +sg6 +F0.00045071669401995943 +sg7 +F0.0032260063186377763 +sg8 +F0.0011185456804663038 +sg9 +F0.00014636746885880768 +sg10 +F0.0041319058223476084 +sg11 +F0.000408836044872165 +sg12 +F0.0005242450085160801 +sg13 +F0.00024197277464241076 +sg14 +F0.0027134859825216698 +sg15 +F0.0022145280791613601 +sg16 +F0.0027917339997497901 +sg17 +F0.0056433384131694721 +sg18 +F0.0051300752161303137 +sg19 +F0.00037729876448027621 +sg20 +F0.0094544118513203417 +sg21 +F6.7275155882801271e-06 +sg22 +F0.00093648210339739772 +sg23 +F0.0042589559238298694 +sg24 +F0.0069699865869151069 +sg25 +F0.00027656204991093395 +sg26 +F0.0040223890286756906 +sg27 +F8.6583573127745384e-05 +sg28 +F0.0017695663197621514 +sg29 +F0.00011658739763831445 +sg30 +F0.00073090354723012187 +sg31 +F0.002715147723622633 +ssg10 +(dp36 +g4 +F0.002557362870215556 +sg6 +F0.0028652802145091166 +sg7 +F0.0003191229090605589 +sg8 +F0.00016909781975331159 +sg9 +F0.0046269674350833973 +sg10 +F0.00011379495657816802 +sg11 +F2.3112223176233324e-05 +sg12 +F1.0784908581655281e-05 +sg13 +F0.00262432178811505 +sg14 +F8.2377011274319681e-05 +sg15 +F0.00073839182400465989 +sg16 +F2.6892162089914444e-05 +sg17 +F0.00025639143665489764 +sg18 +F0.0011209801162623289 +sg19 +F0.0045146611837285347 +sg20 +F0.0029256965862067934 +sg21 +F1.3276028544499585e-06 +sg22 +F0.00023878354441452985 +sg23 +F0.00054433208721048809 +sg24 +F0.0014152276262208569 +sg25 +F0.0015963514394714445 +sg26 +F6.9972128872515348e-05 +sg27 +F2.7026414063959943e-05 +sg28 +F0.00059187220290860063 +sg29 +F0.0013086673593551408 +sg30 +F1.2798688192337803e-06 +sg31 +F0.00010374992554236351 +ssg11 +(dp37 +g4 +F0.00047733438540738086 +sg6 +F0.00058580998043614597 +sg7 +F5.4744971638554472e-06 +sg8 +F1.0614856081197646e-05 +sg9 +F0.00067420148014770418 +sg10 +F1.6739729474873522e-05 +sg11 +F2.7661873407775318e-05 +sg12 +F5.5610151026847708e-06 +sg13 +F0.00055521843061697774 +sg14 +F9.2875515644677884e-05 +sg15 +F4.2930797922550348e-06 +sg16 +F3.6814874660477505e-06 +sg17 +F3.4201436232391742e-05 +sg18 +F0.00022189762945680678 +sg19 +F0.00043201986910122259 +sg20 +F0.00012761097639605063 +sg21 +F5.728084225941394e-07 +sg22 +F9.1410677438981421e-06 +sg23 +F3.654338733518549e-05 +sg24 +F0.00054813290976457628 +sg25 +F0.00028545549734714816 +sg26 +F2.5430307261418981e-05 +sg27 +F5.0568243557138869e-06 +sg28 +F7.3062907652762887e-06 +sg29 +F0.00010738069559599407 +sg30 +F3.0430447450313659e-07 +sg31 +F1.8526772418279198e-06 +ssg12 +(dp38 +g4 +F0.00028434866440557306 +sg6 +F0.00037919320900291827 +sg7 +F1.5054121356302227e-05 +sg8 +F1.9976693737970614e-05 +sg9 +F0.00064540294002634355 +sg10 +F3.8992740017215638e-06 +sg11 +F8.9292479626263505e-06 +sg12 +F7.2314079975309089e-05 +sg13 +F0.00095343663603074413 +sg14 +F1.4887052233045603e-06 +sg15 +F1.0215083536262153e-05 +sg16 +F5.1284254085381545e-06 +sg17 +F6.8528174307225951e-06 +sg18 +F0.00012889681196968643 +sg19 +F0.00058265953411187823 +sg20 +F1.0432870071935966e-05 +sg21 +F1.7005250045763515e-07 +sg22 +F2.2613999183664463e-06 +sg23 +F1.7291654257060584e-05 +sg24 +F0.00046614075414918703 +sg25 +F0.00019854076935009056 +sg26 +F6.2498768983982431e-05 +sg27 +F1.7214086449834296e-06 +sg28 +F9.7258096752963266e-07 +sg29 +F6.7343773558424533e-05 +sg30 +F9.2186355511244315e-07 +sg31 +F7.8164482666491942e-07 +ssg13 +(dp39 +g4 +F0.020851100711946572 +sg6 +F0.000889147840726155 +sg7 +F0.0068102386713097644 +sg8 +F0.00044779298436296849 +sg9 +F0.001353677571186796 +sg10 +F0.0014484057640733019 +sg11 +F0.00034970550874812415 +sg12 +F0.0002116467453941325 +sg13 +F0.00066375667656696417 +sg14 +F0.0010609515836007837 +sg15 +F0.0025533442611257937 +sg16 +F0.00043022984278061593 +sg17 +F0.0028766767154169794 +sg18 +F0.0037648042411403885 +sg19 +F0.00067039170746201291 +sg20 +F0.0049845878435458048 +sg21 +F1.187682463722536e-05 +sg22 +F0.00051868399341339531 +sg23 +F0.0042664710509992161 +sg24 +F0.0011848184216095652 +sg25 +F0.00017583726885039575 +sg26 +F0.0035120316410303175 +sg27 +F6.7722662462952944e-06 +sg28 +F0.0019089556693477939 +sg29 +F4.1140771601943664e-06 +sg30 +F5.94915247653632e-05 +sg31 +F0.0017318415150553654 +ssg14 +(dp40 +g4 +F0.0047784036618067236 +sg6 +F0.0021261932636166213 +sg7 +F4.3730343012421333e-05 +sg8 +F8.2788717328059214e-06 +sg9 +F0.001221934617367345 +sg10 +F9.4179251481519766e-05 +sg11 +F2.5448207524625051e-06 +sg12 +F4.5526336087430039e-06 +sg13 +F0.00060463807395172734 +sg14 +F2.8491252269656415e-06 +sg15 +F3.947604712377944e-05 +sg16 +F4.2423623798378454e-06 +sg17 +F8.1094159077884891e-05 +sg18 +F0.0013208395383352664 +sg19 +F0.005645083688832063 +sg20 +F0.00046336919672944766 +sg21 +F5.0120736976987196e-07 +sg22 +F7.4435261165228017e-06 +sg23 +F2.8362967050012934e-05 +sg24 +F0.0014383607330374973 +sg25 +F0.00094265172744908878 +sg26 +F0.00022363693836499629 +sg27 +F1.6918732106934191e-05 +sg28 +F0.00010647673230408769 +sg29 +F0.00064466007910329176 +sg30 +F3.3413824651324801e-07 +sg31 +F6.1755908060930656e-05 +ssg15 +(dp41 +g4 +F0.0032087981989423441 +sg6 +F0.0048293925615492048 +sg7 +F0.000308973459822719 +sg8 +F8.240087829192777e-06 +sg9 +F0.0038511073768112388 +sg10 +F0.00063828758540193198 +sg11 +F2.4827665066814732e-05 +sg12 +F1.0802808844861349e-05 +sg13 +F0.00031091265500337624 +sg14 +F2.6334270553325358e-05 +sg15 +F2.7942310864670364e-05 +sg16 +F7.6613126521966145e-06 +sg17 +F0.00022380102411105189 +sg18 +F0.0014172891398667555 +sg19 +F0.0058587979146264967 +sg20 +F0.00028926228665563839 +sg21 +F5.9667544020222861e-08 +sg22 +F6.3366931749476679e-06 +sg23 +F7.3331411600853898e-05 +sg24 +F0.0016705062631797774 +sg25 +F0.0032321669925578643 +sg26 +F0.0022378998561540814 +sg27 +F1.1366667135852454e-05 +sg28 +F0.0003691064106862996 +sg29 +F0.0037295377392472357 +sg30 +F3.8783903613144856e-07 +sg31 +F3.7086361985769515e-05 +ssg16 +(dp42 +g4 +F0.00055321658451509923 +sg6 +F0.0017648376668985488 +sg7 +F7.8752207975091136e-05 +sg8 +F3.0824253240847131e-05 +sg9 +F0.0063050962270117588 +sg10 +F0.00012336563063901178 +sg11 +F2.2912336903765576e-06 +sg12 +F4.1170605373953774e-06 +sg13 +F0.0034485811747192122 +sg14 +F1.3174593719665208e-05 +sg15 +F5.2552189395811284e-05 +sg16 +F7.8283817754532396e-06 +sg17 +F0.00045592865399012592 +sg18 +F6.2797106704083546e-05 +sg19 +F0.00041734165327224777 +sg20 +F0.0004474409458532492 +sg21 +F9.5468070432356567e-08 +sg22 +F0.00014930907877900467 +sg23 +F0.0011634544574731245 +sg24 +F2.4785897786000576e-05 +sg25 +F0.00026362612636734962 +sg26 +F3.7969441637268817e-05 +sg27 +F8.5622925669019801e-07 +sg28 +F0.0002033708570385276 +sg29 +F1.0173316255447998e-06 +sg30 +F6.4739285261941799e-07 +sg31 +F4.1540544146879152e-05 +ssg17 +(dp43 +g4 +F0.0072927581662925022 +sg6 +F0.0030935384041584795 +sg7 +F0.0001600522200798458 +sg8 +F0.00023192177685220423 +sg9 +F0.0047492113158948291 +sg10 +F2.2038207383869312e-05 +sg11 +F1.1041479020942239e-05 +sg12 +F2.4606895153939906e-05 +sg13 +F0.0034959721215572746 +sg14 +F1.2127428322110296e-05 +sg15 +F0.00012393545568440491 +sg16 +F1.6292222894721851e-05 +sg17 +F0.00011795080101917655 +sg18 +F0.00026041302912186066 +sg19 +F0.0023080360707726524 +sg20 +F0.00067758761327085175 +sg21 +F1.2918023280378249e-06 +sg22 +F0.00030944781679767981 +sg23 +F0.00022438576604245008 +sg24 +F0.00026357839233213346 +sg25 +F0.0017426890745582419 +sg26 +F9.1216757920915701e-05 +sg27 +F7.9059495826795284e-06 +sg28 +F2.5985215420807053e-05 +sg29 +F0.0005196386741177189 +sg30 +F1.3156693456459141e-06 +sg31 +F0.00012541521077610643 +ssg18 +(dp44 +g4 +F0.0054649384233034079 +sg6 +F0.0069940922746992767 +sg7 +F0.00019085260630308484 +sg8 +F0.00025581266147790143 +sg9 +F0.0072285708058127474 +sg10 +F0.00019136873055885977 +sg11 +F4.7343212802845824e-05 +sg12 +F8.8203546947894442e-05 +sg13 +F0.0053458867560970576 +sg14 +F8.1279128464347577e-05 +sg15 +F0.00073892584852364087 +sg16 +F2.5143903050121914e-05 +sg17 +F0.0003384701102091162 +sg18 +F0.00047108122679406149 +sg19 +F0.0048863094317900951 +sg20 +F0.0014445721243700024 +sg21 +F7.547944318558192e-07 +sg22 +F4.2686160992067433e-05 +sg23 +F0.00087077918729952931 +sg24 +F1.3684751221038112e-05 +sg25 +F0.001514326466706844 +sg26 +F0.00030301863892950078 +sg27 +F7.5747947133672918e-06 +sg28 +F8.8761438484483517e-05 +sg29 +F0.0014594174093222338 +sg30 +F1.5513561445257943e-06 +sg31 +F0.00013787379396752896 +ssg19 +(dp45 +g4 +F0.011564226374103412 +sg6 +F0.00013726220164132167 +sg7 +F0.0024679152549748396 +sg8 +F0.0037128546939391815 +sg9 +F7.6499758188327727e-05 +sg10 +F0.005848448579116189 +sg11 +F0.00061371947415160522 +sg12 +F0.00036723881655846666 +sg13 +F0.00010779538502693462 +sg14 +F0.0012502349334961365 +sg15 +F0.0023700306490096641 +sg16 +F0.0013883115971133344 +sg17 +F0.0020929286078253469 +sg18 +F0.0037378553948836549 +sg19 +F0.00016398132785357746 +sg20 +F0.0033010054380939952 +sg21 +F2.7148732529201399e-06 +sg22 +F0.0016998328610657169 +sg23 +F0.0046036344419942898 +sg24 +F0.0043643079229291754 +sg25 +F0.0056557552290800806 +sg26 +F0.0024648155260629892 +sg27 +F0.00012606260362872583 +sg28 +F0.0083981441699251466 +sg29 +F4.6242346615672717e-05 +sg30 +F7.86597232818598e-05 +sg31 +F0.0031213136458998932 +ssg20 +(dp46 +g4 +F0.0033821383810754935 +sg6 +F0.010848350097834783 +sg7 +F0.0015981474325464531 +sg8 +F6.7648078032927667e-05 +sg9 +F0.010138718030047872 +sg10 +F0.00091475715061963459 +sg11 +F0.00065023601109198161 +sg12 +F0.00015305321716627365 +sg13 +F0.012176818131673036 +sg14 +F5.2749092291078018e-05 +sg15 +F0.00083329901952322637 +sg16 +F2.3637297563611285e-05 +sg17 +F1.7649659521181923e-05 +sg18 +F2.9866589159322553e-05 +sg19 +F0.004673564803585991 +sg20 +F0.00055366409109525096 +sg21 +F4.7465531268087284e-06 +sg22 +F1.3016474728011617e-05 +sg23 +F0.0015556164071688383 +sg24 +F4.7978672146661199e-05 +sg25 +F0.0015691221557578158 +sg26 +F0.0017420685321004317 +sg27 +F1.1035512266540217e-05 +sg28 +F6.8638559263663364e-05 +sg29 +F0.0030867542044033802 +sg30 +F3.8873404929175196e-06 +sg31 +F0.00028255565470776536 +ssg21 +(dp47 +g4 +F1.0755074809645171e-05 +sg6 +F2.9028260165838419e-06 +sg7 +F1.9391951806572428e-07 +sg8 +F2.1181978127179114e-07 +sg9 +F7.547944318558192e-07 +sg10 +F2.8043745689504746e-07 +sg11 +F5.6684166819211713e-08 +sg12 +F2.8342083409605855e-07 +sg13 +F1.6885914957723068e-06 +sg14 +F9.5468070432356567e-08 +sg15 +F2.3867017608089142e-08 +sg16 +F2.3867017608089142e-08 +sg17 +F5.5490815938807262e-07 +sg18 +F2.4254856644220591e-06 +sg19 +F8.0252846707199745e-07 +sg20 +F1.5811899165359056e-07 +sg21 +F2.7148732529201402e-07 +sg22 +F1.46185482849546e-07 +sg23 +F3.0132109730212544e-07 +sg24 +F3.9082241333245971e-07 +sg25 +F8.1037474911065677e-05 +sg26 +F4.9524061536784977e-07 +sg27 +F3.7888890452841517e-07 +sg28 +F3.0102275958202432e-06 +sg29 +F3.878390361314486e-08 +sg30 +F2.6850394809100286e-08 +sg31 +F1.4916886005055715e-08 +ssg22 +(dp48 +g4 +F0.0003728714327139757 +sg6 +F0.0025686668864301869 +sg7 +F9.9161491407208363e-05 +sg8 +F4.7823536532208618e-06 +sg9 +F0.0017282137283789359 +sg10 +F6.5992303686366481e-06 +sg11 +F0.00010420339887691721 +sg12 +F9.0664833138728635e-06 +sg13 +F0.0013900419558899209 +sg14 +F0.00010984794854123028 +sg15 +F4.3085933537002928e-05 +sg16 +F8.5682593213040017e-06 +sg17 +F8.1595366447654763e-06 +sg18 +F0.0010129937950945295 +sg19 +F0.0076975189179080859 +sg20 +F0.00029200699368056864 +sg21 +F2.5358706208594713e-07 +sg22 +F6.7782330006973174e-05 +sg23 +F0.00041508025335388135 +sg24 +F0.0084596852748276032 +sg25 +F0.0010683175419100802 +sg26 +F0.00018312565935246598 +sg27 +F1.608040311345006e-06 +sg28 +F4.8778217236532185e-06 +sg29 +F0.0001630773645616711 +sg30 +F9.3200703759588097e-06 +sg31 +F2.213665883150268e-06 +ssg23 +(dp49 +g4 +F0.0031044366810737732 +sg6 +F0.0020998649598176979 +sg7 +F0.00048540442073611597 +sg8 +F0.00015445540445074889 +sg9 +F0.006180778899045624 +sg10 +F7.4808183315354412e-05 +sg11 +F1.4666282320170778e-05 +sg12 +F5.8238506340938518e-05 +sg13 +F0.00376519208017652 +sg14 +F0.00021846077892124195 +sg15 +F0.0055438308500069464 +sg16 +F3.1561147409496879e-05 +sg17 +F0.00067378679071676355 +sg18 +F0.0021667075260063525 +sg19 +F0.0027511242692896264 +sg20 +F0.001024900453503765 +sg21 +F1.0784908581655281e-05 +sg22 +F0.0016855454676500746 +sg23 +F0.00043369951046539186 +sg24 +F0.00021903060396663508 +sg25 +F0.00071624323166435315 +sg26 +F0.012696787960660066 +sg27 +F2.5197603839740115e-05 +sg28 +F0.0014043949836039854 +sg29 +F0.00053958553408367939 +sg30 +F1.2977690824398472e-06 +sg31 +F2.9583168325226493e-05 +ssg24 +(dp50 +g4 +F0.002007007344436226 +sg6 +F0.0090256110462190106 +sg7 +F0.00062155083930425946 +sg8 +F0.00023940408687234019 +sg9 +F0.0073550838993988264 +sg10 +F0.00048399626669723872 +sg11 +F0.00037554155530888065 +sg12 +F6.4566249384283154e-05 +sg13 +F0.0060994281695284525 +sg14 +F0.00015394524694937599 +sg15 +F0.00048434830520695802 +sg16 +F2.0686737511811263e-05 +sg17 +F0.00058919313018209265 +sg18 +F0.00025783539122018704 +sg19 +F0.0089697025574720611 +sg20 +F0.0017048330012546116 +sg21 +F4.302029923858068e-06 +sg22 +F0.00020400929975954399 +sg23 +F0.0010219767438467741 +sg24 +F0.00013888515883867173 +sg25 +F0.002715604180334388 +sg26 +F0.00090201514659411601 +sg27 +F1.8529755795480208e-05 +sg28 +F0.00097918019789826924 +sg29 +F0.0014774936917831603 +sg30 +F6.6081805002396812e-06 +sg31 +F0.00046293660703530104 +ssg25 +(dp51 +g4 +F0.012364917080819587 +sg6 +F0.00020664362182803682 +sg7 +F0.0011770825245273433 +sg8 +F0.00083123153912292565 +sg9 +F0.00015316360212271106 +sg10 +F0.0013825208619661718 +sg11 +F0.00012371170239432907 +sg12 +F4.3885478626873911e-05 +sg13 +F0.00010490150914195381 +sg14 +F0.00069577428068821575 +sg15 +F0.00064673054288079358 +sg16 +F0.0013210453913621361 +sg17 +F0.0011320514290552811 +sg18 +F0.0010813399833924939 +sg19 +F5.7946135375239431e-05 +sg20 +F0.0010625208400085156 +sg21 +F2.6015049192817165e-06 +sg22 +F0.0012167882916956007 +sg23 +F0.0024295997415822537 +sg24 +F0.001366822331134451 +sg25 +F1.0799825467660337e-05 +sg26 +F0.0012904568249201688 +sg27 +F4.2930797922550348e-06 +sg28 +F0.0007945956670945088 +sg29 +F1.0635739721604724e-05 +sg30 +F2.7831925908232953e-05 +sg31 +F0.0018948950125994284 +ssg26 +(dp52 +g4 +F0.0042320339279679443 +sg6 +F0.0059002519408345461 +sg7 +F0.00017800618407553086 +sg8 +F8.2869268512486519e-05 +sg9 +F0.0085316801334424045 +sg10 +F3.2545661885830555e-05 +sg11 +F1.6492109167189598e-05 +sg12 +F2.9353448280748634e-05 +sg13 +F0.0054234843970953576 +sg14 +F0.00043427231888798598 +sg15 +F0.00066280199586264059 +sg16 +F3.0138076484614566e-05 +sg17 +F0.00010603519247833805 +sg18 +F0.00042996133883252489 +sg19 +F0.0053488492496576619 +sg20 +F0.0015010116542587312 +sg21 +F1.4916886005055715e-07 +sg22 +F3.3383990879314691e-05 +sg23 +F0.00071177114924003747 +sg24 +F0.0039592816507427022 +sg25 +F0.0025506980055484967 +sg26 +F0.00019378526609167878 +sg27 +F3.1829651357587885e-05 +sg28 +F0.001314326825905459 +sg29 +F0.0015415826008152817 +sg30 +F1.9063780314461203e-06 +sg31 +F0.00013540654102229275 +ssg27 +(dp53 +g4 +F0.00011824018860767462 +sg6 +F0.00021811470716592466 +sg7 +F3.9887753177518984e-06 +sg8 +F3.1146457978556331e-06 +sg9 +F0.00013452644474799445 +sg10 +F1.9272616718531982e-06 +sg11 +F9.3976381831851004e-07 +sg12 +F2.2196326375522905e-06 +sg13 +F0.00019072133770624034 +sg14 +F2.4588994890733838e-05 +sg15 +F6.70961532507406e-06 +sg16 +F1.7900263206066857e-07 +sg17 +F2.3896851380099254e-06 +sg18 +F8.0760020831371637e-06 +sg19 +F7.038383492625489e-05 +sg20 +F2.0889607161480021e-05 +sg21 +F7.756780722628972e-08 +sg22 +F2.4135521556180146e-06 +sg23 +F3.2688863991479092e-05 +sg24 +F1.2962773938393416e-05 +sg25 +F1.1080262924555385e-05 +sg26 +F1.0758058186846181e-05 +sg27 +F1.3117909552845995e-05 +sg28 +F3.8783903613144856e-07 +sg29 +F1.2052843892085017e-05 +sg30 +F2.7148732529201402e-07 +sg31 +F4.027559221365043e-07 +ssg28 +(dp54 +g4 +F0.0055375627745076214 +sg6 +F0.0067636353360527694 +sg7 +F0.0002081382938057434 +sg8 +F0.00012087749405336848 +sg9 +F0.0073669398403956449 +sg10 +F9.754748434146134e-05 +sg11 +F9.8123276141256494e-06 +sg12 +F1.5961068025409614e-06 +sg13 +F0.0032836004155032961 +sg14 +F3.2557595394634603e-05 +sg15 +F0.00021288186355535111 +sg16 +F6.4575199515886191e-05 +sg17 +F3.8962906245205527e-06 +sg18 +F0.00070997515616502878 +sg19 +F0.0031612252660950203 +sg20 +F0.0017818787174707243 +sg21 +F4.4750658015167142e-08 +sg22 +F1.8714725181942898e-05 +sg23 +F0.001188768413023704 +sg24 +F0.000836419632075484 +sg25 +F0.00071375807845591092 +sg26 +F1.4627498416557633e-05 +sg27 +F8.7711289709727604e-07 +sg28 +F2.338967725592736e-06 +sg29 +F0.0044673657049609048 +sg30 +F7.9357833546896401e-07 +sg31 +F0.00061075996396820213 +ssg29 +(dp55 +g4 +F0.011277643160174282 +sg6 +F6.0186651653198799e-05 +sg7 +F0.0024059206767378283 +sg8 +F0.00037396633214674678 +sg9 +F5.9843563275082518e-05 +sg10 +F0.00027379049249119463 +sg11 +F1.793606373247899e-05 +sg12 +F1.0447786957941022e-05 +sg13 +F1.370265148424418e-05 +sg14 +F0.00022055809309355279 +sg15 +F0.00037531780201880479 +sg16 +F9.3391639900452817e-05 +sg17 +F0.0014972585657398593 +sg18 +F0.002299393227021323 +sg19 +F9.1786582966308817e-05 +sg20 +F0.00047330384280881477 +sg21 +F1.8198600926167972e-07 +sg22 +F0.00037443173899010451 +sg23 +F0.0012969784874815793 +sg24 +F0.00049807184033160931 +sg25 +F0.00014541875490888613 +sg26 +F0.00078258757386043894 +sg27 +F7.1093878700095532e-06 +sg28 +F0.00057310676031424059 +sg29 +F1.9839458386724101e-06 +sg30 +F2.8908925077797973e-06 +sg31 +F0.00055388486100812573 +ssg30 +(dp56 +g4 +F0.00017757657775858526 +sg6 +F4.9491244387573849e-05 +sg7 +F8.6458271285302922e-06 +sg8 +F2.6134384280857611e-06 +sg9 +F4.4398619505447827e-05 +sg10 +F1.4499213196914154e-06 +sg11 +F5.6982504539312825e-07 +sg12 +F5.3611288302170242e-06 +sg13 +F0.00022308799696001022 +sg14 +F2.9386265429959757e-06 +sg15 +F4.5854507579541262e-06 +sg16 +F6.0860894900627317e-07 +sg17 +F7.2913738792712335e-06 +sg18 +F2.9863605782121541e-06 +sg19 +F3.1692416006341369e-05 +sg20 +F1.3744418765058335e-05 +sg21 +F7.756780722628972e-08 +sg22 +F6.9109932861423124e-05 +sg23 +F2.3628347432008251e-06 +sg24 +F5.8474193139818399e-07 +sg25 +F4.8748383464522073e-05 +sg26 +F0.00039800340225529355 +sg27 +F1.1396500907862565e-06 +sg28 +F6.0860894900627319e-06 +sg29 +F1.4039773107958439e-05 +sg30 +F7.8641823018653721e-06 +sg31 +F1.7900263206066857e-07 +ssg31 +(dp57 +g4 +F0.0031733228606451204 +sg6 +F0.0041229706076305805 +sg7 +F0.00011326093205918703 +sg8 +F0.0003107336523713156 +sg9 +F0.0044150730693815815 +sg10 +F0.0013988220349924966 +sg11 +F2.9595101834030538e-06 +sg12 +F7.2406564668540441e-06 +sg13 +F0.0033672155283160357 +sg14 +F0.00024043036862948802 +sg15 +F0.00048147531296238429 +sg16 +F4.8969153377396902e-05 +sg17 +F0.00027080711529018346 +sg18 +F0.00028717988936933261 +sg19 +F0.00086685007952579769 +sg20 +F0.0022732797263808726 +sg21 +F5.8772530859919514e-07 +sg22 +F0.0004961028113789419 +sg23 +F0.0004703920666606279 +sg24 +F0.0003079740284603803 +sg25 +F0.0005364142041190045 +sg26 +F0.00016636206285998437 +sg27 +F3.9649083001438092e-06 +sg28 +F0.00058291908792836619 +sg29 +F0.00077810355792731919 +sg30 +F1.3902537756711927e-06 +sg31 +F2.7629056258564196e-05 +sssS'komentar' +p58 +S'Z cele cswiki s mezerami' +p59 +sS'abeceda' +p60 +S' ABCDEFGHIJKLMNOPQRSTUVWXYZ' +p61 +sS'poradi' +p62 +(lp63 +g4 +ag9 +ag6 +ag19 +ag13 +ag20 +ag24 +ag23 +ag26 +ag18 +ag28 +ag15 +ag25 +ag7 +ag10 +ag17 +ag22 +ag31 +ag29 +ag14 +ag16 +ag8 +ag11 +ag12 +ag30 +ag27 +ag21 +asb. \ No newline at end of file diff --git a/referencni.py b/referencni.py new file mode 100644 index 0000000..d135b3d --- /dev/null +++ b/referencni.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python + +from itertools import combinations +import pickle +from ocesavac import ocesat +import codecs + +ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +MABECEDA = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ' + +def nova_tabulka(tabulka, abc=MABECEDA): + celkem = sum(sum(tab2.values()) for tab2 in tabulka.values()) + if celkem != 0: + for i in abc: + for j in abc: + tabulka[i][j] /= float(celkem) + return tabulka + +def poradi_dle_frekvence(freq): + return sorted(freq.keys(), key=freq.get, reverse=True) + +class reference: + def __init__(self, tref, komentar=''): + self.abeceda = tref.abeceda + self.poradi = poradi_dle_frekvence(tref.frekvence) + self.tabulka = nova_tabulka(tref.tabulka, tref.abeceda) + self.komentar = komentar + +class treference: + def __init__(self, mezery=True): + if mezery: + self.abeceda = MABECEDA + else: + self.abeceda = ABECEDA + self.mezery = mezery + self.frekvence = dict() + for c in self.abeceda: + self.frekvence[c] = 0 + self.tabulka = dict() + for i in self.abeceda: + self.tabulka[i] = dict() + for j in self.abeceda: + self.tabulka[i][j] = 0 + self.soubory = [] + + def pridej(self, soubor): + f = codecs.open(soubor, encoding='UTF-8') + text = ocesat(f.read(), self.mezery) + f.close() + for i in range(len(text) - 1): + self.tabulka[text[i]][text[i+1]] += 1 + self.frekvence[text[i]] += 1 + else: + self.frekvence[text[i+1]] += 1 + self.soubory.append(soubor) + +def uloz(co, kam): + f = open(kam, 'w') + pickle.dump(co, f) + f.close() + +def nacti(odkud): + return pickle.load(open(odkud)) diff --git a/robot.py b/robot.py new file mode 100755 index 0000000..1bf94fc --- /dev/null +++ b/robot.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +import sys +import smtplib +import email +from email.mime.text import MIMEText +from time import asctime +from ocesavac import ocesat +import jakobsen +from jakobsen import reference +import koincidence +import pickle +import os + +ABECEDA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + +class settings: + pass + +settings = pickle.load(open('./robot_settings')) +os.chdir(settings.path) + +# Cteni mailu +mail = email.message_from_file(sys.stdin) +predmet, _, opsny = mail['Subject'].strip().upper().partition(' ') +if predmet != settings.subject: + sys.exit() +if (opsny == 'L'): + mail = pickle.load(open('./msg_last.tmp')) +odesilatel = mail['From'] +telo = mail.get_payload().strip() +if len(telo) < 2: + sys.exit() +zprava = telo.upper() +analyza = [] + +# Zakladni udaje +analyza.append("Delka zpravy (bez mezer a zvlastnich znaku):") +analyza.append(str(len(ocesat(zprava, False)))) + +# Index koincidence +analyza.append("\nIndexy koincidence:") +analyza.append(koincidence.tabulka_indexu(zprava)) + +# Jakobsen +analyza.append("\nJakobsen:") +analyza.append(jakobsen.desifruj(zprava, './ref')) + +# Posuny v abecede +analyza.append("\nPosuny v abecede:") + +def posun(char): + if 65 <= ord(char) < 90: + return chr(ord(char) + 1) + if ord(char) == 90: + return 'A' + else: + return char + +posunuty = zprava +for i in range(26): + posunuty = map(posun, posunuty) + analyza.append(''.join(posunuty)) + +# Frekvence znaku +analyza.append("\nFrekvencni analyza:") +freq = dict() +for char in ABECEDA: + freq[char] = 0 +for char in zprava: + if char in freq: + freq[char] += 1 +celkem = sum(freq.values()) +for char in sorted(freq, key=freq.get, reverse=True): + analyza.append('{0} {1:>3} {2:>6.2%}'.format(char, freq[char], + float(freq[char])/celkem)) + +# Bigramy +analyza.append("\nBigramy podle cetnosti:") +bigramy = dict() +for i in ABECEDA: + for j in ABECEDA: + bigramy[i+j] = 0 +for i in range(0, len(zprava)-1): + if zprava[i:i+2] in bigramy: + bigramy[zprava[i:i+2]] += 1 +celkem = sum(bigramy.values()) +for char in sorted(bigramy, key=bigramy.get, reverse=True): + if bigramy[char] == 0: + break + analyza.append('{0} {1:>3} {2:>6.2%}'.format(char, bigramy[char], + float(bigramy[char])/celkem)) + +# Kompozice odpovedi +msg = MIMEText("Puvodni zprava:\n" + + telo + "\n\n" + "\n".join(analyza) + + "\n\nS pozdravem\nVas Robot\n") +msg['Subject'] = "Analyza Vasi zpravy" +msg['From'] = settings.name + " <" + settings.mail + ">" +msg['To'] = odesilatel + +# Odeslani odpovedi +s = smtplib.SMTP('localhost') +s.sendmail(settings.mail, odesilatel, msg.as_string()) +s.quit() + +# Zalogovani posledni zpravy +f = open('./robot_last.tmp', 'w') +f.write(msg.as_string()) +f.close() + +f = open('./msg_last.tmp', 'w') +pickle.dump(mail, f) +f.close() + +f = open('./robot.log', 'a') +f.write(asctime() + " " + odesilatel + "\n") +f.close()