Jumlah kode titik quine

20

Semua tantangan di situs ini difokuskan pada jumlah byte, atau karakter itu sendiri. Yang ini berbeda. Tantangan Anda adalah menulis sebuah program yang menghasilkan output yang memiliki jumlah titik kode identik dengan jumlah titik kode sumber.

Untuk menghasilkan jumlah titik kode:

  1. Temukan nilai karakter dalam rangkaian karakter program.
    Misalnya - FOOdalam ASCII: F= 70, O= 79, O= 79
  2. Tambahkan semuanya.
    Jumlah poin kode FOOdalam ASCII: F+ O+ O= 70 + 79 + 79 = 228.

Contoh dari jumlah quine ASCII adalah jika kode sumbernya ABCdan outputnya !!!!!!. Ini karena jumlah nilai ASCII dari sumber ( A= 65, B= 66, C= 67, jumlah = 198) sama dengan jumlah nilai ASCII dalam output ( != 33, 33 * 6 = 198) . BBBjuga akan menjadi output yang valid, seperti yang akan cc.

Aturan

  • Program Anda tidak boleh terbalik, dikocok, kesalahan, atau jenis quine "benar" lainnya. Untuk menguraikan: Jika output berisi semua karakter yang sama dengan sumber, itu tidak valid.
  • Program Anda tidak dapat menggunakan kesalahan / peringatan dari kompiler / juru bahasa sebagai output.
  • Sumber program Anda harus menggunakan codepage yang sama dengan output.
  • Program Anda dapat menggunakan codepage apa pun yang dibuat sebelum tantangan ini terjadi.
  • Output program Anda tidak boleh mengandung karakter yang tidak dapat dicetak (mis. ASCII 0 hingga 31, atau di atas 127) selain dari linefeed dan tab.
  • Celah standar berlaku.
  • Jika sumber dan / atau output memiliki linefeed tambahan, itu harus dimasukkan dalam jumlah titik kode.
  • Bendera kompiler perlu dimasukkan dalam hitungan byte akhir (skor), tetapi bukan jumlah titik kode sumber.
  • Output / sumber mungkin tidak kosong.

Mencetak gol

Jawaban terpendek dalam jumlah byte (bukan jumlah titik kode) menang. Silakan gunakan jawaban format tajuk ini:

# Jelly, 12 bytes, sum 56 (SBCS)

Anda dapat menggunakan alat ini untuk menghitung jumlah ASCII.

Referensi

Berikut adalah beberapa referensi halaman web yang bermanfaat.

MD XF
sumber
Apakah komentar diperbolehkan?
musicman523
@ musicman523 ya, saya kira begitu.
MD XF
Mengapa melarang peringatan? Saya merasa itu tidak perlu.
Conor O'Brien
1
@ ConorO'Brien Warnings tidak diperbolehkan sebagai output dari program, mis. Tidak ada kesalahan quines. Saya kira itu tidak jelas, satu menit.
MD XF
Apa kebijakan bendera?
Okx

Jawaban:

24

Retina , 1 byte, jumlah = 58 (ASCII)

:

Ini menghitung kecocokan :dalam input ( 0 ), sehingga tercetak

0

Poin kode dari :,, 0dan LF (linefeed) masing-masing adalah 58 , 48 , dan 10 (dan masing-masing), dan 58 = 48 + 10 .

Cobalah online!

Dennis
sumber
14

ArnoldC, 316 byte, jumlah 20992 (ASCII)

Cukup menyenangkan.

IT'S SHOWTIME
HEY CHRISTMAS TREE s
YOU SET US UP 1
HEY CHRISTMAS TREE iaV
YOU SET US UP 0
STICK AROUND s
GET TO THE CHOPPER iaV
HERE IS MY INVITATION iaV
GET UP 8
ENOUGH TALK
TALK TO THE HAND "H"
GET TO THE CHOPPER s
HERE IS MY INVITATION 2048
LET OFF SOME STEAM BENNET iaV
ENOUGH TALK
CHILL
YOU HAVE BEEN TERMINATED

Saya menggunakan ini dan ini untuk melakukan perhitungan saya. Butuh waktu satu setengah jam. Tapi menyenangkan.

Cobalah secara Online!

Bagaimana itu bekerja

STICK AROUNDadalah loop, yang mengulang 2048kali pada indeks iaV, tetapi indeks ini langkah demi langkah 8. Jadi ada 256loop, printing Hdan linefeed (72 + 10 = 82, 82 * 256 = 20992).

