รหัสใกล้กับความท้าทาย: ผลรวมของจำนวนเต็ม


39

นี่เป็นความท้าทายที่ง่าย: กำหนดลำดับของจำนวนเต็มหาผลรวมของจำนวนเต็มทั้งหมดในนั้น

แต่ด้วยความบิด คะแนนของคุณคือระยะทาง Levenshteinระหว่างรหัสของคุณและวลีต่อไปนี้ (ความท้าทาย):

ให้ชุดของจำนวนเต็มหาผลรวมของจำนวนเต็มทั้งหมดในนั้น

คุณอาจคิดว่าไม่มีบรรทัดใหม่หรือช่องว่างต่อท้ายในอินพุต

ตัวอย่างอินพุต / เอาต์พุต:

Input: 1 5 -6 2 4 5
Output: 11
Input: 1 -2 10
Output: 9

เครื่องคิดเลขออนไลน์สำหรับระยะทาง Levenshtein สามารถดูได้ที่นี่: http://planetcalc.com/1721/


4
ฉัน
อด

7
ว้าวพวกความคิดสร้างสรรค์มาก xD ... ไอแสดงความคิดเห็น abusers กระแอม

1
คุณคิดว่านี่น่าจะเป็นภาคต่อที่มีการท้าทายอื่น ๆ ไม่แน่ใจว่าสิ่งนี้ถือว่าเป็นภาคต่อที่คุ้มค่าหรือไม่

1
@NicoA แน่นอน! อาจเป็นปัญหาเดียวคืองานนี้ง่ายเกินไป
Maltysen

2
@NICA ถ้าคุณทำอย่างระมัดระวังในการกำหนดสิ่งที่ไม่ได้รับอนุญาต หลายภาษาอนุญาตให้สตริงแบบลอยได้ตัวอย่างเช่น
xnor

คำตอบ:


58

Python ระยะทาง 3

#Given a set of integers, find the 
sum#of all integers in it.

นี้จะช่วยให้ในตัวฟังก์ชั่นซึ่งสามารถสรุปชุดเหมือนsum sum({3,5,7})==17ส่วนที่เหลือจะแสดงความคิดเห็น นี่คือระยะทาง 3 โดยมีการแก้ไข 3 อย่าง:

  • เพิ่มเริ่มต้น #
  • เพิ่มบรรทัดใหม่
  • แทนที่ช่องว่างหลังจากsumด้วย#

3
อีกคุณสมบัติที่มีประโยชน์ของไวยากรณ์ภาษาอังกฤษที่ยอดเยี่ยม
qwr

1
คำถามเดียวของฉันคือวิธีการใช้งานเนื่องจากนี่ไม่ใช่โปรแกรมเต็มรูปแบบและ (ในทางทฤษฎี) คุณไม่จำเป็นต้องใช้รหัสของคุณเพราะมันมีอยู่แล้วภายใน
Beta Decay

1
@BetaDecay งานนี้เพราะของกฎที่ฟังก์ชั่นที่ได้รับอนุญาตโดยค่าเริ่มต้นและตัวอักษรของฟังก์ชั่นที่ได้รับอนุญาตสำหรับการทำงาน
xnor

54

จูเลียระยะทาง27 26

ไม่มีความคิดเห็น!

Given(a)=(Set;of;integer; find; [sum(a),all,integer,in][1])

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


ไม่มีความคิดเห็นใด ๆ เพิ่มเติมอยู่ในจิตวิญญาณของการท้าทาย ทำได้ดีมาก
Christopher Wirt

@ChristopherWirt ขอบคุณ! :)
Alex A.

4
ฉันขอแนะนำให้ทำการปรับปรุงหรือไม่ Given=(a;set;of=integer; find;th;[sum,of,all,integer, in][])- "ได้รับ" จากนั้นก็ยังทำงานเหมือนเดิม แต่ระยะทาง 18
เกลน O

22

APL, ระยะทาง6 3

บันทึก 3 ระยะทาง ... ขอบคุณเดนนิส!

+/⍝en a set of integers, find the sum of all integers in it.

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


1
คุณไม่จำเป็นต้องและ{ เป็นฟังก์ชันที่ถูกต้องอยู่แล้ว ⍵}+/
Dennis

@Dennis Awesome ขอบคุณมากสำหรับคำแนะนำ!
Alex A.

