1. C# / Говнокод #5033

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    class RandomGeneratorFiveState : RandomGenerator {
        int zero, one, two, three, four, min, max;
        public RandomGeneratorFiveState(int min, int zero, int one, int two, int three, int four)
            : base() {
            max = min + (four != 0 ? 4 : three != 0 ? 3 : two != 0 ? 2 : one != 0 ? 1 : 0);
            this.min = min;
            this.zero = zero;
            this.one = this.zero + one;
            this.two = this.one + two;
            this.three = this.two + three;
            this.four = this.three + four;
        }
        public override int Next() {
            int n = Random.Next(four);
            if(n < zero) return min;
            if(n < one) return min + 1;
            if(n < two) return min + 2;
            if(n < three) return min + 3;
            return min + 4;
        }
        public override int GetMax() { return max; }
        public override int GetMin() { return min; }
    }

    Запостил: amartynov, 23 Декабря 2010

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

    • т.е. это все типа аналог `min + floor(Random.Next(max-min))`? (или как там у вас эти функции называются)
      Ответить
    • > this.two = this.one + two;
      сломал моск пытаясь это понять
      Ответить
      • Какие-то непонятные приколы самопального генератора.
        Ответить

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