強盗-平方時間平方根


18

タスク:整数nの平方根にその2乗を掛けるスクランブルコードを解読します。

警官のスレッドに作業ソースへのリンクを付けてコメントを投稿する必要があります。これには、クラックしたことを明記してください。回答のタイトルには、元の回答へのリンクを含める必要があります。

ルール:

  • 元のソースの文字の順序のみを変更できます。
  • 安全な回答はもはや解読できません。
  • 警官のスレッドで言及されている他のルール
  • 解答を編集してください

受賞者:エミグナ-10のサブミッション(数えるのに苦労しました)

敬意を表する:Notjagan、Plannapus、TEHTMI

回答:



9

JavaScript(ES7)、ニール

_26_=>_26_**6.25**.5

もちろん、難しい部分は、すべての余分なキャラクターをどうするかを考え出すことでした。(また、誤って最初にやったように、このソリューションを間違ったスレッドに投稿しないでください。Oopsie...)


1
@SethWhite:Neilがスクランブルコードで使用したすべての文字を使用する必要がありました。そうでなければ、これは有効なクラックではなかったでしょう。
イルマリカロネン

これはどのように作動しますか?
アルジュン

@Arjun _26_=>は、呼び出されるパラメーターを1つ取る匿名関数を定義します_26_(変数は数字ではなく下線で始まる場合があります)。その後、残りは**as Math.pow()を2.5のべき乗(6.25乗数0.5)に上げるために使用しています。
ジョー

あ!それは_26_ES7特有のものだと思っていました。変数もこの形式にできることを知りませんでした!(アルファベットのない変数を見たことがない)。それは@Neilによる非常に賢いアプローチでした。そして、あなたもそれをクラッキングするのに非常に賢明でした!あなたにふさわしい+1を!:)
アルジュン



4

C ++(gcc)、100バイト、Mr。Xcoder

#include<math.h>
#include"iostream"
using namespace std;int main(){float n;cin>>n;cout<<pow(n,2.5);}

オンラインでお試しください!


よくやった!私が今それをすることができないので、あなたがクラックする答えを編集してください!
ミスターXcoder

匿名ユーザーが削除することで8つのバイトを保存するために、編集を提案usingし、ちょうどやってint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
マーティン・エンダー

math.hの代わりに<cmath>を含む別のバイトを保存します:)
zyndor

4

ハスケル、レオ

x=exp.(2.5*).log

という名前のポイントフリー関数x。使用法:x 4->32.0


4

通知7corvus_192

クール、Inform7エントリ。:)これを試してみました。

これは意図した解決策であると確信しています:

R is a room.

To f (n - number): say "[n * n * real square root of n]".

このソリューションは、real square root of関数を使用しているため、Glulxバックエンドでコンパイルされた場合にのみ機能することに注意してください。


ところで、二重引用符と角括弧は実際には不要です。ちょうどsay n * n * real square root of n同じようにうまくいくでしょう。コマンドの最後のピリオドも省略できます。または、最初の期間を保持して、代わりに改行を削除することもできます。トリミングできるコードの他の部分には、「room」の前の記事「a」と、括弧の前とコロンの後のスペースが含まれます。幸いなことに、予備のブラケットが用意されているため、これらの余分な文字をすべてコメントアウトするためにいつでも使用できます。;)したがって、これも有効なソリューションです。

R is room.To f(n - number):say n * n * real square root of n[
" a . "
]

このソリューションをインタラクティブにテストするには、次のテストハーネスのようなものをコードに追加すると便利です。

Effing is an action applying to one number.
Understand "f [number]" as effing.
Carry out effing: f the number understood.

プログラムをコンパイルして実行した後は、例えばを入力することができますf 4. f 6. f 9. f 25>プロンプトと次のような出力を受け取ります。

Welcome
An Interactive Fiction
Release 1 / Serial number 170404 / Inform 7 build 6L38 (I6/v6.33 lib 6/12N) SD

R

>f 4. f 6. f 9. f 25
32.0
88.18164
243.0
3125.0
>