10

GolfScript, 5

~{Given a set of integers+ find the sum of all integers in it}*

นี่เป็นโปรแกรมเต็มรูปแบบที่ไม่ใช้ความคิดเห็น (แต่เป็นจำนวนมาก)

ลองใช้ออนไลน์ในเว็บ GolfScript


9

R, ระยะทาง37 36 34

โดยไม่ต้องใช้ความคิดเห็น :)

 as.integer ( sum (scan(,integer( ) )))

หมายเหตุมีช่องว่างที่จุดเริ่มต้น


8

Mathematica ระยะทาง 17

Given a set of integers find the sum of all integers in it*0+Total@Input[]

ไม่ใช้ความคิดเห็นหรือไม่มีตัวเลือกใด ๆ แต่แทนที่จะประกาศคำทั้งหมดเป็นตัวแปรแล้วจึงกำจัดออกโดยการคูณด้วยศูนย์

นอกจากนี้ยังมีประโยชน์ในการเป็นคำตอบเดียวที่จริงจะเป็นชุดของจำนวนเต็มเป็นปัจจัยการผลิต

อินพุต{1,2,3}จัดเตรียมเอาต์พุต6ตามที่คาดไว้

น่าเสียดายที่Sumฟังก์ชันMathematica ไม่ทำงานในคำถามดังนั้นจึงจำเป็นต้องใช้จำนวนไบต์ที่มากขึ้น


Given a set of integers find the sum of all *0+Total@Input[]ระยะทาง 14
แม่ชีที่รั่ว

6

Java - 43 41

ฉันเหนื่อย.

float a_set_of(int[] r){return IntStream.of(r).sum()}//n it.
Given a set of integers, find the sum of all integers in it.

Java: P


ฉันคิดว่าคุณสามารถเปลี่ยนการโต้แย้งของคุณในฟังก์ชั่นจาก a เป็น r เพื่อบันทึกหนึ่งแก้ไขระยะทาง
Element118

@ Element118 จับได้ดี เปลี่ยนประเภทการส่งคืนในขณะที่ฉันอยู่ที่นั่นเพื่อให้มีการตั้งชื่อวิธีการได้ดีขึ้น
Anubian Noob

2
คุณไม่สามารถใช้ "int a_" เป็นจุดเริ่มต้นของตัวอย่างได้หรือไม่ (หนึ่งช่องว่างก่อนหน้า int และ 2 หลังก่อนหน้า a_
masterX244

6

RProgN , ระยะทาง 2

Given aset of integers, ;find the sum of all integers in it.

ใน RProgN, a, set, find และ sum เป็นคำสั่งทั้งหมด ทุกอย่างอื่นจะถูกละเว้นต่อค่าเริ่มต้นในไวยากรณ์ ผลักตัวอักษรไปยังกองซ้อนซึ่งจะทำให้ผลรวมล้มเหลว ชุดไม่เคยมีข้อโต้แย้งเพียงพอจึงล้มเหลวเสมอข้อผิดพลาด ค้นหามีจำนวนอาร์กิวเมนต์ที่ไม่ถูกต้องหรือพยายามเปรียบเทียบตัวอักษรกับสแต็กอินพุตซึ่งไม่ทำงาน

a และ set สามารถเป็น 'fixed' ได้โดยการลบช่องว่างออกจากนั้น aset ไม่ใช่ฟังก์ชันดังนั้นจึงถูกละเว้น Find เพิ่งมีตัวอักขระพิเศษแทรกเมื่อเริ่มต้นทำให้ไม่รู้จักและไม่สนใจ มีเพียงผลรวมที่เหลือซึ่งจะรวมเนื้อหาของสแต็กอินพุตอย่างสะดวก

ในที่สุด RProgN อาจชนะบางสิ่ง!

ลองออนไลน์!



4

Matlab, ระยะทาง29 28

Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)

โดยไม่ต้องใช้ความคิดเห็นใด ๆ :-)

รหัสอยู่ในรูปแบบของฟังก์ชั่นที่ไม่ระบุชื่อ ฉันสมมติว่าอินพุตเป็นเวกเตอร์ (1D-array) ของตัวเลข

ตัวอย่าง:

>> Given_a_set_of_integers=@(findthe)sum(all(1)*findthe)
Given_a_set_of_integers = 
    @(findthe)sum(all(1)*findthe)

>> Given_a_set_of_integers([1 5 -6 2 4 5])
ans =
    11

3

O , 5

M] + o "กำหนดชุดจำนวนเต็มหาผลรวมของจำนวนเต็มทั้งหมดในนั้น

ตัวเลขต้องเป็นเลขฐานสิบหกและอยู่ในเครื่องหมายลบย้อนกลับ:

  • -6 => 6_
  • -4 => 4_
  • -10 => A_

ลองออนไลน์


1
เย้ลิงค์ทำงาน!
Maltysen

เยี่ยมมาก! ไม่ได้เรียกมันว่า overkill แบบ IDE ใช่มั้ย
kirbyfan64sos

@ kirbyfan64sos ครบ แต่ฉันต้องการเพิ่มคุณสมบัติเพิ่มเติมเช่นการเน้นไวยากรณ์และอะไร สำหรับตอนนี้มันเป็นเพียงล่าม
ช่วง

ฉันคิดว่าลิงก์ไปยังหน้าO esolangsจะมีประโยชน์มากกว่า
mbomb007

@ mbomb007 แต่มันล้าสมัยไปแล้ว ครึ่งหนึ่งของสิ่งที่ใช้ไม่ได้นั่นเป็นเพียงเอกสารภาษาเล็กน้อย
ช่วง

3

K, 60 5

+/ / Given a set of integers, find the sum of all integers in it.

ฉันเดาว่าสัญลักษณ์ต่าง ๆ ไม่ได้อยู่ที่ระยะทางที่ไกลที่สุด ...

ฮ่า ๆ ๆ ๆ เดิมทีฉันไม่มีระยะทางของ LeveXXX ดังนั้นฉันจึงได้ 60 แล้วขอบคุณความคิดเห็นที่เป็นประโยชน์มันลดลงเหลือ 5


ไม่ใช่ว่าคุณกำลังใช้สัญลักษณ์ระยะทาง Levenshtein คือการเพิ่ม #of การลบการแทนที่ ดังนั้นคุณมีการลบ 60 ครั้งจากสตริงเดิม
Maltysen

ไม่ใช่สัญลักษณ์ แต่เพียงว่ารหัสของคุณสั้นมากจนความยาวของวลี - ความยาวของรหัสของคุณ = 60 Ouch

2
คุณรู้หรือไม่ว่าคุณสามารถเลื่อนขึ้นเพื่อรับการสะกดที่ถูกต้องของ "Levenshtein" ใช่ไหม ;)
Alex A.

@AlexA มันสนุกกว่านี้ :)
kirbyfan64sos

2
ฉันไม่โทษเขา ฉันต้องตรวจสอบตัวสะกดประมาณ 10 ครั้งก่อนที่ฉันจะคัดลอกมัน

3

F #, ระยะทาง 21

let ``Given a set of integers, find the sum of all integers in it`` x = Seq.sum x

ต้องรักความสามารถในการใช้เห็บคู่เพื่อให้ชื่อฟังก์ชั่นที่มีช่องว่างในนั้น

การใช้งาน:

[1;2;3] |> ``Given a set of integers, find the sum of all integers in it`` |> printfn "%i"

6


3

Pip ระยะทาง 3

เข้าร่วมคลับของ golflang no-comments-but-many-of-no-ops คำตอบเล็กน้อย ...

Given a set of integers, find the sum of all integers in $+g

ที่เก็บ GitHub สำหรับ Pip

รหัสเอกสารจริงตัวเอง; อาจs/in/using/เป็นคำอธิบายที่แม่นยำยิ่งขึ้น จำนวนเต็มที่กำหนดให้เป็นอาร์กิวเมนต์บรรทัดคำสั่งจะถูกอ่านลงในรายการgซึ่งถูกพับไว้ที่ส่วนเพิ่มเติมและผลลัพธ์จะพิมพ์อัตโนมัติ ทุกสิ่งทุกอย่างส่วนใหญ่เป็นเพียงตัวแปรซึ่งไม่มีตัวเลือก

