Quine suma kodowa

20

Wszystkie wyzwania na tej stronie dotyczą liczby bajtów lub samych postaci. Ten jest inny. Wyzwanie polega na napisaniu programu, który generuje dane wyjściowe, które mają sumę punktów kodowych identyczną z sumą punktów kodowych źródła.

Aby wygenerować sumę punktu kodowego:

  1. Znajdź wartości znaków w zestawie znaków programu.
    Na przykład - FOOw ASCII: F= 70, O= 79, O= 79
  2. Dodaj je wszystkie razem.
    Suma punktów kodowych FOOw ASCII: F+ O+ O= 70 + 79 + 79 = 228.

Przykładem sumy sum ASCII byłoby, gdyby kod źródłowy był, ABCa wynik był !!!!!!. Jest tak, ponieważ suma wartości ASCII źródła ( A= 65, B= 66, C= 67, suma = 198) jest taka sama jak suma wartości ASCII na wyjściu ( != 33, 33 * 6 = 198) . BBBbyłyby również prawidłowe dane wyjściowe, podobnie jak cc.

Zasady

  • Twój program nie może być odwrócony, tasowany, błędny ani żadnego innego rodzaju „prawdziwej” quine. Aby rozwinąć: Jeśli dane wyjściowe zawierają wszystkie te same znaki co źródło, są niepoprawne.
  • Twój program nie może używać żadnych błędów / ostrzeżeń z kompilatora / interpretera jako danych wyjściowych.
  • Źródło twojego programu musi używać tej samej strony kodowej co dane wyjściowe.
  • Twój program może używać dowolnej strony kodowej utworzonej przed tym wyzwaniem.
  • Dane wyjściowe programu nie mogą zawierać żadnych niedrukowalnych znaków (np. ASCII od 0 do 31 lub więcej niż 127) poza liniami i tabulatorami.
  • Obowiązują standardowe luki.
  • Jeśli źródło i / lub dane wyjściowe mają końcowe podawanie linii, musi zostać uwzględnione w sumie punktów kodowych.
  • Flagi kompilatora muszą być uwzględnione w końcowej liczbie bajtów (wynik), ale nie suma punktów kodowych źródła.
  • Wyjście / źródło nie może być puste.

Punktacja

Najkrótsza odpowiedź w liczbie bajtów (nie suma punktów kodowych) wygrywa. Proszę użyć tego formatu nagłówka odpowiedzi:

# Jelly, 12 bytes, sum 56 (SBCS)

Możesz użyć tego narzędzia do obliczenia sum ASCII.

Odniesienie

Oto kilka przydatnych odniesień do strony kodowej.

MD XF
źródło
Czy komentarze są dozwolone?
musicman523
@ musicman523 tak, tak myślę.
MD XF,
Dlaczego nie wolno ostrzec? Czuję, że to niepotrzebne.
Conor O'Brien
1
@ ConorO'Brien Ostrzeżenia nie mogą być danymi wyjściowymi programu, np. Brak znaków błędu. Myślę, że to niejasne, jedna minuta.
MD XF,
Jakie są zasady dotyczące flag?
Okx,

Odpowiedzi:

24

Siatkówka , 1 bajt, suma = 58 (ASCII)

:

To zlicza dopasowania z :wejścia ( 0 ), więc drukuje

0

Punkty kodowe :, 0i linii (znak LF) wynosi 58 , 48 i 10 (odpowiednio), a 58 = 48 + 10 .

Wypróbuj online!

Dennis
źródło
14

ArnoldC, 316 bajtów, suma 20992 (ASCII)

Dość zabawy.

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

Użyłem tego i tego do moich obliczeń. Zajęło mi to półtorej godziny. Ale fajnie.

Wypróbuj online!

Jak to działa

STICK AROUNDto pętla, która zapętla 2048indeks razy iaV, ale ten indeks przechodzi obok 8. Są więc 256pętle, drukowanie Hi podawanie linii (72 + 10 = 82, 82 * 256 = 20992).

To wciąż BARDZO golfable (poprzez znalezienie innych Calcs), ale to jest długi i nudny do pomiaru bajt sumy za każdym razem zrobić modyfikację.

Poinformuj mnie, jeśli się mylę.

V. Courtois
źródło
1
Najlepsza odpowiedź Arnolda, jaką widziałem.
Magic Octopus Urn
1
@MagicOctopusUrn dzięki xD to moja pierwsza próba w tym języku (¿¿??!??? Wciąż nie jestem pewien, czy to jeden)
V. Courtois
github.com/samshadwell/TrumpScript to kolejny bezsensowny „język”, jeśli chcesz naśladować prezydenta USA.
Magic Octopus Urn
@MagicOctopusUrn dobrze robię to wyzwanie w trumpscript.
V. Courtois,
1
Dowiedziałem się, że ArnoldC obsługuje wyjście Unicode i zgoliłem dodatkowe 2 bajty. Wysłałem go osobno (za potwierdzeniem)
TemporalWolf
8

