Cướp - căn bậc hai lần căn bậc hai


18

Nhiệm vụ: Crack mã đã xáo trộn để nhân căn bậc hai của một số nguyên n với bình phương của nó!

Bạn phải đăng một bình luận trong luồng của cảnh sát với một liên kết đến nguồn làm việc của bạn, đề cập rõ ràng rằng bạn đã Crack nó . Trong tiêu đề câu trả lời của bạn, bạn phải bao gồm liên kết đến câu trả lời ban đầu.

Quy tắc:

  • Bạn chỉ có thể thay đổi thứ tự của các ký tự trong nguồn ban đầu.
  • Câu trả lời an toàn không thể bị bẻ khóa nữa.
  • Các quy tắc khác được đề cập trong chủ đề của cảnh sát
  • Vui lòng chỉnh sửa câu trả lời bạn bẻ khóa

Người chiến thắng: Emigna - 10 người phục tùng (gặp một số khó khăn)

Những đề cập đáng trân trọng: Notjagan, Plannapus, TEHTMI

Câu trả lời:



9

JavaScript (ES7), Neil

_26_=>_26_**6.25**.5

Phần khó, tất nhiên, là tìm ra phải làm gì với tất cả các nhân vật phụ. (Và cũng không đăng giải pháp này trong chủ đề sai, như tôi đã vô tình làm lúc đầu. Oopsie ...)


1
@SethWhite: Tôi đã phải sử dụng tất cả các ký tự mà Neil đã sử dụng trong mã bị xáo trộn của mình, nếu không đây sẽ không phải là một vết nứt hợp lệ.
Ilmari Karonen

Cái này hoạt động ra sao?
Arjun

@Arjun _26_=>định nghĩa một hàm ẩn danh lấy một tham số được gọi _26_(các biến có thể bắt đầu bằng dấu gạch dưới nhưng không phải là số). Sau đó, phần còn lại chỉ sử dụng **như Math.pow()để nâng đầu vào lên mức 2,5 (6,25 công suất 0,5).
Joe

Ah! Tôi đã nghĩ rằng đó _26_là một cái gì đó cụ thể ES7. Không biết rằng các biến cũng có thể ở dạng này! (Tôi chưa bao giờ thấy một biến mà không có bảng chữ cái). Đó là một cách tiếp cận rất thông minh của @Neil. Và bạn đã rất thông minh trong việc bẻ khóa nó! Có +1 xứng đáng của bạn! :)
Arjun



4

C ++ (gcc) , 100 byte, Mr. Xcoder

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

Hãy thử trực tuyến!


Làm tốt! Vui lòng chỉnh sửa câu trả lời bạn bẻ khóa, vì tôi không thể làm điều đó ngay bây giờ!
Ông Xcoder

Một người dùng ẩn danh đã đề xuất một chỉnh sửa để lưu 8 byte bằng cách xóa usingvà chỉ thực hiệnint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Martin Ender

Lưu một byte khác # bao gồm <cmath> thay vì math.h. :)
zyndor

4

Haskell, Leo

x=exp.(2.5*).log

Một chức năng pointfree có tên x. Cách sử dụng: x 4->32.0


4

Thông báo 7 , corvus_192

Thật tuyệt, một mục thông tin7. :) Tôi chỉ phải thử cái này thôi.

Tôi khá chắc chắn đây là giải pháp dự định:

R is a room.

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

Lưu ý rằng giải pháp này chỉ hoạt động nếu được biên dịch với back-end Glulx, do sử dụng real square root ofchức năng.


BTW, dấu ngoặc kép và dấu ngoặc vuông thực sự không cần thiết; chỉ say n * n * real square root of nlàm việc tốt thôi Các dấu chấm ở cuối các lệnh cũng có thể được bỏ qua; hoặc chúng ta có thể giữ giai đoạn đầu tiên và thay vào đó là loại bỏ các dòng mới. Các phần khác của mã chúng ta có thể cắt bỏ bao gồm bài viết "a" trước "phòng" và khoảng trắng trước dấu ngoặc đơn và sau dấu hai chấm. May mắn thay, vì chúng ta đã có một cặp dấu ngoặc dự phòng, chúng ta luôn có thể sử dụng chúng để nhận xét tất cả các ký tự phụ này. ;) Vì vậy, đây cũng là một giải pháp hợp lệ:

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