ตอนแรกฉันรู้สึกประหลาดใจเล็กน้อยที่s, fทำงานได้โดยไม่ต้องบ่นเพราะfหมายถึงฟังก์ชั่นหลักและการใช้ช่วงของการบล็อกโค้ดไม่สมเหตุสมผล แต่แล้วฉันก็รู้ว่าตัว,ดำเนินการช่วงเมื่อได้รับการโต้แย้งฟังก์ชั่นเพียงแค่สร้างฟังก์ชั่นอื่น (เช่นเดียวกับตัวดำเนินการหลายอย่างใน Pip) ดังนั้นผมจึงคิดว่าประเมินs, f {Given a set of integers, find the sum of all integers in " ",$+g}(ซึ่งถูกยกเลิกไปแล้ว)

ประเด็นสุดท้ายที่หนึ่ง: รหัสนี้ทำงานได้กับ Pip เวอร์ชันปัจจุบันซึ่งฉันยังไม่ได้มอบหมายGอะไรเลย หากในรุ่นอนาคตฉันจะสร้างตัวดำเนินGการแบบไบนารีหรือประกอบไปด้วยดังนั้นรุ่นระยะทาง 4 จะเป็นสิ่งที่จำเป็น การใช้งานgivenแทนGivenจะได้ผลดี


3

Haskell ระยะทาง 11

ไม่มีความคิดเห็น!

const sum"Given a set of integers, find the sum of all integers in it."

การใช้งาน:

> const sum"Given a set of integers, find the sum of all integers in it." $ [1..10]
55

3

Cubixระยะทาง 9

@ivOn a ;et I+ i?tegers, fu;d <he sum of all integers in it.

ลองออนไลน์!

สิ่งนี้ล้อมรอบลูกบาศก์

      @ i v
      O n a
      ; e t
I + i ? t e g e r s , f
u ; d < h e s u m o f a
l l i n t e g e r s i n
      i t .
      . . .
      . . .

รหัสการผ่าตัดคือ

  • I+i ป้อนจำนวนเต็มเพิ่มใน TOS จากนั้นป้อนอักขระ
  • ?ทดสอบค่าตัวละคร เปลี่ยนเส้นทางซ้ายสำหรับ -1 (สิ้นสุดอินพุต) หรือขวาสำหรับสิ่งอื่น (ไม่สามารถป้อน 0)
    • ;O@ ป๊อป TOS, ผลรวมเอาท์พุทและออก
    • <;u เปลี่ยนเส้นทาง pop TOS และกลับสู่จุดเริ่มต้น

2

Pyth - 4

เพียงวางโค้ดที่แท้จริงsQไว้ด้านหน้าของสตริงที่ไม่มีช่องว่าง

sQ "Given a set of integers, find the sum of all integers in it.

ลองมันออนไลน์ได้ที่นี่


1

PHP4.1, ระยะทาง 25

อันนี้ค่อนข้างยาวและสายจริงๆ

แต่อย่างไรก็ตามนี่คือ:

<?=$n_a_set_of_integers_fi=array_sum($f_all_integers_in_i);

สำหรับการทำงาน, คุณเพียงแค่ต้องผ่านมันอาร์เรย์กว่า POST / GET / COOKIE / f_all_integers_in_iเซสชั่นการใช้กุญแจ


2
ไม่มีความคิดเห็น trolling yay!
Anubian Noob

1

Pyt , ระยะทาง 1

Given a set of integers, find the Ʃum of all integers in it.

อักขระที่เป็นตัวอักษรและตัวเลขทั้งหมดไม่มีตัวเลือกใน Pyt และผลรวมของรายการใช้เพียงหนึ่งตัวอักษร: Ʃ

ลองออนไลน์!


0

C ++ 17, ระยะทาง44 29

Variadic Generic Lambda FTW

[](auto...t){return(t+...);}//the sum of all integers in it.

วิธีแก้ไขก่อนหน้า

template<class...t>int s(t...l){return(...+l);}//gers in it.



0

Lyคะแนน 4

&+#Given a set of integers, find the sum of all integers in it.

หมายเหตุบรรทัดใหม่ต่อท้าย

ลองออนไลน์!

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


0

dc, 14

?[+z1 <f]d  sf xp#egers, find the sum of all integers in it.

ความคิดเห็น:

?                   # read numbers
 [                  # start macro
  +                 # add up last two things on stack
   z1 <f            # if stack size is more than 1, execute macro at register 'f'
        ]           # end macro
         d          # dupe it
            sf      # saving one copy to register 'f'
               x    # and executing another
                p   # printing result