Ini masih SANGAT golfable (dengan menemukan calcs lain) tetapi panjang dan membosankan untuk mengukur jumlah byte Anda setiap kali Anda melakukan modifikasi.

Tolong beritahu saya jika saya salah di mana saja.

V. Courtois
sumber
1
Jawaban ArnoldC terbaik yang pernah saya lihat.
Magic Gurita Guci
1
@MagicOctopusUrn terima kasih xD, ini adalah percobaan pertama saya pada bahasa ini (¿¿??!?!? Masih belum yakin itu salah satu)
V. Courtois
github.com/samshadwell/TrumpScript adalah "bahasa" lain yang tidak ada gunanya jika Anda ingin meniru presiden Amerika Serikat.
Magic Gurita Guci
@ MagicOctopusUrn yah ima melakukan tantangan ini di trumpscript kemudian.
V. Courtois
1
Jadi saya menemukan ArnoldC mendukung output unicode dan mencukur tambahan 2 byte. Saya telah mempostingnya secara terpisah (dengan pengakuan)
TemporalWolf
8

Python 2, 11 byte, jumlah 838 (ASCII)

print 76**8

cetakan

1113034787454976

Tidak terlalu pintar tapi berhasil

Cobalah online!

gkardo
sumber
Jawaban pertama yang bagus; selamat datang di situs ini! Saya dapat memverifikasi bahwa jumlah ASCII benar .
MD XF
Ini adalah poligot, ia juga berfungsi di Groovy, sangat mengesankan.
Magic Gurita Guci
2
Jawaban yang bagus, tetapi bukankah output memiliki linefeed tambahan yang harus ditambahkan?
Pasang kembali Monica
Ini juga berfungsi di ruby
Alexis Andersen
7

Jelly, 12 byte, jumlah 948 (SBCS)

Kamu berkata:

Jelly, 12 byte

maka itu Jelly, 12 byte.

\
³³³,: D +++

Sangat menyenangkan, karena saya tidak tahu Jelly sama sekali.

Bagaimana itu bekerja

Saya tidak tahu. Tetapi ³apakah menempatkan 100 dalam tumpukan, ,meletakkan tumpukan dalam array atau sesuatu, :mungkin menyatukan hal itu sambil Dmendaftar setiap huruf dari angka terakhir (yang tidak ada), dan +++ adalah untuk bersenang-senang. Baris pertama dan terakhir tidak mempengaruhi output :)

Cobalah secara Online!

Gunakan ini untuk menghitung.

V. Courtois
sumber
4
"Aku tahu apa ³dan apa D, tetapi jangan tanya aku apa pun yang dilakukan WTF." - Ini juga akan menjadi tulisan saya jika saya melakukan jawaban Jelly.
Magic Gurita Guci
6

CJam / Japt / bc, 2 byte, jumlah 97 (ASCII)

A

Cobalah Online (CJam), Cobalah Online (Japt) (terima kasih @shaggy),

Versi bc bekerja pada baris perintah, tetapi tidak pada TIO.

Keluaran 10

Sumber: A+ Space= 65 + 32 = 97

Output: 1+ 0 = 49 + 48 = 97

geokavel
sumber
Ini juga berfungsi di Japt.
Shaggy
Saya tidak berpikir ini bekerja di bc. Semua versi yang saya tahu berkeras pada sebuah trailing newline.
Dennis
@ Dennis Saya baru saja menjalankan bcprogram dan kemudian mengetik A . Haruskah saya menyebutnya bc REPL?
geokavel
5

Secara kubik , 4 byte, jumlah 141 (ASCII)

%44E

Keluaran 3636. Cobalah online! Dan inilah pemeriksa jumlah ASCII yang saya gunakan.

Penjelasan:

  • % berarti 'jumlah cetak wajah sebagai bilangan bulat'.
  • 4 mencetak jumlah semua nilai pada wajah BACK (36) dua kali.
  • E adalah no-op, hanya digunakan untuk mendapatkan jumlah yang diperlukan.
MD XF
sumber
hahaha, ambil upvote saya
Giuseppe
5

Beberapa jawaban ini berisi karakter yang kemungkinan tidak akan terlihat oleh Anda (khususnya ASCII 17), klik tautan TIO untuk melihat penempatannya.

Klein 100/110, 4 byte, jumlah 147

1
@

Cobalah online!

Keluaran:

1 1

Klein 201, 4 byte, jumlah 147

1
@

Cobalah online!

Keluaran:

1 1

Klein (topologi apa saja), 5 byte, jumlah 221 (ASCII)

111@

Cobalah online!

Ini mencetak

1 1 1

