DŮLEŽITÉ UPOZORNĚNÍ!
Policie České republiky se zajímá o IP-adresy osob, které komentují tento blog. Ve vlastním zájmu zde proto nic nepopírejte, nezpochybňujte, neschvalujte, neospravedlňujte, nikoho a nic nehanobte, nepodporujte a nepropagujte, a pokud se přesto rozhodnete komentář přidat, pak se, prosím, ničemu nedivte.
Aktuálně: Výnos sbírky pro Vlastimila Pechance dosáhl ke dni 16. 5. 2016 částky 44 368 Kč.
Výtěžek prvního benefičního koncertu, který se uskutečnil dne 12. 3. 2016, činil 13 500 Kč.

sobota 24. listopadu 2012

Když úředník náhodně vybírá

Ze všech vtipů komentujících součtový výklad zákona o přímé volbě presidenta, které jsem na sociálních sítích četl, se mi asi nejvíc líbí tento: Víte, že úředníci na ministerstvu vnitra mají průměrné IQ 160? Samozřejmě! Polovina 70 a polovina 90.

Právníkovi počítač do rukou nepatří, to je zjištění, které jsem učinil již dávno a o jehož správnosti se opakovaně přesvědčuji. Díky Janu Petrovovi jsem, utopena uprostřed rozhodnutí o registraci nebo odmítnutí kandidátky, objevil algorithmus, pro účely výběru vzorku petičních archů ministerstvem vytvořený, a zhrozil se.

Především je tam zřejmá písařská chyba. V algorithmu generátoru pseudonáhodných čísel se nepoužívá konstanta a = 11035115245, nýbrž 1103515245; 11035115245 je větší než 233 a zjistit součin a . rn–1 vyžaduje nejméně 65-bitovou arithmetiku, což je v řadě implementací problém.

Zkusme se zeptat kompilátoru gcc, kolik je a . (231 – 1):

echo -e "main() { printf(\"%lu\\\n\", 11035115245 * 0x7fffffff); }\n" | gcc -x c - && ./a.out

Prý 5250985457688346899; ovšem, do 64 bitů se víc nevejde.

Python arci ví, že je to 23697729531397898515, stejně jako kalkulátor bc, jemuž lze pro tento účel důvěřovat.

Druhá nejasnost vzniká u prvního a posledního archu. Popsaný algorithmus generuje pořadová čísla v rozsahu 0 až N – 1, nikoli 1 až N. To znamená, že poslední arch nikdy nemůže být do vzorku zařazen, přestože se podpisy na něm do součtu započítávají, ledaže by bylo číslováno od nuly: tomu ale nic nenasvědčuje.

Za třetí není jasné, co se stane v případě, že by měl být jeden podpisový arch do výsledku zařazen vícekrát. Ministerští informatici evidentně neumějí napsat algorithmus tak, aby tato situace nemohla nastat, a i když by se dalo logicky předpokládat, že jeden a ten samý arch by neměl být kontrolován dvakrát, z popisu algorithmu to jednoznačně nevyplývá.

Za čtvrté, a to mám za největší problém, výběr podpisových archů se mi nepodařilo rekonstruovat.

Vzal jsem si pro jednoduchost rozhodnutí týkající se Jany Bobošíkové a extrahoval z něj pořadová čísla aspoň jednu chybu obsahujících petičních archů v prvním a druhém vzorku. To se dá udělat např. takto:

pdftotext -f 21 -l 41 Jana_Bobošíková.pdf - | grep ^1400 | sort | uniq > jb1.txt
pdftotext -f 42 -l 73 Jana_Bobošíková.pdf - | grep ^1400 | sort | uniq > jb2.txt

Výsledné soubory si můžete stáhnout z mého webu (jb1.txt, jb2.txt). K tomu jsem si napsal program, který simuluje ministerstvem popsaný výběr, a zkoumal, kdy přijdou jednotlivé archy na řadu:


Už první řádky výstupu ukazují, že zde něco nesouhlasí:

[tompecina@desktop President 2013]$ ./volby.py 4963 jb1.txt | head
N = 4963
file = jb1.txt

p[2516] = 20
p[1134] = 32
p[3744] = 41
p[1563] = 67
p[916] = 81
p[1946] = 82
p[1737] = 85

Evidentně: kontrolovat se mohla zhruba třetina petičních archů, a tak např. arch s pořadovým číslem 41 se nikdy ani do prvního, ani do druhého zkušebního vzorku nemohl dostat.

Nepomůže, ani když proti textu rozhodnutí opravím konstantu a, výsledek, který by odpovídal tomu ministerskému, prostě nedostanu. Kde je tedy chyba, dokáže ji někdo odhalit?

Aktualisováno.
Další studijní materiál k experimentování:

Jana Bobošíková link 14 4963 jb1.txt jb2.txt
Vladimír Dlouhý link 13 6678 vd1.txt vd2.txt
Jan Fischer link 10 19558 jf1.txt jf2.txt
Taťana Fischerová link 17 9219 tf1.txt tf2.txt
Vladimír Franz link 15 7194 vf1.txt vf2.txt
Tomio Okamura link 16 8619 to1.txt to2.txt
Zuzana Roithová link 11 8837 zr1.txt zr2.txt
Miloš Zeman link 12 26795 mz1.txt mz2.txt
Kandidát Rozhodnutí Prefix N Vzorek 1 Vzorek 2

