强盗-平方乘平方根


18

任务:破解加扰码,将整数n的平方根乘以它的平方!

您必须在警察的主题中发布评论,并带有指向您的工作源的链接,并明确提及您已经破解了它。在答案的标题中,必须包含原始答案的链接。

规则:

  • 您只能更改原始源中字符的顺序。
  • 安全答案再也无法破解。
  • 警察线程中提到的其他规则
  • 请编辑您破解的答案

优胜者:艾米娜(Emigna)-10个子弹(计数有些麻烦)

荣誉提名:Notjagan,Plannapus,TEHTMI

Answers:



9

JavaScript(ES7),尼尔

_26_=>_26_**6.25**.5

当然,最困难的部分是弄清楚如何处理所有多余的字符。(并且也不要像我刚开始时那样,在错误的线程中发布此解决方案。糟糕!...)


1
@SethWhite:我必须使用尼尔在他的加扰代码中使用的所有字符,否则这将不是有效的破解方法。
Ilmari Karonen

这是如何运作的?
Arjun'4

@Arjun _26_=>定义了一个匿名函数,该匿名函数_26_带有一个称为的参数(变量可以以下划线开头,但不能以数字开头)。然后其余的仅用**Math.pow()将输入提高到2.5的幂(6.25幂0.5)。

啊! 我当时认为这_26_是ES7特有的。不知道变量也可以采用这种形式!(我从未见过没有字母的变量)。@Neil是一种非常聪明的方法。而且您也非常聪明地破解了它!让您当之无愧的+1!:)
Arjun



4

C ++(gcc),100字节,Xcoder先生

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

在线尝试!


做得好!请编辑您要破解的答案,因为我现在不能这样做!
Xcoder先生17年

一位不愿具名的用户建议的编辑通过删除保存8个字节using,只是做int main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
马丁安德

保存另一个字节号,包括<cmath>而不是math.h. :)
zyndor'5


4

通知7corvus_192

太棒了,这是一个Inform7条目。:)我只需要尝试一下。

我很确定这是预期的解决方案:

R is a room.

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

请注意,由于使用了Glulx后端,因此该解决方案仅在使用Glulx后端进行编译时才有效 real square root of功能。


顺便说一句,实际上不需要双引号和方括号;只是say n * n * real square root of n将工作一样好。命令末尾的句点也可以省略;或者,我们可以保留第一个时期并摆脱换行符。我们可以删除的代码的其他部分包括“房间”之前的“ 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.18163,而不是88.18164。幸运的是,我认为这不会影响解决方案的正确性,特别是因为挑战指定了“您选择的任何舍入机制”。:)


我敢肯定,我在不久前找到了一个Inform 7小提琴,但是在搜索时找不到。您知道哪里有在线口译员吗?
Flounderer

@Flounderer:我真的什么都不知道。当然,Inform 7编译器会为Glulx / Z机字节码提供在线(甚至基于JS的)播放器,但是我不知道有什么可以直接采用纯Inform 7源代码并在线编译和运行它。但是,编译器/ IDE非常易于安装。在Ubuntu Linux上,就像一样简单apt-get install gnome-inform7
Ilmari Karonen '17

4

Mathematica,格雷格·马丁

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

感谢您保留四舍五入的东西!

说明:#(#)#^(1/(1+1))&@y进行乘以y平方y(y)y的平方根的主要工作y^(1/(1+1))。该#&@@@{1^(1),-1}位只是垃圾,用完了其他字母,然后#&@@从垃圾中挑选出有用的位。


4

MATL,12个字节,Luis Mendo

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*'))

由于字符集非常有限,如果除了琐碎的重命名或参数重排之外,还有其他有效的解决方案,我将感到非常惊讶。


你了解我,做得很好!
Kyle Gullion '17


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在我的名字上命名的)。做得好; 我以为我在那儿留了足够多的红鲱鱼,让人们忙得更久!同样,-lm使用Clang不需要标记(我已经提到了!),但是从正确的角度来说,这是必需的。
戴夫

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
Flounderer

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

3

RProgN 2,阿塔科

]2^\š*

显然,StackExchange需要额外的字符,因此您可以开始使用。


我的解决方案是]š\2^*,但是它们都以相同的方式工作。
ATaco

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知道,我将不胜感激

我认为这已解决了该错误,代码现在以Walder而不是Wylis开头,这增加了额外的字节


差不多好了。必须更改我的代码中的错误,以便您的输入不正确。
Caird coinheringaahing