Để kiểm tra giải pháp này một cách tương tác, thật tiện lợi khi thêm một cái gì đó giống như khai thác thử nghiệm sau vào mã:

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

Sau khi biên dịch và chạy chương trình, bạn có thể gõ ví dụ f 4. f 6. f 9. f 25tại >dấu nhắc và nhận một cái gì đó giống như đầu ra sau:

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
>

BTW, tôi chỉ nhận thấy rằng Thông báo (hoặc có lẽ, đúng hơn, Glulx) làm tròn số thập phân cuối cùng của f 6sai: giá trị đúng là nhiều gần gũi hơn với 88,18163 hơn để 88,18164. May mắn thay, tôi không nghĩ rằng điều này ảnh hưởng đến tính chính xác của (các) giải pháp, đặc biệt là khi thử thách chỉ định "bất kỳ cơ chế làm tròn nào bạn chọn". :)


Tôi chắc chắn rằng tôi đã tìm thấy một thông tin 7 thông tin trước đây, nhưng tôi không thể tìm thấy nó khi tôi tìm kiếm. Bạn có biết nếu có một thông dịch viên trực tuyến ở bất cứ đâu?
Flounderer

@Flounderer: Tôi không thực sự biết về bất kỳ. Chắc chắn có những người chơi trực tuyến (thậm chí dựa trên JS) cho mã byte Glulx / Z-machine do trình biên dịch Inform 7 sản xuất, nhưng tôi không biết bất cứ điều gì sẽ trực tiếp lấy mã nguồn Thông tin 7 đơn giản và biên dịch và chạy trực tuyến. Trình biên dịch / IDE khá dễ cài đặt, mặc dù; trên Ubuntu Linux, nó dễ như apt-get install gnome-inform7.
Ilmari Karonen

4

Toán học, Greg Martin

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

Cảm ơn đã để nguyên các công cụ làm tròn!

Giải thích: #(#)#^(1/(1+1))&@ylàm công việc chính của nhân ybình phương, aka y(y), và ylà căn bậc hai, y^(1/(1+1)). Các #&@@@{1^(1),-1}bit là chỉ rác sử dụng các chữ cái khác, và #&@@chọn ra các bit hữu ích từ rác.


4

MATL , 12 byte, Luis Mendo

10'U&+:'n/^P

Tính 10/4 = 2,5 với 4 đến từ độ dài chuỗi. Sử dụng này như là một số mũ. P là không có ở đây.


4

Python 3, 44 byte, Kyle Gullion

Những cái *đó khá sai lệch. Rất thông minh!

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

Do bộ ký tự khá hạn chế, tôi sẽ rất ngạc nhiên nếu có bất kỳ giải pháp hợp lệ nào khác ngoài việc đổi tên tầm thường hoặc sắp xếp lại các đối số.


Bạn đã cho tôi, thực hiện tốt đẹp!
Kyle Gullion


3

Python 2, 60 byte, Anthony Phạm

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

Dựa trên việc loại bỏ các ký tự thông qua phân chia float của Python 2 (mặc định cho /giữa các số nguyên).


3

C, 50 byte, Dave

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

Hãy thử trực tuyến!

Điều này đòi hỏi -lmcờ trình biên dịch, nhưng tôi không biết làm thế nào có thể giải quyết vấn đề này mà không có nó.


chính xác, và gần như chính xác những gì tôi có (biến được đặt tên \uad2ftrên của tôi). Làm tốt; Tôi nghĩ rằng tôi đã để lại đủ số lượng cá trích đỏ ở đó để khiến mọi người bận rộn lâu hơn nhiều! Ngoài ra, -lmcờ không cần thiết cho tôi khi sử dụng Clang (tôi đã đề cập đến nó!) Nhưng bạn đã đúng mà nói đúng là bắt buộc.
Dave

3

R, cá bơn

Đây là một bản crack của giải pháp 33 byte của @Flounder

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

Sử dụng:

> 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

Vâng, đây không phải là giải pháp dự định có liên quan sin(pi), nhưng thật không may, nó hoạt động! +1
Flounderer

Đó làscan()^(-floor(-sin(pi)*2e17)/10)
Flounderer

3

RProgN 2, ATaco

]2^\š*

