Z tej okazji ascii-artowy (no, powiedzmy), najmniejszy wizerunek Mahometa na świecie. Poniżej, centralnie.
.
BP, PPNMSP.
Techno, porno i duszno. Blog niezupełnie technologiczny.
Z tej okazji ascii-artowy (no, powiedzmy), najmniejszy wizerunek Mahometa na świecie. Poniżej, centralnie.
.
BP, PPNMSP.
Jakiś czas temu trafiłem na Facebooku na ciekawe zjawisko. Reklama jak reklama, serwis jak serwis. Po trzech słowach wiedziałem, że ściema i naciąganie, ale argumentacja była ciekawa i – na pierwszy rzut oka – nawet przekonująca.
Chodziło o „zarabianie” poprzez granie w kasynach. Konkretnie przy grze w ruletkę. Zarobek przedstawiony jako pewny dzięki systemowi, mówiącemu, że jeśli przegramy, to należy podwoić stawkę. W końcu, jeśli będziemy obstawiać za każdym razem dwukrotność poprzedniej stawki, to wygramy (zarobimy równowartość pierwszego zakładu).
Szybkie dogooglanie i wiadomo, że chodzi o coś znanego od dawna (od osiemnastego wieku) pod hasłem system Martingale. Dla tych, których nie przekonuje matematyka prezentowana na wiki, krótka tabelka (TBH, najpierw tabelkę zrobiłem, mając w pamięci szachownicę i ziarenka ryżu):
Ile z rzędu | Stawka | Prawd. z zerem | Prawd. bez zera | Raz na ile (z 0) | Raz na ile (bez 0) |
1 | 1 | 51,35000000% | 50,00000000% | 1,95 | 2 |
2 | 2 | 26,36822500% | 25,00000000% | 3,79 | 4 |
3 | 4 | 13,54008354% | 12,50000000% | 7,39 | 8 |
4 | 8 | 6,95283290% | 6,25000000% | 14,38 | 16 |
5 | 16 | 3,57027969% | 3,12500000% | 28,01 | 32 |
6 | 32 | 1,83333862% | 1,56250000% | 54,55 | 64 |
7 | 64 | 0,94141938% | 0,78125000% | 106,22 | 128 |
8 | 128 | 0,48341885% | 0,39062500% | 206,86 | 256 |
9 | 256 | 0,24823558% | 0,19531250% | 402,84 | 512 |
10 | 512 | 0,12746897% | 0,09765625% | 784,5 | 1024 |
11 | 1024 | 0,06545532% | 0,04882813% | 1527,76 | 2048 |
12 | 2048 | 0,03361131% | 0,02441406% | 2975,19 | 4096 |
13 | 4096 | 0,01725941% | 0,01220703% | 5793,94 | 8192 |
14 | 8192 | 0,00886270% | 0,00610352% | 11283,24 | 16384 |
15 | 16384 | 0,00455100% | 0,00305176% | 21973,2 | 32768 |
16 | 32768 | 0,00233694% | 0,00152588% | 42791,04 | 65536 |
17 | 65536 | 0,00120002% | 0,00076294% | 83332,11 | 131072 |
18 | 131072 | 0,00061621% | 0,00038147% | 162282,59 | 262144 |
19 | 262144 | 0,00031642% | 0,00019073% | 316032,31 | 524288 |
20 | 524288 | 0,00016248% | 0,00009537% | 615447,54 | 1048576 |
Objaśnienie kolumn:
Jak widać, średnio raz na 207 gier zdarzy się, że trzeba będzie postawić 128 euro, by „zarobić” 1 euro. Mam nadzieję, że to skutecznie zniechęci naiwniaków. Na ruletkę nie ma – i być nie może – matematycznego sposobu. Statystycznie kasyno zawsze ma przewagę (w postaci zera, lub, w niektórych wariantach, dwóch zer).
Uprzedając ew. sceptyków – tak, ten system działa w 100%. Trzeba tylko pamiętać o założeniu, w którym działa w 100%, czyli o nieskończonych zasobach grającego. ;->
Sama idea zabawy w porozumiewanie się kalkulatorem została przybliżona tutaj (dawniej był w tym miejscu link, ale obecnie 404), i zapowiedziałem automacik. Oto i on.
#!/usr/bin/perl
$file="/usr/share/dict/polish";
$regexp='^[osildebzjkhbgr]+$';
$regexp_strict='^([osiebzlkbg]+|[osiebzlhbg]+|[osiebzlrbg]+|[osjebzlkbg]+ \
|[osjebzlhbg]+|[osjebzlrbg]+|[dsiebzlkbg]+|[dsiebzlhbg]+|[dsiebzlrbg]+ \
|[dsjebzlkbg]+|[dsjebzlhbg]+|[dsjebzlrbg]+)$';
$strict=1;
if ($strict){
$regexp=$regexp_strict;
}
open(F,$file);
while (){
if (/$regexp/o){
chomp;
print "$_ ";
y/odilkhrszebjg/0011444523879/;
@tmp=split //;
$num=0;
while (@tmp){
$lit = pop @tmp;
if ((! $num) && ($lit =="0")){
print "$lit.";
}
else{
print $lit;
}
$num++;
}
print $/;
}
}
close (F);
Zmienna $file to oczywiście pełna ścieżka do pliku z wyrazami (jeden per linię), które sprawdzamy. W tym przypadku systemowy słownik języka polskiego. Zmienna $strict określa, czy chcemy, aby dana cyfra określała w obrębie wyrazu tylko jedną literę.
Jako wynik otrzymujemy gotowe do wpisania na kalkulator ciągi cyfr. Skrypcik jest b. prosty, pisany na szybko, więc możliwe są błędy. Za ich wskazanie będę wdzięczny. Have fun!
UPDATE: Poprawiony błąd zgłoszony przez inS.
UPDATE2: Poprawiony błąd w linii s/[g]/9/; -> s/[g]/9/g;
UPDATE3: Wdałem się we flame o językach programowania, co zmobilizowało mnie do lekkiego sprzątnięcia (tr zamiast kilku s) i optymalizacji kodu (/o) – jest jakieś 15% szybciej, choć nie o to w tym chodzi.