Wisaya Gandum
sumber
Terima kasih kepada siapa pun yang baru saja membatalkan ini. Anda membuat saya untuk melihat kedua ini dan sekarang saya sudah sedikit memperbaikinya.
Wheat Wizard
@JoKing saya akan mengatakan posting itu sebagai jawaban Anda sendiri. Cukup cerdas dan lebih dari sekadar peningkatan pada apa yang telah saya lakukan.
Wheat Wizard
4

Java 7, 88 85 byte, jumlah 7808 7617 7507 (ASCII)

class
w{public
static
void
main(String[]H){for(int
B=0;B<77;)System.out.print(B++);}}

Hampir pasti golf. Sangat mudah untuk mengubah karena kami memiliki beberapa variabel cadangan seperti nama kelas dan nama parameter argumen program yang dapat kami ubah secara bebas.

Uji secara online!

Cobalah online!


Java 8, 84 byte, jumlah 7434

Penghargaan untuk Kevin Cruijssen .

interface A{static void main(String[]G){for(int A=59;A-->0;)System.out.print("~");}}

Uji secara online!

Cobalah online!

Menyodok
sumber
Kerja bagus, saya bisa memverifikasi itu berfungsi di sini . Akan memberi +1 tetapi saya kehabisan suara.
MD XF
Mengubahnya ke Java 8 Anda dapat menggunakan ini: interface A{static void main(String[]G){for(int A=59;A-->0;)System.out.print("~");}}untuk golf dengan 4 byte dan turunkan ke 7434 sebagai jumlah. Coba di sini. dan Verifikasi jumlah yang dihasilkan.
Kevin Cruijssen
1
@KevinCruijssen Saya ingin menyimpan jawaban saya di Java 7 tetapi saya telah menambahkan solusi Java 8 Anda ke jawaban saya dan memberi Anda kredit. Jika Anda lebih suka memposting diri sendiri, saya dapat menghapus jawaban Anda dari saya.
Poke
3

Python 2 , 11 byte, jumlah byte 854 (ASCII)

Kode (dengan mengikuti baris baru):

print'z'*7

Output (dengan mengikuti baris baru):

zzzzzzz

Cobalah online!

Anders Kaseorg
sumber
mengapa bagian <code> tidak berfungsi? Maksud saya, saya dapat melihat trailing baris baru pada pratinjau ketika saya mengedit posting Anda, tetapi kami tidak dapat melihatnya di posting.
V. Courtois
@ V.Courtois Perbedaan browser (mis. Berfungsi di Firefox, tidak berfungsi di Chrome). Itu sebabnya saya secara eksplisit menunjukkan baris baru.
Anders Kaseorg
ok, sepertinya itu sesuatu yang harus saya lakukan selanjutnya. Tetapi mengapa bagian kedua bereaksi dengan baik? : o
V. Courtois
3

brainfuck , 3 byte - byte jumlah 255 (ISO-8859-1)

-.¤

Cobalah online!

Membutuhkan sel 8-bit. Mencetak karakter ÿ, yang bernilai 255. ¤adalah no-op untuk mengisi penjumlahan.

musicman523
sumber
3

V , 2 byte, Jumlah 255 (Latin1)

á

Cobalah online!

Hexdump:

00000000: 1ee1                                     ..

Karakter pertama adalah ctrl-^, atau titik kode LATIN1 / ASCII 0x1E. Karakter kedua adalah alt-a, atau karakter LATIN10xE1 . Output program ini ÿ, yaitu0xFF di LATIN1.

Bagaimana cara kerjanya?

Karakter pertama adalah no-op. Itu tidak berpengaruh pada program sama sekali. Karakter kedua adalah perintah menambahkan karakter tunggal . Tapi kami tidak menentukan karakter apa yang akan ditambahkan. Jadi, karena akhiran implisit , ia menambahkan karakter yang digunakan V untuk memberi sinyal program sudah berakhir, yang kebetulan saja demikian 0xFF.

DJMcMayhem
sumber
Jumlah dan codepage?
MD XF
@MDXF Itu saja dalam penjelasan saya ...
DJMcMayhem
3

05AB1E , 5 byte, jumlah 256 (Terjemahan 05AB1E-255)

ΔTnon

Cobalah online!


Output ini: 1606938044258990275541962092341162602522202993782792835301376

