ЙажаСценарий / Говнокод #20285 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
function check(a) {
    if (a == 0)
        return false;
    return a == parseInt(a);
}
function blackBox(a, b, c) {
    var n = 5;
    return check(a) && check(b) && check(c) && Math.pow(a, n) + Math.pow(b, n) == Math.pow(c, n);
}

CHALLENGE

Нужно подобрать аргументы функции blackBox, чтобы она вернула true.
Пихать можно любую дичь.

Сам не придумал как, но кажется что решение близко.

Запостил: 3_dar 3_dar, (Updated )

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

    • это не совсем теорема ферма, потому что тут могут быть и отрицательные значения
      Ответить
  • CHALLENGE

    Нужно подобрать ОДИН аргумент функции black_box, чтобы она вернула true.
    Пихать можно любую дичь.

    function black_box(arg){
        arg=arg|0;
        var past=[];
        while (arg>1){
            past.push(arg);
            arg = arg&1 ? arg*3+1 : arg/2; if (!check(arg)) return false;
            if (-1!=past.indexOf(arg)) return true;
        }
        return false;
    }
    Ответить
      • Из поста опа.
        Но думаю можно закомментить. Чисто на случай corner-caseов c плавающим питухом.
        Ответить
        • black_box({
              valueOf: function () {
                  Array.prototype.indexOf = function () {
                      return 0;
                  };
                  return 42;
              }
          })
          Ответить
            • Так - можно. Просто check снести. Но это неспортивно немного... Ща замутим по-другому...
              Ответить
            • На самом деле твоё можно и честно сломать.
              Math.pow(a, 5) выводит тебя в область плавающих питухов.
              И если точность a - 32 бита, то точность результата — 32*5=160 бит.
              Он не влезет в плавающего питуха, то есть можно подобрать три целых a,b,c которые будут примерно равны в первых 64 битах.
              Ответить
    • CHALLENGE

      Нужно подобрать аргументы функции black_box, чтобы она вернула true.

      function black_box(a, b, c){
         return false;
      }
      Ответить
      • Обязательно с первого раза? Или со второго тоже сойдёт?
        Ответить
      • > подобрать аргументы функции black_box, чтобы она вернула true.
        Азаза.
        black_box(function(){throw true}(),1,2)
        Ответить
        • black_box((function(){black_box = function() { return true; }})(),1,2)
          black_box((function(){black_box = function() { return true; }})(),1,2)
          Ответить
          • >black_box((function(){black_box = function() { return true; }})(),1,2)
            Так не работает. Потому что начинает выполнять старая ф-ция, а перетирается на новую.
            true бывает со второго вызова. Рефрешь консоль.
            Ответить
              • мастеры-ломастеры, блин. вам в руки вообще ничего давать нельзя.
                Ответить
                • Ну в любом случае эти (function(){})() - уже не значения... С тем же успехом можно просто эту функцию выполнить до blackBox.

                  З.Ы. Ебись оно конём, пойду няшек смотреть да спать...
                  Ответить
        • (black_box = function(a, b, c) { return true; })(1, 2, 3) // 1, 2 и 3. Всё гениальное просто, господа!
          Ответить
      • (black_box = function(a, b, c) { return true; })(1, 2, 3) // 1, 2 и 3. Всё гениальное просто, господа!
        Ответить
  • blackBox(1, -1, {x: 2, valueOf: function() { return this.x--;}, toString: function() { return "1"; }})
    Ответить
    • >>> The Number.MAX_SAFE_INTEGER constant represents the maximum safe integer
      >>> The MAX_SAFE_INTEGER constant has a value of 9007199254740991. The reasoning behind that number is that JavaScript uses double-precision floating-point format numbers
      Ёбнутые, блядь.
      Ответить
  • blackBox(1, 1, {valueOf(){
        Function('return this')().parseInt = it => it;
        Math.pow = it => it === 1 ? .5 : 1;
        return this;
    }})
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8