Soyguncular - kare çarpı kare kök


18

Görev: n tamsayısının karekökünü kareyle çarpmak için şifrelenmiş kodu kırın !

Siz Yorum yazmak gerekir polislerin iplik sen olduğunu açıkça söz, çalışma kaynağına bir bağlantı ile bunu Çatlak . Yanıtınızın başlığına, orijinal yanıtın bağlantısını eklemelisiniz.

Kurallar:

  • Yalnızca orijinal kaynaktaki karakterlerin sırasını değiştirebilirsiniz.
  • Güvenli cevaplar artık kırılamaz.
  • Polisin iş parçacığında belirtilen diğer kurallar
  • Lütfen kırdığınız cevabı düzenleyin

KAZANAN: Emigna - 10 submissons (saymada bazı sorunlar vardı)

Mansiyonlar: Notjagan, Plannapus, TEHTMI

Yanıtlar:



9

JavaScript (ES7), Neil

_26_=>_26_**6.25**.5

Zor kısım, elbette, tüm ekstra karakterlerle ne yapacağını bulmaktı. (Ayrıca bu çözümü yanlış iş parçacığında da göndermiyorum, sanki ilk başta yaptığım gibi. Oopsie ...)


1
@SethWhite: Neil'in şifreli kodunda kullandığı tüm karakterleri kullanmak zorunda kaldım, aksi takdirde geçerli bir çatlak olmazdı.
Ilmari Karonen

Bu nasıl çalışıyor?
Arjun

@Arjun _26_=>adlı bir parametre alarak anonim bir işlev tanımlar _26_(değişkenler bir alt çizgi ile başlayabilir, ancak bir sayı ile başlamaz). Daha sonra geriye kalan sadece kullanıyor **olarak Math.pow()2,5 (6.25, 0.5) güç girişi artırmak için.
Joe

Ah! Bunun _26_ES7'ye özgü bir şey olduğunu düşünüyordum . Değişkenlerin de bu formda olabileceğini bilmiyordum! (Hiç alfabesiz bir değişken görmedim). @Neil tarafından çok zekice bir yaklaşımdı. Ve sen de onu kırmakta çok zekisin! Hak ettiğiniz +1! :)
Arjun



4

C ++ (gcc) , 100 bayt, Bay Xcoder

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

Çevrimiçi deneyin!


Aferin! Lütfen kırdığınız cevabı düzenleyin, çünkü şimdi yapamıyorum!
Bay Xcoder

Anonim bir kullanıcı, kaldırarak usingve sadece 8 bayt kaydetmek için bir düzenleme önerdiint main(){float n;std::cin>>n;std::cout<<pow(n,2.5);}
Martin Ender

Matematik yerine <cmath> dahil olmak üzere başka bir bayt kaydedin # :)
zyndor

4

Haskell, Aslan

x=exp.(2.5*).log

Adsız noktasız işlev x. Kullanım: x 4->32.0


4

Bilgi 7 , corvus_192

Harika, bir Inform7 girişi. :) Ben sadece bunu denemek zorunda kaldı.

Eminim bu amaçlanan çözümdür:

R is a room.

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

Bu çözümün, real square root offonksiyonun kullanılması nedeniyle sadece Glulx arka ucu ile derlenmişse işe yaradığını unutmayın .


BTW, çift tırnak işaretleri ve köşeli parantezler aslında gereksizdir; sadece say n * n * real square root of naynı şekilde çalışır. Komutların sonundaki süreler de atlanabilir; ya da ilk dönemi koruyabilir ve bunun yerine yeni satırlardan kurtulabiliriz. Kodun diğer bölümleri, "a" odasından önce "ve" parantez öncesi ve kolondan sonraki boşluklar "makalesini içerir. Neyse ki, yedek bir parantezimiz olduğu için, bunları tüm bu ekstra karakterleri yorumlamak için kullanabiliriz. ;) Yani bu da geçerli bir çözüm:

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

Bu çözümü etkileşimli olarak test etmek için koda aşağıdaki test kablo demeti gibi bir şey eklemek uygundur:

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

Programı derledikten ve çalıştırdıktan sonra, örneğin f 4. f 6. f 9. f 25bilgi >istemine yazabilir ve aşağıdaki çıktıya benzer bir şey alabilirsiniz:

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, Inform'in (veya muhtemelen Glulx'un) son ondalık hatayı f 6yanlış yuvarladığını fark ettim : doğru değer 88.18163'e 88.18164'ten çok daha yakın. Neyse ki, özellikle sorun "seçtiğiniz herhangi bir yuvarlama mekanizması" belirtildiğinden, bunun çözümlerin doğruluğunu etkilediğini düşünmüyorum. :)


Eminim bir süre önce bir Inform 7 keman buldum, ama aradığımda bulamıyorum. Herhangi bir yerde çevrimiçi tercüman olup olmadığını biliyor musunuz?
Flounderer