Yang mana, menggunakan halaman kode 05AB1E menghasilkan: [1, 6, 0, 6, 9, 3, 8, 0, 4, 4, 2, 5, 8, 9, 9, 0, 2, 7, 5, 5, 4, 1, 9, 6, 2, 0, 9, 2, 3, 4, 1, 1, 6, 2, 6, 0, 2, 5, 2, 2, 2, 0, 2, 9, 9, 3, 7, 8, 2, 7, 9, 2, 8, 3, 5, 3, 0, 1, 3, 7, 6]

Yang mana: 256


Di mana kodenya: ΔTnon

Dengan poin kode: [79, 29, 49, 50, 49]

Yang mana: 256

Guci Gurita Ajaib
sumber
Halaman kode mana ini? Yang ini daftar 1sebagai 49 , bukan 1 .
Dennis
@ Dennis Saya pergi dengan 05AB1E apa pun yang dikembalikan untuk fungsi base(char, 255), saya berasumsi (tampaknya salah) bahwa mereka akan menjadi satu dan sama.
Magic Gurita Guci
3

Taksi , 543 bytes, jumlah 47124 (ASCII)

374 is waiting at Starchild Numerology.Go to Starchild Numerology:w 1 l 2 r 1 l 1 l 2 l.Pickup a passenger going to The Underground.'~' is waiting at Writer's Depot.Go to Writer's Depot:w 1 r 1 l 1 r.Pickup a passenger going to Cyclone.Go to Cyclone:n.[a]Pickup a passenger going to Cyclone.Pickup a passenger going to Post Office.Go to Zoom Zoom:n.Go to Post Office:w 3 l 2 r 1 l.Go to The Underground:n 1 r 1 l.Switch to plan "R" if no one is waiting.Pickup a passenger going to The Underground.Go to Cyclone:n 3 l 2 l.Switch to plan "a".[R]

Cobalah online! ( Verifikasi skor )

Outputnya adalah 374 tildes ~.

Toast insinyur
sumber
3

Mathematica, 2 byte, jumlah = 101 (ASCII)

E + Space mengembalikan e

E 

Mathematica, 2 byte, jumlah = 105 (ASCII)

itu bekerja untuk saya juga

I + Space mengembalikan i

I 
J42161217
sumber
2

Brain-Flak (Rain-Flak) , 79 byte

(((((((((((((((((((((((((((((((((()()()()){}){})))))))))))))))))))))))))))))))

Cobalah online!

Ini mencetak 16 dan baris baru 31 kali.

Brain-Flak (BrainHack) , 55 byte

(((((((((((((((((((((()()()()){}){})))))))))))))))))))#

Cobalah online!

Ini mencetak 16 dan spasi 18 kali.

Juga 55 byte

((((((((((((((((((((((()()()){}){}))))))))))))))))))))

Cobalah online!

Cetakan ini 12diikuti oleh spasi 19 kali.

Wisaya Gandum
sumber
Jumlah dan codepage?
MD XF
@ MDXF Saya tidak ingat jumlahnya tetapi semuanya ascii.
Wheat Wizard
Yang kedua dan ketiga tampaknya tidak benar (mereka mencetak 19 dan 20 kali string yang disebutkan), meskipun Anda dapat memperbaiki keduanya, lihat di sini .
ბიმო
2

Cubix , 20 byte, jumlah titik kode 1505

OuOOQ++OOOOU@>!OOO<

Berisi karakter yang tidak patut dicetak DEL (ascii 127).

Qmendorong "(konstanta terbesar yang tersedia di cubix), lalu berulang kali mencetak ( O) 68atau 102cukup waktu untuk mencapai 686868686868681021021021021021505; melalui beberapa trial and error saya menyadari bahwa saya membutuhkan 81 poin lebih banyak daripada. (a Cubix no-op dan ASCII 46) yang mengakibatkan membutuhkan DEL, yang masih no-op di Cubix.

Cobalah online!

Di sebuah kubus:

    O u
    O O
Q + + O O O O U
@ > ! O O O  <
    . .
    . .
Giuseppe
sumber
1
Saya melihat "Cubix" dan membaca " Cubically ", harus mencari tahu sebelum saya memberi Anda hadiah ... sigh +1 +1
MD XF
Tantangan @MDXF diterima
Giuseppe
2

dc, 7 byte, jumlah 720 (ASCII)

[my]fff

(91 + 109 + 121 + 93 + (102 * 3) = 720)

Output:

my
my
my

((109 + 121 + 10) * 3 = 720)

brhfl
sumber
2

Wortel , 4 byte, jumlah = 279 (ASCII)

]^*2

Cobalah online!

Cetakan ]]] .

