การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

5
เห็นภาพการคูณแบบยาวด้วย ASCII art
ความท้าทาย เขียนโปรแกรมที่รับจำนวนเต็มสองจำนวนจากอินพุตมาตรฐานคั่นด้วยเครื่องหมายจุลภาคแล้วพิมพ์การสร้างภาพข้อมูลการคูณแบบยาวของจำนวนเต็มสองจำนวนเหล่านี้ไปยังเอาต์พุตมาตรฐาน เช่น: อินพุต 14, 11 เอาต์พุตโปรแกรม 14 x11 _____ 14 14 ______ 154 อินพุต -7, 20 เอาต์พุตโปรแกรม -7 x20 _____ 00 14 _____ -140 สมมติว่าอินพุตและตัวเลขถูกต้องเสมอในช่วง [-999, 999] เกณฑ์การชนะ รหัสที่สั้นที่สุดชนะ!

27
การลบองค์ประกอบที่ไม่ซ้ำกันจากสตริง
ฉันมากับคำถามนี้เพราะมันดูเหมือนจะเป็นกรณีที่ใช้กันทั่วไปเพื่อค้นหาตัวละครที่ไม่ซ้ำกันในสตริง แต่ถ้าเราต้องการกำจัดพวกมันล่ะ? อินพุตมีตัวอักษรตัวพิมพ์เล็กเท่านั้น ใช้เฉพาะตัวอักษรจาก a ถึง z ความยาวของอินพุตอาจมีตั้งแต่ 1 ถึง 1,000 ตัวอักษร ตัวอย่าง: อินพุต: เอาต์พุตhelloworld : llool วัตถุประสงค์: รหัสที่สั้นที่สุดชนะ ภาษา: ภาษาใด ๆ ใน20 อันดับแรกของภาษา TIOBE
12 code-golf  string 

4
วาดลูกบาศก์แบบเรียงต่อกันทุกขนาด
วาดลูกบาศก์ขนาดใดก็ได้ใน ASCII art คุณจะได้รับหมายเลขสามa, bและcและโปรแกรมที่ควรเอาท์พุท a * b * คก้อนขนาด ตัวอย่าง 3 3 3 -> ____ ____ ____ /____/____/____/| /____/____/____/|| /____/____/____/||| |____|____|____|||/ |____|____|____||/ |____|____|____|/ 5 2 3 -> ____ ____ ____ ____ ____ /____/____/____/____/____/| /____/____/____/____/____/|| /____/____/____/____/____/||/ |____|____|____|____|____||/ |____|____|____|____|____|/ 4 6 5 -> ____ ____ ____ ____ /____/____/____/____/| /____/____/____/____/|| /____/____/____/____/||| /____/____/____/____/|||| …

