ความแตกต่างไม่ควรสร้างความแตกต่าง


40

เมื่อเร็ว ๆ นี้ บริษัท ของคุณได้จ้างsysadmins ที่อุทิศตนจำนวนมากใหม่ พวกเขารู้สึกว่าการดูหน้าจอคอมพิวเตอร์ค่อนข้าง จำกัด (ฉันหมายถึงอัตราการรีเฟรช 60Hz นั้นไม่เพียงพอ) ดังนั้นพวกเขาจึงเชื่อมต่อบัสข้อมูล CPU กับ DAC และเล่นผ่านลำโพงผ่านห้องเซิร์ฟเวอร์เพื่อให้พวกเขาได้ยิน ถึง 20kHz ปัญหาหนึ่ง: พวกเขาดูแลระบบไม่ใช่วิศวกรไฟฟ้าและการตั้งค่าลำโพงจะแตก พวกเขาคิดว่าสิ่งนี้เกิดจากการเปลี่ยนแปลงอย่างกระทันหันของค่าไบต์ในรหัสที่วิศวกรซอฟต์แวร์รวบรวมในเมนเฟรม sysadmins กำลังจัดการแข่งขันเล็กน้อยเพื่อดูว่าใครสามารถสร้างรหัสที่อ่อนโยนที่สุดสำหรับการตั้งค่าลำโพงของพวกเขา

ท้าทาย

ภารกิจของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นในภาษาที่เลือกซึ่งมีความแตกต่างกันน้อยที่สุดระหว่างไบต์ติดต่อกัน (ดูที่ส่วนการคำนวณ) โปรแกรมนี้จะมีหน้าที่คำนวณคะแนนของตัวเอง

อินพุต

สตริง ASCII บนstdinหรือใกล้เคียงที่สุดกับภาษาของคุณหรือเป็นฟังก์ชันอินพุตหากคุณกำลังสร้างฟังก์ชั่น เนื่องจากโปรแกรมของคุณจะต้องใช้เป็นข้อมูลป้อนเข้าในการคำนวณคะแนนของคุณโปรแกรมของคุณควรสนับสนุน Unicode หากมี Unicode ใด ๆ มิฉะนั้น ASCII ก็เพียงพอแล้ว อินพุตสามารถสันนิษฐานได้ว่ามีความยาวอย่างน้อย 2 ไบต์

การคำนวณ

อักขระแต่ละตัวของสตริงจะถูกแปลงให้เทียบเท่ากับตัวเลขโดยใช้มาตรฐาน ASCII จากนั้นความแตกต่างระหว่างตัวละครทุกตัวก่อนอื่นจะต้องยืดแล้วสรุป ยกตัวอย่างเช่นสตริงจะได้รับคะแนนของabd1²+2²=5

เอาท์พุต

ผลลัพธ์จะเป็นชื่อเรื่องที่คุณป้อน ซึ่งหมายความว่าควรจะได้รับการเติมโดย#หรือต่อท้ายด้วยการขึ้นบรรทัดใหม่และ-(เส้นประ) จากนั้นควรส่งชื่อภาษาการเขียนโปรแกรมของคุณตามด้วยเครื่องหมายจุลภาคช่องว่างแล้วจำนวนเต็มแทนผลลัพธ์ของการคำนวณ ตัวอย่างเช่น

#C++, 98

จะเป็นผลลัพธ์ที่ถูกต้อง ควรให้ผลลัพธ์stdoutหรือภาษาของคุณที่ใกล้เคียงที่สุดหรือเป็นค่าตอบแทนในการทำงานของคุณ

เกณฑ์การให้คะแนน

คะแนนของคุณจะเป็นค่าที่คำนวณได้โดยโปรแกรมของคุณโดยที่โปรแกรมนั้นเป็นอินพุต

แก้ไข: ควรจัดการกับบรรทัดใหม่ตอนนี้ขออภัยก่อนหน้านี้คน

นี่คือสคริปต์ Pyth เพื่อตรวจสอบการคำนวณคะแนน


1
โปรแกรมจะต้องตีความสิ่งอื่นใดนอกจากรหัสของตัวเองหรือไม่ และเพื่ออธิบายให้ชัดเจนตัวละครสองตัวที่ต่อเนื่องกันมีค่าเป็น 0?
Daniel M.

10
เอ่อ
bopjesvla

1
@bopjesvla ดี สตริงโดยพลการ แต่คุณอาจสันนิษฐานได้ว่าพวกมันเหมาะสมกับจักรวาล หรือบนคอมพิวเตอร์ของคุณสำหรับเรื่องนั้น
Sanchises

11
คนแรกที่สร้างคำตอบที่ถูกต้องในUnaryชนะ!
ETHproductions

3
สายเกินไปแล้ว แต่ตัวเลือกหนึ่งในการป้องกันคำตอบแบบยูนารีก็คือการกำหนดความแตกต่างระหว่างตัวละครที่เท่ากันเป็น 1 และจะทำให้ตรรกะน่าสนใจยิ่งขึ้นอีกเล็กน้อย
Reto Koradi

คำตอบ:


19

CJam, 1051 827 643 569 545 407 327 279 235 233 229

