Dalam tugas ini, Anda diizinkan membuat program yang berguna untuk melakukan apa pun yang dapat Anda tulis dalam 100 karakter. Anda diizinkan menggunakan lebih sedikit karakter, tetapi tidak lebih.
Aturan, hanya untuk melindungi dari celah standar yang tidak lagi lucu:
Program Anda tidak dapat mengakses internet, kecuali memang harus. Misalnya, program yang menampilkan pertanyaan paling banyak diperbarui di situs web ini dapat menggunakan Internet untuk memeriksa pertanyaan ini. Namun, tidak diperbolehkan menjelajah Internet untuk menemukan sumber aslinya dan menjalankannya.
Program Anda tidak bisa menjadi penerjemah untuk bahasa yang ditulisnya. Namun, penerjemah Brainfuck dalam bahasa non-Brainfuck akan baik-baik saja.
Program Anda tidak dapat menjalankan program eksternal yang melakukan persis seperti yang dilakukan program Anda. Misalnya, Anda tidak dapat menjalankan
vim
, dan mengklaim bahwa program Anda adalahvim
implementasi.Program Anda tidak dapat berbahaya bagi komputer yang sedang dijalankan dan komputer lain. Anda tidak diperbolehkan menulis program seperti
rmdir /
(contoh di sini sengaja tidak berfungsi, jangan memperbaikinya), dan mengklaim itu adalah program yang berguna untuk menghapus semua file di komputer.Program Anda mungkin selambat yang Anda inginkan, dan gunakan sumber daya sebanyak yang Anda inginkan, selama Anda dapat membuktikannya melakukan apa yang seharusnya dilakukan.
Anda tidak diizinkan membuat bahasa khusus untuk tugas ini. Namun, Anda diizinkan membuat juru bahasa untuk bahasa yang Anda temukan dalam beberapa bahasa pemrograman lain.
sumber
Jawaban:
C - 47 byte
Program berikut menampilkan setiap dokumen yang pernah ditulis dalam sejarah manusia, bersama dengan setiap dokumen yang akan pernah ditulis dan banyak teks menarik yang tidak akan pernah muncul manusia (bersama dengan "sedikit" sampah di antaranya). Beri saja waktu. Selain itu, setiap kali Anda menjalankannya, itu akan menampilkan teks yang berbeda terlebih dahulu! Jika itu tidak bermanfaat! (Dan semua itu dalam setengah batas karakter!)
Jika Anda tidak peduli tentang itu menghasilkan sesuatu yang lain setiap kali, Anda hanya perlu 41 byte !
Tidak cukup C99 menyesuaikan, tetapi kompilasi dengan lancar
gcc.exe (GCC) 4.7.0 20111220
.Aturan menyatakan
Tidak masalah.
Beberapa hal, program ini akan menampilkan:
Sebagai catatan Dennis, keacakan algoritma, bisa agak ditingkatkan (dalam batas karakter), dengan menggunakan
rand()^rand()>>16
alih-alihrand()
.sumber
rand()
hanya pseudorandom - mungkin tidak menghasilkan teks yang berguna sebelum diulang.x
, Anda milikix[i] == (x[i - 3] + x[i - 31] + c[i]) % 256
, di manac[i]
0 dengan probabilitas 0,75 dan 1 dengan probabilitas 0,25. Ini berarti bahwa itu tidak dapat menghasilkan hal-hal yang Anda sebutkan.rand()^rand()>>16
alih-alih polosrand()
. Jika Anda mencari cara untuk menghemat byte, hapusint
dan%256
.unsigned char
ketika ditulis.BBC BASIC, 84 karakter
Plot solusi untuk persamaan diferensial orde pertama dan kedua.
Dibawa sebagai input pengguna:
Terinspirasi oleh perangkat lunak penyelesaian persamaan diferensial yang disebut Polymath yang saya gunakan ketika belajar untuk menjadi insinyur kimia. Kami akan memasukkan persamaan yang berbeda untuk reaktan dan produk dan melihat bagaimana keseluruhan sistem reaksi berubah seiring waktu. Perangkat lunak yang sangat sederhana (tidak jauh lebih kompleks dari ini) tetapi jauh lebih nyaman untuk tujuan ini daripada Excel. Sayangnya saya tidak dapat melakukan klon lengkap Polymath dalam 100 karakter.
sumber
Mathematica 76
Program ini membuat applet yang menampilkan informasi mengenai berbagai properti untuk 240 negara. Ini dibuka dengan informasi tentang populasi orang dewasa Afghanistan. Pengguna dapat mengubah pengaturan negara dan properti melalui daftar drop-down.
Mathematica beroperasi dengan lancar dengan WolframAlpha.
Untuk alasan ini saya percaya kiriman memenuhi persyaratan # 1 dari tantangan: "Program Anda tidak dapat mengakses internet, kecuali jika benar-benar harus ".
Applet yang agak sederhana ini hanya menggunakan fungsionalitas yang ada dalam bahasa Mathematica. Video pendek memberikan beberapa informasi tambahan tentang applet.
Di bawah ini adalah daftar 20 (dari 223) properti pertama yang terkait dengan negara. Dengan pemrograman tambahan, seseorang dapat memperoleh informasi tambahan mengenai negara dan menganalisis informasi ini dalam Mathematica.
sumber
bash, 100 byte
Script ini mencetak aliran byte yang aman secara kriptografis. Dibutuhkan argumen opsional yang menetapkan jumlah byte yang harus dicetak. Secara default, output akan menjadi tak terbatas.
Berguna dalam kasus di mana membaca dari
/dev/urandom
terlalu lambat.Tolok ukur
Script ini menghasilkan hingga 1,5 GiB per detik pada i7-3770 saya.
Sebaliknya, membaca dari
/dev/urandom
mengelola menghasilkan hampir 1 GiB per menit .Bagaimana itu bekerja
head -c${1--1} /dev/zero
menghasilkan jumlah yang ditentukan dari nol byte. Jika tidak ada jumlah yang ditentukan,${1--1}
sama dengan -1 dan head menghasilkan jumlah yang tak terbatas.openssl enc -aes-128-ctr -pass file:/dev/random
menggunakan AES-128 dalam mode penghitung untuk mengenkripsi nol byte, membaca kata sandi dari/dev/random
.tail -c+17
menghilangkan header 16-byte output.sumber
Javascript
Memecahkan persamaan apa pun (well, tidak semua, tetapi harus berfungsi dengan fungsi umum ...)
Tanpa ES6 (105 karakter):
Berikan saja sisi kiri persamaan dengan asumsi bahwa sisi kanan adalah nol.
Contoh:
r("x*x-9")
kembali3
r("Math.sin(x)-1")
pengembalian1.5707963394347828
(pi / 2)r("Math.pow(2,x)-512")
kembali9
Peringatan: dapat menyimpang dari beberapa fungsi (atau jika tidak ada solusi) dan membekukan tab browser Anda, atau mengembalikan NaN.
sumber
C - 99 karakter
Program ini memungkinkan enkripsi dan dekripsi segala jenis data.
Pemakaian
Pertama ... kompilasi!
Jika Anda ingin mengenkripsi konten
mypreciousdata.txt
dengan kuncimysecretkey
, dan simpan hasilnya dimyprotecteddata.txt
:Sekarang, jika Anda ingin mengambil konten yang diterjemahkan
myprotecteddata.txt
:Semakin lama kuncinya, semakin aman!
Penjelasan
Silakan temukan kode yang diperluas dan dikomentari di bawah ini:
sumber
char
tipe Anda (biasanya 256).GolfScript
Saya berhasil memeras ini menjadi 100 karakter!
Dibutuhkan input dari ROT-n teks terenkripsi dan output teks diterjemahkan. (Diambil dari sini .) Misalnya, ketika diberi input
pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom
, outputnya adalah8hellopeopleofprogrammingpuzzlescodegolfstackexchange
.sumber
JavaScript
Untuk menghasilkan id unik dalam javascriptMenghasilkan sesuatu seperti:
'h9d2f4aniimma7h1d3pbffi0foi8d3mf'
string 30-32 karakter alfanumerik
Menghasilkan sesuatu seperti:
'uq2sze67hsacq5mi'
String dengan panjang 14-16.
sumber
C ++ 57
Program ini mengambil input karakter dan menampilkan nilai ASCII-nya.
sumber
,:
Fortran - 85 byte
Membaca angka dan mencetak jumlah digit . Berguna untuk Project Euler masalah .
sumber