Розбійники - квадратний раз квадратний корінь


18

Завдання: Розломіть скремтований код для множення квадратного кореня на ціле число n на його квадрат!

Ви повинні залишити коментар у темі копів із посиланням на робоче джерело, чітко зазначивши, що ви його зламали . У назві вашої відповіді ви повинні включити посилання на оригінальну відповідь.

Правила:

  • Ви можете змінювати лише порядок символів у вихідному джерелі.
  • Безпечні відповіді більше не можна зламати.
  • Інші правила, згадані в ниті копів
  • Відредагуйте відповідь, яку ви зламаєте

ПЕРЕМОЖНИК: Емінья - 10 представників (мали деякі підрахунки)

Почесні згадки: Нотьяган, Планапус, ТЕХТМІ

Відповіді:



9

JavaScript (ES7), Ніл

_26_=>_26_**6.25**.5

Важкою частиною, звичайно, було з'ясування того, що робити з усіма зайвими персонажами. (І також не публікувати це рішення в неправильній темі, як я випадково робив спочатку. Ойпс ...)


1
@SethWhite: Мені довелося використовувати всі символи, які Ніл використовував у своєму скремтованому коді, інакше це не було б дійсним тріском.
Ільмарі Каронен

Як це працює?
Арджун

@Arjun _26_=>визначає анонімну функцію, яка приймає один параметр, який називається _26_(змінні можуть починатися з підкреслення, але не з числа). Потім залишок просто використовує , **як Math.pow()підвищити вклад в ступінь 2,5 (6,25) 0,5 потужності.
Джо

Ах! Я думав, що _26_це щось специфічне для ES7. Не знав, що змінні можуть бути і в цій формі! (Я ніколи не бачив змінну без алфавіту). Це був дуже розумний підхід від @Neil. І ви теж були дуже розумні, коли його зламали! Приємного +1! :)
Арджун



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

Анонімний користувач запропонував редагувати, щоб зберегти 8 байт, видаливши usingта просто зробившиint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Мартін Ендер

Збережіть ще один байт #including <cmath> замість math.h. :)
zyndor

4

Хаскелл, Лео

x=exp.(2.5*).log

Точкова функція з назвою x. Використання: x 4->32.0


4

Інформуйте 7 , corvus_192

Класно, запис Inform7. :) Мені просто довелося спробувати це.

Я майже впевнений, що це рішення, задумане:

R is a room.

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

Зауважте, що це рішення працює лише в тому випадку, якщо його компілюють із зворотним процесом Glulx, завдяки використанню real square root ofфункції.


До речі, подвійні лапки та квадратні дужки насправді непотрібні; просто say n * n * real square root of nпрацювало б так само добре. Періоди в кінці команд теж можуть бути пропущені; інакше ми могли б зберегти перший період і замість цього позбутися нових рядків. Інші частини коду, які ми могли б відрізати, включають статтю "а" перед "кімнатою" та пробіли перед дужками та після двокрапки. На щастя, оскільки у нас є запасна пара дужок, ми завжди можемо використовувати їх для коментування всіх цих зайвих символів. ;) Отож, це і правильне рішення:

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: Я насправді не знаю жодного. Звичайно, є онлайн-гравці (навіть на базі JS) для байтового коду Glulx / Z-machine, який виробляється компілятором Inform 7, але я не знаю нічого, що могло б безпосередньо взяти звичайний Inform 7 вихідний код і компілювати та запустити його в Інтернеті. Однак компілятор / IDE досить простий в установці; на Ubuntu Linux це так само просто apt-get install gnome-inform7.
Ільмарі Каронен

4

Математика, Грег Мартін

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«S квадратного кореня y^(1/(1+1)). #&@@@{1^(1),-1}Біт просто барахло , щоб використовувати інші літери, і #&@@вибирає корисний біт з непотребу.


4

MATL , 12 байт, Луїс Мендо

10'U&+:'n/^P

Обчисліть 10/4 = 2,5 з 4, що йдуть від довжини рядка. Використовуйте це як показник. P - тут немає опціону.


4

Пітон 3, 44 байти, Кайл Гуліон

Ці *були досить оманливими. Дуже розумний!

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

Через досить обмежений набір символів я був би дуже здивований, якби були інші вагомі рішення, що виходять за рамки тривіального перейменування чи переупорядкування аргументів.


Ти мене, чудово зробив!
Кайл Гулліон


3

Пітон 2, 60 байт, Ентоні Фам

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

На основі відкидання символів через поплавковий поділ Python 2 (за замовчуванням для /між цілими числами).


3

С, 50 байт, Дейв

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

Спробуйте в Інтернеті!

Для цього потрібен -lmпрапор компілятора, але я не знаю, як можна було б вирішити це без нього.


правильно, і майже точно те, що я мав (змінна названа \uad2fна моїй). Молодці; Я думав, що я залишив там досить червоних оселедців, щоб довше зайняти людей! Також -lmпрапор мені не потрібен був, використовуючи Кланг (я б це згадав!), Але ви правильно, що строго кажучи, це потрібно.
Дейв

3

R, Флундер

Це тріщина 33-байтного рішення @Flounderer

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, ATaco

]2^\š*