''"','#'C'J'a'm',' qYew::-Yf#:+e#'''''''''"
f{-ci'(*''2*\}'^,40>"*/:N"-"][ZZ[\^__`bcdgimpstsz{}~~~"

โปรแกรมด้านบนสร้างซอร์สโค้ดจริงซึ่งมีความยาว 1,179,112 ไบต์

การทดสอบ

การใช้ล่าม Javaซอร์สโค้ดสามารถสร้างและทดสอบดังนี้:

$ alias cjam='java -jar cjam-0.6.5.jar'
$ cjam gen.cjam > diff.cjam
$ cksum diff.cjam 
896860245 1179112 diff.cjam
$ cjam diff.cjam < diff.cjam
#CJam, 229

รุ่นอื่น

ด้วยค่าใช้จ่าย 36 คะแนน - สำหรับคะแนนสุดท้าย265 - เราสามารถทำให้ซอร์สโค้ดสั้นลง 99.92%:

'''()))))(''''(((('''())))))))))))))))))))))))))))('''()))))))))))))))))))))))))))))))))))('''())))))))))))))))))))))))))))))))))))))))))))))))))))))))))('''())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('''()))))(''''((((((('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))('()))))))))))))))))))('()))))))))))))))))))('())))))('())))))))))))))))))))))))))))))))))))))))))))))))))('()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(''(((('()))))))))))))))))))('())))('())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(''((((''''''''''''''''''()+,-.0123456789;<=>?@ABCDEFGHIJKLMOPQRSTUVWXYZ[\]][ZZ[\^__`bcdgimpstsz{}~~~

คุณสามารถลองรุ่นนี้ออนไลน์ในล่าม CJam

ความคิด

เราต้องการรันโค้ด

'#'C'J'a'm',' qYew::-Yf#:+

ทำให้คะแนนต่ำที่สุด เพื่อให้บรรลุสิ่งนี้เราจะสร้างตัวอักษรสตริงโดยตัวละคร (ไม่กี่ตัวเลือกก่อนและหลัง) และประเมินผล

โชคดีที่'(ตัวอักษรผลักดันตัวอักษร), ((ลดลง) และ)(เพิ่มขึ้น) เป็นตัวอักษร ASCII ติดต่อกันดังนั้นการผลักดันตัวอักษรโดยพลการค่อนข้างมีราคาไม่แพง

  • อักขระ ASCII หลังจาก'สามารถถูกพุชเป็น'()…)(โดยที่จำนวน)ขึ้นอยู่กับจุดโค้ด

    ยกตัวอย่างเช่นสามารถผลักดันเป็น+ '())))(ระยะห่างระหว่าง'และ(และ(และ)คือ 1 การลากต่อท้าย)(จะยกเลิกกันและกัน ฟังก์ชั่นเดียวของพวกเขาคือการปูทางสำหรับการดังต่อไปนี้'(ตรงกับตัวอักษรถัดไป) ที่มีตัวอักษรต่อเนื่อง

    ตัวละครที่ถูกผลักในแบบนี้จะเพิ่มคะแนน 4 คะแนน

  • อักขระ ASCII ก่อน'สามารถถูกพุชเป็น''(…(โดยที่จำนวน(ขึ้นอยู่กับจุดโค้ด

    ยกตัวอย่างเช่นสามารถผลักดันเป็น# ''((((ระยะห่างระหว่าง'และ(คือ 1

    ตัวละครที่ถูกผลักในแบบนี้จะเพิ่มคะแนน 2 คะแนน

  • ''(…(ใช้งานได้จริงสำหรับอักขระ ASCII ทั้งหมดเนื่องจากตัวละครกว้าง 16 บิตและล้อมรอบ ตัวอย่างเช่น+สามารถผลักดันเป็น''แล้วตามด้วย 65,532 (s

    เทคนิคนี้ใช้ในรหัสเวอร์ชัน 1.2 เมกะไบต์

  • ตัวละคร'สามารถผลักเป็น''ปล่อยให้คะแนนไม่สะทกสะท้าน

รหัส

e# Push these characters on the stack: ','#'C'J'a'm',' qYew::-Yf#:+e#'''''''''

''
'()))))(
''
''((((
''
'())))))))))))))))))))))))))))(
''
'()))))))))))))))))))))))))))))))))))(
''
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''
'()))))(
''
''(((((((
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
'()))))))))))))))))))(
'()))))))))))))))))))(
'())))))(
'())))))))))))))))))))))))))))))))))))))))))))))))))(
'()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''((((
'()))))))))))))))))))(
'())))(
'())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(
''((((
''
''
''
''
''
''
''
''
''()

+                         e# Concatenate the two topmost single quotes.
,                         e# Push the length of the resulting string (2).
-.0123456789              e# Push that number.
;                         e# Discard it from the stack.
<                         e# Compare a single quote with 2. Pushes 0.
=                         e# Compare a single quote with 0. Pushes 0.
>                         e# Compare a single quote with 0. Pushes 1.
?                         e# Ternary if. Discards a single quote and 1.
@                         e# Rotate the remaining three single quotes.
ABCDEFGHIJKLMOPQRSTUVWXYZ e# Push 25 items on the stack.
[\]                       e# Swap the last two and wrap them in an array.

e# So far, we've pushed the elements of "','#'C'J'a'm',' qYew::-Yf#:+e#'''"
e# followed by the elements of [10 11 12 13 14 15 16 17 18 19 20]
e# and ["" "" "" 3.141592653589793 "" "" " " 0 0 0 -1 1 [3 2]].

]    e# Wrap the entire stack in an array.
[    e# Begin an array. Does nothing.
ZZ   e# Push 3 twice.
[    e# Begin an array. Does nothing.
\^   e# Swap both 3s and push the bitwise XOR. Pushes 0.
__   e# Push two copies.
`    e# Inspect the last copy. Pushes the string "0".
b    e# Convert "0" from base 0 to integer. Pushes 48.
cd   e# Cast 48 to Character, then Double. Pushes 48.0.
gi   e# Apply the sign function, then cast to integer. Pushes 1.
mp   e# Check 1 for primality. Pushes 0.
s    e# Cast the result to string. Pushes the string "0".

e# We now have three elements on the stack: an array, 0, and "0"

t    e# Set the element at index 0 of the array to the string "0".
s    e# Cast the array to string.

e# This pushes the string consisting of the characters
e#     0,'#'C'J'a'm',' qYew::-Yf#:+
e# and
e#     e#'''10111213141516171819203.141592653589793 000-1132
e#
e# When evaluated this does the following:
e#   0,                Push an empty array. Does not affect output.
e#   '#'C'J'a'm','     Push the characters of "#CJam, ".
e#   q                 Read all input from STDIN.
e#   Yew               Push the overlapping slices of length 2.
e#   ::-               Reduce each pair of characters to their difference.
e#   Yf#               Square each difference.
e#   :+                Add the results.
e#   e#…               Comment. Does nothing.

z    e# Zip. This wraps the string on the stack in an array.
{}~  e# Execute an empty block.
~    e# Unwrap the array.
~    e# Evaluate the string.

6
........... วัด
DLosc

ดูเหมือนว่าภาษานี้สร้างขึ้นสำหรับความท้าทายที่แน่นอนนี้ ดี!
Domino

3
ประณาม. ฉันคิดว่าในที่สุดฉันก็ทำสิ่งท้าทายที่จะทำให้ CJam เสียเปรียบเพราะมันมักจะเป็นสัญลักษณ์ 'ต้น' และตัวอักษร 'ล่าช้า' แต่ nooooo คุณปรากฏตัวขึ้นและทำลายมันอีกครั้ง ... ไชโย!
Sanchises

7

Haskell, 152827 95742 91196 83921 77447 71742

a=(.);_ZYXWVUTSRQPONMLKJIHGFEDCBA=("#Haskell, "++)`a`show`a`sum`a`fmap(^2)`a`(tail>>=zipWith(-))`a`fmap fromEnum`a`(""++)

การใช้งาน (หมายเหตุ: "จะต้องมีการหลบหนี):

_ZYXWVUTSRQPONMLKJIHGFEDCBA   "a=(.);_ZYXWVUTSRQPONMLKJIHGFEDCBA=(\"#Haskell, \"++)`a`show`a`sum`a`fmap(^2)`a`(tail>>=zipWith(-))`a`fmap fromEnum`a`(\"\"++)"

"#Haskell, 71742"

ฉันเติมสตริงว่าง""ให้กับสตริงอินพุตเพื่อช่วยล่าม Haskell ในการหาประเภท หากไม่มีการอนุมานประเภทล้มเหลวรหัสนั้นมีความหลากหลาย ส่วนที่เหลือคือธุรกิจตามปกติ: แมปอักขระแต่ละตัวกับ ascii, ทำรายการความแตกต่างเพื่อนบ้าน, สี่เหลี่ยม, ผลรวมและชื่อภาษาเสริม


6

> <>, 30227

0&ii:0(?v:@-:*&+&20.
'#><>, '<;n&oooooo

Gah ชื่อสองเท่าคะแนนของฉัน; ในคำพูดของโปรแกรมของฉันเอง n & oooooo! ฉันจะใช้เวลาในภายหลังเพื่อทำให้ดีขึ้น ฉันรู้ด้วยเช่นกันว่าคะแนนนี้อาจไม่ถูกต้องเนื่องจากฉันไม่สามารถป้อน newlines ในล่ามออนไลน์ได้และฉันไม่แน่ใจว่าจะมีวิธีการป้อนข้อมูลสแต็กในเจ้าหน้าที่อย่างเป็นทางการ

โดยไม่มีหมายถึงการเพิ่มประสิทธิภาพอย่างสมบูรณ์ แต่จะใช้เวลาเต็มประโยชน์จากความใกล้ชิดญาติบางคน (อย่างน้อยในแง่ของตัวอักษร ASCII) ของคำสั่งใน> <> ฉันไม่สามารถขึ้นบรรทัดใหม่เป็นอินพุตได้อย่างง่ายดายดังนั้นฉันจึงใช้ตัวตรวจสอบคะแนน Pyth แต่มันจับคู่กับกรณีทดสอบแบบสุ่มจำนวนมากที่ฉันใช้ดังนั้นมันควรจะดีเมื่อเทียบกับเรื่องนั้น

นี่คือหนึ่งคะแนน 30353 (ซึ่งควรจะถูกต้องเนื่องจากเป็นหนึ่งบรรทัด):

0&l1=66+*77++0.$:@-:*&+&10.' ,><>#'oooooo&n;

Nice รายการแข่งขันใน> <>!
Sanchises

5

Java, 66465 65506 62434

น่าแปลกที่สั้น ยอมรับอาร์เรย์ถ่านแทนสตริง

ABCD->{int A98=0,GFEDCBA=1,A987;for(;GFEDCBA<ABCD.length;A98=A98+(A987=ABCD[GFEDCBA]-ABCD[GFEDCBA++-1])*A987-0);return"#Java, "+A98;}

ฉันใช้โปรแกรมเพื่อสร้างชื่อตัวแปรที่ดีที่สุด


คุณจะใช้มันในโปรแกรมอย่างไร? (ฉันยังไม่คุ้นเคยกับคุณสมบัติของ Java 8 ทั้งหมด)
aditsu


โอ้ดังนั้นคุณต้องกำหนดอินเทอร์เฟซการทำงานเป้าหมายสำหรับมัน ... ไม่ใช่วัตถุชั้นหนึ่งอย่างแน่นอน
aditsu

@aditsu คุณสามารถใช้ Function <char [], String> ได้ถ้าต้องการ
TheNumberOne

โอ้ฉันเห็น… ((Function<char[],String>) ABCD->{…}).apply(…)ขอบคุณ ลูกแกะเหล่านี้ดูเหมือนจะค่อนข้างไม่สมบูรณ์โดยไม่มีบริบทชนิด
aditsu


4

โฮสต์ Windows PowerShell ISE, 62978 63894 67960 77050

PARAM($4)($4.LENGTH-2)..0|foreach{$9=+$4[$_]-$4[$_+1];$0+=$9*$9};'#'+$HOST.NAME+', '+$0

แก้ไข - บันทึกบางจุดด้วยการกำจัด$Aตัวแปรและนับถอยหลังไปทางสตริงแทนและโดยการแปลงคำหลักบางคำเป็น CAPS

แก้ไข 2 - บันทึกคะแนนเพิ่มโดยใช้$($HOST.NAME)แทนPowerShell

Edit3 - บันทึกบางจุดเพิ่มเติมโดยการสลับชื่อตัวแปรและเปลี่ยนแปลงวิธีการสร้างผลลัพธ์

ใช้ตัวแปรที่มีชื่อด้วยตัวเลขเนื่องจากพวกมัน "เข้าใกล้" $มากขึ้นดังนั้นการลงโทษของเราจึงน้อยลง

เป็นที่น่าสนใจที่จะไม่ใช้เทคนิคการตีกอล์ฟเป็นประจำ ตัวอย่างเช่น|%{$22534 ขณะที่|foreach{$เป็นเพียง 8718

นี่อาจใกล้เคียงที่สุดโดยไม่ต้องเปลี่ยนเทคนิค


1
นี่คือว่าสิ่งที่ฉันหวัง ไชโย!
Sanchises

4

MATLAB, 19214 39748 39444 38,785 37,593

@(A9876543210)sprintf('#MATLAB, %d',diff(A9876543210)*diff(A9876543210'))

ขอบคุณ Luis Mendo ที่ช่วยลดความแตกต่างให้มากขึ้น!

ขอบคุณ NumberOne สำหรับการลดจำนวนเสียงโดยการเปลี่ยนชื่อตัวแปรอินพุต!

วิธีนี้ใช้ได้ผล

  1. ประกาศฟังก์ชั่นไม่ระบุชื่อที่เก็บไว้ในansตัวแปรเริ่มต้นใน MATLAB
  2. ฟังก์ชั่นใช้ในสตริงที่เก็บไว้ในA9876543210และพิมพ์ผลรวมของความแตกต่างกำลังสองของสตริง
  3. difflength(A9876543210)-1พบคู่ใกล้เคียงความแตกต่างในอาร์เรย์และผลิตอาร์เรย์ของ โดยการใช้diffสตริงอาเรย์สิ่งนี้จะถูกส่งไปยังdoubleอาเรย์ที่สร้างรหัส ASCII ของอักขระแต่ละตัวและความแตกต่างของคู่ที่ต่อเนื่องกันส่งผลให้เกิดอาเรย์อื่น
  4. ในการหาผลรวมของความแตกต่างยกกำลังสองคุณก็แค่หาจุดผลิตภัณฑ์ของอาร์เรย์ผลต่างนี้ด้วยตัวเอง การทำdiff(A9876543210)'เสียงรบกวนมากกว่าจริง ๆA9876543210.'(ขอบคุณ Luis Mendo!)
  5. ผลลัพธ์ถูกพิมพ์ลงบนหน้าจอ

เป็นเรื่องปกติใน PPCG ที่จะอนุญาตการใช้งานที่ไม่มีชื่อ ดังนั้นคุณสามารถลบได้A=
Luis Mendo

นอกจากนี้norm(diff(B))^2จะสั้นกว่า
Luis Mendo

@LuisMendo - พยายามแล้ว %dมันพิมพ์ออกทางวิทยาศาสตร์และไม่เคารพ
rayryeng - Reinstate Monica

ทำไมคุณถึงใช้Bชื่อตัวแปร? A=@(A)...เป็น MATLAB ที่ถูกต้องเนื่องจากAถูกกำหนดขอบเขต
Sanchises

3
A -> A9876543210
TheNumberOne

4

QBasic, 38140

ใช่สำหรับ SYNTAX SHOUTY

LINE INPUT A9876543210$:AAA=ASC(A9876543210$):WHILE A<LEN(A9876543210$):AA9876543210=AAA:A=1+A:AAA=ASC(MID$(A9876543210$,A)):A98765432100=A98765432100+(AA9876543210-AAA)*(AA9876543210-AAA):WEND:?"QBasic,";A98765432100

(ทดสอบด้วยQB64 )

นี่เป็นโปรแกรมเต็มรูปแบบที่อินพุตสตริงและเอาต์พุตคำตอบ ข้อ จำกัด เพียงอย่างเดียวที่นี่คือโปรแกรมไม่สามารถรับอินพุตหลายLINE INPUTบรรทัด( สามารถจัดการกับสิ่งใดก็ได้ตราบใดที่มันเป็นบรรทัดเดียว)

Deobfuscated:

LINE INPUT line$
b=ASC(line$)
WHILE i<LEN(line$)
    a=b
    i=i+1
    b=ASC(MID$(line$,i))
    score=score+(a-b)*(a-b)
WEND
PRINT "#QBasic,"; score

สะดวกสบายผ่านสายอักขระหลายตัวเพื่อASCให้ค่า ASCII ของตัวละครตัวแรก นอกจากนี้ยังสะดวกตัวแปรที่เป็นตัวเลขจะถูกกำหนดค่าเริ่มต้นเป็นศูนย์โดยอัตโนมัติ


ฉันไม่เคยเขียนรหัสใน QBasic มาก่อนดังนั้นโปรดยกโทษให้ฉันถ้าฉันผิด แต่เป็นไปได้ไหมที่จะแทนที่ตัวแปรด้วยตัวอักษรตัวพิมพ์ใหญ่เพื่อบันทึกคะแนนพิเศษบางอย่าง?
ASCIIThenANSI

@DLosc Ah, OK ฉันอ่านเวอร์ชันที่ deobfuscated เป็นโปรแกรมจริง : |
ASCIIThenANSI

3

Python 2, 91026

lambda A:"#Python 2, "+`sum((ord(A9876543210)-ord(A98765432100))**2for A9876543210,A98765432100 in zip(A,A[1:]))`

กำหนดฟังก์ชั่นที่ไม่ระบุชื่อที่ใช้สตริงและส่งกลับคะแนน ลองมันออนไลน์

ส่วนใหญ่เป็นการดำเนินการที่ใช้งานง่ายตรงไปตรงมา: zip Aด้วยA[1:]เพื่อรับรายการตัวอักษรคู่แล้วลบords, สี่เหลี่ยมจัตุรัสและผลรวมของพวกเขาด้วยนิพจน์ตัวสร้าง

สังเกตว่าทั้งสองตัวแปรภายในแสดงออกเครื่องกำเนิดไฟฟ้าเป็นเพียงที่เคยตามด้วยตัวอักษรต่อไปนี้: ), ,และพื้นที่ ทั้งสามอย่างนี้มีค่า ASCII ต่ำมากดังนั้นจึงทำให้เราต้องสิ้นสุดแต่ละตัวแปรด้วยอักขระที่มีค่า ASCII ต่ำที่สุดเท่าที่จะทำได้ 0ตัวละครที่ต่ำที่สุดที่สามารถจบตัวแปรในหลามเป็น ยิ่งกว่านั้นทุกโอกาสที่เราต้องแยกการกระโดดครั้งใหญ่หนึ่งครั้งเป็นการกระโดดขนาดเล็กสองครั้งจะลดคะแนน: A0ราคา 289 แต่A90เพียง 145 และA9876543210เป็นเพียง 73

(วิธีนี้ไม่ได้ช่วยตัวแปรแลมบ์ดาAอาจเป็นเพราะมันตามมา[ในเหตุการณ์เดียว)


3

JSFuck, 144420642

สร้างจาก:

t=arguments[0];n=0;for(u=1;u<t.length;++u)n+=(f=t.charCodeAt(u)-t.charCodeAt(u-1))*f;return'#JSFuck, '+n

วางสิ่งนี้ลงในช่องป้อนข้อมูลขนาดเล็กของJSFuck.comเพื่อรวบรวมไปยัง JSFuck ผลลัพธ์เป็นสคริปต์ยาว 112701 ตัวอักษรดังนั้นฉันจึงไม่สามารถใส่ได้ที่นี่ อักขระสองตัวสุดท้ายของสคริปต์นี้คือวงเล็บใส่อินพุตระหว่างพวกเขา

...)[+!+[]])('abd')

โปรแกรมใช้เวลาเกือบ 20 วินาทีในคอมพิวเตอร์ของฉันเพื่อประเมินตัวเอง


คำอธิบาย

ฉันมีเวลามากขึ้นที่จะทำสิ่งนี้ดังนั้นฉันจึงนั่งลงและพยายามปรับชื่อตัวแปรให้เหมาะสม นี่คือชื่อตัวแปรที่ควรใช้ในการเรียงลำดับคะแนน

u     ([][[]]+[])[+[]]                    17237
n     ([][[]]+[])[+!+[]]                  17437
f     (![]+[])[+[]]                       18041
t     (!![]+[])[+[]]                      18041
a     (![]+[])[+!+[]]                     18241
r     (!![]+[])[+!+[]]                    18241
d     ([][[]]+[])[!+[]+!+[]]              23405
N     (+[![]]+[])[+[]]                    23669
e     (!![]+[])[!+[]+!+[]+!+[]]           29217
i     ([![]]+[][[]])[+!+[]+[+[]]]         33581
l     (![]+[])[!+[]+!+[]]                 24209
s     (![]+[])[!+[]+!+[]+!+[]]            29217
uu    ([][[]]+[])[+[]]+([][[]]+[])[+[]]   36983

นี่คือ JavaScript ที่ฉันแปลเป็น JSFuck:

score = 0;
for (u = 1; u < input.length; ++u)
  score += (difference = input.charCodeAt(u) - input.charCodeAt(u-1)) * difference;
return '#JSFuck, ' + score;

ฉันให้ความสนใจกับนักแปลของ JSFuck.com มากขึ้นและคิดออกว่าฟังก์ชันการประเมินผลของมันทำงานอย่างไร เมื่อเลือก "Eval source" รหัสจะกลายเป็นฟังก์ชัน JSFuck ที่ดำเนินการด้วยตนเอง อย่างไรก็ตามในการรับอินพุตเราจำเป็นต้องเข้าถึงอาร์กิวเมนต์ [0] จากภายในฟังก์ชัน นี่จะนำรหัส JS สุดท้ายของเราไปที่ ...

t=arguments[0];n=0;for(u=1;u<t.length;++u)n+=(f=t.charCodeAt(u)-t.charCodeAt(u-1))*f;return'#JSFuck, '+n

(หากคุณสงสัยว่าเพราะเหตุใดรุ่นก่อนหน้าของฉันจึงมีคะแนนต่ำกว่านี้เพราะเป็นโปรแกรม JSFuck ที่ส่งคืนสตริงที่ต้องมีการประเมินเป็น JS นี่คือสาเหตุที่ฉันไม่ได้ทิ้งไว้ในโพสต์)


คุณabsไม่จำเป็น ฉันเดาว่าอาจจะสร้างความแตกต่างได้ ... :)
Sanchises

6
ฉันพบว่าคะแนนสับสน คุณควรลบช่องว่าง JSFuck, 102280181โดยเฉพาะอย่างยิ่งเนื่องจากผลผลิตของโปรแกรมของคุณควรจะเป็น
mbomb007

@sanchises แน่นอนฉันลืมที่จะใส่สแควร์สองในตอนแรกซึ่งเป็นสาเหตุที่มี Math.abs จะแก้ไข
Domino

@ mbomb007 โอ้แล้วก็จะแก้ไขด้วย
Domino

3

CJam, 23663 19389 11547

"#CJam,"32A;clYew[]ULC;;;;::- 0$.*:+

ลองออนไลน์

มันเริ่มรู้สึกว่าสิ่งนี้สามารถผลักดันได้อย่างไม่รู้จบโดยการเพิ่มตัวละครให้มากขึ้น แต่ฉันคิดว่าฉันเริ่มที่จะถึงจุดลดลงที่นี่ดังนั้นฉันจะหยุดตอนนี้ ตัวอย่างเช่นที่ฉันมีULC;;;ฉันสามารถใช้ตัวอักษรทั้งหมดย้อนหลังตามด้วย 26 ;แต่กำไรจะเล็กลงเรื่อย ๆ

จนถึงตอนนี้ช่องว่างที่ใหญ่ที่สุดที่ฉันมีอยู่คือระหว่างmและ,ในสตริงเริ่มต้น ฉันไม่พบสิ่งใดที่สมเหตุสมผลในการกำจัดมัน ฉันแน่ใจว่ามีหลายวิธี แต่ถ้าฉันผลักมันจนถึงขีด จำกัด มันอาจเริ่มดูเหมือนสารละลายของเดนนิส ...


3

JAVASCRIPT, 33911

$0123456789ABCDEFGHIJKLMNOPQRS=>/**/('#')+('JAVASCRIPT,')+(" ")+(($)/**/=0,($0123456789ABCDEFGHIJKLMNOPQRS[`split`]``[`map`]/**/(($$,$$$)/**/=>/**/($)/**/=Math[`pow`]/**/($0123456789ABCDEFGHIJKLMNOPQRS[T=`charCodeAt`]/**/($$$)+-($0123456789ABCDEFGHIJKLMNOPQRS[T]/**/(($$$)/**/>=6-5?/**/($$$)+-1:0.)),2)+($))),($))

นี่คือหนึ่งในการปรับปรุงที่ดีที่สุดที่ฉันเคยทำในการเล่นกอล์ฟ ...

อุปกรณ์ประกอบฉากเพื่อนีลสำหรับคำแนะนำ "สแปมความคิดเห็น" = P


ฉันคิดว่าคุณสามารถประหยัดได้ 5180 เพียงแค่ใส่/**/ในสถานที่ที่เหมาะสม
Neil

3

JAVASCRIPT, 31520

การแก้ปัญหานี้ไร้สาระมากขึ้นแตกต่างจากที่อื่นอย่างมากและดังนั้นฉันรู้สึกว่าสมควรได้รับคำตอบของตัวเอง

A=>/**/(($)/**/=/**/(''),('000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000100000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000100000000000000000000000000000000000000001000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000100000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000000000000000000000000000000000100000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000100000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010/-,+*)(')/**/[`split`]``[`reduce`]/**/(($$,$$$,$$$$)/**/=>/**/($$$)/**/>7.-07?/**/(($)+=/**/((/**/String[`fromCharCode`]/**/)(($$$$)+-($$))),($$$$))/**/:/**/($$)),/**/eval/**/($))

นั่นคืออักขระ 7306 ตัวซึ่งส่วนใหญ่เป็นโปรแกรมจริงที่เข้ารหัสลงในสตริง 0/1 นั้นและที่เหลือก็เพียงถอดรหัส ใช้งานได้โดยรับดัชนีของ '1' แต่ละตัวลบดัชนีของ '1' ก่อนหน้าเพื่อรับค่าอักขระที่จำเป็น จากนั้นมันจะ eval สตริงที่เกิดขึ้นในฟังก์ชั่นจริงซึ่งเป็นหลักโปรแกรมกอล์ฟมาตรฐานเพื่อแก้ปัญหา (ซึ่งมีเพียงประมาณ 105 ตัวอักษร)


2

R, 68911 57183 53816 52224

รับสตริงจาก STDIN และแปลงเป็นจำนวนเต็มผ่าน raw ผลต่าง, สี่เหลี่ยมและผลรวมเวกเตอร์ที่ได้ ผลลัพธ์ถูกส่งคืนเป็นสตริง ขอบคุณ @nimi สำหรับคำแนะนำชื่อตัวแปร

'&&'=sum;'&&&'=diff;'&&&&'=as.integer;'&&&&&'=charToRaw;'&&&&&&'=readline;'&&&&&&&'=paste;'&&&&&&&'('#R,','&&'((A='&&&'('&&&&'('&&&&&'('&&&&&&'()))))*A))

ขอบคุณ @nimi การที่ได้รับการติดอยู่ 2 ก็พยายามที่จะให้มันสั้น :)
MickyT

2

Mathematica, 33552

A=ToExpression;A@ExportString[A@Characters@(**)"001000100010001101001101011000010111010001101000011001010110110101100001011101000110100101100011011000010010110000100000001000100011110000111110010101000110111101010011011101000111001001101001011011100110011101011011001000110010111000100011001001100100000001000100011010010110011001100110011001010111001001100101011011100110001101100101011100110100000001010100011011110100001101101000011000010111001001100001011000110111010001100101011100100100001101101111011001000110010101000000001000110101110100100110"(**),(**)"Bit"(**)]

รหัสนี้จะประเมินฟังก์ชั่นที่ไม่มีชื่อซึ่งจะคำนวณ "เสียง" ของสตริงอินพุต มันใช้ประโยชน์จากความจริงที่ว่า ASCII เป็นตัวแทนของข้อมูลไบนารีเป็นหลัก "ไม่มีเสียง" ข้อมูลไบนารีที่คุณเห็นคือสตริง

"#Mathematica, "<>ToString[#.#&@Differences@ToCharacterCode@#]&

ซึ่งจะเป็นคำตอบที่ถูกต้องด้วยตัวเองคะแนน 37848

อย่างอื่น

A=ToExpression;A@ExportString[A@Characters@(**)"001..110"(**),(**)"Bit"(**)]

เพียงแค่ถอดรหัสสตริงไบนารีและตีความมันเป็นรหัส Mathematica โปรดทราบว่าความคิดเห็นที่ว่างเปล่าของ Mathematica (**)คือ "เสียงรบกวนต่ำ" และลบเสียงรบกวนจาก"s


2

Java8: 117170 100508 99062 98890

ด้วยความช่วยเหลือของการแสดงออกแลมบดาและการกำหนดตัวแปรแบบอินไลน์สามารถทำให้รหัสนี้สั้นลงได้

A->{int B=0,D=0,E=0;char[] C=A.toCharArray();for(;D<C.length-1;)B+=(E=C[D]-C[++D])*E;return"#java, "+B;}

A -> A9876543210; B -> $ 0123456; C -> A; D -> AA; E -> $ 0123456789
TheNumberOne

2

ชวา129300 128400 110930 106581 105101

B->{int A=0,C=A;char[]Z=B.toCharArray();for(;++C<Z.length;A=A+(Z[C]-Z[C-1])*(Z[C]-Z[C-1]));return\"#Java, \"+A;}

ความท้าทายนี้ทำให้ฉันคิดลึกลงไปถึงตัวละครที่จะใช้และเพิ่มประสิทธิภาพมากกว่าการหาทางออกที่สั้นที่สุด ฉันจะพยายามลดจำนวนลงเรื่อย ๆ

นี่คือฟังก์ชั่นแลมบ์ดาที่มีBสตริงเป็นตัวแทนของฟังก์ชั่น อย่าลืมหลีกเลี่ยงอัญประกาศ ( ") เมื่อผ่านสิ่งนี้เป็นสตริง


2

Pyth, 16391

++C38828542027820dsm^-ChdCed2,Vztz

เคล็ดลับข้อเดียวที่ใช้ในที่นี้คือการเข้ารหัสฐาน 256 #Pyth,ซึ่งมีค่าใช้จ่ายน้อยกว่าสตริงตัวเอง

++C38828542027820dsm^-ChdCed2,Vztz    Implicit: d=' ', z=input()
                             ,Vztz    Pair each char in the input with its neighbour
                   m                  Map d in the above to:
                      Chd               ASCII code of 1st char
                         Ced            ASCII code of 2nd char
                     -                  Difference between the two
                    ^       2           Squared
                  s                   Take the sum
  C38828542027820                     '#Pyth,'
++               d                    '#Pyth,' + ' ' + result, implicit print

2

M, 47033 52798

A9876543210(A9876543210) F AA9876543210=2:1:$L(A9876543210) S AAA9876543210=$A($E(A9876543210,AA9876543210-1))-$A($E(A9876543210,AA9876543210))**2+AAA9876543210
    Q "#M, "_AAA9876543210

ในการใช้สิ่งนี้เราต้องหลีกเลี่ยงอัญประกาศและอักขระ "ช่องว่าง" ช่องว่าง (ซึ่งสำคัญใน MUMPS!) ดังนี้:

>$$A9876543210^MYROUTINE("A9876543210(A9876543210)"_$C(9)_"F AA9876543210=2:1:$L(A9876543210) S AAA9876543210=$A($E(A9876543210,AA9876543210-1))-$A($E(A9876543210,AA9876543210))**2+AAA9876543210"_$C(10,9)_"Q ""#M, ""_AAA9876543210")
#M, 47033

โปรดทราบว่า "M" เป็นชื่อทางเลือกสำหรับ "MUMPS" - มีความขัดแย้งระหว่างผู้ปฏิบัติงานเกี่ยวกับสิ่งที่ถูกต้อง โดยธรรมชาติฉันได้เลือกตัวเลือกที่สั้นกว่าที่นี่


คุณไม่ควรเริ่มต้น AAAA หรือ
SSH

นอกจากนี้เนื่องจากการขาดลำดับความสำคัญของผู้ให้บริการคุณเพียงแค่ S AAA = $ A ($ E (A, AA-1)) - $ A ($ E (A, AA)) ** 2 + AAA - ควรให้ค่าที่ต่ำกว่า คะแนน ...
SSH

@SSH ฉันถือว่าตารางสัญลักษณ์สะอาดก่อนที่จะเรียกใช้ฟังก์ชัน (ดังนั้นฉันไม่ต้องทำNEWอะไร) ดังนั้นเมื่อฉันเริ่มทำเลขคณิตในAAAA(ตอนนี้AAA9876543210) มันจะถูกบังคับให้0(อาจเป็นเพียงรายละเอียดการนำCachéไปใช้ฉันไม่ได้ติดตั้ง GT.M เพื่อทดสอบ) โทรดีในสิ่งที่ผู้ประกอบการลำดับความสำคัญ; ฉันมักจะพบว่ามันยากที่จะคิดในแง่ของการดำเนินงานจากซ้ายไปขวาอย่างหมดจด (ฉันยังลืมว่า M มีตัวดำเนินการยกกำลัง - มันไม่ใช่สิ่งที่เกิดขึ้นบ่อยเมื่อคุณเขียนแอปพลิเคชั่น CRUD)
senshin

ดี! นอกจากนี้เนื่องจากการดำเนินการจากซ้ายไปขวาคุณไม่จำเป็นต้องใช้เครื่องหมายวงเล็บก่อน ** 2
SSH

@SSH ขอบคุณ dunno ว่าพวกมันเข้าไปถึงที่นั่นได้อย่างไร เวอร์ชันที่ฉันวัดจริงไม่ได้มีดังนั้นคะแนนยังคงเหมือนเดิม
senshin

1

ทับทิม, 118402

puts "#Ruby, #{a=0;aa=nil;File.read(ARGV[0]).each_byte{|aaa| aa||=aaa;a+=(aaa-aa)**2;aa=aaa};a}"

ruby diff.rb /path/to/fileมันอ่านในไฟล์ผ่านบรรทัดคำสั่งเช่น มีพื้นที่สำหรับปรับปรุงและนั่นคือสิ่งที่ฉันกำลังดำเนินการอยู่ในตอนนี้



1

Perl, 93556

chomp($A=<>);$AAA=$AAAA=0;foreach$AAAAA(split'',$A){$AA=ord($AAAAA);$AAA+=($AAAA-$AA)**2 if($AAAA!=0);$AAAA=$AA}print'#Perl, '.$AAA

ฉันจะพยายามลดสิ่งนี้ลงอีก

ปรากฎว่าวงเล็บปีกกา ( {และ}, ASCII 123 และ 125) และขีดล่าง ( _, ASCII 95) มีราคาแพงมากเนื่องจากตัวละครอื่น ๆ ทั้งหมดอยู่ในช่วง 30-70 ซึ่งเป็นเหตุผลที่ฉันจัดรูปแบบifวิธีที่ฉันทำและ ทำไมฉันใช้$AAAAAแทนของ Perl $_รัก

น่าเศร้าที่ตัวแปรทั้งหมดที่มีสัญลักษณ์ในพวกเขาจะอ่านอย่างเดียวดังนั้นฉันไม่สามารถใช้ประโยชน์จากการรวมกันเหมือนและ$#$$


1

F #, 136718 130303

let(A)=Seq.map;
(stdout.Write(Seq.sum(A(fun(AA)->AA*AA)(A((<||)(-))(((Seq.pairwise(A(int)(stdin.ReadToEnd())))))))))

ที่ไหนมี\nหลังจาก;.


1

POSIX Shell, 172026

{ while IFS= read -N 1 A; do A1=$(printf %d \'"$A");test "$A1" -eq 0 && break;case $A11 in "")A111=0;;*)A111=$((A1-A11));;esac;A11="$A1";A1111=$((A111**2+A1111));done;echo "# POSIX Shell, $A1111";}

เลวร้ายเกินไปฉันไม่สามารถได้รับผลลัพธ์เช่นเดียวกับตัวตรวจสอบ Pyth (178386) ...


1. "Shell" ไม่ใช่ภาษาโปรแกรม ดูเหมือนว่า Bash 2. คุณสามารถอ่านจาก STDIN ไม่จำเป็นต้องอ่านซอร์สโค้ดเอง
เดนนิส

@Dennis ขอขอบคุณแก้ไข ... แม้ว่าฉันจะไม่ได้รับผลลัพธ์เดียวกัน แต่อาจมีข้อผิดพลาด (อย่างน้อยหนึ่งครั้งฉันก็ได้ผลลัพธ์เดียวกัน แต่ไม่ได้อยู่ในรุ่น "บีบอัด") ...
Alois Mahdal

1

ลัวะ171078 117896

แข็งแรงเล่นกอล์ฟ:

A=string AA=A.sub AAA=io.read()AAAA=#AAA AAA=AAA..AA(AAA,AAAA,AAAA)AAAAA=0 AAAAAA=A.byte for AAAAAAA=1,AAAA do AAAAAAAA=AAAAAA(AA(AAA,AAAAAAA,AAAAAAA))-AAAAAA(AA(AAA,AAAAAAA+1,AAAAAAA+1))AAAAA=AAAAA+AAAAAAAA*AAAAAAAA end print(AAAAA)

Ungolfed:

A=string 
AA=A.sub 
AAA=io.read()
AAAA=#AAA 
AAA=AAA..AA(AAA,AAAA,AAAA)
AAAAA=0 
AAAAAA=A.byte 
for AAAAAAA=1,AAAA do 
    AAAAAAAA=AAAAAA(AA(AAA,AAAAAAA,AAAAAAA))-AAAAAA(AA(AAA,AAAAAAA+1,AAAAAAA+1))
    AAAAA=AAAAA+AAAAAAAA*AAAAAAAA 
end 

print(AAAAA)

0

C ++, 49031

แมโคร C ++ ที่รับ c-string และเขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน

<::>(auto(A))<%long(AAA)=0,AA=A<:0:>;while(*++A)<%AAA+=(*A-AA)*(*A-AA);AA=A<:0:>;%>cout<<"#C++, "<<AAA;%>

ลองออนไลน์!


-3

C ++, 5

    #include <iostream>
    #include <string>
    #include <cmath>
    using namespace std;

    void convertToASCII(string letter)
    {
        int count = 0;
        int ans = 0;
        int *diff = new int[]; //dynamic array

        for(int i=0; i<letter.length(); i++)
        {
            char x = letter[i]; //letter.at(i);

            if(i!=0){
                diff[i-1] = int(x)- int(letter[i-1]);
                count++;
            }
        }

        for(int j=0; j<count; j++){
            ans += pow(diff[j], 2.0);
        }

        cout << "#C++, " << ans << endl;
    }

    int main()
    {
        string plainText;
        cout << "Enter text: ";
        getline(cin, plainText);
        convertToASCII(plainText);
        system ("pause");
        return 0;
    }

7
ยินดีต้อนรับสู่การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ! นี่คือคำตอบที่ถูกต้อง แต่คะแนนของคุณสำหรับความท้าทายนี้ควรเป็นผลมาจากข้อความของโปรแกรมของคุณที่ถูกเรียกใช้ผ่านโปรแกรม คุณควรพยายามลดคะแนนนั้นให้มากที่สุด ลองดูเคล็ดลับในหน้าเหล่านี้ เพื่อดูว่าคุณสามารถย่อรหัสและลดคะแนนของคุณได้อย่างไร
ETHproductions
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.