ところで、私はちょうどInform(または、おそらく、Glulx)が最後の小数点以下をf 6間違って丸めていることに気付きました。正しい値は88.18164よりも88.18163にずっと近いです。幸いなことに、これはソリューションの正確さに影響を与えるとは思いません。特に、「選択した任意の丸めメカニズム」が課題に指定されているためです。:)


しばらく前にInform 7のフィドルを見つけたはずですが、検索しても見つけることができません。オンライン通訳がどこにいるか知っていますか?
ヒラメ

@Flounderer:まったく知りません。Inform 7コンパイラによって生成されたGlulx / Z-machineバイトコード用のオンライン(JSベースの)プレーヤーも確かにありますが、単純なInform 7ソースコードを直接取得してオンラインでコンパイルおよび実行するものは知りません。ただし、コンパイラ/ IDEのインストールは非常に簡単です。Ubuntu Linuxでは、と同じくらい簡単apt-get install gnome-inform7です。
イルマリカロネン

4

Mathematica、Greg Martin

f[y_]:=With[{x=
    #&@@{#(#)#^(1/(1+1))&@y,#&@@@{1^(1),-1}}
},Print[#,".",IntegerString[Round@#2,10,3]]&@@QuotientRemainder[1000x,1000]]

丸みを帯びたものをそのまま残してくれてありがとう!

説明:平方、別名、および平方根#(#)#^(1/(1+1))&@yの乗算の主な作業を行います。ビットは、他の文字を使用するだけでジャンクで、ジャンクから有用なビットを選び出します。yy(y)yy^(1/(1+1))#&@@@{1^(1),-1}#&@@


4

MATL、12バイト、ルイスメンドー

10'U&+:'n/^P

10/4 = 2.5を計算します。4は文字列の長さに由来します。これを指数として使用します。Pはここではノーオペレーションです。


4

Python 3、44バイト、Kyle Gullion

それら*は非常に誤解を招くものでした。非常に賢い!

lambda i:i**(lambda o,r:o/r)(*map(ord,'i*'))

文字セットが非常に限られているため、引数の些細な名前変更や並べ替え以外の有効な解決策があれば、私は非常に驚くでしょう。


あなたは私を手に入れました、うまくやった!
カイルガリオン


3

Python 2、60バイト、Anthony Pham

print    (input()**(5.0/(2*5554448893999/5554448893840))-0)

Python 2の浮動小数点除算(/整数間のデフォルト)による文字の破棄に基づいています。


3

C、50バイト、デイブ

double b(float \ufa2d){return pow(\ufa2d,25e-1);%>

オンラインでお試しください!

これには-lmコンパイラフラグが必要ですが、それなしでこれを解決する方法がわかりません。


正しい、そしてほぼ正確に私が持っていたもの(変数は私の名前でした\uad2f)。よくやった; 人々をもっと長く忙しくしておくのに十分な数の赤いニシンをそこに残したいと思っていました!また、-lmClangを使用する場合、フラグは必要ありませんでしたが(言及していました!)、厳密に言えば、それは必須です。
デイブ

3

R、カレイ

これは、@ Floundererの33バイトソリューションのクラックです。

scan()^(floor(pi)-1/2)-sin(7*0e1)

使用法:

> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 4
2: 
Read 1 item
[1] 32
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 6
2: 
Read 1 item
[1] 88.18163
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 9
2: 
Read 1 item
[1] 243
> scan()^(floor(pi)-1/2)-sin(7*0e1)
1: 25
2: 
Read 1 item
[1] 3125

はい、これはを含む意図したソリューションではありませんsin(pi)が、残念ながら機能します!+1
ヒラメ

あったscan()^(-floor(-sin(pi)*2e17)/10)
Flounderer

3

RProgN 2、ATAC

]2^\š*

StackExchangeには余分な文字が必要なようです。


私の解決策はでした]š\2^*が、どちらも同じように機能します。
アタコ

3

HODOR、198、この男

Walder
Hodor?!
hodor.
Hodor, Hodor Hodor Hodor Hodor Hodor Hodor Hodor, Hodor Hodor,
hodor,
Hodor, Hodor Hodor Hodor Hodor Hodor Hodor, Hodor Hodor,
Hodor, Hodor Hodor Hodor, hodor!,
HODOR!!
HODOR!!!

説明:

Start
read input into accumulator
copy accumulator to storage
Do math, option 7(nth root), n=2
swap storage and accumulator
Do math, option 6(nth power), n=2
Do math, option 3(times), storage
output accumulator as a number
end

注:マシン上で実行するためにgetインタープリターにいくつかの変更を加える必要がありました(投稿したものは、特に小文字のhを受け入れないようです)

また、コメントするのに十分な担当者がいないようですので、誰かが@This Guyに知らせることができたら、感謝します

これでエラーが修正されたと思います。コードはWylisではなくWalderで始まります。


ほぼそこに。あなたのコードが正しくないように、私のコードの間違いを変更しなければなりませんでした。
コイナーリンガーアーイング

開始コマンドを修正
-wwj

あなたはそれを持っているが、同じバイト数を使用する私とは異なる方法に行きましたが。あなたの答えはあなたがやりたいことをするでしょうが、それは私のものとは異なります。また、このため名前を変更する必要があったため、あなたの投稿を編集しました。
ケアードコイヘリンガー

明確にするために、これはまだクラックとしてカウントされますか、または正確に一致する必要がありますか?
-wwj

正確にはわかりません。コメントでお願いします。+1のソリューションにより、私は本当に難しいと思います!
ケアードコインヘリンガー

3

C#、172バイト、raznagul

最も難しいのは、残り物をどうするかを考え出すことでした。

using System;using S=System.Console;class PMabddellorttuuv{static void Main(){S.Write(Math.Pow(double.Parse(S.ReadLine()),2.5));Func<double> o;int q=1,M=q*2,b,e;q*=(q*M);}}

いいね!私も残り物で立ち往生しました。それらをクラス名に追加することは考えていませんでした!よくやった!
エミグナ

+1私が意図したものではなく、非常に素晴らしい解決策。;)
raznagul

