Catatan: Ini adalah utas polisi , tempat seseorang harus memposting kode acak. Ini adalah utas perampok di mana sumber yang retak harus diposting dan dihubungkan dengan jawaban polisi.
Tugas: Menulis terpendek aman Program yang mengalikan akar kuadrat dari bilangan bulat n dengan kuadrat n
Ini polisi-dan-perampok , jadi aturannya adalah:
- Dalam jawaban Anda, poskan versi acak dari kode sumber Anda (karakter harus ditulis dalam urutan apa pun). Versi acak seharusnya tidak berfungsi!
- Anda dapat mengambil input dengan cara standar apa pun, hal yang sama berlaku untuk output. Hardcoding dilarang
- Setelah kode diretas oleh perampok (jika ini terjadi), Anda harus menyebutkan bahwa kode Anda telah diretas dalam judul Anda dan menambahkan spoiler ke tubuh jawaban Anda dengan kode persis Anda
- Hal yang sama berlaku untuk jawaban aman (sebutkan bahwa itu aman dan tambahkan spoiler )
- Kode dianggap aman jika tidak ada yang meretasnya dalam 5 hari setelah mempostingnya dan Anda dapat menentukannya dalam judul
- Anda harus menentukan bahasa pemrograman Anda
- Anda harus menentukan jumlah byte Anda
- Anda harus menyatakan mekanisme pembulatan dalam jawaban Anda (lihat di bawah)
Anda dapat mengasumsikan bahwa hasilnya lebih rendah dari 2 32 dan n selalu positif. Jika hasilnya bilangan bulat, Anda harus mengembalikan nilai tepat dengan atau tanpa titik desimal; jika tidak, presisi desimal minimum akan menjadi 3 tempat desimal dengan mekanisme pembulatan pilihan Anda, tetapi dapat memasukkan lebih banyak. Anda harus menyatakan mekanisme pembulatan dalam jawaban Anda. Anda tidak boleh kembali sebagai pecahan (pembilang, pasangan penyebut - maaf, Bash!)
Contoh:
In -> Out
4 -> 32.0 (or 32)
6 -> 88.18163074019441 (or 88.182 following the rules above)
9 -> 243.0
25 -> 3125.0
Jawaban aman terpendek pada akhir April akan dianggap sebagai pemenang.
sumber
Jawaban:
05AB1E, 20 byte - aman
Pendekatan lain yang sama sekali berbeda dari jawaban saya sebelumnya.
Tidak ada pembulatan.
Contoh berjalan
Saya tidak ragu @ Emigna akan memecahkannya dalam sekejap, tapi eh, kita harus coba! :-D
Larutan
Ini menggunakan fakta bahwa urutan ini:
u_0 = 1, u_ {n + 1} = u_n * (u_n ^ 2 + 3 x) / (3 u_n ^ 2 + x)
konvergen ke sqrt (x), dan cepat kubik pada saat itu (maaf, tidak menemukan cara memformat persamaan matematika di PCG).
Penjelasan detail
Cobalah online!
sumber
Python 3 , 44 byte ( retak )
Tidak ada pembulatan. Akurasi titik mengambang.
sumber
MATL , 12 byte ( dipecahkan oleh @tehtmi )
Tidak ada pembulatan; menggunakan floating point.
Solusi yang dimaksudkan (berbeda dari yang ditemukan oleh @tehtmi):
Penjelasan
sumber
Raeda , 28 byte ( Cracked oleh @tehtmi )
Perhatikan spasi di awal. Tidak ada pembulatan, tetapi menggunakan angka floating point sehingga presisi terbatas.
sumber
Perl, 42 byte (Aman)
Ada 41 byte kode dan
-p
bendera (tidak ada bendera lain).Hasilnya tidak bulat (atau lebih tepatnya dibulatkan ke titik yang sama Perl akan diakhiri dengan melakukan
$_ = (sqrt $_) * ($_ ** 2)
).Larutan:
Penjelasan:
sumber
$_=
. Dan ada suatueval
tempat. (itu tidak banyak tapi saya merasa saya tidak bisa memberi Anda lebih banyak tanpa memberi Anda terlalu banyak informasi)Oktaf, 43 byte (Aman)
Ini adalah skrip yang memerlukan input dari baris perintah (ini bukan fungsi). Akurasi floating point (jadi tidak ada pembulatan).
Larutan:
Penjelasan:
sumber
C, 50 byte ( Retak oleh fergusq )
Menggunakan pembulatan IEEE754 standar. Seperti dicatat oleh jawaban fergusq, mungkin memerlukan
-lm
tergantung pada kompiler Anda.sumber
Mathematica, 131 byte, tidak bersaing ?, retak
Ini telah dipecahkan oleh @ lanlock4 ! Namun, saya masih memiliki poin internet untuk memberikan seseorang yang menemukan solusi asli, di mana semua karakter sebenarnya diperlukan ....
Ini dimaksudkan sebagai teka-teki. Meskipun Anda dapat menggunakan karakter di atas seperti yang Anda inginkan, saya pasti bermaksud jawaban untuk mengikuti formulir
di mana baris pertama dan ketiga hanyalah pembungkus untuk membuat pembulatan dan tampilan legal (ia menulis setiap output tepat tiga tempat desimal, bulat), dan baris kedua adalah versi acak dari isi kode. Output sampel:
(Mathematica adalah perangkat lunak tidak bebas, tetapi ada kotak pasir Wolfram di mana dimungkinkan untuk menguji jumlah kode sederhana. Misalnya, memotong dan menempelkan kode
mendefinisikan suatu fungsi, yang selanjutnya dapat Anda panggil seperti
f@6
atauf[9]
, yang melakukan hal yang sama dengan versi kode yang diuraikan secara acak. Jadi, apakah ini benar-benar harus non-bersaing?)sumber
Swift - 64 byte (Aman)
Tidak pembulatan, dan menampilkan
.0
bahkan jika hasilnya bilangan bulat.sumber
Haskell, 16 bytes ( Cracked by @nimi )
Tidak ada pembulatan tertentu
sumber
R, 28 byte ( Retak oleh @Flounderer )
Akurasi titik mengambang standar R.
sumber
C #, 172 byte ( Cracked oleh SLuck49 )
Kode ini adalah program lengkap.
Ada tujuh karakter spasi di awal.
Input dibaca dari formulir STDIN dan dicetak ke STDOUT. Hasilnya adalah
double
, tidak ada pembulatan yang dilakukan.Kode Asli ungolfed:
sumber
JavaScript (ES7), 20 byte ( Retak oleh @IlmariKaronen )
Ketepatan JavaScript standar.
sumber
Python 2, 60 Bytes ( Cracked oleh @notjagan )
Tidak ada pembulatan yang terlibat. Akurat hingga 10 angka desimal.
sumber
Python 3.6, 59 byte
Tidak ada pembulatan. Akurasi titik mengambang.
sumber
Haskell, 64 byte, ( dipecahkan oleh Laikoni )
Operasi titik mengambang Haskell standar.
Versi asli saya adalah:
sumber
Fourier ,
124119 BytesTidak ada spasi putih atau karakter baris baru.
Root kuadrat dibulatkan ke bilangan bulat terdekat karena Fourier tampaknya tidak menangani apa pun selain bilangan bulat (dan karena @ATaco mendapat izin, saya harap ini ok)
memperbaiki kesalahan pengeditan, jika Anda sudah memecahkan ini, sebelumnya berfungsi
Menyadari bahwa saya telah salah mengerti bagian dari kode, dan menggunakan lebih banyak karakter daripada yang saya butuhkan
Jika saya melewatkan sesuatu, beri tahu saya
sumber
Informasikan 7 , 71 byte ( Cracked oleh @Ilmari Karonen )
Kode ini mencakup 17 spasi dan 2 baris baru. Ini adalah program Infrom 7 lengkap yang mendefinisikan fungsi yang mencetak hasil dengan ketelitian 5 tempat desimal.
sumber
R, 19 bytes (Cracked by @Steadybox)
Standard rounding
R, 33 bytes (Cracked by @plannapus)
R, 31 bytes (Cracked by @plannapus)
h=f`l`u`n`c`t`i`o`n([],[])^(.9)
sumber
Octave, 30 bytes (Safe)
A bit simpler than my first one. Shouldn't be too hard, but it's hopefully a fun puzzle.
sumber
^
? Hmmm...@(e)(e**((i/(i+i))+~sum(e:j)))
but it's onlyn^1.5
...this one's tricky.Ohm, 11 bytes
Use with
-c
flag. Uses CP-437 encoding.sumber
OCaml, 13 bytes (Cracked by @Dada)
No rounding (within IEEE 754 scope).
sumber
Javascript, 123 bytes, Cracked by notjagan
This code is a full function
There is one space character at the very start of the list of characters
The rounding of this answer is the floating point precision for Javascript, accuracy is within 10^-6 for every answer.
Got shorter because the precision didn't need to be maintained quite as high as I thought it did.
I had realized that it would be much easier to solve than I initially had made it but it was already there :P
Initial code:
Newtons method, applied 5 times from the closest power of 2
sumber
Python 3.6 - 52 bytes (Cracked by @xnor)
Standard Python rounding
sumber
Ruby, 35 bytes (cracked by xsot)
No rounding. Floating point accuracy.
sumber
05AB1E, 47 bytes
Does not round, uses floating point accuracy.
sumber
CJam, 8 bytes (Cracked by E
nmigmna)No rounding. Uses double precision.
sumber
R, 32 bytes (Cracked by @plannapus)
Standard floating-point accuracy.
sumber
Excel, 26 bytes
No rounding.
Note: As Excel is paid software, this works also in free LibreOffice
sumber
RProgN 2, 6 Bytes (Cracked by @notjagan)
No rounding, displays many decimal places. Does not display any for an integer solution.
sumber
n²√n
? I can easily get it to calculaten² + √n
, but I can't for the life of me see how you got the terms to multiply.