1. PHP / Говнокод #5621

    +170

    1. 1
    2. 2
    3. 3
    4. 4
    $p = array(1,0,0,0,0,0,0,0,0,0); // вероятность 1/10
    $a = array();
    for($i=0; $i<100; $i++) 
    	$a[] = $p[mt_rand(0, count($p)-1)];

    Это — заполнение массива случайными значениями с заданной вероятностью 1 к 10. =)

    Запостил: Kevin, 10 Февраля 2011

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

    • Небось сам придумал :)
      Ответить
    • Надо было на каждую итерацию делать shuffle и брать 1й элемент. Так круче.
      Ответить
    • $a = array_merge( array_fill(0, 9, 1), array_fill(10, 99, 0) );
      shuffle( $a );

      не ?
      Ответить
      • Это не совсем то. При случайном заполнении элементами с вероятностью 1/10 число элементов будет не 10 (как у тебя), а случайной величиной с пуассоновским распределением.
        Ответить
        • > for($i=0; $i<100; $i++)
          > $a[] =
          Ответить
          • > $a[]

            А в покапе это что, так и скомпилится, даже индекс указывать не надо?
            Ответить
            • ???
              это автозаполнение массива. значение добавляется в конец, размер увеличивается на один.
              Ответить
              • > добавляется в конец
                а в украине добавляется на конец
                Ответить
                • перечитал несколько раз свой коммент...
                  да, кажется есть двояковыпуклось...
                  Ответить
                • Плачу.
                  Ответить
              • А $a[]= (без правой части) автодописывает ноль?
                Ответить
                • Вам это очень нужно?
                  Ответить
                  • Таки да. Было бы неплохо для каждого типа иметь "значение-по-умолчанию". Чтобы не писать руками ZeroMemory(), а просто
                    T t = DefaultValue<T>;
                    Ответить
            • >в покапе это что, так и скомпилится
              В похапе традиционно ничего не компилируется, а интерпретируется.
              Ответить

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