Aktualisováno.
Žádost o informace. Snad pomůže záhadu vyjasnit.

Aktualisováno.
V analyse jsem zatím dospěl k tomuto výsledku, v jehož správné interpretaci, resp. rekonstrukci skutečně použitého algorithmu, arci tápu (u ostatních kandidátů dostávám pouze šum):
JB                Sample 1      Sample 2
Iteration       -1   0  +1    -1   0  +1
-----------------------------------------
000001-000050    8  13  20     2   4   2
000051-000100    7   9  17     3   7   2
000101-000150    1  12  18     6   2   2
000151-000200    7   9  18     4   2   0
000201-000250    2  10  12     5   3   1
000251-000300    2  12  15     7   4   2
000301-000350    3  11  21     5   3   0
000351-000400    5  17  22     3   2   1
000401-000450    3  15  18     6   4   1
000451-000500    5  16  20    10   6   1
000501-000550    1  14  19     3   3   4
000551-000600    5  11  11     3   4   4
000601-000650    2   8  21     3   4   0
000651-000700    5  13  14     7   2   1
000701-000750    4  13  13     9   6   2
000751-000800    3  12  15     5   6   6
000801-000850    2   3   7     7  12  15
000851-000900    4   5   4     3   7  20
000901-000950    2   3   3     7  13  18
000951-001000    2   6   3     4  12  19
001001-001050    7   4   5     1  14  20
001051-001100   10   5   5     6  13  16
001101-001150    8   4   3     6  14  17
001151-001200    2   3   1     4  14  17
001201-001250    2   1   4     2  15  17
001251-001300    7   2   6     9  13  20
001301-001350    5   4   2     8   8  15
001351-001400    6   5   1     3  10  23
001401-001450    5   5   1     7   3  25
001451-001500    2   8   6     8   9  17
001501-001550    5   7   2     7  12  20
001551-001600    3   3   6     6  11  14
001601-001650    3   6   1     4   9  16
001651-001700    4   5   4     3   9  17
001701-001750    3   3   3     4  18  15
001751-001800    1   7   1     5   5  13
001801-001850    4   5   4     2   6   2
001851-001900    4   4   2     2   5   2
001901-001950    4   2   4     7   2   6
001951-002000    4   2   2     4   8   6
002001-002050    1   4   3     4   4   3
002051-002100    4   7   2     3   3   3
002101-002150    6   2   3     4   3   6
002151-002200    7   9   5     4   5   5
002201-002250    4   7   1     4   5   8
002251-002300    6   4   3     5   8   6
002301-002350    4   1   5     5   6   6
002351-002400    0   1   4     5   8   8
002401-002450    3   4   3     2   5   3
002451-002500    3   3   1     4   6   0
Na druhé straně, i šifru Enigmy se nakonec podařilo prolomit, tak přece toto nemůže odolat…

