Вероятность получить счастливый билет

Discussion in 'Болталка' started by PRosTo_LEva, 11 Dec 2011.

?
  1. Верю

    19 vote(s)
    33.9%
  2. Мне похер на это всё

    37 vote(s)
    66.1%
  1. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    Озадачился вероятностью получения счастливого билета.

    Всем известная классическая схема билета - шестизначный номер начинающийся с 100000 и заканчивающийся теоретически возможным 999999 (хотя я таких билетов не встречал) - счастливым считается тот билет у кого сумма первых 3 цифр совпадает с суммой последних 3 цифр номера.

    Кто регулярно пользуется общественным транспортом явно заглядывает в циферки - чаще попросту от скуки.
    Набросал простой скрипт на том что было под рукой:

    PHP:
    <?php

    $billet 
    999999;
    for(
    $i=100000;$i<$billet;$i++){
        
    $idex = (string)$i;
        if(
    $idex{0}+$idex{1}+$idex{2} == $idex{3}+$idex{4}+$idex{5}){
        
    //echo 'Счастливый билет: ' . $idex . '<br>';
        
    $num++;
        }
    }
    echo 
    $num/($billet 100000);
    ?>
    Результат удивил.. всего 0.054746054746055 то есть 5 процентов. Вероятность получения действительно КРАЙНЕ МАЛА!

    Но порадовал еще и другой момент. В разных диапазонах вероятность разная, а именно:

    Code:
    Диапазон до 099999 счастливых билетов: 4335 вероятность на диапазон 4.335% 
    Диапазон до 199999 счастливых билетов: 5280 вероятность на диапазон 5.28%
    Диапазон до 299999 счастливых билетов: 5631 вероятность на диапазон 5.631%
    Диапазон до 399999 счастливых билетов: 5875 вероятность на диапазон 5.875%
    Диапазон до 499999 счастливых билетов: 6000 вероятность на диапазон 6%
    Диапазон до 599999 счастливых билетов: 6000 вероятность на диапазон 6%
    Диапазон до 699999 счастливых билетов: 5875 вероятность на диапазон 5.875%
    Диапазон до 799999 счастливых билетов: 5631 вероятность на диапазон 5.631%
    Диапазон до 899999 счастливых билетов: 5280 вероятность на диапазон 5.28% 
    Диапазон до 999999 счастливых билетов: 4840 вероятность на диапазон 4.84% 
    В расчетах есть вероятность ошибки, ибо кроме как по пьяни такая дилемма в голову не придет.

    Но всё же, каково Ваше отношение к такому виду счастья? Верите в билеты с счастливым числом? Добавляет уверенности в себе?))) Храните их или выкидываете?
     
    #1 PRosTo_LEva, 11 Dec 2011
    Last edited: 11 Dec 2011
  2. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    Выкидываю пачками каждую неделю из карманов, не смотрю номера, хочу инфинити :)
    Ты думаешь меня удивит счастливый билетик, если я роял-флеш держал в руках с вероятностью 0,05%
     
    #2 AnGeI, 11 Dec 2011
    Last edited: 11 Dec 2011
  3. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    5% не так уж и мало.
     
  4. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Я помню, как я назвал однажды на тесте по истории год профессору вообще рандомно. Не знал материала совсем, даже приблизительно не понимал о чем идет речь. Он короче спрашивает, мол, в каком году-то было там сражение какое-то. А я просто стебаясь говорю ему - 1746 (сейчас число не помню конечно). Думаю он скажет не, фигня, а он мне выдает - "Так, ну хорошо, а что дальше было?". Потом спрашиваю у какой-то девицы, а она говорит, мол, ога, правильный же год.
     
  5. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    У тебя был шанс угадать в 50 раз меньше, но всё же...

    Здравый смысл подсказывает что диапазон от 1100 до 1900

    800 лет.. единицу делим на 800.. 0,125 процента)) Ну а если еще учесть подсознательное восприятие информации...)) шансы больше
     
  6. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    на всю эту фигню мне пофиг, но код ты оформляешь просто ужасно :)
     
  7. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    =( нет опыта в программировании..

    А как бы оформил ты? Приведи пример.
     
  8. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Интересно, почему у многих людей возникает желание выразить какой-то негатив..? Почему, даже если что-то не нравится просто не пройти мимо (если это не так важно или не в этом дело, например)..?
     
  9. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106

    Ну в плане кода я согласен. От говнокода нужно отучаться.

    Негативом лично я это не считаю.

    И сразу цитата с баша:

     
  10. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    пробелы между плюсами/расно/разделить. мелочь, но для чтения гораздо приятнее.

    Интересно, почему у многих людей возникает желание начать пороть какую то чушь?
    Может у тебя плохо с уверенностью в себе и ты боишься делать замечания, у меня нет.
    И, если что, это был не негатив, а так сказать совет на будущее. Красиво оформленный код читать гораздо приятнее и что самое важное - удобнее.

    Для говнокода - здесь слишком мало кода, судить так нельзя. Я написал к тому, что если кода станет больше - то тебе самому будет сложно разобраться в нем, не говоря уже о других людях. Здесь нужно учитывать многое, очень многое. Подробно тема рефакторинга раскрыта в книге Мартинга - Чистый код.

    PHP:
    <?php

    $billet 
    999999;

    for(
    $i 100000$i $billet$i++)
    {
        
    $idex = (string)$i;
        if(
    $idex{0} + $idex{1} + $idex{2} == $idex{3} + $idex{4} + $idex{5})
            
    $num++;
    }

    echo 
    $num $billet;

    ?> 
    Вот твой же кусок кода, оформлен более аккуратно.
     
  11. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Ну вот опять - негатив же. :D Интересно посмотреть на человека, который был бы не уверен написать что-то в интернете. По-моему каждый школьник только это и делает. Насчет советов - их следует давать там, где это уместно.
     
  12. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    Спасибо за совет, а как быть с комментариями? Что стоит описывать в первую очередь? Явно ведь не каждую строку комментировать?


    К сожалению сейчас подростает поколение которое и по интернету девочке в любви признаться стесняется. Такие технологии отрывают человека от реального общества, и подменяют виртуальной жизнью реальные устоит.
     
  13. zeoman

    zeoman Member

    Joined:
    17 Jun 2010
    Messages:
    37
    Likes Received:
    43
    Reputations:
    43
    есть 3 билета один троллейбусный , два трамвайные чисто случайно попались
     
  14. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    У нас в городе нет троллейбусов и трамваев. В них тоже 6 цифр?
     
  15. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Лучше всего комментировать только не очевидные места. Например ты используешь какую то мудреную формулу для расчета чего то. Другой программист читающий твой код может попросту не врулить, что это ты такое тут вычисляешь. Здесь стоит добавить комментарий, мол это формула некого Муавра-Лаплсса дла расчета того-то и того-то.
    А очевидные вещи комментировать не хорошо, ибо это загромождает код.
     
  16. zeoman

    zeoman Member

    Joined:
    17 Jun 2010
    Messages:
    37
    Likes Received:
    43
    Reputations:
    43
    да также 6 цифр типа такие

    [​IMG]
     
  17. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    Эти серьезно отличаются тем что могут начинаться с нуля.
    В диапазоне с нулём вероятность падает до 4 процентов.
     
    #17 PRosTo_LEva, 11 Dec 2011
    Last edited: 11 Dec 2011
  18. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    друг, ты делишь на 999999 а считаешь от ста тыщ - это БАГ*
     
  19. PRosTo_LEva

    PRosTo_LEva Elder - Старейшина

    Joined:
    18 Apr 2007
    Messages:
    444
    Likes Received:
    129
    Reputations:
    106
    Согласен. Спасибо за подсказку.

    PHP:
    <?php

    $billet 
    999999;
    for(
    $i 1$i <= $billet$i++){
        
    $idex = (string)$i;
        if(
    $idex{0} + $idex{1} + $idex{2} == $idex{3} + $idex{4} + $idex{5})
                    {
                    
    $num++; $di++;
                    }
    if(
    == strlen($idex) && $idex{1} == && $idex{2} == && $idex{3} == && $idex{4} == && $idex{5} == 0)
    {
        
    $ver = ($di/100000)*100;
            
    $diap $i 1;
        if (
    $diap == 99999)
            
    $diap '0' $diap;
            echo 
    "Диапазон до $diap счастливых билетов: $di вероятность на диапазон $ver% <br>";
        unset(
    $di);
    }

    }

    echo 
    "Билетов всего в диапазоне 999999: $num вероятность: " $num $billet ' тобишь ' . ($num $billet)*100 '%';

    ?>
     
    #19 PRosTo_LEva, 11 Dec 2011
    Last edited: 11 Dec 2011
  20. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    в среднем примерно один билет из восемнадцати является счастливым

    Московский способ — если на автобусном билете напечатано шестизначное число, и сумма первых трёх цифр равна сумме последних трёх, то этот билет считается счастливым.
    Частота:
    [​IMG]


    Ленинградский способ, или Питерский (менее распространённый) — если сумма чётных цифр билета равна сумме нечётных цифр билета, то билет считается счастливым (в статье журнала «Квант» именно этот способ назван «московским»). Другой вариант — суммы каждой пары цифр равны.
    Частота:
    [​IMG]