@Flounderer: Gerçekten bilmiyorum. Inform 7 derleyicisi tarafından üretilen Glulx / Z-makinesi bayt kodu için kesinlikle çevrimiçi (hatta JS tabanlı) oyuncular var, ancak doğrudan Inform 7 kaynak kodunu alıp derleyip çevrimiçi çalıştıracak hiçbir şeyin farkında değilim. Derleyici / IDE'nin kurulumu oldukça kolaydır; Ubuntu Linux'ta bu kadar kolay apt-get install gnome-inform7.
Ilmari Karonen

4

Mathematica, Greg Martin

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

Yuvarlama malzemelerini olduğu gibi bıraktığınız için teşekkür ederiz!

Açıklama: kare, aka ve kare kökü #(#)#^(1/(1+1))&@yçarpma ana işi yapar . Biraz diğer harfleri kullanmak sadece önemsiz olduğunu ve çöpten kullanışlı biraz dışarı alır.yy(y)yy^(1/(1+1))#&@@@{1^(1),-1}#&@@


4

MATL , 12 bayt, Luis Mendo

10'U&+:'n/^P

4 dize uzunluğundan gelecek şekilde 10/4 = 2,5 hesaplayın. Bunu bir üs olarak kullanın. P burada bir işlem yapılmaz.


4

Python 3, 44 bayt, Kyle Gullion

Bunlar *oldukça yanıltıcıydı. Çok zeki!

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

Oldukça sınırlı karakter seti nedeniyle, önemsiz argümanların yeniden adlandırılmasının veya yeniden düzenlenmesinin ötesinde başka geçerli çözümler olsaydı çok şaşırırdım.


Beni iyi yakaladın!
Kyle Gullion


3

Python 2, 60 bayt, Anthony Pham

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

Karakterleri Python 2'nin kayan bölümüyle atmaya dayanır ( /tamsayılar için varsayılan ).


3

C, 50 bayt, Dave

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

Çevrimiçi deneyin!

Bu -lmderleyici bayrağı gerektirir , ancak bunu onsuz çözmenin nasıl mümkün olacağını bilmiyorum.


doğru ve neredeyse tam olarak ne vardı (değişken \uad2fbenim adı verildi). Aferin; İnsanları daha uzun süre meşgul edecek kadar kırmızı-ringa balığı bırakacağımı sanıyordum! Ayrıca -lmClang (benim bahsettiğim!) Kullanarak benim için bayrak gerekli değildi ama kesinlikle konuştuğunuz doğru.
Dave

3

R, Pisi Balığı

Bu, @Flounderer'ın 33 baytlık çözümünün bir çatlamasıdır

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

Kullanımı:

> 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

Evet, bu amaçlanan çözüm değil, sin(pi)maalesef işe yarıyor! +1
Flounderer

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

3

RProgN 2, ATaco

]2^\š*

Görünüşe göre StackExchange ekstra karakter gerektirir, işte burada.


Benim çözümüm ]š\2^*, ama ikisi de aynı şekilde çalışıyor.
ATaco

3

HODOR, 198, Bu Adam

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

Açıklama:

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

not: Makinemde çalışacak yorumlayıcı almak için bazı değişiklikler yapmak zorunda kaldım (yayınladığınız şey, diğer bazı şeylerin yanı sıra küçük harf h'yi kabul etmiyor gibi görünüyor)

Ayrıca, yorum yapmak için yeterli temsilcim yok, bu yüzden birisi @Bu Guy'ın bilmesini sağlayabilirse minnettar olurum

Bu hatayı düzelttim, kod şimdi Wylis yerine Walder ile başlıyor, bu da ekstra bayt ekliyor


Neredeyse. Kodunuzdaki bir hatayı değiştirmek zorunda kaldı, bu yüzden sizinki doğru değil.
caird coinheringaahing

start komutunu düzeltti
İkinci Dünya Savaşı

Sahip olmanıza rağmen, aynı sayıda bayt kullanan benden farklı bir yöntem kullandınız. Cevabınız yapmasını istediğiniz şeyi yapardı ama benimkiyle aynı değil. Ayrıca bu nedenle adını değiştirmek zorunda kaldım, bu yüzden yazılarınızda bir düzenleme yaptım.
caird coinheringaahing

açıklamak için, bu hala bir çatlak olarak sayılıyor mu yoksa tam olarak eşleşmem gerekiyor mu?
İkinci Dünya Savaşı

Tam olarak emin değilim. Yorumlarda soracağım. +1 çözümünüz beni gerçekten zorlaştırıyor!
caird coinheringaahing

3

C #, 172 bayt, raznagul

En zor kısmı, kalanlarla ne yapacağını bulmaktı.

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

Güzel! Artıklara da takıldım. Bunları sınıf adına eklemeyi düşünmedim, doh !. Aferin!
Emigna

+1 İstediğim gibi değil ama çok güzel bir çözüm. ;)
raznagul

3

EXCEL, 26 Bayt pajonk

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

IP2 girişi olarak A1, #YOK hatası olan ikinci bir giriş içerir, bu durumda ISNA (IP2) 1'e aittir.

Ek olarak () bunu yapabiliriz

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

Böyle bir mücadelede ikinci girdiye izin veriliyor mu?
pajonk