2
Code Golf: ชะตากรรมของยานอวกาศคืออะไร? [รุ่นจุดลอยตัว]
คำถามนี้ยากกว่ารุ่น art ASCII เล็กน้อย ไม่มีงานศิลปะและตอนนี้คุณต้องทำเลขคณิตจุดลอยตัว! ความท้าทาย USS StackExchange กำลังเดินทางผ่านสนามแรงโน้มถ่วงของดาวเคราะห์ cg-00DLEF เมื่อเกิดการระเบิดทางดาราศาสตร์ขึ้นบนเรือ ในฐานะหัวหน้าเจ้าหน้าที่เขียนโปรแกรมของเรือคุณมีหน้าที่จำลองเส้นทางการเคลื่อนที่ของเรือเพื่อคาดการณ์ว่าคุณจะถูกบังคับให้ชนบนบกในระบบสุริยะของ cg-00DELF หรือไม่ ในระหว่างการระเบิดเรือของคุณเสียหายอย่างหนัก เนื่องจากยานอวกาศ DEEEPRAROM * ที่ จำกัด ฟรีคุณต้องเขียนโปรแกรมของคุณให้มีจำนวนอักขระน้อยที่สุดเท่าที่จะทำได้ * การเข้าถึงแบบสุ่มที่สามารถลบได้ด้วยโปรแกรมแบบลบได้ การจำลองสถานการณ์ ค่อนข้างคล้ายกับเวอร์ชันศิลปะ ASCII จะมีความคิดเกี่ยวกับขั้นตอนเวลา ในอีกเวอร์ชั่นหนึ่งช่วงเวลาเป็นช่วงเวลาที่ค่อนข้างใหญ่เรือสามารถเดินทางได้ไกลกว่าแรงโน้มถ่วงของดาวเคราะห์ในขั้นตอนเดียว ที่นี่ขั้นตอนเวลาเป็นหน่วยที่เล็กกว่ามากเนื่องจากมีระยะทางที่ใหญ่กว่า อย่างไรก็ตามความแตกต่างที่สำคัญอย่างหนึ่งก็คือการไม่มีเซลล์ ตำแหน่งและความเร็วของยานอวกาศในปัจจุบันจะเป็นตัวเลขจุดลอยตัวพร้อมกับแรงโน้มถ่วงที่เกี่ยวข้อง การเปลี่ยนแปลงอีกประการหนึ่งคือความจริงที่ว่าดาวเคราะห์มีขนาดใหญ่กว่ามาก จะมีดาวเคราะห์สามดวงในการจำลอง ทั้งสามจะมีตำแหน่งรัศมีและแรงโน้มถ่วงที่เฉพาะเจาะจง แรงโน้มถ่วงสำหรับดาวเคราะห์แต่ละดวงนั้นเป็นเวกเตอร์ที่ออกแรงโดยตรงไปยังศูนย์กลางของดาวเคราะห์ สูตรในการหาความแข็งแรงของเวกเตอร์นี้คือ(Gravity)/(Distance**2)โดยที่ระยะทางเป็นระยะทางที่แน่นอนจากเรือถึงศูนย์กลางของดาวเคราะห์ ซึ่งหมายความว่าไม่มีการ จำกัด ว่าแรงโน้มถ่วงจะไปถึงที่ใด ยานอวกาศมีความเร็วซึ่งเป็นระยะทางและมุมที่มันเคลื่อนที่จากขั้นตอนสุดท้ายจนถึงตอนนี้ เรือยังมีโมเมนตัม ระยะทางที่มันจะเดินทางระหว่างขั้นตอนเวลาปัจจุบันและระยะถัดไปคือผลรวมของความเร็วปัจจุบันที่เพิ่มเข้ากับเวกเตอร์แรงโน้มถ่วงทั้งหมดที่ตำแหน่งของมัน นี่เป็นความเร็วใหม่ของยานอวกาศ การจำลองแต่ละครั้งมีการ จำกัด เวลา 10,000 ขั้นตอน หากยานอวกาศเดินทางเข้าไปในดาวเคราะห์ (ใกล้กับศูนย์กลางของดาวเคราะห์มากกว่ารัศมีของดาวเคราะห์) …

