Dalam tantangan ini, Anda harus menyelesaikan 4 tugas berbeda menggunakan set karakter yang sama. Anda dapat mengatur ulang karakter, tetapi Anda tidak dapat menambah atau menghapus karakter.
Pemenangnya adalah kiriman yang menyelesaikan semua tugas menggunakan jumlah karakter terkecil. Semua tugas harus diselesaikan dalam bahasa yang sama.
Perhatikan bahwa ini adalah jumlah karakter terkecil, bukan jumlah karakter unik terkecil .
Tugas 1:
Keluarkan N
angka pertama dari setiap angka komposit ketiga . Codeblock di bawah ini menunjukkan 19 angka komposit pertama di baris pertama, dan setiap angka komposit ketiga di baris di bawah ini.
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30
4, 9, 14, 18, 22, 26, 30
Jika N=5
kemudian output seharusnya 4, 9, 14, 18, 22
. Anda harus mendukung 1<=N<=50
.
Angka komposit adalah angka positif yang bukan angka prima atau 1.
Hasilnya N=50
adalah:
4, 9, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 57, 62, 65, 69, 74, 77, 81, 85, 88, 92, 95, 99, 104, 108, 112, 116, 119, 122, 125, 129, 133, 136, 141, 144, 147, 152, 155, 159, 162, 166, 170, 174, 177, 182, 185, 188, 192
Tugas 2:
Output N-by-N
tabel perkalian. Anda harus mendukung1<=N<=20
Contoh:
N = 4
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Format output adalah opsional, berikut ini adalah output yang dapat diterima [[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
.
Tugas 3:
Tentukan apakah angka adalah angka Fibonacci . Anda harus mendukung positif N
hingga batas integer default bahasa Anda. Jika ada bilangan bulat 32-bit dan bilangan bulat 64-bit maka Anda dapat memilih untuk menggunakan yang membutuhkan kode terpendek. Misalnya, gunakan int
alih-alih long int
jika Anda punya pilihan. Anda tidak dapat memilih bilangan bulat yang lebih kecil dari 32-bit kecuali jika itu default (Anda tidak dapat menggunakan bilangan bulat 8-bit jika 32-bit adalah default).
true/false
, false/true
, 1/0
, 1/-1
, a/b
Semua keluaran diterima asalkan konsisten.
Tugas 4:
Ambil N
sebagai input dan output hasil 1^1+2^2+3^3+...N^N
. Anda harus mendukung 1<=N<=10
.
10 hasil berbeda adalah:
1, 5, 32, 288, 3413, 50069, 873612, 17650828, 405071317, 10405071317
Ini adalah kode-golf , jadi pengiriman terpendek di setiap bahasa akan menang!
Cuplikan Stack ini akan membantu memeriksa solusi Anda. Ini mengukur set karakter minimum yang diperlukan untuk memasukkan keempat solusi, dan menunjukkan karakter yang tersisa.
sumber
Jawaban:
Python,
8887 byteTidak berusaha terlalu banyak untuk berbagi karakter atau golf sendiri, ini hampir pasti akan mengalahkan.
sumber
range(11*n)
selalu mengandung cukup komposit?5*n
sudah cukup.Jelly ,
191817 karakterTugas 1
Cobalah online!
Tugas 2
Cobalah online!
Tugas 3
Cobalah online!
Tugas 4
Cobalah online!
Bagaimana itu bekerja
Setiap baris dalam program Jelly mendefinisikan tautan (fungsi) terpisah. Yang terakhir adalah tautan utama dan dipanggil secara otomatis ketika program dijalankan. Kecuali jika tautan utama mereferensikan yang lain, mereka tidak memiliki efek. Perhatikan bahwa bahkan tautan yang tidak dapat dipetakan mungkin tidak mengandung kesalahan parser.
Tugas 1
Tugas 2
Yang sepele ini:
×
adalah atom multiplikasi, dan quickþ
(tabel) berlaku×
untuk setiap kombinasi elemen di kiri dan di argumen yang benar. Jika argumennya adalah bilangan bulat (yang ada di sini), argumen itu juga akan melemparkannya ke rentang pertama.Tugas 3
Tugas 4
sumber
ÆḞ
sudah terbukti bermanfaat!Mathematica, 60 karakter
Tugas 1: Komposit
Tugas 2: Tabel Multiplikasi
Tugas 3: Fibonacci
Tugas 4: Jumlah kekuatan
Setiap pengiriman adalah seperangkat ekspresi yang diabaikan, diikuti oleh fungsi tanpa nama yang mengimplementasikan tugas yang diberikan.
Saya menulis skrip CJam sederhana yang "secara optimal" menggabungkan solusi mentah dengan menambahkan komentar. Saya kemudian akhirnya menghemat tiga byte di atas itu dengan secara manual menyingkirkan setiap komentar (yang memerlukan beberapa pengaturan ulang untuk mendapatkan sintaks yang valid dalam setiap kasus). Script membuatnya lebih mudah untuk mencoba variasi sederhana dari solusi untuk melihat apakah mereka akan menurunkan skor keseluruhan. Jangan ragu untuk menggunakan skrip sendiri.
sumber
ab
danba
sebagai skrip, skrip tersebut akan memberi saya(**)ab
dan(**)ba
, alih-alihab
danba
.(**)
itu sendiri dapat digunakan untuk menutupi beberapa karakter jika mereka digunakan di salah satu program lain.MATL ,
292826 karakterTugas 1 (setiap nomor komposit ketiga)
Cobalah online!
Tugas 2 (tabel multiplikasi)
Cobalah online!
Tugas 3 (Pendeteksi Fibonacci)
Ini menampilkan
1
/0
untuk Fibonacci / non-Fibonacci masing-masing.Cobalah online!
Tugas 4 (jumlah kekuatan)
Cobalah online!
Memeriksa
Program ini memasukkan empat string dan menampilkannya diurutkan, untuk secara visual memeriksa apakah mereka menggunakan karakter yang sama.
Penjelasan
%
adalah simbol komentar. Segala sesuatu di sebelah kanannya diabaikan.Tugas 1 (setiap nomor komposit ketiga)
Tugas 2 (tabel multiplikasi)
Tugas 3 (Pendeteksi Fibonacci)
Tugas 4 (jumlah kekuatan)
sumber
Hey MATL would be perfect for this!
Anda mengalahkan saya untuk itu. +1Perl 6 , 61 byte
Yang kedua kembali
((1,2,3,4),(2,4,6,8),(3,6,9,12),(4,8,12,16))
saat diberikan4
Perl 6 tidak benar-benar memiliki integer maksimum, tetapi yang ketiga bekerja secara instan dengan input
15156039800290547036315704478931467953361427680642
. Satu-satunya faktor pembatas adalah memori dan waktu.Kalau tidak, mereka semua akan menjalankan "secara instan" untuk input yang melampaui apa yang diperlukan.
Cobalah online
sumber
JavaScript (ES6),
101100959391 byteSunting: Disimpan 1 byte dengan tidak mendukung
0
sebagai nomor Fibonacci. Disimpan 5 byte plus 2 byte lebih lanjut (1 terima kasih kepada @Arnauld) dengan mengganti nama variabel. Disimpan 2 byte dengan beralih di antara+1
,++
dan+=1
.sumber
c
variabel denganA
harus menghemat satu byte.d
dengany
, tetapid
tidak terdefinisi dalam versi saat ini, jadi Anda mungkin ingin memperbaikinya terlebih dahulu)a
menjadim
.MATL , 30 karakter
Set karakter yang saya gunakan adalah:
Saya tidak bisa mengungguli jawaban MATL lainnya, tetapi saya bersenang-senang dengan solusi ini.
Tugas 1:
Bilangan komposit ketiga.
Cobalah online!
Tugas 2:
Tabel perkalian. Jelas tugas termudah, karena cara kerja MATL
Cobalah online!
Tugas 3:
Penguji fibonacci. Mencetak bilangan bulat positif (1 atau 2) untuk input yang benar, dan 0 untuk input yang salah.
Cobalah online!
Tugas 4:
Jumlah kekuatan
Cobalah online!
Saya akan memposting penjelasan yang lebih menyeluruh nanti, tetapi untuk sekarang, Anda harus mencatat bahwa itu
%
adalah karakter komentar, sehingga programnya benar-benar:sumber
PowerShell ,
9594 byte( TimmyD 'bacon saya lagi)
Tugas 1:
Cobalah online!
Tugas 2:
Cobalah online!
Tugas 3:
Cobalah online!
Tugas 4:
Cobalah online!
sumber
"$args"
bukannya$args[0]
brilian. Saya akan menggunakannya mulai sekarang.;
dari Tugas 4 dengan memanipulasi perhitungan dengan("$args"..1|%{$s+="$_*"*$_+1|iex})-(-$s)
untuk menyimpan byte keseluruhan lainnya.Haskell ,
7776 karakterCobalah online!
--
memulai komentar baris, jadi keempat program tersebut berbentuk<program>--<unused chars>
.Tugas 1:
Program terpanjang.
[x|x<-[1..],2/=sum[1|0<-mod x<$>[1..x]]]
menghasilkan daftar angka komposit tak terbatas ditambah awal1
yang mengoreksi pengindeksan 0. Pemakaian:Tugas 2:
Pemakaian:
Tugas 3:
Pengembalian
[0]
untuk kebenaran dan[]
kepalsuan. Pemakaian:Tugas 4:
Pemakaian:
sumber
05AB1E , 21 byte
Tugas 1
Cobalah online!
Tugas 2
Cobalah online!
Tugas 3
Cobalah online!
Tugas 4
Cobalah online!
Penjelasan
Untuk semua tugas,
q
akhir program sehingga kode yang mengikuti tidak pernah dijalankan.Tugas 1
Ini adalah byte-hog terbesar. Perbaikan kecil di sini bisa sangat berarti.
Tugas 2
Tugas 3
Tugas 4
sumber
Ruby,
83 82 8078 karakterCatatan: Pendeteksi angka-angka Fibonacci menggunakan metode kuadrat sempurna yang dijelaskan di Wikipedia: https://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_number
sumber
'';
vs#