Sebuah permutasi dari himpunan adalah bijektif fungsi . Misalnya, jika maka fungsi adalah permutasi:
Kita juga dapat memiliki permutasi pada set infinite, mari kita ambil sebagai contoh: Fungsi adalah permutasi, bertukar yang aneh dan genap bilangan bulat di blok dua. Elemen pertama adalah sebagai berikut:
Tantangan
Tugas Anda untuk tantangan ini adalah menulis fungsi / program yang menerapkan permutasi 1 pada bilangan asli positif. Skor dari solusi Anda adalah jumlah dari codepoint setelah memetakannya dengan permutasi yang diterapkan.
Contoh
Misalkan kita mengambil permutasi di atas diimplementasikan dengan Python:
def pi(x):
return x - 1 + 2*(x % 2)
Karakter d
memiliki titik kode , . Jika kita melakukan ini untuk setiap karakter, kita mendapatkan:
Jumlah semua karakter yang dipetakan ini adalah , ini akan menjadi skor untuk fungsi itu.
Aturan
Anda akan mengimplementasikan permutasi baik sebagai fungsi atau program
- diberi bilangan alami , return / output
- untuk tujuan tantangan ini tidak tidak mengandung
- permutasi harus secara non-trivial mengubah subset tak terbatas dari
- fungsi / program Anda tidak diizinkan untuk membaca sumbernya sendiri
Mencetak gol
Skor diberikan oleh jumlah semua codepoints (nol byte mungkin bukan bagian dari kode sumber) di bawah permutasi itu (codepoints tergantung pada bahasa Anda 2 , Anda bebas menggunakan SBCS, UTF-8 dll. Asalkan bahasa Anda mendukungnya).
Pengajuan dengan skor terendah menang, ikatan diputus oleh pengajuan paling awal.
Kecuali untuk permutasi yang hanya mengubah bagian terbatas dari , yang berarti bahwa himpunan harus tidak terbatas.
Jika ini meningkatkan skor Anda, misalnya Anda dapat menggunakan pengiriman Jelly yang disandikan UTF-8 alih-alih SBCS biasa.
Jawaban:
Jelly , skor
288 250 212199-38 Terima kasih kepada Erik the Outgolfer!
Swap bahkan dengan aneh.
Skornya adalah67 + 45 + 44 + 43 = 199 - lihat penilaian diri di sini .
Cobalah online!
sumber
-*ạ
memiliki skor 300 ... namun,-*_@
memiliki skor 250. Mungkin aku harus mempostingnya sebagai milikku, meskipun permutasi yang sama.-*N+
skor 212C-*+
terdengar seperti beberapa variasi masa depanC++
.JavaScript (ES6), Nilai =
276268Cobalah online!
sumber
54^54
adalah0
Perl 6 , Nilai: 201
Cobalah online!
Jawaban Port of Arnauld . Ini menguntungkan dari xor (
+^
) yang memiliki prioritas yang sama dengan-
dan+
, dan penggunaan lambda Apapun untuk mengurangi karakter keseluruhan. Selain itu, saya tidak dapat menemukan cara untuk mewakili secara berbeda yang mendapat skor lebih baik.Perl 6 , Skor
804702Cobalah online!
Jenis quine-y jawaban pertama di sini, dan saya pikir skornya cukup baik.
!
sumber
Skor Python 2 :
742698694 poinCobalah online!
-44 poin berkat Ørjan Johansen; -4 poin thx ke xnor.
sumber
96
dengan~~
.Retina 0.8.2 , 6 byte, skor 260
Cobalah online! Tautan termasuk catatan kaki penilaian sendiri. Cukup menukar angka
1
dan9
dan3
dan7
dalam representasi desimal, sehingga angka yang tidak mengandung angka coprime10
tidak akan terpengaruh.sumber
C # (Visual C # Interactive Compiler) , 22 byte, Skor
247245Cobalah online!
Sederhana, jika kurang dari 66, kembalikan input minus 66, jika tidak gunakan rumus dalam pertanyaan yang bertukar nomor genap dan ganjil.
sumber
A=>A<66?66-A:A
?TI-BASIC, 9 byte, skor
108810511000Swap bahkan dengan aneh. Bahkan peta ke
Ans-1
dan peta anehAns+1
.TI-BASIC adalah tokenized, sehingga program ini akan memiliki nilai hex berikut:
Program uji keluaran:
Output yang mana:
Catatan:
Nilai-nilai token TI-BASIC dapat ditemukan di sini .
Pause
digunakan dalam program output untuk melihat permutasi dengan lebih baik, karena kalkulator hanya memiliki 8 baris. Tekan [ENTER] untuk melihat permutasi berikutnya.sumber
Arang , 13 byte, skor 681
Cobalah online! Tautan adalah untuk mencetak versi sendiri dengan tajuk untuk memetakan di atas array kode byte. (Arang memiliki halaman kode khusus jadi saya secara manual memasukkan kode byte yang benar dalam input.) Bekerja dengan membalikkan rentang angka 233, sehingga 117, 350, 583 ... tidak berubah. Penjelasan:
sumber
Haskell, skor 985
Cobalah online!
sumber
a*200
tidak memiliki efek modulo 200 jadia
tidak masalah.sum[1|...]
lebih dariif..then..else
seharusnya akan membantu.05AB1E , skor: 488 di halaman kode 05AB1E
Swap aneh dan bahkan suka fungsi contoh.
Akan mencoba meningkatkan skor dari sini.
Cobalah online dengan input dalam rentang
[1, 100]
atau Coba online dengan codepoint.Penjelasan:
sumber
Brainfuck, 47 byte, skor 2988
Cobalah online!
Saya menggunakan permutasi yang diberikan dalam pengantar. Karena ini adalah bijection, Anda dapat menggunakannya sebagai cipher simetris sederhana yang mirip dengan ROT13 atau Atbash. Solusi saya berfungsi pada sel yang tidak terikat. Namun, dengan membatasi diri Anda untuk sel 8-bit, Anda bisa menghemat 2 poin dengan mengganti
[-]
dengan[+]
.sumber