Voleurs - racine carrée fois carré


18

Tâche: Crackez le code brouillé pour multiplier la racine carrée d'un entier n par le carré de celui-ci!

Vous devez publier un commentaire dans le fil des flics avec un lien vers votre source de travail, en mentionnant clairement que vous l'avez craqué . Dans le titre de votre réponse, vous devez inclure le lien vers la réponse d'origine.

Règles:

  • Vous ne pouvez modifier l'ordre des caractères que dans la source d'origine.
  • Les réponses sûres ne peuvent plus être déchiffrées.
  • Les autres règles mentionnées dans le fil des flics
  • Veuillez modifier la réponse que vous avez craquée

VAINQUEUR: Emigna - 10 submissons (eu du mal à compter)

Mentions honorables: Notjagan, Plannapus, TEHTMI

Réponses:



9

JavaScript (ES7), Neil

_26_=>_26_**6.25**.5

La partie difficile, bien sûr, était de savoir quoi faire avec tous les personnages supplémentaires. (Et aussi ne pas poster cette solution dans le mauvais fil, comme je l'ai fait accidentellement au début. Oopsie ...)


1
@SethWhite: J'ai dû utiliser tous les caractères que Neil a utilisés dans son code brouillé, sinon cela n'aurait pas été un crack valide.
Ilmari Karonen

Comment cela marche-t-il?
Arjun

@Arjun _26_=>définit une fonction anonyme prenant un paramètre appelé _26_(les variables peuvent commencer par un trait de soulignement mais pas un nombre). Ensuite, le reste utilise simplement **as Math.pow()pour élever l'entrée à la puissance de 2,5 (6,25 puissance 0,5).
Joe

Ah! Je pensais que _26_c'était quelque chose d'ES7 spécifique. Je ne savais pas que les variables peuvent aussi être sous cette forme! (Je n'ai jamais vu de variable sans alphabet). C'était une approche très intelligente de @Neil. Et vous étiez très intelligent aussi pour le casser! Ayez votre +1 bien mérité! :)
Arjun



4

C ++ (gcc) , 100 octets, M. Xcoder

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

Essayez-le en ligne!


Bien joué! Veuillez modifier la réponse que vous craquez, car je ne peux pas le faire maintenant!
M. Xcoder

Un utilisateur anonyme a suggéré une modification pour économiser 8 octets en supprimant usinget en faisant simplementint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Martin Ender

Enregistrez un autre octet #including <cmath> au lieu de math.h. :)
zyndor

4

Haskell, Leo

x=exp.(2.5*).log

Une fonction sans point nommée x. Utilisation: x 4->32.0


4

Inform 7 , corvus_192

Cool, une entrée Inform7. :) Je devais juste essayer celui-ci.

Je suis sûr que c'est la solution envisagée:

R is a room.

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

Notez que cette solution ne fonctionne que si elle est compilée avec le backend Glulx, en raison de l'utilisation de la real square root offonction.


BTW, les guillemets doubles et les crochets ne sont en fait pas nécessaires; tout say n * n * real square root of nfonctionnerait aussi bien. Les périodes à la fin des commandes peuvent également être omises; ou nous pourrions garder la première période et nous débarrasser des nouvelles lignes à la place. D'autres parties du code que nous pourrions supprimer incluent l'article "a" avant "room" et les espaces avant les parenthèses et après les deux points. Heureusement, puisque nous avons une paire de supports de rechange, nous pouvons toujours les utiliser pour commenter tous ces caractères supplémentaires. ;) C'est donc aussi une solution valable:

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

Pour tester cette solution de manière interactive, il est pratique d'ajouter quelque chose comme le faisceau de test suivant au code:

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

Après avoir compilé et exécuté le programme, vous pouvez par exemple taper f 4. f 6. f 9. f 25à l' >invite et recevoir quelque chose comme la sortie suivante:

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, je viens de remarquer qu'Inform (ou vraisemblablement plutôt Glulx) arrondit la dernière décimale de l' f 6erreur: la valeur correcte est beaucoup plus proche de 88,18163 que de 88,18164. Heureusement, je ne pense pas que cela affecte l'exactitude de la ou des solutions, d'autant plus que le défi spécifiait «tout mécanisme d'arrondi de votre choix». :)


Je suis sûr d'avoir trouvé un violon Inform 7 il y a quelque temps, mais je ne le trouve pas lorsque je recherche. Savez-vous s'il y a un interprète en ligne quelque part?
Flounderer