Python 2, 11 bajtów, suma 838 (ASCII)

print 76**8

odbitki

1113034787454976

Nie bardzo sprytne, ale działa

Wypróbuj online!

gkardos
źródło
Świetna pierwsza odpowiedź; witamy na stronie! Mogę sprawdzić, czy suma ASCII jest poprawna .
MD XF,
To poligon, działa również w Groovy, bardzo imponujące.
Magic Octopus Urn
2
Świetna odpowiedź, ale czy dane wyjściowe nie mają końcowego przewodu, który należy dodać?
Przywróć Monikę
Działa to również w rubinach
Alexis Andersen
7

Galaretka, 12 bajtów, suma 948 (SBCS)

Powiedziałeś:

Galaretka, 12 bajtów

to jest galaretka, 12 bajtów.

\
³³³:: D +++

Było fajnie, ponieważ w ogóle nie znam Jelly.

Jak to działa

Nie mam pojęcia Ale ³umieszcza 100 na stosie, ,umieszcza stos w tablicy lub czymś :innym , może łączyć rzeczy, podczas gdy Dwyświetla każdą literę ostatniej cyfry (która nie istnieje), a +++ są dla zabawy. Pierwszy i ostatni wiersz nie wpływa na wynik :)

Wypróbuj online!

Użyłem tego do policzenia.

V. Courtois
źródło
4
„Wiem co ³i Drobię, ale nie pytaj mnie WTF o cokolwiek innego.” - Byłbym to również mój napis, gdybym zrobił odpowiedź na galaretkę.
Magic Octopus Urn
6

CJam / Japt / bc, 2 bajty, suma 97 (ASCII)

A

Wypróbuj online (CJam), Wypróbuj online (Japt) (dzięki @shaggy),

Wersja bc działa w wierszu poleceń, ale nie w TIO.

Wyjścia 10

Źródło: A+Space = 65 + 32 = 97

Wyjście: 1+ 0 = 49 + 48 = 97

geokavel
źródło
Działa to również w Japt.
Kudłaty
Nie sądzę, że to działa w BC. Wszystkie znane mi wersje nalegają na wprowadzenie nowej linii.
Dennis
@Dennis Właśnie uruchomiłem bcprogram, a następnie wpisałem A . Czy powinienem to nazwać bc REPL?
geokavel
5

Sześciennie , 4 bajty, suma 141 (ASCII)

%44E

Wyjścia 3636. Wypróbuj online! A oto sprawdzanie sumy ASCII, którego użyłem.

Wyjaśnienie:

  • % oznacza „wydrukuj sumę twarzy jako liczbę całkowitą”.
  • 4 drukuje dwa razy sumę wszystkich wartości na BACK face (36).
  • E to brak operacji, po prostu używany do uzyskania wymaganej kwoty.
MD XF
źródło
hahaha, weź moje głosowanie
Giuseppe,
5

Niektóre z tych odpowiedzi zawierają znaki, które prawdopodobnie będą dla ciebie niewidoczne (szczególnie ASCII 17), kliknij łącza TIO, aby zobaczyć ich położenie.

Klein 100/110, 4 bajty, suma 147

1
@

Wypróbuj online!

Wynik:

1 1

Klein 201, 4 bajty, suma 147

1
@

Wypróbuj online!

Wynik:

1 1

Klein (dowolna topologia), 5 bajtów, suma 221 (ASCII)

111@

Wypróbuj online!

To drukuje

1 1 1

Post Rock Garf Hunter
źródło
Podziękowania dla każdego, kto właśnie głosował to nieoczekiwanie. Sprawiłeś, że spojrzałem na to jeszcze raz, a teraz trochę go poprawiłem.
Post Rock Garf Hunter,
@JoKing Powiedziałbym, że opublikuj to jako własną odpowiedź. Jest dość inteligentny i jest czymś więcej niż tylko ulepszeniem tego, co zrobiłem.
Post Rock Garf Hunter,
4

Java 7, 88 85 bajtów, suma 7808 7617 7507 (ASCII)

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

Prawie na pewno gra w golfa. Jest to dość łatwe do poprawienia, ponieważ mamy kilka zapasowych zmiennych, takich jak nazwa klasy i nazwa parametru argumentów programu, które możemy dowolnie zmieniać.

Przetestuj online!

Wypróbuj online!


Java 8, 84 bajty, suma 7434

Zasługa Kevin Cruijssen .

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

Przetestuj online!

Wypróbuj online!

