Reklama na Facebooku, czyli „zarabiane” przez granie w ruletkę.

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:

  • Ile z rzędu – ile razy z rzędu przegramy.
  • Stawka – ile trzeba postawić, by wejść do gry.
  • Prawd. z zerem – prawdopodobieństwo, że przegramy i tym razem w serii (ruletka z jednym zerem). Dokładnie, prawdopodobieństwo serii o ilości ile z rzędu bez wygranej.
  • Prawd. bez zera – j.w. ale dla hipotetycznej ruletki bez zera.
  • Raz na ile (z 0)- raz na ile rozpoczętych serii zdarzy nam się taka sytuacja (ruletka z jednym zerem).
  • Raz na ile (bez 0) – j.w. ale dla hipotetycznej ruletki bez zera.

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. ;->

Zabawa z kalkulatorem – automacik.

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.