@Flounderer: Je n'en connais pas vraiment. Il existe certainement des joueurs en ligne (même basés sur JS) pour le bytecode Glulx / Z-machine produit par le compilateur Inform 7, mais je ne suis au courant de rien qui pourrait directement prendre le code source Inform 7 ordinaire et le compiler et l'exécuter en ligne. Cependant, le compilateur / IDE est assez facile à installer; sur Ubuntu Linux, c'est aussi simple que cela apt-get install gnome-inform7.
Ilmari Karonen le

4

Mathematica, Greg Martin

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

Merci d'avoir laissé les trucs d'arrondi intacts!

Explication: #(#)#^(1/(1+1))&@yfait le travail principal de la multiplication au ycarré, alias y(y), et y« est la racine carrée, y^(1/(1+1)). Le #&@@@{1^(1),-1}bit est juste indésirable pour utiliser les autres lettres et #&@@sélectionne le bit utile de la poubelle.


4

MATL , 12 octets, Luis Mendo

10'U&+:'n/^P

Calculez 10/4 = 2,5 avec 4 provenant de la longueur de la chaîne. Utilisez-le comme exposant. P est un no-op ici.


4

Python 3, 44 octets, Kyle Gullion

Ces informations *étaient tout à fait trompeuses. Très intelligent!

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

En raison du jeu de caractères assez limité, je serais très surpris s'il y avait d'autres solutions valables au-delà du renommage trivial ou de la réorganisation des arguments.


Tu m'as bien fait!
Kyle Gullion

3

R, Steadybox

y<-function(p)(p^(1/2)*p^2);

semble être une anagramme de funny(p1)-tio(^*^)/pc(2)<p2;


3

Python 2, 60 octets, Anthony Pham

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

Basé sur l'élimination des caractères via la division flottante de Python 2 (la valeur par défaut pour /entre les entiers).


3

C, 50 octets, Dave

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

Essayez-le en ligne!

Cela nécessite un -lmindicateur de compilation, mais je ne sais pas comment il serait possible de résoudre ce problème sans lui.


correct, et presque exactement ce que j'avais (variable a été nommée \uad2fsur le mien). Bien joué; Je pensais avoir laissé suffisamment de harengs rouges pour occuper les gens beaucoup plus longtemps! De plus, le -lmdrapeau n'était pas nécessaire pour moi en utilisant Clang (je l'aurais mentionné!) Mais vous avez raison à strictement parler, c'est obligatoire.
Dave

3

R, Flet

Ceci est une fissure de la solution à 33 octets de @Flounderer

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

Usage:

> 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

Oui, ce n'est pas la solution prévue qui impliquait sin(pi), mais malheureusement cela fonctionne! +1
Flet

C'étaitscan()^(-floor(-sin(pi)*2e17)/10)
Flounderer

3

RProgN 2, ATaco

]2^\š*

Apparemment, StackExchange a besoin de caractères supplémentaires, alors c'est parti.


Ma solution était ]š\2^* , mais ils fonctionnent tous les deux de la même manière.
ATaco

3

HODOR, 198, Ce gars

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

Explication:

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

Remarque: j'ai dû apporter quelques modifications à l'interpréteur get pour qu'il s'exécute sur ma machine (celui que vous avez publié ne semble pas accepter les h minuscules, entre autres)

De plus, je ne semble pas avoir assez de représentants pour commenter, donc si quelqu'un pouvait le faire savoir à @This Guy, je lui serais reconnaissant

Je pense que cela a corrigé l'erreur, le code commence maintenant par Walder au lieu de Wylis, qui ajoute l'octet supplémentaire


Presque là. J'ai dû changer une erreur dans mon code afin que le vôtre ne soit pas tout à fait correct.
caird coinheringaahing

correction de la commande de démarrage
wwj

Bien que vous l'ayez mais vous avez opté pour une méthode différente de la mienne qui utilise le même nombre d'octets. Votre réponse ferait ce que vous vouliez, mais ce n'est pas la même que la mienne. J'ai également dû changer le nom à cause de cela , j'ai donc apporté une modification à vos messages.
caird coinheringaahing

pour des éclaircissements, cela compte-t-il toujours comme une fissure, ou dois-je correspondre exactement?
wwj

Je ne suis pas exactement sûr. Je vais demander dans les commentaires. +1 votre solution me fait vraiment réfléchir!
caird coinheringaahing