26
รายการยกเลิกการซ้อน
ให้ลิสต์ที่มีลิสต์ซ้อนอยู่ภายในให้คืนค่าลิสต์ของไอเท็มที่ซ้อนอยู่ในไอเท็ม อินพุต รายการจะมีรายการซ้อนกันได้สูงสุด 4 รายการ นับ 0 ทั้งหมดภายในอินพุตเป็นช่องว่าง เอาท์พุต พิมพ์ทีละรายการ อย่าพิมพ์เอาต์พุตเป็นรายการ คุณสามารถแยกแต่ละรายการด้วยช่องว่างใด ๆ ตัวอย่างคดี [[1, 0], [2, 0], [2, 3]] -> 1 2 2 3 [[[4, 5, 8]], [[5, 6, 20]], [[1, 20, 500]]] -> 4 5 8 5 6 20 1 20 500 [[[1, 0], [0, 0], [0, 0]], …
12 code-golf 

11
โปรแกรมสั้นที่สุดที่แสดงให้เห็นถึงไวยากรณ์ที่สมบูรณ์ของภาษา [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ความท้าทาย เขียนโปรแกรมที่สั้นที่สุดที่แสดงให้เห็นถึงไวยากรณ์ทั้งหมดของภาษาโปรแกรม: คำสั่งนิพจน์ตัวดำเนินการคำสงวน ฯลฯ ใช้ไวยากรณ์ของภาษา (มักจะเป็นEBNF ) และสร้างโปรแกรมที่ใช้ทั้งหมด โปรแกรมไม่ต้องทำอะไรที่มีประโยชน์เป็นพิเศษ แต่ถ้ามันเป็นโบนัส :) กฎระเบียบ คุณต้องใช้ไวยากรณ์ของภาษาทั้งหมด: คำสั่งทุกประเภท, นิพจน์, โอเปอเรเตอร์, คำหลักและอื่น ๆ ที่ภาษากำหนดไว้ มันจะต้องสามารถทำงานได้โดยไม่ต้องพึ่งพายกเว้นสำหรับไลบรารีมาตรฐานที่มาพร้อมกับภาษา (ไม่จำเป็นต้องใช้ lib มาตรฐานทั้งหมดแม้ว่า) รวมลิงค์ไปยังข้อมูลจำเพาะภาษาที่คุณใช้ (เช่นที่นี่คือไวยากรณ์ Python 2.7 )
12 code-golf 

1
ทำอะไรอร่อย ๆ ! [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ความท้าทายของคุณคือการเขียนโปรแกรมเชฟที่ทำงานได้ดีเป็นสูตรและเป็นโปรแกรม จำเป็นต้องใช้ยูทิลิตี้เป็นสูตรอาหารอย่างเคร่งครัด (ฉันไม่ต้องการสูตรอาหารสำหรับเกรพเบลในซอสช็อคโกแลตมัสตาร์ด); ยูทิลิตีของมันในฐานะโปรแกรมเป็นข้อกำหนดที่เข้มงวดดังนั้นมันจึงเพียงพอที่จะพิมพ์สิ่งที่น่าสนใจ (จำนวนเต็มสองสามตัวแรกเช่นหรือ "แค่พ่อครัวอีกคน" หรือ "แค่แฮ็กเกอร์คนอื่น" หรือ "สวัสดีชาวโลก") หรือ ทำการคำนวณที่เป็นประโยชน์ (ตัวอย่างเช่นพิมพ์ผลรวมของตัวเลขสองจำนวน) การลงคะแนนควรคำนึงถึงสิ่งนี้ด้วยและผู้ชนะคือโปรแกรมที่มีการอัปโหลดสุทธิมากที่สุดหลังจากผ่านไประยะหนึ่ง (ความยาวรหัสไม่สำคัญที่นี่)

13
สร้างแถบความคืบหน้าของ ASCII
มันคล้ายกับคำถามนี้แต่มีความแตกต่างเล็กน้อย คุณต้องเขียนโปรแกรมเพื่อขอความกว้างของแถบความคืบหน้าและทำงานเป็นจำนวนเท่าใด และจากนั้นวาดแถบความคืบหน้าด้วยคุณสมบัติดังต่อไปนี้: width ระบุจำนวนตัวอักษรที่คุณต้องใช้ในการวาดแถบความคืบหน้า ความคืบหน้าจะได้รับผ่านค่าทศนิยมระหว่าง 0..1 อักขระตัวแรกและตัวสุดท้ายในแถบความคืบหน้าควรเป็นสิ่งที่แตกต่างจากตัวละครอื่น ๆ ทั้งหมดเช่น "[" และ "]" โปรแกรมของคุณควรใช้อักขระสองตัวที่แตกต่างกันเพื่อประเมินความก้าวหน้าที่ผ่านไปนับตั้งแต่เริ่มต้น คุณต้องเขียนจำนวนงานที่ทำตรงกลางแถบความคืบหน้าโดยใช้เครื่องหมายทศนิยม + "%" จุดโบนัสสำหรับการจัดการอินพุตที่มากเช่นงานที่ทำเสร็จ 150% หรือ -5% จำนวนตัวอักษรที่ให้คะแนน * (1 ที่ไม่มีโบนัสหรือโบนัสความกว้าง 0.75) ตัวอย่างบางส่วนของผลลัพธ์ที่ถูกต้อง 79 0.15 [|||||||||||| 15% ] 25 0.76 [##########76%#####.....] 39 -0.12 [ -12% ] 25 7.6 [##########760%#########]

16
ค้นหาคำด้วยมือเดียว
'เกินจริง' เป็นตัวอย่างของคำที่สามารถพิมพ์ทางซ้ายมือบนแผนที่แป้นพิมพ์แบบ qwerty ปกติ 'การผูกขาด' เป็นตัวอย่างสำหรับมือขวา ค้นหาwordsไฟล์unix สำหรับคำที่สามารถพิมพ์ด้วยมือเดียว ผลลัพธ์ควรเป็นสองบรรทัด: เว้นวรรคคั่นรายการของคำดังกล่าวสำหรับมือซ้ายตามด้วยรายการสำหรับมือขวา เช่น a abaft abase abased abases abate abated abates abbess abbesses ... h hi hill hilly him hip hippo hippy ho hokum ... ตัวอักษรซ้ายคือ: qwertasdfgzxcvb ตัวอักษรทางขวาคือ: yuiophjklnm' ตัวอักษรตัวพิมพ์ใหญ่นับเป็นมือเดียว; ตัวอักษรที่มีเครื่องหมายกำกับจะถูกนับเป็นสองมือและดังนั้นจึงสามารถละเว้นคำที่มีคำเหล่านั้นได้
12 code-golf 

4
แปลงจาก Infix Notation เป็น Prefix Notation
รับนิพจน์ทางคณิตศาสตร์ซึ่งอาจรวมถึงวงเล็บ ( ()), เลขชี้กำลัง ( ^), การหาร ( /) และการคูณ ( *), การเพิ่ม ( +) และการลบ ( -) (ตามลำดับการดำเนินการ) เช่น a ^ (2 / 3) * 9 * 3 - 4 * 6 เอาท์พุทนิพจน์เดียวกันในสัญลักษณ์คำนำหน้า (- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6)) ช่องว่างเป็นตัวเลือกในการป้อนข้อมูลเช่นเดียวกับการส่งออก คุณอาจสันนิษฐานว่าผู้ประกอบการทั้งหมดมีความสัมพันธ์ทางด้านซ้ายและตัวเลขทั้งหมดในนิพจน์นั้นเป็นเลขจำนวนเต็มหลักเดียว (เช่น[0-9]) …
12 code-golf  math 

3
ใช้เครื่องคิดเลขกราฟ
มีคำถามมากมายที่เกี่ยวข้องกับเครื่องคิดเลข; อย่างไรก็ตามจะไม่ปรากฏว่ามีส่วนเกี่ยวข้องกับการใช้เครื่องคิดเลขกราฟ ความท้าทาย คุณต้องเขียนโปรแกรมทั้งหมดที่ใช้หลายสูตรเป็นอินพุตจาก STDIN และกราฟไปยัง STDOUT f1(x)=x^2-x-1การป้อนข้อมูลจะใช้รูปแบบ จะมีการfตามด้วยหมายเลข 0-9 (รวม) ตามด้วย(x)=ตามด้วยสูตรกราฟ โปรแกรมของคุณควรสามารถรับอินพุตกราฟรับอินพุตเพิ่มกราฟและอื่น ๆ ได้ นี่คือรหัสกอล์ฟ กราฟของคุณควรมีช่วงแกน X ตั้งแต่ -5 ถึง 5 โดยมีความละเอียดอย่างน้อยหนึ่งจุดในทุกๆ 1/2 หน่วย ความต้องการแกน Y เหมือนกัน นี่อาจดูเหมือนเป็นช่วงเล็ก ๆ เมื่อเทียบกับเครื่องคิดเลขที่ทันสมัย ​​แต่ส่วนใหญ่จะเพิ่มขึ้นเล็กน้อย กราฟควรมีแกนที่วาดอยู่กับพวกเขาโดยมีเครื่องหมายถูกในรูปของ+จำนวนเต็ม ควรประเมินสูตรด้วยลำดับการดำเนินการปกติ จะไม่มีเส้นกำกับ / ภูมิภาคที่ไม่ได้กำหนดในสูตรเหล่านี้ ตัวแปรจะเป็น x เสมอ หากป้อนสองสูตรด้วยหมายเลขสมการเดียวกันสูตรที่เก่าที่สุดควรถูกลบและแทนที่ด้วยสูตรใหม่ สูตรเปล่าควรประเมินเป็นศูนย์ เนื่องจากมีโอกาสที่สูตรจะไม่ให้ผลคูณ 1/2 ที่ดีเสมอคุณจึงต้องปัดเศษ 1/2 ที่ใกล้ที่สุด เมื่อสูตรเป็นกราฟเส้นของมันควรจะเกิดจากจำนวนของสูตร เมื่อเส้นผ่านแกนหนึ่งแกนควรวาดที่ด้านบน เมื่อสองบรรทัดข้ามกันมันไม่สำคัญว่าจะแสดง …

1
จำลองคอมพิวเตอร์ประเภทลูกบิลเลียด (ตามแรงโน้มถ่วง)
เครื่องจักร เครื่องประเภทบิลเลียดลูกประกอบด้วยเพียงสัญลักษณ์พร้อมกับบนและกรณีที่ต่ำกว่าตัวอักษรช่องว่างและจำนวน\ _ /1 \และ/เป็นทางลาด ลูกบอลที่มาจากด้านบนจะถูกเบี่ยงเบนไปทางด้านขวาหรือด้านซ้ายตามลำดับ สำหรับทางลาดทั้งสองถ้าลูกบอลมาจากด้านใดด้านหนึ่งมันจะเบี่ยงลงไป _เป็นองค์ประกอบตรรกะ ตรรกะดำเนินการโดยเป็นส่วนที่ไม่เหมือนบิลเลียดมากที่สุดของคอมพิวเตอร์ อย่างแรกลูกบอลที่มาจากทางซ้ายหรือขวาจะดำเนินต่อไปในทิศทางเดียวกัน ลูกบอลที่มาจากด้านบนจะหยุดลง จากนั้นหลังจากสิ้นสุดการประมวลผล (ดูที่การรันเครื่องด้านล่าง) หากจำนวนลูกที่ข้าม / ลงบนมันเป็นจำนวนที่เป็นบวกแม้กระทั่งลูกเดียวจะถูกปล่อยจากด้านล่างขององค์ประกอบ พื้นที่ไม่ทำอะไรเลย ลูกบอลใดก็ตามที่มาจากทิศทางใดก็ตกลงมาเนื่องจากแรงโน้มถ่วง อักษรตัวพิมพ์เล็กเป็นอินพุต อินพุตทั้งหมดจะเป็น 1 หรือ 0 เดียว ตัวอักษรตัวพิมพ์ใหญ่เป็นผลลัพธ์ จำนวนเอาท์พุทจะเป็นจำนวนของลูกบิลเลียดที่ตีตำแหน่งของมัน จำนวน1จะปล่อยลูกบิลเลียดเพิ่มที่ตำแหน่งนั้น เพราะมันหมายถึงตรรกะ 1 ตัวละครทุกตัวนอกจากจะ\_/ทำให้ลูกบอลจากทิศทางใดตกลงมาเนื่องจากแรงโน้มถ่วง ลูกไม่เคยรวมกันแยกหรือชนกัน สิ่งเหล่านี้จะถูกสร้างขึ้นเมื่อปล่อยจากอินพุต, a _หรือ a 1เท่านั้น _พวกเขาจะถูกทำลายเฉพาะเมื่อพวกเขาล้มลงตรงไปยัง เครื่องตัวอย่าง - 1 a \_/ b \_/ \/ /\ / _ _ A …

3
Quine ประหยัดเซสชัน
แรงบันดาลใจจากคำถามนี้ สร้างโปรแกรมที่พร้อมท์ให้ผู้ใช้จัดเก็บข้อมูลบางอย่างและเมื่อโปรแกรมเลิกให้คายโปรแกรมเองยกเว้นข้อมูลเซสชันจะเปลี่ยนไป จากนั้นผู้ใช้เปิดโปรแกรมที่สร้างขึ้นใหม่และสามารถเรียกคืนข้อมูลจากโปรแกรมก่อนหน้า คำสั่ง KEY VALUE: ตั้งค่าตัวแปรเซสชันKEYเป็นVALUE *: ล้างข้อมูลทั้งหมด ! KEY: ลบ KEY ? KEY: แบบสอบถามKEY(หากไม่มี: พิมพ์อะไรเลยและไปต่อ) มิฉะนั้นให้ออกจากโปรแกรม คีย์หรือค่าไม่สามารถมีช่องว่างใด ๆ ชื่อไฟล์ของโปรแกรมที่สร้างขึ้นใหม่จะต้องระบุเวอร์ชันของโปรแกรมคุณสามารถใช้วันที่หรือตัวนับ ตัวอย่างการโต้ตอบ: name test store name = test data is now { name: test } 0 1 data is now { name: test, 0: 1 } ? name output: test …
12 code-golf  quine 

4
เส้นทางที่สั้นที่สุดสำหรับอัศวินหมากรุก
โปรแกรมของคุณควรคำนวณจำนวนการเคลื่อนย้ายที่ต้องใช้อัศวินหมากรุกเพื่อเข้าถึงกระดานหมากรุกแต่ละตาราง อินพุตจะเป็นจำนวนเต็มสองจำนวนที่คั่นด้วยช่องว่างซึ่งเป็นตัวแทนของพิกัดของจตุรัสเริ่มต้น โปรแกรมของคุณควรส่งออกตารางตัวเลขที่มีจำนวนการเคลื่อนไหวขั้นต่ำที่อัศวินหมากรุกจำเป็นต้องใช้เพื่อเข้าถึงแต่ละตาราง ตัวอย่าง อินพุต 0 0 เอาท์พุต 03232345 34123434 21432345 32323434 23234345 34343454 43434545 54545456 อินพุต 3 1 เอาท์พุต 21232123 32303232 21232123 34121432 23232323 32323234 43434343 34343434 รหัสที่สั้นที่สุดชนะ
12 code-golf  chess 

10
การเขียนโปรแกรมสร้างสรรค์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา สร้างเรื่องราวจากการเขียนโปรแกรมของคุณ ตัวอย่างใน JavaScript: self.book = { "story": function() { var once = "upon", aTime = setTimeout(function() { // Code would continue... }, 1000) } }; self.book.story(); เงื่อนไข: ต้องเรียกใช้ปราศจากข้อผิดพลาดก่อนระหว่างและหลังจากรวบรวม คุณสามารถใช้คำได้สูงสุดสองคำต่อเนื้อเรื่องต่อสตริง / ชื่อ ตัวอย่าง JavaScript: var story = "Once upon a"; …

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