Szturchać
źródło
Dobra robota, mogę sprawdzić, czy tu działa . Daje +1, ale nie mam głosów.
MD XF,
Konwertując go na Javę 8, możesz użyć tego: interface A{static void main(String[]G){for(int A=59;A-->0;)System.out.print("~");}}do gry w golfa o 4 bajty i obniżenia do 7434 jako sumy. Wypróbuj tutaj. i Sprawdź wynikową sumę.
Kevin Cruijssen
1
@KevinCruijssen Chciałbym zachować swoją odpowiedź w Javie 7, ale dodałem twoje rozwiązanie Java 8 do mojej odpowiedzi i wyraziłem uznanie. Jeśli wolisz napisać siebie, mogę usunąć twoją odpowiedź.
Poke
3

Python 2 , 11 bajtów, suma bajtów 854 (ASCII)

Kod (z końcowym znakiem nowej linii):

print'z'*7

Wyjście (z końcowym znakiem nowej linii):

zzzzzzz

Wypróbuj online!

Anders Kaseorg
źródło
dlaczego sekcja <kod> nie działa? Mam na myśli, że widzę końcowy znak nowej linii na podglądzie, gdy edytuję twój post, ale nie widzimy go w poście.
V. Courtois,
@ V.Courtois Różnice w przeglądarce (np. Działa w przeglądarce Firefox, nie działa w przeglądarce Chrome). Dlatego wyraźnie wskazałem nowy wiersz.
Anders Kaseorg
ok, wygląda na to, że będę musiał to zrobić dalej. Ale dlaczego druga sekcja reaguje dobrze? : o
V. Courtois,
3

pieprzenie mózgu , 3 bajty - suma bajtów 255 (ISO-8859-1)

-.¤

Wypróbuj online!

Wymaga 8-bitowych komórek. Drukuje znak ÿ, który ma wartość 255. ¤Nie ma możliwości uzupełnienia sumy.

musicman523
źródło
3

V , 2 bajty, suma 255 (Latin1)

á

Wypróbuj online!

Hexdump:

00000000: 1ee1                                     ..

Pierwszym znakiem jest ctrl-^lub kod-LATIN1 / ASCII 0x1E. Drugi znak to alt-alub LATIN1 0xE1. Ten program generuje dane ÿ, które znajdują się 0xFFw LATIN1.

Jak to działa?

Pierwsza postać to brak akcji. Nie ma to żadnego wpływu na program. Drugi znak to polecenie jednoznakowe . Ale nie określamy, jaki znak należy dołączyć. Tak więc, z powodu niejawnych zakończeń , dołącza znak, którego V używa do sygnalizowania, że ​​program się zakończył, tak się składa 0xFF.

DJMcMayhem
źródło
Suma i strona kodowa?
MD XF,
@MDXF To wszystko w moim wyjaśnieniu ...
DJMcMayhem
3

05AB1E , 5 bajtów, suma 256 (05AB1E Base-255 Translation)

ΔTnon

Wypróbuj online!


To daje: 1606938044258990275541962092341162602522202993782792835301376

Co przy użyciu strony kodowej 05AB1E powoduje: [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]

Który jest: 256


Gdzie jest kod: ΔTnon

Z punktami kodowymi: [79, 29, 49, 50, 49]

Który jest: 256

Urna Magicznej Ośmiornicy
źródło
Która to strona kodowa? Ten jest wymieniony 1jako 49 , a nie 1 .
Dennis
@Dennis Poszedłem z tym, co zwróciło 05AB1E dla funkcji base(char, 255), założyłem (pozornie niepoprawnie), że będą one takie same.
Magic Octopus Urn
3

Taxi , 543 bajty, suma 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]

Wypróbuj online! ( Weryfikacja wyniku )

Dane wyjściowe to 374 tyld ~.

Inżynier Toast
źródło
3

Matematyka, 2 bajty, suma = 101 (ASCII)

E + spacja zwraca e

E 

Matematyka, 2 bajty, suma = 105 (ASCII)

to też działa dla mnie

I + Space zwraca ja

I 
J42161217
źródło
2

Brain-Flak (Rain-Flak) , 79 bajtów

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

Wypróbuj online!

Zostanie wydrukowany 16i nowy wiersz 31 razy.

Brain-Flak (BrainHack) , 55 bajtów

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

Wypróbuj online!

To drukuje 16i spacja 18 razy.

Również 55 bajtów

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

Wypróbuj online!

Odbitki, 12po których następuje spacja 19 razy.

Post Rock Garf Hunter
źródło
Suma i strona kodowa?
MD XF,
@MDXF Nie pamiętam sum, ale wszystkie są ascii.
Post Rock Garf Hunter,
Drugi i trzeci nie wydają się poprawne (drukują 19 i 20 razy wspomniany ciąg), choć możesz je naprawić, patrz tutaj .
ბიმო
2

Cubix , 20 bajtów, suma kodu 1505

OuOOQ++OOOOU@>!OOO<

Zawiera drukowalny znak DEL (ascii 127).