修复了启动命令
wwj

虽然您拥有它,但是您选择了与我使用不同字节数的方法不同。您的答案会做您想做的事,但与我的不同。另外,由于这个原因,我不得不更改名称,所以我对您的帖子进行了编辑。
caird coinheringaahing

为了澄清起见,这仍然算是一个裂缝,还是我需要完全匹配?
wwj

我不确定。我要在评论中提问。+1您的解决方案使我很难思考!
caird coinheringaahing

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);}}

真好!我也被困在剩菜上。没想到将它们添加到类名称中,do!做得好!
Emigna'4-4-5

+1不是我想要的,但是非常好的解决方案。;)
raznagul

3

EXCEL,26字节pajonk

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

A1作为输入IP2包含具有#N / A错误的第二个输入,在这种情况下,ISNA(IP2)属于1

另外,() 我们可以这样做

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

在这样的挑战中是否允许第二输入?
pajonk

@pajonk规则说“你可以输入任何标准方式”所以我认为你做这一招的第2输入
约尔格Hülsermann

@pajonk我必须提高我的职位也可能被你有做一个小错误
约尔格Hülsermann

(我认为)取一个数字的标准方法是取一个输入。我认为第二项意见不公平,不符合规则。附注:括号的数量没有错误。
pajonk

@pajonk我不能将SIN和PI组合使用,因为没有足够的括号。=SQRT(A1)*A1^2/SIN(PI()/2)如果通过格式化或其他方式设置#NA错误,我将其视为其他第二输入。SQRT和ISNA是仅有的两个有意义的功能。但是请向谁开发了这个问题的人
约尔格Hülsermann

3

Python 3.6,64位元组,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只是为了看看我被打败了。我在警察线上为您添加了此帖子的链接。
Kyle Gullion '17



3

R,比目鱼

这是@Flounderer的31字节解决方案的一个破解:

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

Ok that was a tough one. It creates a function called `[.`. The argument to the function is called `]` which is elevated to power 2.5 by using the 9th element of the built-in time-serie lh ("a regular time series giving the luteinizing hormone in blood samples at 10 mins intervals from a human female, 48 samples." that is used as example in one of R's base packages). lh[9] is here on top of it replaced by its equivalent `[`(lh, 9). De-obfuscated by substituting f for the function name and n for the argument name, the function then becomes f=function(n)n^lh[9].

Usage:

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

2

Python 2, 44 bytes, Anthony Pham

print int(raw_input())**(0+000000000000.5*5)

Takes input from raw_input, converts to int and raises to power 2.5


2

JavaScript, fəˈnɛtɪk

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

Gets 5/2 through 5 times 2 to the negative first power, where 5 and 1 were received from the length of strings. Took the easy way out in a sense by commenting out the extraneous characters.


2

C#, 112 bytes, 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 bytes, Okx

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

Try it online!


Ah, I knew there would be a workaround the method I used to 'secure' the code. Well done!
Okx

@Okx: Yeah, 05AB1E is very tricky to pad with extra code without making it bypassable.
Emigna

I'll see if I can make you a trickier one ;)
Okx

@Okx: Looking forward to it :) I have an idea as well that I may try to implement after work ;)
Emigna

2

Fireball, 8 bytes, Okx

♥²♥1Z/^*

Explanation:

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

Not sure if it works. I have currently no java on my laptop. :(


I don't think that will work. Easy fix though, so I'll give you the answer. You just need to swap the Z1 into 1Z.
Okx

I was sure I did a mistake there. Updated.
Roman Gräf

2

Haskell, 64 bytes, @nimi

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

Try it online! That was a fun one. I first found product.(<$>(($succ(cos$0))<$>[id,recip])).(**) which behaves correctly and than had to fit flip flip <$> () $ id . somewhere into it.


2

R, steadybox

a222=function(s)(s**0.5)*s**2**1

Usage:

> a222=function(s)(s**0.5)*s**2**1
> a222(4)
[1] 32
> a222(6)
[1] 88.18163
> a222(9)
[1] 243
> a222(25)
[1] 3125

Original: a=function(s)s**2*s**(0.125*2*2)
Steadybox

2

05AB1E, 22 bytes, P. Knops

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

Try it online!

Explanation

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

The rest of the operations never get executed.
We could have done it without the q as well by having ? after the calculation and escaping the equality sign for example with '=.


1
Was just doing it for fun :D
P. Knops

@P.Knops: That's the best reason :)
Emigna
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.