21文字で「勝つためにtrueを返す」という合計タスクを解決する方法


13

Javascriptプログラマ向けの興味深いタスクを含む「Return True to Win」というサイトがあります。目標は、強制的にtrueを返す特定の関数の引数を見つけることです。

以下はタスクの1つです。

function total(x) {
  return (x < x) && (x == x) && (x > x);
}

ユーザーはx、関数がtrueを返す原因となる値のスニペットを見つける必要があります。スニペットをテストするには、スニペットをパラメーターとして関数を呼び出します(例:)total(<snippet>)

22文字のソリューションを見つけました。

{valueOf:_=>n++%3},n=0

一部の人々は21文字で解決策を見つけました。私はこの解決策を見つけることができません。21文字の解決策は何ですか?


3
タスクの取得元のコンテスト/ページをリンクする必要があります。
エミグナ


2
{valueOf:Math.random}随時作品...しかし、私はそれが...いくつかのルールを侵害する疑いがある(またはそうでないかもしれない?)
アルノー

1
それらは明らかにトリッキーです。最初の24回のうち、14回しか答えられません
ニール

4
Salty開発者ノート...「total」と呼ばれるブール値を返す関数を持つことは、黒板の釘のようなものです!
scunliffe

回答:


7

21文字

{valueOf:n=_=>n=2<<n}

私の元のジョークは、ダウン投票され、削除を提案されました:

11文字:)

total=_=>!0

テスト:

function total(x) {
  return (x < x) && (x == x) && (x > x);
}
var arg = total=_=>!0
console.log(total(arg))

3
枠の外で考えるのは良い仕事ですが、課題は終了function total(x) { ... } total(<insert here>)してtotal()呼び出しの結果を得ることができるtrueため、これがうまくいくとは思いません...
ETHproductions

@ETHproductions- <insert here>> 0),(true:)
ngn

それも試しました0)||(true。どちらも機能しませんが、今私は完全に混乱してい0);(!0ます
ETHproductions

あなたの新しいソリューションは驚くべきもので、私からの+1です!
ETHproductions

4

チートな答え

コメントで既に言及しましたが、テストされていません。今です。動作するまで送信し続ける必要があります。

{valueOf:Math.random}

デモ

function total(x) {
  return (x < x) && (x == x) && (x > x);
}

for(i = 1; !total({valueOf:Math.random}); i++);

console.log('Returned true after ' + i + ' iteration(s)')


これがどのように機能するかについて詳しく説明していただけますか?x == xxが毎回ランダムに選択された場合、どうしてtrue になったかを理解できません。
-tsh

1
@tshトリックはvalueOf、等価テストが処理されるときに呼び出されないことです。一方、比較演算子はプリミティブ値を予期しているvalueOfため、強制的に呼び出されます。これを示すテストがあります。
アーナルド

<s> 15 </ s> 16回の反復で高得点を獲得しました!!!
魔法のタコUr

@MagicOctopusUrnさあ、あなたはそれよりもうまくやることができます!コインを挿入してもう一度プレイしてください!
アーナウルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.