Qwypycha "(największa stała dostępna w cubix), a następnie wielokrotnie drukuje ( O) 68lub 102wystarczająco dużo razy, aby uzyskać 686868686868681021021021021021505; przez niektóre próby i błędy zdałem sobie sprawę, że potrzebuję 81 punktów więcej niż .(Cubix no-op i ASCII 46), co spowodowało, że potrzebowałemDEL , co wciąż jest brakiem oparcia w Cubix.

Wypróbuj online!

Na sześcianie:

    O u
    O O
Q + + O O O O U
@ > ! O O O  <
    . .
    . .
Giuseppe
źródło
1
Widziałem „Cubix” i czytałem „ Cubically ”, musiałem się złapać, zanim dałem ci nagrodę ... westchnienie +1
MD XF
Przyjęte wyzwanie @MDXF
Giuseppe,
Beat you: P
MD XF
2

dc, 7 bajtów, suma 720 (ASCII)

[my]fff

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

Wyjścia:

my
my
my

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

brhfl
źródło
2

Marchew , 4 bajty, suma = 279 (ASCII)

]^*2

Wypróbuj online!

Wydruki ]]].

Kritixi Lithos
źródło
Daleko przede mną w tym. Nie byłem blisko uzyskania poprawnej sumy.
TheLethalCoder
@TheLethalCoder Suma ASCII ^*3wynosiła 187, więc próbowałem rozwiązać x+187=4x, ale nie dało to rozwiązań całkowitoliczbowych. Więc poszedłem do ^*2, które mają mnie, 186+x=3xktóry dał mi xjako 93punkt kodowy ]. To wszystko, co zrobiłem :)
Kritixi Lithos
Ach, sprytny sposób to zrobić :)
TheLethalCoder
Zakładam, że to ¹^*1też działa. To znaczy, jeśli poprawnie wykonałem matematykę. Chociaż jest to wartość Unicode, a nie utf8.
TheLethalCoder
@TheLethalCoder Przypuszczam, że zależy to od kodowania, ponieważ Carrot domyślnie używa ASCII.
Kritixi Lithos
2

Sześciennie , 3 bajty, suma = 105 (ASCII)

%4

Trzeci bajt to DLE , który ma kod 16 , więc suma kodu źródłowego to
37 + 52 + 16 = 105 .

Program zostanie wydrukowany

36

którego suma punktów kodowych wynosi 51 + 54 = 105 .

Wypróbuj online!

Dennis
źródło
* implementuje DLE * przepraszam, nieważne. : P +1
MD XF
Och, nie widziałem tutaj innego rozwiązania Cubically. Ups!
TehPers
2

Cubix , 11 bajtów, suma bajtów 954 (ASCII)

Kod:

vOw~N(!@O^|

Wynik:

998877665544332211

Zweryfikowano tutaj!

Wypróbuj online!

Cubified:

    v O
    w ~
N ( ! @ O ^ | .
. . . . . . . .
    . .
    . .
  • N inicjuje stos za pomocą 10
  • (! spadek i test na prawdziwość
    • @ na zero zatrzymania
  • O^O numer prądu wyjściowego przekierowuje na górną powierzchnię i wysyła ponownie
  • vwprzekieruj z powrotem do (dekrementacji, aby ponownie rozpocząć pętlę

Zobacz, jak biegnie

MickyT
źródło
1

Husk, 4 bytes, sum 334 (Husk SBCS)

up63

Output:

[3,7]

The value of a digit is given by 0x3? (where ? stands for that digit) and u,p,[,],, have values 0x75,0x70,0x5b,0x5d,0x2c - thus the sums are:

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

Try it online!

ბიმო
źródło
1

JavaScript (ES6), 6 bytes, sum = 385 (ASCII)

Y=>1E7

Outputs 10000000. There are other 6 byte answers such as h=>1e8. Try this code point counter:

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

Neil
źródło
1

cQuents, 5 bytes, sum 238 (ASCII)

#3::$

Outputs 1,2,3, or in cQuents terms, prints the first three terms of the sequence 1,2,3,4,5,6....

Now listen. This was, literally, the first program I tried. The reason I tried it was because this was the program I used for Output with the same length as code. And it freaking worked.

Try it online!

Stephen
źródło
1

Gaia, 4 bytes, sum 176 (SBCS)

6 5%

Explanation

In Gaia's codepage, linefeed has a code point of x7F (127 in decimal). Printable ASCII characters have the same code point as in ASCII.

This computes 6 modulo 5, which is 1, and prints 1 with a trailing linefeed.

Byte values of the characters in the codepage (in decimal):

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

1: 49 + 127 (linefeed) = 176

Business Cat
źródło
1

Trumpscript, 131 bytes, sum 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

Is this real life?

Check with this.

Thanks @MagicOctopusUrn for telling me that exists.

V. Courtois
źródło