3

EXCEL、26バイトのパジョン

=SQRT(A1)*A1^2/1/ISNA(IP2)

入力IP2としてのA1には、#N / Aエラーの2番目の入力が含まれます。この場合、ISNA(IP2)は1に属します

追加の場合、() これを行うことができます

=SQRT(A1)*A1^2/ISNA(PI(1/2))

このようなチャレンジでは2番目の入力が許可されていますか?
パジョン

@pajonkルールは、私はあなたが第二の入力と、このトリックを行うことを想定しているように、「あなたはどんな標準的な方法で入力を取ることができます」と言う
イェルクHülsermann

@pajonk私はあなたが少しミスをしていること、それがされて可能性が私のポストを改善している
イェルクHülsermann

1つの数字を取得する標準的な方法は、(私は)1つの入力を取得することです。私の意見では、2番目の入力は不公平であり、ルールに反します。PS括弧の数に間違いはありません。
パジョン

@pajonk十分な括弧がないため、SINとPIの組み合わせを使用できません。=SQRT(A1)*A1^2/SIN(PI()/2)書式設定などで#NAエラーを設定すると、追加の2番目の入力として表示されます。SQRTとISNAは、少しだけ意味のある2つの機能です。しかし、質問を開発した男に尋ねてください
ヨルクヒュルサーマン

3

Python 3.6、64バイト、Mr。Xcoder

php38af4r2aoot2srm0itpfpmm0726991i=     (lambda x:x**2.5*1*1/1);

意図したものではないかもしれませんが、動作します;)

$ python3
Python 3.6.1 (default, Apr  4 2017, 09:36:47) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> php38af4r2aoot2srm0itpfpmm0726991i=     (lambda x:x**2.5*1*1/1);
>>> php38af4r2aoot2srm0itpfpmm0726991i(6)
88.18163074019441
>>> php38af4r2aoot2srm0itpfpmm0726991i(4)
32.0
>>> php38af4r2aoot2srm0itpfpmm0726991i(25)
3125.0