@pajonk Kurallar "Herhangi bir standart şekilde girdi alabilirsiniz" diyor, bu yüzden bu hile ikinci bir giriş ile yaptığınızı varsayalım
Jörg Hülsermann

@pajonk Mesajımı geliştirdim, küçük bir hata yapmış olabilirsiniz
Jörg Hülsermann

Bir sayı almanın standart yolu (sanırım) bir girdi almaktır. Kanımca ikinci girdi haksız ve kurallara aykırı olacaktır. PS: Köşeli parantez sayısında bir hata yok.
pajonk

@pajonk SIN ve PI ile kombinasyon kullanamıyorum çünkü yeterli parantez yok. =SQRT(A1)*A1^2/SIN(PI()/2)#NA Hatasını biçimlendirme veya başka bir şey aracılığıyla ayarlarsanız, ek ikinci girdi olarak görürdüm. SQRT ve ISNA biraz anlamlı olan sadece iki işlevdir. Ama lütfen soruyu geliştiren adama sorun
Jörg Hülsermann

3

Python 3.6, 64 bayt, Bay Xcoder

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

Belki amaçlanan değil, ama çalışıyor;)

$ 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

Polislerin iş parçacığının cevabı hakkında henüz yorum yapmak için yeterli temsilci değil, üzgünüm ... Birisi benim için yapabilirse sevinirim, teşekkürler!


@Bay. Xcoder, yukarıda belirtildiği gibi, polisin iş parçacığında
yazınız

from math import pi as pp0012223467899;f=lambda x:x**2.5*1*(1)/1Sadece yumruk için dövüldüğümü görmek için benzer bir çözüm yayınlamak için geldi . Senin için polisin iş parçacığında bu yazının bağlantısını ekledim.
Kyle Gullion


3

Python 2.7, Koishore Roy

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

Ya da y=x=e=s, her ikisi de işe yarar :)) İyi iş zaten!
Bay Xcoder

Aferin. : P Şimdi yeni bir kod üzerinde çalışmam gerekiyor. Kahretsin!
Koishore Roy

3

R, Pisi Balığı

Bu @ Flounderer'ın 31 baytlık çözümünün bir çatlamasıdır:

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

Tamam bu zor bir şeydi. Adlı bir işlev oluşturur `[.`. `]`Yerleşik lhzaman serisinin 9. elemanı ("bir insan dişisinden 10 dakika aralıklarla kan örneklerinde lüteinizan hormonu veren normal bir zaman serisi, 48 örnek) kullanılarak 2.5'e yükseltilen fonksiyon argümanı çağrılır. msgstr ", R'nin temel paketlerinden birinde örnek olarak kullanılır). lh[9]burada onun yerine eşdeğeri ile değiştirilir `[`(lh, 9). fİşlev adı ve nbağımsız değişken adı değiştirilerek gizlenir , işlev daha sonraf=function(n)n^lh[9] .

Kullanımı:

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

2

Python 2, 44 bayt, Anthony Pham

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

Raw_input'tan girdi alır, int'e dönüştürür ve güç 2.5'e yükseltir


2

JavaScript, fəˈnɛtɪk

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

Dizelerin uzunluğundan 5 ve 1 alınan negatif birinci güce 5/2 ila 5 kez 2 alır. Yabancı karakterleri yorumlayarak bir anlamda kolay bir çıkış yaptı.


2

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

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

Çevrimiçi deneyin!


Ah, kodu 'güvenli hale getirmek' için kullandığım yöntemde geçici bir çözüm olacağını biliyordum. Aferin!
Okx

@Okx: Evet, 05AB1E, baypaslanabilir hale getirmeden ekstra kod ile doldurmak için çok zordur.
Emigna


@Okx: Dört gözle bekliyorum :) İşten sonra uygulamaya çalışabileceğim gibi bir fikrim de var;)
Emigna

2

Fireball , 8 bayt, Okx

♥²♥1Z/^*

Açıklama:

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

Çalışıp çalışmadığından emin değilim. Şu anda dizüstü bilgisayarımda java yok. :(


Bunun işe yarayacağını sanmıyorum. Yine de kolay düzeltme, bu yüzden size cevap vereceğim. Sadece Z1içine takas etmelisin 1Z.
Okx

Orada bir hata yaptığımdan emindim. Güncellenmiş.
Roman Gräf

2

Haskell , 64 bayt, @nimi

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

Çevrimiçi deneyin! Eğlenceli biriydi. İlk önce product.(<$>(($succ(cos$0))<$>[id,recip])).(**)hangisinin doğru davrandığını ve bir flip flip <$> () $ id .yere sığması gerektiğini buldum .


2

R, sabit kutu

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

Kullanımı:

> 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

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

2

05AB1E , 22 bayt, P. Knops

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

Çevrimiçi deneyin!

açıklama

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

Geri kalan operasyonlar asla idam edilmez.
Biz olmadan yapmış olabilir qalarak hem ?hesaplamadan sonra ve birlikte örneğin eşitlik işareti kaçan '=.


1
Sadece eğlenmek için yapıyordum: D
P. Knops

@ P.Knops: Bu en iyi neden :)
Emigna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.