57 komentářů:

  1. Dobre. Moc tomu sice nerozumim (protoze jsem pravnik), ale dobra prace.

    OdpovědětVymazat
  2. Také mám s replikací potíže (ovšem nejsem schopen zreplikovat ani vaše výsledky; vaše implementace PRNG mi dává stejnou posloupnost 3827, 1291, 1349, …, avšak pořadí vychází zcela jinak (3472, 1286, 6854, …)).

    Zatím nejplauzibilnější podobou, ke které jsem se propracoval, je: ponechat původní „podivnou“ variantu konstanty a (BTW: 65bitovou aritmetiku samozřejmě nepotřebujete, když se to celé počítá v Z_m, můžete si i z konstanty a na počátku vzít jen její zbytek), ale celé to jakoby „indexovat od jedničky“, tzn. místo N nebrat 4963, ale 4964, a k výsledkům toho PRNG vždycky přičíst jedna. Výsledná posloupnost testovaných čísel archů 14002483 (bez chyby), 14004158 (2 chyby), 14001088 (bez chyby), 14001779 (1 chyba), …), resp. váš test pořadových čísel (269, 177, 480, 619, …) vypadají velmi uvěřitelně. Jenže u několika chybových položek v seznamu to pořadí vychází hodně vysoko (p[10726] = 14000514), což by skoro naznačovalo, že jeli podle PRNG, ale přihodili si tam pár chybných podpisů, které nepocházely z PRNG (třeba jim náhodou padl zrak na nějakého Kačera Donalda…).

    Jenže… u ostatních kandidátů tahle metoda opět nikam nevede, zdá se…

    OdpovědětVymazat
    Odpovědi
    1. BTW: 65bitovou aritmetiku samozřejmě nepotřebujete, když se to celé počítá v Z_m, můžete si i z konstanty a na počátku vzít jen její zbytek

      To můžu, ale musím mít jistotu, že se hw nebo sw násobička při přetečení zachová tak, jak čekám. Což u řady systémů není vůbec garantováno.

      (p[10726] = 14000514)

      Jak můžete mít tak vysoký index? Patrně vám ušel řádek 19.

      vypadají velmi uvěřitelně

      To se zdá být správný postřeh, vychází to mnohem lépe, ale stále ne tak, jak má. Zkusím se ještě podívat, zda se tam nějak nestandardně neřeší situace, kdy vyjde strana nula.

      Vymazat
    2. > Jak můžete mít tak vysoký index? Patrně vám ušel řádek 19.

      Ha! Máte v podstatě pravdu, vy (pochopitelně) počítáte jen ty neduplicitní; já je sice ignoroval, ale do pořadového čísla jsem je započítával. Opraveno, výsledky už mám stejné.

      Tím pádem se samozřejmě sníží i pořadí v té poupravené verzi, ale jakkoli to na první pohled vypadá skoro krásně, pořád je tam spousta indexů nesmyslně vysoko. O ostatních kandidátech nemluvě. Skoro se mi začíná zdát, že to je jen náhoda a skutečný rozdíl je v něčem jiném (nejspíš v nějaké hloupé chybě toho jejich programátora, že nějaký mezivýsledek počítal v intech místo longů nebo tak něco). Tak nevím.

      Vymazat
    3. Přesně tak. Proč to funguje, aspoň částečně, jen u Bobošíkové (u obou vzorků) a u ostatních ne, je mi zatím naprosto nepochopitelné.

      Vymazat
    4. Zatím to opravdu vypadá, že Henych dal svých podřízeným pokyn, aby, uvidí-li arch s "Kačery Donaldy" u Bobošíkové, zařadili ho do vzorku bez ohledu na číslování, kdežto když ho uvidí třeba u Fischera, tak ho ze vzorku bez ohledu na číslo vyřadili. Což je sice přečin podle § 351 TrZ jako vyšitý, ale očekávat, že něco podobného začne PČR vyšetřovat, je ekvivalentní víře v existenci yettiho, eventuálně v neposkvrněné početí peněz na Fischerovu kampaň.

      Vymazat
  3. Super, chystal jsem se udělat přesně to stejné, akorát s daty pro Tomiho ;-) každý máme zřejmě jiné oblíbence. Naštěstí jsem před tím zkusil googlit a vygooglil tohle, takže pokud se na to vrhnu, mám na co navazovat :P

    > Za třetí není jasné, co se stane v případě,
    > že by měl být jeden podpisový arch do výsledku zařazen vícekrát.

    To je jednoduché. Vzhledem k tomu, jakým způsobem pracuje ten algoritmus (rekurence, následujicí člen závisí jen a pouze na předchozím členu a konstatntách), jakmile se zopakuje jedno číslo, budou všechna další duplicitami, lépe řečeno generátor nám začne cyklit. ;-) To je obecně vlastnost pseudonáhodných generátorů. A nejde tomu zabránit. Jedno hledisko na kvalitu pseudonáhodného generátoru je proto délka jeho cyklu, čím delší tím lepší. (zdroj http://en.wikipedia.org/wiki/Linear_congruential_generator)

    Ještě jedna citace z té stránky na wiki "While LCGs are capable of producing decent pseudorandom numbers, this is extremely sensitive to the choice of the parameters c, m, and a."
    to by se dalo interpretovat tak, že pokud vybereme "špatné" konstanty, generátor nebude ani "decent".

    Pokud si zkusím googlit, https://www.google.com/search?q=11035115245 , ukazuje se, že to číslo pro jejich konstantu a se na webu vyskytuje jen a pouze v tomto článku.

    ~Jerzy

    OdpovědětVymazat
    Odpovědi
    1. LCG se začne cyklit pouze v případě, že se opakuje jeho seed, nikoli výstup. Takže v tomto směru buďte bez obav, mám to správně :-)

      Vymazat
  4. Je vůbec nějaký důvod, proč nepoužít generátor náhodných čísel třeba v pythonu a vyrábět si vlastní?

    OdpovědětVymazat
    Odpovědi
    1. Záleží na účelu. Pokud ho potřebujete např. pro methodu Monte Carlo, není nejmenší důvod psát si vlastní. Naopak tam, kde potřebujete přesně vědět, jaký algorithmus se používá, může být knihovní (v Pythonu modul random) zdrojem nejistoty – o modulu random se v dokumentaci dočtete asi tolik, že implementuje methodu Mersenne Twister.

      Vymazat
    2. Děkuji, takový důvod mě vůbec nenapadl.

      Vymazat
  5. Tomáš, Vy jste se patrně inspiroval u českých soudních znalců, že když se něco napíše nesrozumitelně, tak to působí lépe!
    Poctivě jsem si načetl rozhodnutí i stránky na Wikipedii, ale u programu už jsem se nechytal (až jsem za mlada dováděl s Pascalem a bavilo mě to, už se mi nechtělo dohledávat si, co znamenají ty příkazy v Pythonu). Takže u věty "Už první řádky výstupu ukazují, že zde něco nesouhlasí:" už jsem se absolutně nechytal, co z toho výstupu plyne.
    Zkusil jsem i zpětné inženýrství bez znalosti Pythonu, ale když jsem viděl že výstup z Vašeho programu ukazuje jakési %d, přičemž %d není nikde definované, tak jsem to vzdal. Nemůžete spravedlivě chtít po čtenářích, aby se naučili programovací jazyk kvůli Vašenu článku.
    No a když netuším, jaký výstup to vlatně generuje, tak nepoznám, co je na těch číslech špatně. Mohl byste prosím napsat nějak blbuvzdorně i pro právníky, jak jste dospěl k závěru, že to nesedí?
    P.S. Z žertíku typu Sokalova aféra Vás samozřejmě nepodezřívám.

    OdpovědětVymazat
    Odpovědi
    1. %d je formátovací řetězec, který říká, že čísla braná z tuplu mají být vypsána v dekadickém formátu. Kdybych místo toho %x, dostal bych je hexadecimálně.

      Špatně je na tom, že se do kontrolního vzorku dostaly petiční archy, které se tam podle algorithmu vůbec dostat neměly, protože jejich čísla algorithmus tak brzy nevygeneroval.

      Nejzajímavější na tom je, že modifikací algorithmu se nám s Mormegilem podařilo, a to pouze u jediného kandidáta, JB, dostat výsledky, které sice obsahují chyby, ale je jich řádově méně než u ostatních kandidátů, jejichž soubory *.txt vypadají, jako kdyby ministerstvo používalo úplně jiný algorithmus, nebo výběr provádělo zcela náhodně. Proč, zatím nikdo netušíme.

      Vymazat
    2. Špatně je na tom, že se do kontrolního vzorku dostaly petiční archy, které se tam podle algorithmu vůbec dostat neměly, protože jejich čísla algorithmus tak brzy nevygeneroval.
      Tomáši, hotline Microsoftu je proti Vám učiněný pramen moudrosti!
      To vím taky, že Vám to nevyšlo. A pokládám to za potenciální megaprůser, vedle kterého bledne to, jestli nějaký ředitel odboru MV ze sebe chce dělat hlupáka na veřejnosti nebo ne. Ale jde ten problém upřesnit, aby to nebohý čtenář pochopil, aniž by si musel stahovat a instalovat nějaký open source kompilátor a měnit na chvíli svou profesi?
      (jak říkám, za mlada mi to s Pascalem šlo, ale za mlada už v mém případě znamená něco jako za císaře pána)
      Netuším absolutně, co to je "tupl" a nevidím, že by se k kódu někde definovala proměnná d, takže nevím, co znamená výstup:
      p[2516] = 20
      p[1134] = 32
      p[3744] = 41
      p[1563] = 67
      p[916] = 81
      p[1946] = 82
      p[1737] = 85
      Z toho nepoznám, jestli to souhlasí nebo nesouhlasí. No comprendo, jasné?
      V tuto chvíli jsem ochoten Vám věřit, že to není Sokalova aféra po česku, ale nějaké srozumitelné vysvětlení toho, co vlastně píšete, si jistě Vaši čtenáři zaslouží.

      Vymazat
    3. Milý Tomáši, i na hotline Microsoftu volají zákazníci, resp. zákaznice, kteří na dotaz, jaký mají počítač, odpovědí, že takový šedý. Komunikace je pak oboustranně frustrující.

      Vymazat
    4. Tomáši, pochopil jsem narážku a omlouvám se, že jsem tak blbej a nerozumím pythonu, což je dnes jinak zcela samozřejmá výbava každého člověka. Už Vás nebudu svou nedovtipností přivádět do rozpaků a jdu si půjčit meč od Tomia Okamury. Sbohem.

      Vymazat
  6. Jedna věc mě mate: Jana Bobošíková měla 56725 podpisů na 4963 arších, což je průměr 11,4 podpisu na arch. První vzorek obsahoval 382 archů, což při počtu 8500 podpisů (aproximace skutečného počtu, který neznám) činí 22,3 podpisu na arch.
    Jan Fischer 105481 podpisů na 19558 arších (průměr 5,4), ale v prvním vzorku průměr 16,7 (odhadem 8500 podpisů, 508 archů).
    Počty archů jsem vzal jako počet řádků v Tomášových souborech **1.txt.
    Proč se tak moc liší průměrné počty podpisů na arch mezi celkem a vzorkem???
    Je neděle po ránu a ještě jsem neměl svou kávu, takže možná mi někde unikl nějaký detail.

    OdpovědětVymazat
  7. Opravdu to chtělo to kafe! Sotva jsem vylezl od počítače a dal si svého smrťáka, objevil jsem ten háček; kontrolovaných archů ve vzorku bylo samozřejmě více; publikovaná čísla zahrnují jen ty archy, kde byly zjištěny chyby. Čímž se zvětší jmenovatel ve zlomku.
    Jak prosté, milý Watsone. :-) Můj pokročilý věk snad omlouvá, že v neděli po ránu ještě moc nefunguji.

    OdpovědětVymazat
    Odpovědi
    1. Přesně tak, právě píšu ministerstvu žádost, aby mi podle InfZ poslalo všechna čísla archů ve vzorcích.

      Vymazat
  8. Dobrý den,
    nevychází to ani statisticky - viz https://t.co/Cxnja6wy

    OdpovědětVymazat
    Odpovědi
    1. Ono to statisticky vychazi, teda... aspon trochu. Ministerstvo kontrolovalo duplicity v druhych vzorcich i vzhledem k prvnim. Tim dodalo seriovou korelaci a tim padem ani neplati binomicke rozdeleni (a tim padem ten g-o-f test nedava smysl).

      Vymazat
  9. Nemeli by sdelit krome cisel i poradi, kdy jim ktere cislo "vyslo"?

    OdpovědětVymazat
  10. Taky konstantu a + zda cislovali od nuly nebo od jedne. Laicky bych rekl, ze byste mel chtit fakt vic, aby se odstranily nejistoty.

    OdpovědětVymazat
    Odpovědi
    1. Ano, ale myslím, že úplné vzorky by mi měly pro další analysu stačit. Chtěl jsem svou žádost formulovat co nejsrozumitelněji a nejurčitěji.

      Vymazat
  11. Uvedeny postup jsem nezkousel, nemam na to cas, ale mozna by to mohlo nekam vest - v clanku jste naznacil, ze neni jasne, jak se resi duplicitni vystup te funkce. Zaroven vam to nesedi na data od mvcr. Co kdyby po kazdem vygenerovanem archu byl ten arch vyhozen ze seznamu archu ke zpracovani a zaroven s tim se zmensilo N ve vzorci. Nahodne cislo pak indexuje arch v seznamu "pro zpracovani", takze vam tam zadny nemuze vyjit dvakrat (uz neni v seznamu) a zaroven to urcite dobehne (N se snizuje a snizuje az k 1) - je to netradicni, je to nestandardni, je to snad i v rozporu s naznacenym algoritmem, ale resi to problem duplicit a mozna (ale to jsem neoveroval) by to mohlo vest ke zdarnemu vygenerovani zadoucich cisel...

    OdpovědětVymazat
    Odpovědi
    1. Toto asi nebude cesta. Jestliže byste snížil po každé iteraci N, musel byste buď archy vždy přečíslovat, anebo akceptovat dramaticky nižší pravděpodobnost kontroly archů z konce souboru.

      Vymazat
    2. Jinak ale netvrdím, že by to byl horší algorithmus než ten použitý, je dokonce koncepčně lepší, jen neodpovídá výsledkům. Máte na mysli zřejmě něco takového:

      l = []
      q = list(range(N))
      n = N
      while n:
          r = ((a * r) + c) % m
          p = floor(n / m * r)
          l.append(q[p])
          del q[p]
          n -= 1

      Vymazat
    3. Nemusel bych je precislovat, protoze bych je indexoval jejich poradim ve fronte na zpracovani. Ale jak rikam, netestoval jsem to, byl to jen namet do brainstormingu.

      Vymazat
    4. To je v podstatě to samé. Důležité ale je, že tato methoda nedává správné výsledky, na rozdíl od té, kterou navrhl Mormegil.

      Už možná vím, proč data sedí (z cca 80 %) jen u Bobošíkové: protože je první v abecedě. U dalších programátor upravil N, ale zapomněl inicialisovat p0 a/nebo r0 (řádky 12 a 13 programu).

      Vymazat
  12. Je to zajímavý problém a tak jsem si ho chtěl sám spočítat, ale nějak mi chybí data nebo informace. Můžete mi, prosím, říct: jak vypadaly ty archy (kolik jich bylo a kolik na nich bylo jmen) a jaký byl algoritmus výběru ke kontrole: co se vybíralo, zda pořadové číslo jména, nebo archu a jaký byl výsledek kontrol (jsou známa pořadová čísla archů, jež byly ke kontrole vybrány a pořadová čísla podpisů, jež byly považovány za neplatné? Zbytek už by měl být jednoduchý.

    A nějaký právník by třeba mohl říci, zda je v souladu se zákonem prohlásit, že kandidát nemá dost platných piodpisů, když zjištěníém je pouze fakt, že určitý odhad relatiovní četnosti nedovolí vyloučit hypotézu, že pravděpodobnost, že těch podpisů není dost je větší než nula.

    OdpovědětVymazat
    Odpovědi
    1. Nemáme žádné jiné informace, než co je dostupné z rozhodnutí, případně z medií.

      Vymazat
  13. Jo, dešifrace ministerstva, to je dobrá myšlenka.
    Ale mě v mezičase napadl ještě jeden důvod, proč je celej ten zákon o kontrole archů vadnej, a zformuloval jsem na to jine strategii kterou sem s dovolením napastuju v původnim znění. Pletu se někde, nebo je to opravdu schůdnej "obchodní model"?

    Prostě necháte lidi (30 tis. úplně stačí) podepsat "pro jistotu" každýho dvakrát, na dva různý sčítací archy, to by mohlo fungovat dobře .. pravděpodobnost že se do kontrolního vzorku náhodnym výběrem dostanou oba podpisy a budou tudíž vyřazený na duplicitu je jen 4%, proti 50% skutečný chybovosti souboru a 96% "zisku" je zaručeno jak jistota desetinásobku .. někdy prostě ani sčítání chybovostí nestačí, akorát je třeba stanovit podnikatelskej záměr v souladu s platnou legislativou ..

    A.J.

    OdpovědětVymazat
    Odpovědi
    1. Cisla jsem nekontroloval, ale princip mate spravne. Interpolovat jednoduse duplicity ze vzorku linearne neni totiz mozne a zakon na to nepamatuje.
      Nicmene pri realnych a ne takto nastrcenych datech to nebude velky rozdil, navic bude ve prospech tech kandidatu. Cela skoda ktera muze vzniknout je cena za vytisteni volebnich listku, takto protlaceny kandidat stejne nema sanci.

      Vymazat
    2. Ono je to vidět i v realitě, kdy u Bobo bylo na duplicitu vyřazeno 81/8500 (necelé procento) ale už 377/17000 (něco přes 2%) a napovídá to, že skutečnej poměr duplicit v celym balíku bude někde kolem 10-15% což je docela darda, ale při téměř roční kampani docela pochopitelná. Zase je to spíš jen hrubej odhad, záleží jestli to někdo nepodepsal z pilnosti třeba tisíckrát a podobně ;-)
      A.J.

      Vymazat
    3. No tisíckrát snad ne, ale zrovna Bobošíková je trochu extrém i tím, že ve vzorcích má vedle spousty duplicit a 14 triplicit taky jednu kvadruplicitu. :-)

      Vymazat
    4. Mám nasbíráno 50000 podpisů, ale kvalita suoboru stojí za psí štěk, vím, že je v ní navíc 3,5% chybovoat a tudíž budu vyřazen. Vezmu 14 000 podpisů o kterých vím že jsou stoprocentmě v pořádku a zreplikuju je. Mám 64000 podpisů.
      Pro kednoduchost počtu předpokládejme že kontrolní vzorek čítá 8000 podpisů. Při kontrole se mi do vzorku dostane jen 6250 podpisů z těch opravdu nasbíraných a 1750 z replikovaných. Při 3,5 procentní chybovosti bude vyřazeno cca 220 podpisů z původního souboru a 220 dalších kvůli duplicitě. Jsem zhruba na 7% chybovosti. V druhém kole bude vyřazeno dalších 220 podpisů z původního souboru a 660 dalších kvůli duplicitě. Jsem zhruba na 11% chybovosti.
      Při správném postupu se mi odečte 9 % hlasů a já jdu s 58000 platných hlasů kandidaovat na prezidenta.
      Čísla jsozu u Bobošíkové malinko jiná ( dla by se určitě doladir), princip je stejný.

      Vymazat
    5. Ano, to je správná připomínka. Daný systém odměňuje podvodníky a trestá poctivé.

      Vymazat
    6. ...aneb poslanci sobě :-)

      Vymazat
  14. Promiňte hloupou otázku, ale už se v tom ztrácím: dají se někde na najít vyextrahované počty důvodů jednotlivých zamítnutí, s nimiž operuje Meierův článek ohledně anomálie u Okamury? Tabulka v rozhodnutí MV třídí jen důvody neplatnosti, ale jednotlivé podkategorie "Občan v evidenci nenalezen" a "Uvedeny nesprávné údaje" neuvádí. Eventuálně přímo výchozí tabulka zkonvertovaná do něčeho strojově zpracovatelného, což je v běžných Windows dost náročné.

    OdpovědětVymazat
    Odpovědi
    1. Nevím o tom, ale v případě potřeby by nemělo být obtížné tuto formu dat z pdf vygenerovat. Rovněž přemýšlím, zda bych ji nemohl k něčemu potřebovat.

      Vymazat
    2. Soubor CSV si můžete stáhnout z mých stránek. Jistě bude zajímavé provést na datech různé statistické testy.

      Vymazat
  15. Ale pane Pecino, kam se to hrabete s tím vědeckým přístupem! Vždyť to je tak prosté: "Myslím, že náš výklad je správný. Na právo nemůžeme uplatňovat závěry a poučky z matematiky či z jiných věd." Tak pravil Mr. Henych v Týdnu. Pošlete tomu dobrému muži aspoň čestné oslí uši k vánocům, určitě si to zaslouží. :-)

    JM

    OdpovědětVymazat
  16. Já jsem ten jejich náhodný výběr progamoval v Perlu a mám jiné výsledky:
    20 je v pořadí 231.
    41 77.
    32 374.
    etc., čili odpovídají vcelku MV. V programu vypadá všechno podobně, jen používám int místo floor.

    OdpovědětVymazat
    Odpovědi
    1. Používat zaokrouhlování místo celočíselné hodnoty jsou zkoušel hned na začátku, ale přesnou sekvenci jsem stejně nedostal. Vychází vám rozumně i ostatní kandidáti? Pokud ano, prosím, pastněte sem ten perlový skript.

      Vymazat
    2. Asi to taky ještě není všechno, protože je i u mě spousta archů, které by se nedostaly na řadu, ještě se na to podívám. A int v Perlu není zaokrouhlování, ale floor s výsledkem integer, ne double.

      Vymazat
    3. Pak by výsledek měl vyjít stejně. Python má poměrně velmi sofistikované algorithmy pro práci s čísly (má jednotný číselný typ) a jsem si jist, že algorithmus implementuje korektně; nyní naopak hledáme jeho nekorektní skutečnou implementaci, a to se nám nedaří.

      Vymazat
  17. Neni nad to, mit tydlencty pocitace, pak se muze algoritmovat a nahodne generovat az do zblbnuti, a narod a matematici se muzou hadat o konstanty. Samozrejme by vsechno slo udelat velmi, velmi primitivne neboli low-tech. Vyber archu pomoci rulety nebo neceho podobneho, no a to pravidlo, jak ho popisuje P.Hasenkopf v NP, je uz zcela primitivni, zjistim, sectu, vypoctu procenta, eventuelne odectu "spatne" hlasy, a jedu dal. To pravidlo mi prijde dost pitome, cely problem je prece zjisteni poctu spatnych kulicek v pytli malych pytlicku s dobrymi a spatnymi kulickami na nejake hladine pravdepodobnosti. To je prece primitivni statisticka inzenyrska uloha v podstate ze stredni skoly. Vyberu par pytlicku, spocitam dobre a spatne kulicky a prepoctu na cely vzorek. Pokud je vysledek tesny, prepocitam vic pytlicku, az v extremnim pripade prepocitam vsechny. Tak mel ten zakon vypadat, soucasne s tim, ze si eventuelni cele prepocitavani resp. kontrolu hradi kandidat, a smytec.

    OdpovědětVymazat
  18. Dle mě by ještě stálo za to uvažovat variantu, že prostě použili nějakou funkci na náhodný čísla odněkud. Klidně z Excelu nebo z nějakého jazyka a napsali o ní to, co se jim podařilo najít v dokumentaci.

    OdpovědětVymazat
    Odpovědi
    1. Tato eventualita je vyloučena tím, že mají chybu v konstantě a, a s takto chybnou konstantou jsme našli shodu u cca 80 % Bobošíkové archů.

      Zkoušel jsem leccos, např. program v C, který protočí celý PRNG a hledá shody (trvá to necelých 10 sekund), ale zatím bezúspěšně. Shoda je jen částečná a jen u JB.

      Vymazat
  19. Co je Iteration v tabulce nahoře? Respektive, co jsou všechny hodnoty? Intuitivně předpokládám, že to je něco s posunutím začátku od 0 nebo 1, ale jinak je to velmi nejasné.

    OdpovědětVymazat
    Odpovědi
    1. Iteration jsou iterace PRNG, a hodnoty v řádcích představují počet shod s výsledkem p–1, p a p+1.

      Vymazat
  20. Napíši trochu delší komentář. Kontroloval jsem podrobně 1. vzorek Tomia Okamury a vybíral jsem z něho jen petice na kterých bylo všech 8 podpisů špatně(čili buďto je někdo vymyslel, nebo nevím). Poslali Vám z toho ministerstva čísla těch archů u všech kandidátů tedy? Nebo dělají mrtvého brouka? (jde mi o to zda budou sedět čísla archů s 8 chybami blízko u sebe, kolikrát jsou hned brány 2 sousední, někdy i více..)
    A na závěr posílám analýzu toho PDFka tomu matematickému vzorci nerozumím a asi je to tak zvoleno právě kvůli tomu. Aby tomu člověk nerozuměl a vybrali archy, které se jim zrovna nehodí. Prošel jsem vzorek č.1 a vypsal všechny petice co měly všech 8 podpisů na listině neplatných(vymyšlených).
    "Dobrý den zpracoval jsem Váš kontrolovaný 1 vzorek v kandidatuře na prezidenta. Prošel jsem všechny petice, které měli 8 chybných podpisů, tak pokud v tom nemáte prsty tak toto by se dalo napadnout. Teď jsem si ještě jednou procházel tu zprávu na http://www.mvcr.cz/clanek/rozhodnuti.aspx má 177 stran. Celkem bylo odevzdáno cca 8600petic a v 1. vzorku(od str. 51) z těch 8500 kontrolovaných tam bylo cca 1500 lidí, kteří nebyli v evidenci, ale zajímavé je, že je tam několik petic v tom vzorku, kde je všech 8 jmen vymyšlených.(nebo prostě nejsou v evidenci viz petice s číslem-627,629-str 53; 873-str.55;1193-str.56; 1579,1596-str. 58; 1607-str. 59..a tak dále můžete si takto projít oba kontrolované vzorky) Chtěl jsem si ty petice psát všechny, ale je takových petic více než 50.. Takže buďto to bylo záměrně- někdo z protistrany o tom věděl a využil toho, nebo někdo z brigádníků, kdo údajně dostával 10kč za podpis si chtěl lehce přivydělat( ale proč by si všech 8 podpisů vymýšlel-daly se ty jména dohledat na justici.cz a doplnit jen podpis).. Nebo to taky mohl udělat někdo komu ležel Okamura v žaludku a vytisknout pár petic a po večerech si hrát a vymýšlet jména.. :D Toť ode mě vše pan Okamura by si teď měl všechny petice takto s 8 podpisy projít vyžádat si jejich naskenovanou formu a nalézt jak on říkal na 2hé straně by měl být uveden zodpovědný pracovník kdo za to odpovídá. Ten by měl být příslušně POTRESTÁN. Zbytek pošlu v dalších 2 zprávách."
    "Ideální by bylo zkontrolovat všechny petice ne jen ty 2 vzorky(2x 8500) nevím zda by to šlo udělat za ty 2 týdny co na to má ten Nejvyšší správní soud. Taky výběr těchto vzorků s 8 chybnými nemusel být vybrán náhodně.. Mohu použít vzorec, který se mi hodí (metodou pokus omyl, až vypadne ten koho chci nechat vypadnout) O vzorci v zákonu není řeč. Také je řešení všechny petice všech kandidátů zveřejnit naskenované na internetu a byl by KLID!!! Díky všem. Komentář č.2:
    Dále píši jen petice s 8 vymyšlenými jmény- petice s číslem ve vzorku 1: 1980,1990-strana 60; 3013- str. 63/64; 3014(zvláštní náhoda tomu chtěla a kontrolovaly se 2 petice po sobě..ale tady to zrovna někdo HODNĚ Sabotoval, 3021, 3033-str. 64; 3041,3054, 3068-str. 65; 3071, 3080- str. 66; 3767- str. 68; 4106, 4111-str. 70; 5735-str.77; 5779,5780,5781(zase kontrola 3 petic po sobě!-ale zase evidentní sabotáž-str.78; 6680-str.82; 6703,6707-str.83; 6881-str.83/84; 7313-str.84; 7329,7330(zase 2 petice po sobě),7334-str.85; 7348,7361,7369-str.86; 7406,7418,7426.7427(zase 4 kontrolované petice po sobě a všechny úplně špatně- str.87; 7437,(7456-zde i 5 jiných chyb než vymyšlené jméno-ale celkem je jich 8),(zde také i jiné chyby -7461,7463)-str.88; 7918,7920,7921,7922(zase bere náhoda? petice hodně u sebe, ale zase evidentně sabotáž?-str.91; 7926,7938,7952-str.92; 7966,7992-str.93; 8114,8115(zase kontrola 2 petic po sobě)-str.94; 8134, 8144,8158,8160-str.95; 8163,8166,8167(zase více petic po sobě?)-str.96;Zbytek pošlu"
    "8168,8172,8176,8177(zase 2 po sobě?)-str.97; 8183,8217,8219-str.98; 8231-str.99; 8267-str.100; 8437,8450,8451(zase 2 po sobě?)-str.101; 8455,8457,8467-str.102; 8469,8480,8482,8490-str.103; 8500,8509,8514-str.104;

    OdpovědětVymazat
    Odpovědi
    1. A TO JE vše z 1 vzorku. Celkem tedy v 1 vzorku se jedná o 84!!!! PETIC což je i pro mě zarážející... Kdybych měl čas a chtělo se mi tak udělám i 2 vzorek. Je takto potřeba projít i 2 vzorek a udělat stejnou analýzu, a snažte se si vymoct všechny petice naskenované.(určitě na ně máte nárok. Za použití správného vzorce máte totiž 48858 podpisů včera jsem si to počítal.)"
      Nevím proč neudělali třeba algoritmus bereme každou 15 petici (v případě TO by to bylo z 8600kusu petic celkem/15=cca 570 petic po berme 6kusech= 3400podpisů)podle čísel petic od začátku(pokud dojedeme na konec začnem zase od začátku a bereme každou 11. pak od začátku a každou 9. pak každou 4. nebo vymyslet nějakou posloupnost kde by v případě toho, že pojedu zase od začátku, tak nenarazím na žádnou petici, která už byla vybrána. Stačila by posloupnost max. 10 takových čísel.. a to kvůli tomu, že každý kandidát má jiný počet podpisů na dané petici Okamura měl max. 8 a Franz třeba 15.. tak by ta posloupnost u Franze nebyla potřeba tak dlouhá..

      Vymazat
    2. Jdete správnou cestou. Předpokládám, že jakmile MV dodá kompletní sekvence (lhůta podle InfZ mu končí přesně za týden), "spadne klec" a bude jasno.

      Vymazat
  21. Podal niekto TO? Co sa stane dalej? Nie je predsa mozne, aby s takymito pochybnostami bola podpisova akce prehlasena za legitimnu :(

    OdpovědětVymazat

Kursiva: <i>text</i>
Tučně (když už to musí být…): <b>text</b>
Odkaz: <a href = "http://adresa">název odkazu</a>, tedy <a href = ""></a>