Kritixi Lithos
sumber
Jauh di depan saya dalam hal ini. Aku berada di tempat yang dekat untuk mendapatkan jumlah yang benar.
TheLethalCoder
@TheLethalCoder Jumlah ASCII ^*3adalah 187, jadi saya mencoba memecahkan x+187=4x, tetapi itu tidak menghasilkan solusi integer. Jadi saya pergi ke ^*2, yang memiliki saya 186+x=3xyang memberi saya xsebagai 93, titik kode ]. Hanya itu yang saya lakukan :)
Kritixi Lithos
Ah cara cerdas untuk melakukannya :)
TheLethalCoder
Saya berasumsi bahwa itu ¹^*1juga berhasil. Jika saya melakukan matematika saya dengan benar itu. Meskipun itu adalah nilai unicode bukan utf8.
TheLethalCoder
@TheLethalCoder Saya kira itu tergantung pada pengkodean, karena Wortel menggunakan ASCII secara default.
Kritixi Lithos
2

Secara kubik , 3 byte, jumlah = 105 (ASCII)

%4

Byte ketiga adalah DLE , yang memiliki titik kode 16 , sehingga jumlah titik kode dari kode sumber adalah
37 + 52 + 16 = 105 .

Program mencetak

36

yang jumlah poin kodenya adalah 51 + 54 = 105 .

Cobalah online!

Dennis
sumber
* mengimplementasikan DLE * maaf, tidak valid. : P +1
MD XF
Oh, saya tidak melihat solusi Cubically lain di sini. Aduh!
TehPers
2

Cubix , 11 byte, jumlah byte 954 (ASCII)

Kode:

vOw~N(!@O^|

Keluaran:

998877665544332211

Diverifikasi di sini!

Cobalah online!

Kubus:

    v O
    w ~
N ( ! @ O ^ | .
. . . . . . . .
    . .
    . .
  • N menginisialisasi tumpukan dengan 10
  • (! pengurangan dan uji kebenaran
    • @ pada penghentian nol
  • O^O output nomor saat ini dialihkan ke permukaan atas dan output lagi
  • vwredirect kembali ke (decrement untuk memulai loop lagi

Lihat saja

MickyT
sumber
1

Sekam , 4 byte, jumlah 334 ( Sekam SBCS )

up63

Keluaran:

[3,7]

Nilai digit diberikan oleh 0x3?(di mana ?singkatan digit itu) dan u, p, [, ], ,telah nilai-nilai 0x75, 0x70, 0x5b, 0x5d, 0x2c- sehingga jumlah adalah:

0x75 + 0x70 + 0x36 + 0x33        = 0x14e
0x5b + 0x33 + 0x2c + 0x37 + 0x5d = 0x14e

Cobalah online!

ბიმო
sumber
1

JavaScript (ES6), 6 byte, jumlah = 385 (ASCII)

Y=>1E7

Keluaran 10000000. Ada jawaban 6 byte lainnya seperti h=>1e8. Coba penghitung titik kode ini:

<input oninput=o.textContent=[...this.value].reduce(function(s,c){return(s+c.charCodeAt())},0)><pre id=o>0

Neil
sumber
1

cQuents , 5 byte, jumlah 238 (ASCII)

#3::$

Keluaran 1,2,3, atau dalam istilah cQuents, mencetak tiga istilah pertama dari urutan1,2,3,4,5,6... .

Sekarang dengarkan. Ini, secara harfiah, program pertama yang saya coba. Alasan saya mencobanya adalah karena ini adalah program yang saya gunakan untuk Output dengan panjang yang sama dengan kode . Dan itu sangat berhasil.

Cobalah online!

Stephen
sumber
1

Gaia , 4 byte, jumlah 176 ( SBCS )

6 5%

Penjelasan

Dalam codepage Gaia, linefeed memiliki titik kode x7F (127 dalam desimal). Karakter ASCII yang dapat dicetak memiliki titik kode yang sama dengan ASCII.

Ini menghitung 6 modulo 5, yaitu 1, dan dicetak 1dengan linefeed baris tambahan.

Nilai byte dari karakter dalam codepage (dalam desimal):

6 5%: 54 + 32 + 53 + 37 = 176

1: 49 + 127 (linefeed) = 176

Kucing Bisnis
sumber
1

Trumpscript, 131 byte, jumlah 10600 (ASCII)

They wants to make war 110000000;make dark 10000000;as long as,dark less war;:make dark,dark plus 1000000;say "00"!america is great

Apakah ini kehidupan nyata?

Periksa dengan ini .

Terima kasih @MagicOctopusUrn karena memberi tahu saya bahwa ada

V. Courtois
sumber