3

C #, 172 octets, raznagul

La partie la plus difficile était de savoir quoi faire avec tous les restes.

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

Agréable! Je suis également resté coincé dans les restes. Je n'ai pas pensé à les ajouter au nom de la classe, doh !. Bon travail!
Emigna

+1 Pas ce que j'avais prévu, mais une très belle solution. ;)
raznagul

3

EXCEL, 26 Bytes pajonk

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

A1 comme entrée IP2 contient une deuxième entrée avec une erreur # N / A dans ce cas ISNA (IP2) appartient à 1

Pour un supplément, () nous pouvons le faire

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

La deuxième entrée est-elle autorisée dans un tel défi?
pajonk

@pajonk Les règles disent "Vous pouvez prendre des entrées de n'importe quelle manière standard", donc je suppose que vous faites cette astuce avec une deuxième entrée
Jörg Hülsermann

@pajonk J'ai amélioré mon message, il se pourrait que vous ayez fait une petite erreur
Jörg Hülsermann

La manière standard de prendre un nombre est (je pense) de prendre une entrée. À mon avis, la deuxième contribution serait injuste et contraire aux règles. PS Il n'y a pas d'erreur dans le nombre de crochets.
pajonk

@pajonk Je ne peux pas utiliser de combinaisons avec SIN et PI car il n'y a pas assez de crochets. =SQRT(A1)*A1^2/SIN(PI()/2)Si vous définissez l'erreur #NA via le formatage ou autre chose, je le verrais comme une deuxième entrée supplémentaire. SQRT et ISNA sont les deux seules fonctions qui ont un peu de sens. Mais veuillez demander à l'homme qui avait développé la question
Jörg Hülsermann

3

Python 3.6, 64 octets, M. Xcoder

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

Peut-être pas ce qui était prévu, mais ça marche;)

$ 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

Pas assez de représentants pour commenter la réponse du fil des flics pour l'instant, désolé ... J'apprécierais que quelqu'un puisse le faire pour moi, merci!


@Monsieur. Xcoder, comme dit ci-dessus, ne peut pas commenter votre message dans le fil des flics, désolé :)
user4867444

from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1Je suis venu poster une solution similaire juste pour voir que j'ai été battu au poinçon. J'ai ajouté un lien vers ce post sur le fil des flics pour vous.
Kyle Gullion


3

Python 2.7, Koishore Roy

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

Ou y=x=e=s, les deux fonctionnent :)) Bon travail de toute façon!
M. Xcoder

Bon travail. : P Maintenant, je dois travailler sur un nouveau code. Zut!
Koishore Roy

3

R, Flet

C'est une fissure de la solution de 31 octets de @ Flounderer:

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

Ok, ça a été difficile. Il crée une fonction appelée `[.`. L'argument de la fonction est appelé `]`qui est élevé à la puissance 2,5 en utilisant le 9ème élément de la série temporelle intégrée lh("une série chronologique régulière donnant l'hormone lutéinisante dans des échantillons de sang à des intervalles de 10 minutes d'une femme humaine, 48 échantillons . "utilisé comme exemple dans l'un des packages de base de R). lh[9]est ici par dessus remplacé par son équivalent `[`(lh, 9). Désobscurcie en substituant fle nom de la fonction et le nom nde l'argument, la fonction devient alorsf=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 octets, Anthony Pham

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

Prend l'entrée de raw_input, convertit en int et passe à la puissance 2,5


2

JavaScript, fəˈnɛtɪk

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

Obtient 5/2 à 5 fois 2 à la première puissance négative, où 5 et 1 ont été reçus de la longueur des chaînes. A pris la voie facile dans un sens en commentant les caractères étrangers.


2

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

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

Essayez-le en ligne!


Ah, je savais qu'il y aurait une solution de contournement à la méthode que j'utilisais pour «sécuriser» le code. Bien joué!
Okx

@Okx: Oui, 05AB1E est très difficile à remplir avec du code supplémentaire sans le rendre contournable.
Emigna

Je vais voir si je peux vous en rendre une plus délicate;)
Okx

@Okx: J'ai hâte :) J'ai aussi une idée que je peux essayer de mettre en œuvre après le travail;)
Emigna

2

Boule de feu , 8 octets, Okx

♥²♥1Z/^*

Explication:

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

Je ne sais pas si cela fonctionne. Je n'ai actuellement aucun java sur mon ordinateur portable. :(


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.