Rõ ràng StackExchange cần thêm nhân vật, vì vậy bạn đến đây.


Giải pháp của tôi là ]š\2^*, nhưng cả hai đều hoạt động theo cùng một cách.
ATaco

3

HODOR, 198, anh chàng này

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!!!

Giải trình:

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

lưu ý: Tôi đã phải thực hiện một số sửa đổi để trình thông dịch get chạy trên máy của tôi (cái mà bạn đã đăng dường như không chấp nhận chữ thường h, trong số một số thứ khác)

Ngoài ra, tôi dường như không có đủ đại diện để bình luận, vì vậy nếu ai đó có thể cho @ This Guy biết, tôi sẽ rất biết ơn

Tôi nghĩ rằng điều này đã sửa lỗi, mã bây giờ bắt đầu bằng Walder thay vì Wylis, bổ sung thêm byte


Gần đến rồi. Phải thay đổi một lỗi trong mã của tôi để bạn không hoàn toàn đúng.
caird coinheringaahing

đã sửa lệnh bắt đầu
wwj

Mặc dù bạn đã có nó nhưng bạn đã sử dụng một phương thức khác với tôi sử dụng cùng số byte. Câu trả lời của bạn sẽ làm những gì bạn muốn nó làm nhưng nó không giống như của tôi. Ngoài ra tôi đã phải thay đổi tên vì điều này vì vậy tôi đã chỉnh sửa bài viết của bạn.
caird coinheringaahing

để làm rõ, điều này vẫn được tính là một vết nứt, hay tôi cần phải khớp chính xác?
wwj

Tôi không chắc lắm. Tôi sẽ hỏi trong các ý kiến. +1 giải pháp của bạn đang khiến tôi suy nghĩ thực sự khó khăn!
caird coinheringaahing

3

C #, 172 byte, raznagul

Phần khó nhất là tìm ra phải làm gì với tất cả thức ăn thừa.

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

Đẹp! Tôi đã bị mắc kẹt trên thức ăn thừa là tốt. Đừng nghĩ thêm chúng vào tên lớp, doh!. Làm tốt lắm!
Emigna

+1 Không phải những gì tôi đã dự định, nhưng giải pháp rất tốt đẹp. ;)
raznagul

3

EXCEL, 26 Bytes pajonk

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

A1 là đầu vào IP2 chứa đầu vào thứ hai có Lỗi # N / A trong trường hợp này ISNA (IP2) thuộc về 1

Để bổ sung, () chúng tôi có thể làm điều này

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

Là đầu vào thứ hai được phép trong thách thức như vậy?
pyjama

@pajonk Các quy tắc nói "Bạn có thể nhận đầu vào theo bất kỳ cách tiêu chuẩn nào" vì vậy tôi giả sử rằng bạn thực hiện thủ thuật này với đầu vào thứ hai
Jörg Hülsermann

@pajonk Tôi đã cải thiện bài viết của mình, có thể là bạn đã mắc một lỗi nhỏ
Jörg Hülsermann

Cách tiêu chuẩn để lấy một số là (tôi nghĩ) lấy một đầu vào. Theo tôi, đầu vào thứ hai sẽ không công bằng và trái với quy tắc. PS Không có sai sót về số lượng dấu ngoặc.
pyjama

@pajonk Tôi không thể sử dụng kết hợp với SIN và PI vì không có đủ dấu ngoặc. =SQRT(A1)*A1^2/SIN(PI()/2)Nếu bạn đặt Lỗi #NA thông qua việc định dạng hoặc một cái gì đó khác, tôi sẽ xem đó là đầu vào thứ hai bổ sung. SQRT và ISNA là hai chức năng duy nhất có ý nghĩa nhỏ. Nhưng hãy hỏi người đàn ông đã phát triển câu hỏi
Jörg Hülsermann

3

Python 3.6, 64 byte, Mr. Xcoder

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

Có thể không phải những gì đã được dự định, nhưng hoạt động;)

$ 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

Chưa đủ đại diện để nhận xét về câu trả lời của cảnh sát, xin lỗi ... Sẽ đánh giá cao nếu ai đó có thể làm điều đó cho tôi, cảm ơn!


@Ông. Xcoder, như đã nói ở trên, không thể nhận xét về bài đăng của bạn trong chủ đề của cảnh sát, xin lỗi về điều đó :)
user4867444