警官のスレッドの答えにコメントするのに十分な担当者がまだいません、申し訳ありません...誰かが私のためにそれをすることができたら感謝します!


@氏。上記のように、Xcoderは警官のスレッドで投稿にコメントできません。ごめんなさい:)
user4867444

from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1私がパンチに打ちのめされたのを見るためだけに、同様の解決策を投稿しに来ました。この投稿へのリンクを警官のスレッドに追加しました。
カイルガリオン



3

R、カレイ

これは@Floundererの31バイトソリューションの一部です。

`[.`=function(`]`)`]`^`[`(lh,9)

それは大変なことでした。という関数を作成します`[.`。関数への引数が呼び出され`]`、ビルトインタイムセリエの9番目の要素を使用して2.5に累乗されますlh(「人間の女性、48サンプルから10分間隔で血液サンプルに黄体形成ホルモンを与える定期的な時系列」 。」は、Rのベースパッケージの1つで例として使用されています)。lh[9]その上には同等のものに置き換えられてい`[`(lh, 9)ます。f関数名とn引数名を置き換えることで難読化を解除すると、関数はになりf=function(n)n^lh[9]ます。

使用法:

> `[.`=function(`]`)`]`^`[`(lh,9)
> `[.`(4)
[1] 32
> `[.`(6)
[1] 88.18163
> `[.`(9)
[1] 243
> `[.`(25)
[1] 3125


2

JavaScript、fəˈnɛtɪk

n=>n**("ggggg".length*2**(-"g".length))// ""((((((()))))))***,-...;;=====>Seeeeegggghhhhhhhhhilllnnnnnnorrrsstttttttttttu{}

5/2から5 x 2の負の最初の累乗を取得します。ここで、ストリングの長さから5と1が受信されました。無関係なキャラクターをコメントアウトすることで、ある意味で簡単な方法を見つけました。


2

C#、112バイト、Jan Ivan

using System;class P{static void Main(){var b=Math.Pow(double.Parse(Console.ReadLine()),2.5);Console.Write(b);}}

2

05AB1E、47バイト、Oxx

).2555BFHIJJKKKPQRS``„cg…ghi…lsw…x}T…Áöž«‚¹n¹t*

オンラインでお試しください!


ああ、私はコードを「保護」するために使用した方法の回避策があることを知っていました。よくやった!
Okx

@Okx:ええ、05AB1Eはバイパス可能にせずに余分なコードを埋め込むのが非常に難しいです。
エミグナ

あなたをトリッキーにすることができるかどうかを確認します;)
Okx

@Okx:それを楽しみにしています:)私も仕事の後に実装しようと考えているという考えを持っています;)
エミグナ

2

ファイアボール、8バイト、Oxx

♥²♥1Z/^*

説明:

♥²♥1Z/^*
♥²       Push first input squared.
  ♥      Push first input again.
   1Z/   Push 1/2
      ^  First input to the 1/2th
       * Multiply square and root

動作するかどうかはわかりません。現在、ラップトップにjavaがありません。:(


私はそれがうまくいくとは思わない。簡単に修正できるので、答えをお伝えします。あなただけ交換する必要があるZ1にし1Z
Okx

私はそこで間違いを犯したと確信していました。更新しました。
ローマングラフ

2

Haskell、64バイト、@ nimi

product.(<$>(($(succ.cos$0))<$>[(flip<$>flip)id$id,recip])).(**)

オンラインでお試しください!それは楽しいものでした。私は最初、product.(<$>(($succ(cos$0))<$>[id,recip])).(**)どれが正しく動作し、flip flip <$> () $ id .どこかに収まらなければならないことを発見しました。



2

05AB1E、22バイト、P。ノップス

n¹t*qA9¥="'?:@->%#[{!.

オンラインでお試しください!

説明

n      # square of input
   *   # times
 ¹t    # square root of input
    q  # end program

残りの操作は実行されません。計算の後に等号をエスケープすることで、たとえばを使用して同様
になしで実行することもできます。q?'=


1
楽しみのためだけにやっていました:D
P. Knops

@ P.Knops:それが最良の理由です:)
エミグナ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.