Pull to refresh

Comments 43

Боюсь даже представить себе, как написал бы функцию Оноре де Бальзак.
Мне больше за маркиза Де Сада страшно.
Это в «ненормальное программирование»
Т.К, Маяковский пытался искуственно увеличить количество строк — будет что-то вроде этого:

function fibonacci(size) {

  var
    first = 0,
    second = 1,
    next,
    count = 2,
    result = [
      first,
      second
    ];

  if (size < 2) 
  {
    return "the request was made " +
      "but it was not good";
  }

  while (size >= count++)
  {
    next =
      first + second;
    first =
      second;
    second =
      next;
    result
      .push(next);
  }

  return result;

}
Маяковский писал бы на Питоне
не по-Маяковски лаконично выходит…

def fibonacci_march(step):
    right, left = 0, 1
    yield right
    yield left
    for who in range(step-2):
        right, left = left, right + left
        yield left
Да это же кофескрипт! =)
Числа Фибоначчи в четырёх томах.
Вспоминаются ухищрения индусских программистов, которым платили за количество строк кода )
Так вот ты какой божественный код…
Страшно представить, что бы получилось у Донцовой…
Хотя там наверное бесконечный цикл.
fibonacciIZolotoyKarapuz(size) { return NaN; }

И так все функции этого автора.
function fibonacciIZloyKarapuz (suspect) {
var killer = Math.floor(Math.random() * suspect.length);
setTimeout(function(){
if ($.inArray(killer, suspect) < suspect.length) {
return killer + 1;
} else {
return killer — 1;
}
}, 5000)
}
Не успел форматирование выбрать, мне стыдно.
Я вот лично не понял сути.
Во-первых, у вас return вникуда
Во-вторых, $.inArray(killer, suspect) < suspect.length всегда будет равно true
Если убийца не последний в списке подозреваемых, то настоящим убийцей становится следующий чувак. В другом случае — предыдущий. Там не хватает -1 после длины, но кто-то уже закоммитил:
Получится, что будет щёлкать последний/предпоследний и то, если использовать сетИнтервал, а не сетТаймаут.
Один маааленький вопрос: а при чём тут Фибоначчи?
Почему?

Такой же результат можно получить намного проще:
jsfiddle.net/HfADj/1/

Или вы к тому, что всегда подозреваемый не тот, кто случайно выбирается сразу?
Тогда предпоследний будет убийцой в 2 раза чаще, а нулевой — никогда ;)
Павел, ёлки-палки, пообновляйте мою ссылку джейсифиддла, это идеальный поиск убийц в её книгах!
Всё, до меня дошло, в чём прикол. Текущий ваш код можно сократить до такого:
function fibonacciIZloyKarapuz (el, suspect) {
    var killer = Math.floor(Math.random() * suspect.length);
    setTimeout(function(){
        el.html(suspect[killer + 1]);
    }, 50)
}

var suspects = ['отец Лоры', 'мать', 'зять', 'самоубийца', 'профан'];
// ..


Смотрим:

function fibonacciIZloyKarapuz (el, suspect) {
    var killer = Math.floor(Math.random() * suspect.length-1);
    setTimeout(function(){
        if ($.inArray(killer, suspect) < suspect.length) {
            el.html(suspect[killer + 1]);
        } else {
            el.html(suspect[killer - 1]);
        }
    }, 50)
}

var suspects = ['отец Лоры', 'мать', 'зять', 'самоубийца', 'профан'];
$('b').each(function(){
    fibonacciIZloyKarapuz($(this), suspects);
});


В этой части мы получаем число от -1 до (длина массива-2). То есть, в данном случае от -1 до 3:

var killer = Math.floor(Math.random() * suspect.length-1);


В этом куске всегда будет true, ибо inArray всегда возвращает -1, что, конечно, меньше, чем 5 — длина массива. Почему -1? Потому что killer — это число, а в массиве у нас только строки:
if ($.inArray(killer, suspect) < suspect.length) {


Но почему не отваливается и отображаются все имена? Да потому что мы потом добавляем к киллеру +1. Таким образом Киллер — это случайное число от 0 до 4:
el.html(suspect[killer + 1]);


Фактически этот код можно сократить до:

var suspects = ['отец Лоры', 'мать', 'зять', 'самоубийца', 'профан'];

$('b').each(function(){
    $(this).html( suspects[ Math.floor(Math.random() * suspect.length) ] );
});


Вы меня совсем запутали изначально))
Во, спасибо!

Беда была в том, что на вход я написал числа, а потом для «наглядности» вставил строки. Я сначала настраивал джаббер, чтобы расспросить у вас, почему -1 выводится, но всё работало, так что я успокоился.
Код в стиле Кафки — как после обработки минимайзером.
Sign up to leave a comment.

Articles