5行を含む関数を作成します。
関数をそのまま実行すると、0が返されます。
5行のいずれかを削除して関数を実行すると、削除された行がわかります(たとえば、最後の行を削除すると5が返されます)。
簡潔さ、斬新さ、優雅さはすべて考慮に値します。最も高い投票されたソリューション(妥当な時間の後)が勝ちます。
5行を含む関数を作成します。
関数をそのまま実行すると、0が返されます。
5行のいずれかを削除して関数を実行すると、削除された行がわかります(たとえば、最後の行を削除すると5が返されます)。
簡潔さ、斬新さ、優雅さはすべて考慮に値します。最も高い投票されたソリューション(妥当な時間の後)が勝ちます。
回答:
function(n){
a=n-=1
n-=2
+3
+4;if(this.a)return 5
return n;var a
}
n = 10でこの関数を呼び出します。
function(n){
a=n-=1
n-=2
+3
+4;if(this.a)return 5
n-=5;return n;var a
}
(n = 15で呼び出す必要があります)
function(n){
n-=1
n-=2
n-=3
a=n-=4;if(this.a)return 5
n-=5;return n;var a
}
(n = 15で呼び出す必要があります)
function(){
a=
b=
c=
d=1;if(this.a)return 5
1;var a,b,c,d;return d?c?b?a?0:1:2:3:4
}
function w(){
a=1;e=1;if(this.e)return 5
b=1;if(!a)return 1
c=1;if(!b)return 2
d=1;if(!c)return 3
var a,b,c,d,e;return d?0:4
}
function whichlineisremoved(){
/* 1 */ var a = 1; e = 1; if(window.e) return 5;
/* 2 */ var b = 1, a; if(!a) return 1;
/* 3 */ var c = 1, b; if(!b) return 2;
/* 4 */ var d = 1, c; if(!c) return 3;
/* 5 */ var e = 1, d; if(!d) return 4; return 0;
}
var a
した後return
ですか?理論的には、到達すべきではありません。
f <- function() {
T <- FALSE
F <- TRUE
month.abb <- TRUE
(pi <- 5)
T + (!F) * 2 + (!isTRUE(month.abb)) * 3 + (pi != 5) * 4
}
この関数は組み込みの「定数」を使用し、それぞれに別の値を割り当てます。これらの変数のすべてが新しい値と等しい場合、関数は0を返します。数学的な演算子のため、論理値は数値に変換されます。4行目の括弧は、結果を目に見える形で返すことを可能にします(最後のコマンドの場合)。
改行を除く関数本体の55文字。私はこれより良いものを思い付くことができませんでしたが、これは:
function f()
return 7--[[
return 1--[=[]]-2
--[[
-2--[=[]]
-5--]=]--]]-1
end
コメント乱用の追加ポイントを取得したい:P
5.1で機能しない理由は、ネスト[[]]
が削除されたためです。5.1では、5.2のように無視するのではなく、コンパイルエラーが発生します。
return 7-2-5
return 1
return 7-5
return 7-2-2
return 7-2-1
return 7-2
別の解決策を見つけました。それはとても悪いです、私は数学がとても好きでした。このソリューションでは、再帰とグローバル変数(yuck!)を使用して、すべての行が実行されたかどうかを判断します。私は他のソリューションとは異なる何かをしたかったので、これはあまりエレガントではありませんが、適切に動作します:)
function LOL($a) {
if (!$a) { LOL(true); if (!$GLOBALS['b']) return 2; if (!$GLOBALS['c']) return 3; if (!$GLOBALS['d']) return 4; if (!$GLOBALS['e']) return 5; return 0; }
if ($a) $GLOBALS['b'] = true; else return 1;
$GLOBALS['c'] = true;
$GLOBALS['d'] = true;
$GLOBALS['e'] = true;
}
このチャレンジは本当に楽しかったです、ありがとう!:)
数学を使って解決しました。各変数が不明と見なされ、1行に1つの宣言を行う場合、5つの不明と5行のコードがあります。これにより、次の5x5システムにつながります。
b+c+d+e = 1;
a+c+d+e = 2;
a+b+d+e = 3;
a+b+c+e = 4;
a+b+c+d = 5;
//Solutions are displayed in the code below.
値を見つけたら、それらをハードコーディングし、いくつかの基本的なものを追加しました。
function LOL(){
$a = 2.75;
$b = 1.75;
$c = 0.75;
$d = -0.25; if ($a+$b+$c+$d == 5) return $a+$b+$c+$d;
$e = -1.25; return $a+$b+$c+$d+$e;
}
注:そのままにしておくと、古い回答は機能しません。
私が最初に発明したエソランを試してみる。最初の混乱の後、私は解決策が非常に簡単であることがわかりました。
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
説明:
蜜蝋プログラムは、2D六角形グリッドで動作します。プログラムは長方形の形式で保存されます。
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
として保存されます
abcd
efgh
ijkl
特定の方向に移動するための手順は次のとおりです。
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
簡単な説明
_1 p
IPを作成し、1を追加してから、IPを行2にリダイレクトします
_^v>~2+p
行1が欠落している場合に備えて別のIPを作成し、IPを減速して行1からのIPが先にあることを確認し、2を追加してから行3にリダイレクトします
> >~3+p
3を追加し、4行目にリダイレクトします
> >~4+X@7~8+~@$^^{;
4を追加してから、2番目のlstack値を15に設定し、lstack topと2番目の値をXORし、IPを遅くし(5行目が存在する場合は5行目のIPが先になるようにします)、結果を出力し、プログラムを終了します。
> >~5+@7~8+~@${;
5を追加してから、4行目と同じ操作を行いますが、速度が低下します。
基本的に、プログラムは合計xor 15を計算するだけです
>
3行目から5行目の追加は、2行目から4行目のいずれかが欠落している場合でも、IPが適切にリダイレクトされ、プログラムを終了しないことを保証します。
私のGitHubリポジトリから、 Juliaで書かれた私の蜜蝋インタプリタのクローンを作成できます
GitHubのreadmeは、esolangsページよりも最新であり、構造が優れています。
subs(()->
-d(1)
-d(2)
-d(3)
-d(4)
-d(5)
,d=Dom::IntegerMod(15))
#!/bin/bash
# the function:
function f(){
a=1;
b=2;
c=3;
d=4;[ ! $1 ]&&f 1&&return 5||true
[ $1 ]&&return 6;e=5;s=$((a+b+c+d+e));return $((15-$s))
}
# call it:
f
# report the result:
echo Removed line $?
5行目まではすべて簡単です。その後、最終行がなくなったかどうかを検出する必要があります。これは、許可された関数パラメーターを利用して、1回再帰的に呼び出して、5行目で失敗するように指示されたときに独自の成功値をテストし、5行目が削除されると4行目が戻ります5
。
(注:関数以外をすべて削除し、空白を削除し、/ bin / bashを/ bin / shに変更する場合、最小で131文字になります)
function(){
/*aa*/if(arguments.callee.toString().indexOf("*"+"a".repeat(6)+"*")==-1)return 5;
/*aaa*/if(arguments.callee.toString().indexOf("*"+"a".repeat(5)+"*")==-1)return 4;
/*aaaa*/if(arguments.callee.toString().indexOf("*"+"a".repeat(3)+"*")==-1)return 2;
/*aaaaa*/if(arguments.callee.toString().indexOf("*"+"a".repeat(4)+"*")==-1)return 3;
/*aaaaaa*/return +!~arguments.callee.toString().indexOf("*"+"a".repeat(2)+"*");
};