1. JavaScript / Говнокод #16349

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <script type="text/JavaScript">
    			var zap = prompt ("Введите, сударь, необходимое вам число:","");
    			document.write("<h1>Типа рандом чисел:</h1><br>");
    			var rand = new Date();
    			var a = rand.getSeconds() + 1;
    			document.write("<div class='vid0'>Текущая секунда: <span>"+a+"</span></div><br>");
    			document.write("<div class='vid0'>Введённое значение: <span>"+zap+"</span></div><br>");
    			var number=(rand.getSeconds())*zap%a;
    			var number=number+1;
    			document.write("<div class='vid0'>Типа результат рандома: <span>" + number + "</span></div><br>");
    			document.write("<div class='vid1'>Хош задать другое значение ? Обнови страницу.</div>");
    		</script>

    Один кулхоцкир, которого звать Лмнсв Пшк и который кодит на таком КРУТОМ ( ВАЩЕЕЕЕЕЕЕ ) языке, как «АЖПАСКАЛЬ», доколупался ко мне ( игноррируя то, что я и не программист, а, скорее, просто любитель ) со словами, что кодер ОБЯЗАТЕЛЬНО должен писать библиотеки, или он нубяра. Я же любитель пострадать фигнёй ( если желание есть ) но ни один язык в полном объёме не знаю. ._. И абсолютно ХЗ, как создать крутую библиотеку. А Пшк как доколупался, то и не отвянет. Ну, корочь, выдумал типа задание: создать рандом без использования встроенных в JS функций. Корочь, в итоге получился закостыленный велосипед. Во. Гениально звучит.

    Запостил: CodeStar, 15 Июля 2014

    Комментарии (29) RSS

    • Но это же ужасно!
      Ответить
    • показать все, что скрытоКАК ЖЕ МЕНЯ УДИВЛЯЕТ, ЧТО НОВОЗАРЕГАННЫЙ ПОЛЬЗОВАТЕЛЬ НЕ МОЖЕТ НЕДЕЛЮ КОММЕНТИТЬ, А ВОТ Я ВЫШЕЛ С АККА И ОТ ИМЕНИ АНОНИМА ЩАС КОММЕНЧУ САМ СВОЙ ГОВНОКОД!
      Ответить
    • (rand.getSeconds())*zap%a

      =
      rand.getSeconds() - zap + 1

      не?
      Ответить
      • хотя кто-то может ввести огромное число, конечно (больше результата getSeconds()), но как-то всё равно не алё
        Ответить
    • Рандом рандому рознь. Например, вот тебе дискретное распределение на множестве {0, 1}
      var rand = new Date().getTime() % 2

      или дискретное распределение на множестве {100}
      var rand = 100

      Ответить
      • > дискретное распределение на множестве {0, 1}
        > var rand = new Date().getTime() % 2
        С неизвестной функцией распределения. Да еще и выдающее одно и то же значение в пределах одной миллисекунды. Говно короче беспонтовое, а не рандом.
        Ответить
        • Я и не заявляю, что это равномерное распределение, это "какое-то" распределение
          Ответить
          • Это хуй-знает-какое распределение. Поэтому оно не имеет смысла. Не дай бог, еще это говно для какой-нибудь генерации паролей поюзают...
            Ответить
            • Ну так можно проверить какое это распределение.

              >>Да еще и выдающее одно и то же значение в пределах одной миллисекунды

              Юзай тики системы
              Ответить
              • > Ну так можно проверить какое это распределение.
                Говёное. Бесполезно его проверять. Там подряд одинаковые значения пачками валятся.

                > Юзай тики системы
                А может просто не придумывать свой велосипед, а поюзать нормальный рандом? Ведь std::random (в девичестве boost::random) такая няша ;)
                Ответить
                • Ну я хз, может вам религия рандом не позволяет)

                  >>Там подряд одинаковые значения пачками валятся

                  Подсчитай матожидание длины такой цепочки на равномерном распределении
                  Ответить
                  • Где-то в районе двух должно получиться для равномерного из 0 и 1. До компа доберусь - оценю точнее.

                    А здесь прут пачки по 0.001*частоту_запросов
                    Ответить
                    • по идее вероятность 1 и 2 одинакова - остальных убывает в 2 раза за шаг. Поэтому в районе двух. Тоже проверю
                      Ответить
                    • Добрый человек, подскажи как получить в хаскеле случайное число от а до б? Сам не могу найти(
                      Ответить
                      • Странно,
                        http://www.haskell.org/hoogle/?hoogle=Random
                        даёт очень верные наводки. Функция называется randomR
                        Ответить
                        • Да что то ослеп я на старости лет....

                          В ideOne не хочет подключать System.Random. Это нормально, или я совсем дурак слепой?)
                          Ответить
                          • Там небось модулей не хватает.
                            Установи уже себе свежий Haskell Platform и живи спокойно.
                            Ответить
                            • Он у меня есть, но с вами то как говном делиться?
                              Ответить
                    • import Data.List
                      import Control.Arrow
                      import System.Random (randomRs,mkStdGen)
                      
                      main = print $ check $ take 10000 rList
                      
                      check = map(head &&& length).group.sort.map length.group
                      rList::[Integer]
                      rList = randomRs (1,0) $ mkStdGen 0


                      Выдает
                      [(1,2457),(2, 1238)..(и дальше стабильное падение в 2 раза)]


                      Ошибся я с тем, что 1 и 2 будут примерно одинаковые значения. Бес попутал На самом деле цепочек 1 и (2 и больше) будет примерно одинакого
                      Ответить
                      • а мат ожидание
                        main = print $ mat 100
                        
                        mat = sum.zipWith (*) [1/2^x|x<-[1..]]. flip take [1..]


                        https://ideone.com/N64Xtl

                        таки 2
                        Ответить
                        • Ну и реальное мат ожидание
                          import Data.List
                          import Control.Arrow
                          import System.Random (randomRs,mkStdGen)
                          
                          main = print $ mat 1000
                          
                          check = map length.group.sort.map length.group
                          
                          rList::[Integer]
                          rList = randomRs (1,0) $ mkStdGen 0
                          
                          mat x = (/(fromIntegral.sum$outL)).fromIntegral.sum.zipWith (*) [1..]$outL
                          	where outL = check $ take x rList
                          Ответить
                      • Поясните, что вы тут пытаетесь подсчитать. Проверяете хаскелевый генератор случайных чисел?

                        Надо же было таймер вроде проверять, причём браузерный в ЖС.
                        Ибо среда сильно влияет. К примеру, разрешение часов в .NET ощутимо сливает жабьему (по горькому опыту объекты класса Random в .NET лучше создавать как можно реже).
                        Ответить
                        • Задача - дана последовательность 0 и 1. Получить количество цепочек длины от 1 до максимально возможной.

                          А затем - мат ожидание длины цепочки
                          Ответить
                          • 1 * 1/2 + 2 * 1/4 + 3 * 1/8 + 4 * 1/16 + ... == 2.

                            Зачем греть процессор?
                            Ответить
                            • http://govnokod.ru/16349#comment239903

                              Хотя там херня.

                              https://ideone.com/N64Xtl
                              Ответить
                      • > и дальше стабильное падение в 2 раза

                        Потому что ты ересь считаешь. Посчитай вероятность выпадения монеты N раз подряд одной стороной. Внезапно, шансы падают экспоненциально с множителем 1/2.
                        Ответить

    Добавить комментарий