Мабуть, StackExchange потребує додаткових символів, тому ось вам.


Моє рішення було ]š\2^*, але вони обидва працюють однаково.
Атако

3

ХОДОР, 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, серед інших речей)

Крім того, у мене, здається, не вистачає респондентів для коментарів, тож якщо хтось міг би дозволити @Цей хлопець знати, я був би вдячний

Я думаю, що це виправлено помилку, код тепер починається з Walder замість Wylis, що додає додатковий байт


Майже там. Довелося змінити помилку в моєму коді, щоб ваш не зовсім прав.
caird coinheringaahing

зафіксували команду start
wwj

Хоча, що у вас це було, але ви пішли на інший метод, ніж я, який використовує однакову кількість байтів. Ваша відповідь буде робити те, що ви цього хотіли, але це не те саме, що у мене. Також мені довелося змінити ім'я через це, тому я змінив ваші повідомлення.
caird coinheringaahing

Для уточнення, чи все ще це вважається тріщиною, чи мені потрібно точно відповідати?
wwj

Я не зовсім впевнений. Я буду запитати в коментарях. +1 ваше рішення змушує мене думати по-справжньому важко!
caird coinheringaahing

3

C #, 172 байти, разнагал

Найважче було з'ясувати, що робити з усіма залишками.

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 Не те, що я задумав, але дуже приємне рішення. ;)
рознагул

3

EXCEL, 26 байт піжонк

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

А1 як вхідний IP2 містять другий вхід з помилкою # N / A Помилка в цьому випадку ISNA (IP2) належить до 1

Для додаткового () ми можемо це зробити

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

Чи дозволений другий вхід у такому виклику?
pajonk

@pajonk Правила говорять: "Ви можете взяти вклад будь-яким стандартним способом", тому я припускаю, що ви зробите цей трюк за допомогою другого вводу
Йорг Гюльсерманн

@pajonk Я покращив свою посаду. Можливо, ви зробили невелику помилку
Jörg Hülsermann,

Стандартним способом прийняття одного числа є (я думаю) взяття одного вводу. На мою думку, другий внесок був би несправедливим та суперечив правилам. PS Немає помилок у кількості дужок.
pajonk

@pajonk Я не можу використовувати комбінації з SIN та PI, оскільки дужок не вистачає. =SQRT(A1)*A1^2/SIN(PI()/2)Якщо ви встановите помилку #NA за допомогою форматування чи чогось іншого, я б вважав це додатковим другим входом. SQRT і ISNA - єдині дві функції, які мають трохи сенсу. Але будь ласка, запитайте чоловіка, який розробив це питання
Йорг Гюльсерманн

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щоб побачити, як мене побили до удару. Я додав посилання на цю публікацію на тему поліцейських.
Кайл Гулліон


3

Python 2.7, Koishore Roy

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

Або y=x=e=sобидва працюють :)) Гарна робота все одно!
Містер Xcoder

Хороша робота. : P Тепер мені потрібно попрацювати над новим кодом. Чорт!
Koishore Roy

3

R, Флундер

Це тріщина 31-байтового рішення @ Flounderer:

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

Добре, що було важко. Він створює функцію, яку називають `[.`. Називається аргумент функції, `]`яка підвищується до потужності 2,5, використовуючи 9-й елемент вбудованої серії часу lh("регулярний часовий ряд, який дає лютеїнізуючий гормон у зразках крові через 10 хвилин інтервалу від жіночої жінки, 48 проб . ", що використовується як приклад в одному з базових пакетів R). 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

Пітон 2, 44 байти, Ентоні Фам

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

Бере вхід з raw_input, перетворює на int і піднімає на потужність 2,5


2

JavaScript, fəˈnɛtɪk

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

Отримує від 5/2 до 5 разів 2 до від’ємної першої потужності, де 5 і 1 були отримані від довжини струн. Виконайте простий вихід у певному сенсі, коментуючи сторонні персонажі.



2

05AB1E , 47 байт, Okx

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

Спробуйте в Інтернеті!


Ах, я знав, що буде вирішено метод, який я використовував для "захисту" коду. Молодці!
Оккс

@Okx: Так, 05AB1E дуже складний, щоб прокладати додатковий код, не роблячи його обхідним.
Емінья

Я побачу, чи зможу я зробити вас
хитрішим

@Okx: З нетерпінням чекаю :) У мене також є ідея, яку я можу спробувати реалізувати після роботи;)
Emigna

2

Вогняна куля , 8 байт, Окс

♥²♥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.
Оккс

Я був впевнений, що помилився там. Оновлено.
Роман Ґраф


2

R, стійка

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

Використання:

> 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

Оригінал:a=function(s)s**2*s**(0.125*2*2)
Steadybox

2

05AB1E , 22 байти, P. Knops

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

Спробуйте в Інтернеті!

Пояснення

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

Решта операцій ніколи не виконуються.
Ми могли б це зробити і без того, qяк ?після обчислення та уникнення знаку рівності, наприклад, з '=.


1
Просто робив це для розваги: ​​D
P. Збиває

@ P.Knops: Це найкраща причина :)
Emigna
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.