Đến để đăng một giải pháp tương tự from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1chỉ để thấy tôi đã bị đánh bại. Tôi đã thêm một liên kết đến bài đăng này trên chuỗi cảnh sát cho bạn.
Kyle Gullion


3

Python 2.7, Koishore Roy

s=e=x=y=input()**0.5
print'%.3f'%(y**(5.0))

Hoặc y=x=e=s, cả hai đều làm việc :)) Dù sao thì công việc tốt!
Ông Xcoder

Làm tốt lắm. : P Bây giờ tôi cần làm việc với một mã mới. Chết tiệt!
Koishore Roy

3

R, cá bơn

Đây là một vết nứt của giải pháp 31 byte của @ Flounderer:

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

Ok đó là một khó khăn. Nó tạo ra một hàm gọi là `[.`. Đối số của hàm được gọi `]`là nâng lên thành 2,5 bằng cách sử dụng phần tử thứ 9 của serie thời gian tích hợp lh("chuỗi thời gian thường xuyên cung cấp hoocmon luteinizing trong các mẫu máu trong khoảng thời gian 10 phút từ một người phụ nữ, 48 mẫu . "Được sử dụng làm ví dụ trong một trong các gói cơ sở của R). lh[9]ở đây trên đầu của nó được thay thế bởi tương đương của nó `[`(lh, 9). Khử nhiễu bằng cách thay thế ftên hàm và ncho tên đối số, sau đó hàm sẽ trở thànhf=function(n)n^lh[9] .

Sử dụng:

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

2

Python 2, 44 byte, Anthony Phạm

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

Lấy đầu vào từ raw_input, chuyển đổi thành int và tăng lên sức mạnh 2.5


2

JavaScript, fnɛtɪk

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

Nhận 5/2 đến 5 lần 2 cho công suất đầu tiên âm, trong đó 5 và 1 được nhận từ độ dài của chuỗi. Thực hiện một cách dễ dàng trong một ý nghĩa bằng cách bình luận ra các nhân vật không liên quan.


2

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

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

Hãy thử trực tuyến!


Ah, tôi biết sẽ có một cách giải quyết mà tôi đã sử dụng để 'bảo mật' mã. Làm tốt!
Okx

@Okx: Vâng, 05AB1E rất khó khăn để thêm mã bổ sung mà không làm cho nó có thể bỏ qua.
Emigna

Tôi sẽ xem liệu tôi có thể làm cho bạn một người khó khăn hơn không;)
Okx

@Okx: Mong chờ nó :) Tôi có một ý tưởng mà tôi có thể cố gắng thực hiện sau khi làm việc;)
Emigna

2

Quả cầu lửa , 8 byte, Okx

♥²♥1Z/^*

Giải trình:

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

Không chắc chắn nếu nó hoạt động. Tôi hiện không có java trên máy tính xách tay của tôi. :


Tôi không nghĩ rằng nó sẽ làm việc. Dễ dàng sửa chữa, vì vậy tôi sẽ cung cấp cho bạn câu trả lời. Bạn chỉ cần trao đổi Z1thành 1Z.
Okx

Tôi chắc chắn rằng tôi đã làm một sai lầm ở đó. Cập nhật.
Roman Gräf

2

Haskell , 64 byte, @nimi

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

Hãy thử trực tuyến! Đó là một niềm vui. Lần đầu tiên tôi tìm thấy product.(<$>(($succ(cos$0))<$>[id,recip])).(**)hành vi chính xác và hơn là phải phù hợp với flip flip <$> () $ id .một nơi nào đó vào nó.


2

R hộp ổn định

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

Sử dụng:

> 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

Bản gốc:a=function(s)s**2*s**(0.125*2*2)
Steadybox

2

05AB1E , 22 byte, P. Knops

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

Hãy thử trực tuyến!

Giải trình

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

Phần còn lại của các hoạt động không bao giờ được thực hiện.
Chúng ta có thể đã làm điều đó mà không cần qbằng cách có ?sau khi tính toán và thoát khỏi dấu bằng cho ví dụ với '=.


1
Chỉ làm việc đó cho vui thôi: D
P. Knops

@ P.Knops: Đó là lý do tốt nhất :)
Emigna
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.