TIO

มันบ่นเกี่ยวกับสแต็กว่างเปล่าถ้าคุณป้อน 1 หมายเลข แต่ยังคงใช้งานได้และการลบ 0 จะบันทึก 2 diff


0

Excel VBA, ระยะทาง: 11

ฟังก์ชันหน้าต่าง VBE แบบไม่ระบุชื่อทันทีที่รับอินพุตจากช่วง[a:a]บนวัตถุ ActiveSheet และส่งออกไปยังหน้าต่าง VBE ทันที

?[Sum(a:a)] 'f integers, find the sum of all integers in it.

0

Brain-Flak , 20

(([]){[{}]{}([])}{})ers, find the sum of all integers in it.

ลองออนไลน์!

คำอธิบาย

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

สัญชาตญาณแรกของหนึ่งอาจเป็นรหัสต่อไปนี้

({{}})

ซึ่งใช้งานได้ ... เว้นแต่จะมีศูนย์ในสแต็คซึ่งในกรณีนี้มันจะบวกจนกว่าศูนย์ เพื่อแก้ไขปัญหานี้เราต้องใช้ความสูงของสแต็กเพื่อตรวจสอบว่าสแต็กไม่ว่างเปล่า สามารถตั้งค่าแบบนี้ได้

([])    #{ Push stack height }
(       #{ Start Push }
{       #{ Loop until zero }
 <{}>   #{ Silently Pop the last height }
 {}     #{ Grab a value from the stack }
 <([])> #{ Silently push the stack height again }
}       #{ End loop }
{}      #{ Remove last stack height }
)       #{ Push the result }

อันนี้ใช้งานได้ แต่มีบางอย่างผิดปกติกับมัน เราเก็บเสียงป๊อปและแรงผลักในลูปอยู่เสมอ แต่มันเกือบจะเท่ากันดังนั้นจึงควรมีวิธีในการยกเลิกมัน ถ้าเราลอง

([])({[{}]{}([])}{})

เราจะปิดท้ายnในแต่ละครั้ง ดังนั้นนี่คือเคล็ดลับเรามีnรอบเมื่อเร็ว ๆ นี้เราเพิ่งย้ายเข้าไปในการผลักเพื่อความสมดุลของสิ่งต่าง ๆ

(([]){[{}]{}([])}{})

1
แค่อยากจะแสดงความยินดีกับคุณใน2^8คำตอบ ppcg ที่คุณต้องการ
Taylor Scott


0

เยลลี่ , ระยะทาง: 2

Given a set of integers, find the sum of all integers in it.
S

ลองออนไลน์!

เยลลี่ประเมินเฉพาะลิงก์หลัก (บรรทัดสุดท้าย) และคำสั่งที่ชัดเจนจะเรียกใช้ลิงก์อื่น (บรรทัดอื่น ๆ )

บรรทัดสุดท้ายมีSซึ่งผลรวมเข้า

บรรทัดแรกไม่ถูกดำเนินการเนื่องจากไม่มีการอ้างอิงในลิงก์หลัก


0

จัง! 4.2.2.9 (+ เครื่องมือ), scratchblocks3 ไวยากรณ์, ระยะทาง 35

นี่คือฟังก์ชั่น integers, find the sum of all inteคืออินพุต

for each(et)of(integers, find the sum of all inte
change[s v]by(et
end
report(s

สิ่งนี้นำเข้าอย่างไร อินพุตควรถูกวางในโค้ดหรือไม่? โดยปกติแล้วเราไม่อนุญาตให้มีการเรียงลำดับของข้อมูลนั้น แต่ต้องการให้ข้อมูลนั้นมาจาก STDIN หรือถ้าการส่งของคุณเป็นฟังก์ชั่นมันจะถูกส่งเป็นอาร์กิวเมนต์
ข้าวสาลี Wizard

ไม่มันเป็นฟังก์ชั่น integers, find the sum of all inteเป็นอาร์กิวเมนต์มันไม่ได้แยกความแตกต่างจากตัวแปรปกติใน scratchblocks3 ไวยากรณ์ซึ่งเป็นเหตุผลที่ฉันชี้แจง
Silas Reel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.