Anda baru-baru ini membuat akun di situs judi cerdik, di mana dengan bayaran 25 dolar, mereka akan membayar Anda kembali jumlah acak antara 0 dan 50 dolar. Setelah mendapat sekitar 5 dolar dua kali, Anda memutuskan untuk membuktikan bahwa situs tersebut adalah penipuan. Setelah mengakses firewall eksternal mereka dengan kata sandi default, Anda menemukan jalan Anda ke server database mereka, dan menemukan di mana nilai-nilai untuk jumlah minimum dan maksimum disimpan. Anda memutuskan untuk memasukkan 25 '9 sebagai nilai maksimum, tetapi menerima pesan kesalahan yang mengatakan nilai maksimum harus dari jenis' uint64 '. Namun sekarang Anda melihat beberapa tombol angka sepertinya tidak mengetik dengan benar pada konsol jarak jauh. Tantangan muncul sebelum Anda hampir seperti mengetik di situs Q + A.
hanya menggunakan program yang terinstal dengan mudah untuk menguji dan mengeksekusi bahasa khusus Anda, menampilkan ukuran maksimum nilai integer 64-bit yang tidak ditandatangani, namun hampir semuanya kecuali alat pemrograman rusak pada mesin ini, membuat Anda tanpa menggunakan angka 1, 2,4,6,8 - baik dalam kode sumber atau literal, Anda juga memperhatikan bahwa tampaknya membutuhkan waktu lebih lama secara eksponensial untuk menjalankan program untuk setiap bagian kode tambahan, jadi sebaiknya Anda tetap pendek jika Anda ingin kaya sebelum menggambar!
Tantangan
Tulis sebuah program yang menghasilkan 18446744073709551615, nilai maksimum integer 64-bit yang tidak ditandatangani, baik sebagai angka, atau string tunggal.
Kode sumber Anda tidak boleh mengandung karakter '1', '2', '4', '6' atau '8'
jika bahasa Anda tidak memiliki bilangan bulat 64-bit yang tidak ditandatangani atau setara, hasilnya bisa dalam format string atau sebaliknya, tetapi harus berupa angka di atas.
ini kode-golf sehingga kode terpendek di setiap bahasa menang!
Jawaban:
Lilin lebah , 3 byte
Penjelasan:
Cobalah online!
Bahasa ini sangat cocok untuk tantangan ini.
Berikut adalah kutipan dari halaman Esolang di Beeswax :
Ini pada dasarnya rindu unsigned.
EDIT: Saya masih mengharapkan Dennis untuk mengalahkan saya dengan solusi 2-byte.
sumber
C, 26 byte
Mencetak
unsigned long
nilai.Membutuhkan ukuran
long
menjadi 64 bit.sumber
print~0
.~0l
harus bekerja.sizeof(long) * CHAR_BIT == 64
. Asumsi yang masuk akal untuk golf, tetapi layak untuk ditunjukkan.CJam (4 byte)
Demo online
Ini menghitung 16 16 - 1 menggunakan builtin
G
untuk 16 dan operator penurunan(
.sumber
64-bit SBCL Common Lisp, 18 byte
most-positive-word
Kata paling positif pada kompiler 64-bit adalah 64uint. Itu sesuatu.
sumber
Python3 REPL, 12 byte
Dalam REPL:
~-(~-3<<9*7)
Di luar REPL:
print~-(~-3<<9*7)
<--> Python2!Ini satu lagi di 17 bytes:
~-(~-3<<ord("?"))
.Penjelasan
Tidak ada yang super mewah. Ini dirinci:
Ekspresi yang dihasilkan kira-kira (tetapi tidak cukup)
~-(2<<63)
->(2**64)-1
. Saya menggunakan operator kecebong dua kali di sini. Tip tentang golf ada di sini .Ada juga
sys.maxint
di Python2 yang dapat digunakan, tapi saya tidak akan melihatnya.repl.it <- tautan pengujian.
sumber
~-(~
bagian mata kucing pertama? Saya tidak bisa melihat kucing kedua dengan baik ...bc,
1513 byteDisimpan 2 byte berkat manatwork.
Tidak ada yang mewah, hanya (16 ^ 16) -1.
sumber
(a=9+7)^a-3/3
dc , 7 byte
Saya pikir itu diperbolehkan untuk bahasa berbasis tumpukan untuk meninggalkan jawaban di sel atas tumpukan, mirip dengan nilai balik untuk fungsi. Jika diperlukan pencetakan eksplisit, tambahkan
p
di akhir kode.Cobalah online!
Ini menghitung (2 64 - 1) menggunakan beberapa trik:
2
diberikan sebagai jumlah digit (Z
) ditemukan dalam bilangan bulat 10 (A
)64
diberikan sebagai5E
. Secara default dc menggunakan 10 sebagai input radix. Meski begitu, ia dapat menerima angka dalam notasi heksadesimal, tetapi mereka akan dikonversi secara berbeda dari yang Anda harapkan. Contoh: (5E) default = (5E) (input radix = 10) = (5 * 10 1 ) + (14 (E) * 10 0 ) = 50 + 14 = 641
diberikan sebagai kedalaman tumpukan (z
), karena hanya (2 64 ) yang hadir saat ituCerita alternatif:
Solusi dalam dc: komputasi (16 16 - 1), masih 7 byte!
Cobalah online!
sumber
Jelly , 4 byte
Cobalah online!
Penjelasan
sumber
05AB1E , 4 byte
Penjelasan:
Akhirnya! Kesempatan untuk menggunakan
05AB1E
builtin untuk kekuatan dua!Cobalah online!
Jawaban 4 byte lainnya:
Penjelasan:
Cobalah online!
(jika ada yang bertanya-tanya, pertanyaan ini lebih tua dari semua jawaban 4 byte lainnya)
sumber
64o<
tetapi saya belum menemukannya. Sesuatu seperti'@Ço<
dengan push 64 kreatif ... Jika Anda berhasil mendorong 64 dengan 1 byte, Anda bisa mendapatkan 3 adalah poin yang saya coba buat.MATLAB / Oktaf, 5 byte
@Sanchises memposting jawaban MATLAB yang luar biasa, namun yang ini adalah pendekatan yang sangat berbeda, jadi saya tetap akan mempostingnya:
Di MATLAB,
tic
kembalikan jumlah milidetik yang lalu sejak program dibuka. Yang terpenting, nilai yang dikembalikannya adalahuint64
tipe. Ini semakin jauh dari keharusan melemparkan nomor keuint64
dari jenis standar MATLABsdouble
.Angka apa pun yang dibagi 0 dalam MATLAB dianggap sebagai tak terhingga yang untuk tipe non-floating point, MATLAB menyatakan ini sebagai nilai integer maksimum untuk tipe itu.
Ini juga berfungsi dengan Oktaf tergantung pada penerjemah mana yang Anda gunakan yang dapat mengeluarkan peringatan "pembagian nol" juga. Anda dapat mencoba kode online di sini karena saya katakan Anda mendapatkan / 0 peringatan yang tidak muncul di MATLAB.
sumber
tic==0
pada saat startup 😉)bc ,
18, 16 bytesumber
-3/3
untuk mendapatkan-1
?PHP, 16 byte
Ini seperti jawaban dari Ven: https://codegolf.stackexchange.com/a/110751/38505
https://repl.it/Frcy/0
sumber
bash
juga:printf %u $[~0]
.~0
adalah-1
, yang1111111111111111111111111111111111111111111111111111111111111111
dalam biner, di 64 bit, dibandingkan dengan11111111111111111111111111111111
di 32-bit, dan jumlahnya plataform tergantung.MATLAB / Oktaf, 22 byte
Cobalah online!
eye
digunakan untuk membuat unit matriks (matriks dengan1
diagonal, nol sebaliknya). Tanpa argumen, ini menciptakan1x1
matriks unit, atau dengan kata lain, hanya a1
. Dibutuhkan argumen opsional, yang merupakan tipe data ('kelas' dalam terminologi MATLAB) dari matriks yang dibuat. Kami dengan demikian meminta1
kelasuint64
, dan membaginya dengan nol yang menghasilkanInf
MATLAB, yang terpotongintmax('uint64')
.Vektor
['~rw}?='-9 '']
mengevaluasi ke'uint64'
. Menggabungkan char kosong ke vektor adalah 1 byte lebih pendek daripada menggunakanchar('~rw}?='-9)
.Penalaran terhadap jawaban ini: built-in
intmax
sayangnya mengevaluasi hingga maksimum 32 bit integer yang ditandatangani. Opsi berikutnya yang jelas adalahuint64()
, yang berisi karakter terlarang. Alternatifnya adalah dengan menggunakan fungsi yang mengambil string sebagai tipe data. Kandidat yang jelas adalahintmax
dancast
, tetapi alternatif meliputizeros
,ones
daneye
.Catatan: MATLAB diinstal secara default di hampir semua situs judi cerdik.
sumber
JavaScript,
39383332 byteSunting: Disimpan 5 byte berkat @Arnauld.
sumber
Java 8, 30 byte
Tes online
sumber
1846
.BF, 108 byte
Jika setiap perintah dianggap sebagai 3 bit, ini berpotensi 41 byte.
sumber
+-<>[].,
Retina ,
2827 byteDisimpan 1 byte berkat Kritixi Lithos
Cobalah online!
Penjelasan
Mengganti input yang tidak ada / kosong dengan string ini. String khusus ini dihasilkan oleh "kebalikan" dari program ini. Encode
a
melaluij
sebagai0
melalui9
masing-masing.Ini adalah
T
tahap ransliterasi. Setl
dand
adalah set karakter yang digunakan untuk transliterasi.l
mewakili huruf kecil,d
semua digit. Jadi, petaabcdefghij
kembali ke0123456789
.sumber
d
sebagai gantinyaEO
)C ++, 46 byte.
Pertama kali melakukan golf kode, tapi saya cukup senang dengan diri saya sendiri. Akan dengan senang hati menerima kritik / saran :)
sumber
Brain-Flak ,
64, 62, 58, 54 byteCobalah online!
[Coba online!]
Empat byte disimpan berkat @Riley!
Penjelasan:
Sebagai catatan, saya mencoba mendorong 32 dan empat kali lipat, tetapi jumlah byte yang sama.
sumber
()
dari 64 untuk mendorong 1:((((((())()()()){}){}){}){})
((((((())()()()){}){}){}){}[()]){({}<(({}){}())>[()])}{}
((((((<>)()()()()){}){}){}){}){({}<(({}){}())>[()])}{}
N*2+1
saja(N+1)*2-1
?C # 6, 31 byte
Hampir sama dengan Java.
C # 5, 56 byte
sumber
Func<ulong>
sebagai:()=>~0UL;
Func<int, ulong>
untuk menyimpan byte:_=>~0UL;
dan saya pikir itu masih valid.Keempat (gforth),
1197 byteCobalah online
true
sama dengan-1
.U.
mencetak angka sebagai bilangan bulat yang tidak ditandatangani.Ini bekerja pada TIO, mungkin karena ia memiliki arsitektur 64-bit? Saya tidak yakin. Jika saya menjalankan
-1 U.
repl.it, misalnya, saya mendapatkan 2 ** 32-1. Jika repl.it didukung bilangan bulat panjang ganda, mengeluarkannya akan digunakanUD.
sebagai gantinya.sumber
-3 3 / U.
true U.
(yang juga irama dengan baik)true
, karena saya sudah terbiasa menggunakan0
dan1
. Terima kasih.Python3 REPL, 11 byte
Bagaimana itu bekerja
sumber
PowerShell ,
2914 byteCobalah online!
Terima kasih kepada @ n0rd karena pada dasarnya golf ini menjadi dua.
Ini memanfaatkan
PB
operator unary inbuilt yang pada dasarnya berfungsi sebagai "kalikan angka sebelumnya dengan1125899906842624
" (yaitu, berapa banyak byte dalam pebibyte). Itu ditambah dengan hex0xC000
, atau49152
, jadi49152 pebibytes
. Kami membaginya dengan3
, menghasilkan18446744073709551616
, dan mengurangi3/3
untuk mendapatkan nilai akhir.sumber
"0x$(7-3)000PB-9/9"|iex
0xC000PB/3-3/3
PB
seperti itu. Terima kasih!JavaScript (ES6), 50 byte
sumber
'䠎ᴐIF╏ɧ'
dan menghapus-27
x64 Assembly, 7 byte
hex (dirakit): 4831C048FFC8C3
dibongkar, berkomentar:
XOR RAX,RAX ;Zero the value of 64 bit register RAX DEC RAX ;Decrement the value of RAX RET ;Return this value
RAX adalah register 64 bit, dan paling sering digunakan untuk mengembalikan argumen integer (misalnya, C). Dengan mengurangi 1, nilainya berguling dari 0 menjadi ... 2 ^ 64-1, yang sangat dibutuhkan.
Meskipun, biner rakitan berisi satu dan empat dan delapan, rakitan tidak, tetapi file rakitan dihitung dalam rakitan, jadi apakah itu dihitung? Ow, kepalaku.
Juga, output adalah nilai balik dalam kasus ini.
sumber
Brain-Flak ,
223193 byteTermasuk +1 untuk
-A
-30 berkat DJMcMayhem
Cobalah online!
Ini hanya mendorong nilai ASCII dan mencetak sebagai karakter.
Untuk referensi, dibutuhkan 338 byte untuk menghasilkan angka aktual menggunakan pegolf meta Integer .
Cobalah secara Online!
sumber
[]
. Misalnya:((((((((((((((((((((((((()()()){}){}()){}){}())[()()()()])[][]())[[]()()])[]))()()()())[[]()()])[][()])[()()()()])()()()())[(()()()){}()])()()()()))()()())[()])[()()]))()()()())[(()()()){}()])
(Mungkin lebih banyak lagi yang saya lewatkan)-A
karena doa standar sudah termasuk-f
, jadi itu hanya satu untuk dilakukan-fA
sebagai gantinya[]
saya akan melihat itu ketika saya mendapat kesempatan. Terima kasih.MATL, 8 byte
Ini mungkin bisa diperbaiki, tapi saya belum terbiasa dengan string dan tipe MATL dulu.
Cobalah di matl.suever.net
Penjelasan:
sumber
cast
sudah digunakan, tetapi masuk akal jikatypecast
digunakan. Terima kasih sudah membereskannya.Javascript 55 byte
kode menghasilkan dan kemudian memperingatkan string 18446744073709551615 menggunakan operasi bitwise
590300 >> 5 18446
59530-3 >> 3 7440
7370955
3 * 59 * 73 >> 3 1615
sumber
2588673709551615
untuk saya ...alert(0xafebff0+'7370955'+(3*59*73>>3))
berfungsi dengan baikCepat, 8 byte
bermain di luar / ganti - 15 byte
sumber
TI-Basic, 10 byte
sumber