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

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

18
การสร้างฮิสโตแกรม
เขียนโปรแกรมที่สั้นที่สุดที่สร้างฮิสโตแกรม (การแสดงกราฟิกของการกระจายข้อมูล) กฎ: ต้องสร้างฮิสโตแกรมขึ้นอยู่กับความยาวอักขระของคำ (เครื่องหมายวรรคตอนรวม) อินพุตในโปรแกรม (ถ้าคำมีความยาว 4 ตัวอักษรแถบที่เป็นตัวแทนของหมายเลข 4 จะเพิ่มขึ้น 1) ต้องแสดงป้ายชื่อบาร์ที่สัมพันธ์กับความยาวอักขระที่แถบแสดง ต้องยอมรับทุกตัวละคร หากต้องปรับขนาดแท่งต้องมีวิธีที่แสดงในฮิสโตแกรม ตัวอย่าง: $ ./histogram This is a hole in one! 1 |# 2 |## 3 | 4 |### $./histogram Extensive word length should not be very problematic. 1 | 2 |# 3 |# 4 |## 5 …

29
เวลาทำการบ้าน! ค้นหาตัวเลขที่ต่ำที่สุดในสตริง
อีกคำถามที่ยอดเยี่ยมจาก Stack Overflowกลายเป็นความท้าทายของนักกอล์ฟ ! เขียนโปรแกรมที่: ยอมรับสตริงเป็นอินพุตของผู้ใช้ (ไม่ใช่ไพพ์หรืออาร์กิวเมนต์บรรทัดคำสั่ง) ชนิดข้อมูลของอินพุตต้องเป็นสตริงหากภาษาทำการวิเคราะห์อัตโนมัติโดยอินพุตมันจะต้องส่งไปยังสตริง พบว่าดัชนี (0 หรือ 1 based) ของแม้แรกต่ำสุดบาท พิมพ์ 2 จำนวนเต็ม , ดัชนีและแม้ต่ำสุดบาท ถ้าไม่มีแม้แต่บาทผลตอบแทน -1 เป็นดัชนีจำนวนที่สองสามารถเป็นอะไรก็ได้ สำหรับวัตถุประสงค์ของการนี้ศูนย์ไม่ได้ ตัวอย่างการทดสอบกำหนดสตริงทางซ้ายเอาท์พุทค่าด้านขวา: 25376 --> 0,2 523726 --> 1,2 583746 --> 4,4 53771 --> -1,0 _4___2 --> 5,2 ผู้ชนะ: เป็นโปรแกรมที่มีจำนวนอักขระต่ำสุด ไม่มีโบนัสไม่มีการลงโทษ แก้ไข: (เกี่ยวกับ stdin)ฉันเมาในส่วนการป้อนข้อมูลของผู้ใช้โดยทั่วไปไม่มีข้อมูลในท่อและไม่มีข้อโต้แย้งบรรทัดคำสั่ง คุณต้องระบุพรอมต์ของผู้ใช้ในโปรแกรมเอง
12 code-golf 

7
โปรแกรมที่สั้นที่สุดที่มีโปรแกรม + เอาท์พุทต่อกันคือการเรียงลำดับของอักขระ ASCII ที่พิมพ์ได้ 95 ตัว
เขียนโปรแกรมที่สั้นที่สุดเท่าที่จะเป็นไปได้ (วัดโดยจำนวนไบต์) ไม่มีการป้อนข้อมูลไม่มีความคิดเห็นและส่งออกสตริงอักขระ / ลำดับเช่นโปรแกรมที่ต่อกัน + เอาต์พุตมีความยาว 95 ตัวอักษรและประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เพียงครั้งเดียวคือโปรแกรม + เอาท์พุทคือการเรียงสับเปลี่ยนของ 95 ตัวอักษรด้วยรหัส ASCII 32-126: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ในกรณีที่เสมอกันผู้ชนะคือรายการที่มีโปรแกรมตัดต่อ (95 ตัวอักษร) + เอาต์พุตใกล้กับสตริงด้านบนดังที่วัดโดยLevenshtein edit-distance (เช่นจำนวนการลบตัวอักษรเดี่ยวการแทรกหรือ การแทนที่จำเป็นต้องใส่ลงในคำสั่ง ASCII)
12 code-golf 

23
การเรียงลำดับรายการของสตริงโดยไม่ต้องใช้วิธีการเรียงลำดับที่มีอยู่แล้ว
เป้าหมายของ Code Golf นี้คือการสร้างโปรแกรมที่เรียงลำดับรายการสตริง (ตามลำดับจากน้อยไปหามาก) โดยไม่ต้องใช้วิธีการเรียงลำดับแบบบิวด์อิน (เช่นArray.Sort()ใน. NET, sort()ใน PHP, ... ) โปรดทราบว่าข้อ จำกัด นี้ไม่รวมการใช้วิธีการในตัวที่เรียงลำดับจากมากไปน้อยแล้วกลับอาร์เรย์ รายละเอียดบางอย่าง: โปรแกรมของคุณควรพร้อมท์ให้ป้อนข้อมูลและอินพุตนี้เป็นรายการของสตริงที่มีเฉพาะอักขระตัวอักษรตัวพิมพ์เล็กและตัวอักษร ASCII a-zคั่นด้วยเครื่องหมายจุลภาคโดยไม่มีช่องว่าง ตัวอย่างเช่น: code,sorting,hello,golf เอาต์พุตควรเป็นรายการของสตริงที่กำหนด แต่เรียงตามลำดับจากน้อยไปมากยังคงคั่นด้วยเครื่องหมายจุลภาคโดยไม่มีช่องว่าง ตัวอย่างเช่น: code,golf,hello,sorting

1
ยูทิลิตี้การถ่ายโอนข้อมูลฐานสิบหกแบบย้อนกลับ (aka `xxd`)
xxdเป็นยูทิลิตี้ที่มาพร้อมกับvimที่ใช้ในการเข้ารหัสคำตอบของปัญหารหัสกอล์ฟในเว็บไซต์นี้ มันจะแปลงไฟล์ไบนารีให้เป็นดัมพ์ฐานสิบหกและกลับมาอีกครั้ง ใช้งานxxdและxxd -rคำสั่งในภาษาการเขียนโปรแกรมที่คุณเลือก การให้คะแนนจะขึ้นอยู่กับความยาวของอักขระ / ไบต์ของ a) โปรแกรมของคุณและ b) อาร์กิวเมนต์บรรทัดคำสั่งใด ๆ ที่จำเป็นในการสลับโปรแกรมที่รวมกันระหว่างโหมด (ไม่จำเป็นต้องเป็น-r) เช่นเดียวกับกอล์ฟคะแนนที่ต่ำกว่าดีกว่า สำหรับสองโปรแกรมที่แยกจากกัน: forward code + reverse code สำหรับโปรแกรมรวม: รหัสรวม + ผลรวม ( ข้อโต้แย้งไปข้างหน้า ) + ผลรวม ( ข้อโต้แย้งกลับ ) - 2 ข้อมูลจำเพาะของxxdชุดย่อยที่เลือก คำสั่งไปข้างหน้า ( เช่น xxd ) ยอมรับ 0 ≤ n ≤ 2 16ไบต์จากอินพุตมาตรฐานและสร้างบรรทัดceil ( n …
12 code-golf 

4
คุณสามารถอ่านบาร์โค้ดในบาร์โค้ดได้หรือไม่?
ยินดีต้อนรับสู่บาร์ piNapple เมลเบิร์น นักกอล์ฟที่ดีที่สุดทุกคนอยู่ที่นี่พร้อมกับแล็ปท็อปค็อกเทลและสุ่มตัวอย่างที่แย่กว่าเดิม ฉันรู้สึกจำเป็นอย่างยิ่งที่ต้องเน้นย้ำจุดสุดท้าย แย่มากขึ้นเรื่อย ๆ แอลกอฮอล์สามารถทำสิ่งที่ตลกกับตรรกะการเขียนโปรแกรม ดังนั้น - นักกอล์ฟสองสามคนกำลังพยายามควงคู่กันในภาษาแปลก ๆ มากขึ้นเรื่อย ๆ มีบางคนได้รับคำสั่งซื้อครั้งที่สี่ใน INTERCAL จากนั้นแอลกอฮอล์ก็หยุดไหล เขามึนเมาลบอัลกอริธึมการอ่านบาร์โค้ดจากคอมพิวเตอร์เครื่องอื่นโดยสิ้นเชิงโดยบังเอิญ ... นั่นไม่ได้เชื่อมต่อกับเครือข่ายใด ๆ ! (เด็ก ๆ - อย่า INTERCAL เพื่อประโยชน์ของคุณเพื่อครอบครัวของคุณ) ปกตินี้จะไม่เป็นปัญหาใหญ่ แต่นักกอล์ฟบางคนได้ออกแบบระบบเมื่อหลายปีก่อนและไม่มีบาร์โค้ดใดเป็นมาตรฐาน สมมติว่า 1 คือบรรทัดและ 0 คือพื้นที่ว่างพวกเขาทั้งหมดเริ่มต้นที่ 101 และจบด้วย 1001 ทุกอย่างที่อยู่ตรงกลางคือการเข้ารหัส ASCII 7 บิต บาร์เทนเดอร์มีเครื่องอ่านบาร์โค้ดขนาดใหญ่ที่จะส่งคืนความยาวตามอำเภอใจ (แม้ว่าจะน้อยกว่า 300 บิต) ของ 1 และ 0 …
12 code-golf 

6
จัดการร้านพาย!
สรุป รหัสกอล์ฟเป็นสิ่งที่ดี พายเป็นสิ่งที่ดี เมื่อคุณรวมสองสิ่งเข้าด้วยกันสิ่งที่ดีเท่านั้นที่จะเกิดขึ้นได้ ข้อมูลจำเพาะ ในการท้าทายนี้คุณจะจัดการร้านพาย ผู้ใช้จะสามารถป้อนข้อมูลห้าคำสั่งแตกต่างกัน: list, count, buy, และsell exitนี่คือข้อกำหนดสำหรับแต่ละ: list พิมพ์รายการของพายทั้งหมดที่เป็นเจ้าของและจำนวน คั่นด้วย|และ pad ด้วยช่องว่างทั้งสองด้าน |ต้องจัดตำแหน่ง จำนวนพายอาจเป็นค่าลบ (นั่นหมายความว่าคุณเป็นหนี้กับใครบางคน:() ตัวอย่างเช่น: | apple | 500 | | blueberry | 2 | | cherry | -30 | count [type] พิมพ์จำนวน{{type}}พายที่มี พิมพ์ "ไม่มี{{type}}พาย!" ถ้าไม่มี {{type}}จะตรงกับ regex เสมอ\w+(เช่นจะเป็นคำเดียวเสมอ) ตัวอย่างเช่นถ้าฉันมีจำนวนของพายที่แสดงในรายการตัวอย่างข้างต้นแล้ว > count apple 500 …
12 code-golf 

6
เข้ารหัสโปรแกรมที่มีตัวอักขระต่างกันน้อยที่สุดเท่าที่จะเป็นไปได้
เป้าหมายคือการเขียนโปรแกรมที่เข้ารหัสโปรแกรมอื่น (อินพุต) ด้วยอักขระที่น้อยที่สุดเท่าที่จะเป็นไปได้ เกณฑ์การให้คะแนน คะแนนเท่ากับจำนวนอักขระที่ต้องการสำหรับเอาต์พุต คะแนนต่ำกว่าดีกว่า กฎระเบียบ ไม่มีภาษาเป้าหมายที่มีชุดคำสั่งที่ จำกัด (ไม่มี Brainf ** k, Whitespace และอื่น ๆ ) แก้ไข : ฉันหมายถึงอักขระที่สำคัญอย่างน้อย 26 ตัวAไม่เปลี่ยนวิธีการทำงานของโปรแกรม brainf ** k ดังนั้นคุณจึงไม่สามารถนับตัวละครนี้ได้ เช่นเดียวกับช่องว่าง ต้องมีภาษาเป้าหมายในเวลาที่เขียนคำถามนี้ คุณต้องรวมคำอธิบายเล็ก ๆ น้อย ๆ ว่าคุณเก็บคะแนนของคุณอย่างไร โปรแกรมอินพุตถูกต้อง โปรแกรมที่เข้ารหัสต้องเป็นโปรแกรมที่ถูกต้องในภาษาเดียวกันกับอินพุต โปรแกรมที่เข้ารหัสต้องทำงานเช่นเดียวกับโปรแกรมต้นฉบับ โปรแกรมเปลี่ยนไฟล์ของคุณต้องใช้งานได้กับทุกโปรแกรมที่ใช้งานได้ในภาษานั้น ๆ รวมตัวอย่างอินพุตและเอาต์พุตตัวอย่าง หมายเหตุ โปรแกรมเปลี่ยนไฟล์อาจเขียนเป็นภาษาใดก็ได้ไม่เพียง แต่เป็นภาษาเป้าหมายเท่านั้น นี่ไม่ใช่โปรแกรมอ่านโค้ดที่ได้รับการสนับสนุน เป้าหมายที่ยิ่งใหญ่คือการดูว่าจำเป็นต้องใช้อักขระจำนวนเท่าใดในการเขียนสิ่งใด ๆ ในภาษานั้น ฉันไม่อนุญาตให้ BF ฯลฯ เพราะจะไม่มีการท้าทาย …

1
ติดตั้งเลขทศนิยมแบบไบนารีของ IEEE 754 64- บิตผ่านการจัดการจำนวนเต็ม
(ฉันติดแท็กคำถาม "C" ในขณะนั้น แต่ถ้าคุณรู้ภาษาอื่นที่สนับสนุนสหภาพคุณสามารถใช้มันได้) งานของคุณคือการสร้างตัวดำเนินการทางคณิตศาสตร์สี่มาตรฐาน+ - * /สำหรับโครงสร้างต่อไปนี้: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } เช่นว่าการดำเนินการของตัวเองเท่านั้นที่จะจัดการหรือเข้าถึงส่วนจำนวนเต็ม (ดังนั้นจึงไม่มีการเปรียบเทียบกับสองครั้งตลอดเวลาในระหว่างการดำเนินการอย่างใดอย่างหนึ่ง) และผลที่ได้คือเหมือนกัน (หรือเทียบเท่าตามหน้าที่ในกรณีของผลลัพธ์ที่ไม่ใช่ตัวเลขเช่นNaN) ราวกับว่าการดำเนินการทางคณิตศาสตร์ที่สอดคล้องกันถูกนำไปใช้โดยตรงกับdoubleแทน คุณอาจเลือกส่วนจำนวนเต็มเพื่อจัดการแม้กระทั่งการใช้ส่วนต่าง ๆ ในตัวดำเนินการที่แตกต่างกัน (คุณสามารถเลือกที่จะลบ "unsigned" ออกจากฟิลด์ใด ๆ ในสหภาพได้แม้ว่าฉันไม่แน่ใจว่าต้องการทำเช่นนั้นหรือไม่) คะแนนของคุณคือผลรวมของความยาวของรหัสเป็นอักขระสำหรับผู้ให้บริการแต่ละราย คะแนนต่ำสุดชนะ สำหรับพวกเราที่ไม่คุ้นเคยกับข้อกำหนด IEEE 754 นี่เป็นบทความเกี่ยวกับเรื่องนี้ใน Wikipedia การแก้ไข: 03-06 …

5
“ Cowsay” สั้น [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา จำลองcowsayในโหมดเริ่มต้น $ cowsay <<< Hello _______ < Hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || $ perl -e 'print "Long text "x20' | cowsay __________________________________________ / Long text Long text Long text Long text …

2
การวาดอวน 3d - ของแข็งอาร์คิมีดีน
ฉันมีจุดอ่อนสำหรับมุ้ง 3 มิติซึ่งเมื่อตัดออกและพับให้คุณสร้างรูปทรง 3 มิติจากกระดาษหรือการ์ด งานง่ายเขียนโปรแกรมที่สั้นที่สุดที่คุณสามารถวาดอวนสำหรับของแข็ง 13 อาร์คิมีดีน เอาต์พุตควรเป็นไฟล์รูปภาพในรูปแบบที่เหมาะสม (png, jpg) รูปร่างทั้งสิบสามมีการอธิบายที่http://en.wikipedia.org/wiki/Archimedean_solidและในตารางต่อไปนี้นำมาจากที่นั่น อินพุต:จำนวนเต็มตั้งแต่ 1 ถึง 13 สมมติว่ารูปร่างมีหมายเลขตามที่แสดงในตารางด้านบนเพื่อให้ "tetrahedron ที่ถูกตัดทอน" คือหมายเลข 1 และ "snub dodecahedron" คือหมายเลข 13 เอาท์พุท:ไฟล์ภาพที่มีตาข่ายสำหรับรูปร่างนั้น เพียงแค่โครงร่างรวมถึงเส้นภายในก็โอเค ไม่จำเป็นต้องเติมสีด้วย คุณสามารถใช้ภาษาการเขียนโปรแกรมใด ๆ ที่คุณชอบเช่นเดียวกับห้องสมุดใด ๆ ที่ไม่ได้ทำขึ้นเป็นพิเศษสำหรับการแข่งขัน ทั้งสองควรพร้อมใช้งานได้อย่างอิสระ (ในความรู้สึกทั้งสอง) ออนไลน์ ฉันจะยอมรับคำตอบด้วยจำนวนตัวอักษรที่น้อยที่สุดในเวลาหนึ่งสัปดาห์ คำตอบจะได้รับการยอมรับเมื่อใดก็ตามที่พวกเขามา (ยังไม่มี) ผู้ชนะ น่าเศร้าที่ไม่มีผู้เข้าร่วมที่ถูกต้อง บางทีมันยากเกินไป?
12 code-golf 

4
โปรแกรมเตาอบไมโครเวฟของฉัน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันขี้เกียจมากดังนั้นผมจึงพยายามที่จะเสมอโปรแกรมไมโครเวฟของฉันที่มีน้อยที่สุดกดปุ่มที่เป็นไปได้ ไมโครเวฟของฉันมีปุ่มต่อไปนี้: ปุ่ม "นาทีบวก" ซึ่งสามารถกดได้ก่อนเท่านั้นและหมายถึง "เริ่มต้น" อาจกดหลายครั้งหลายนาที แต่จะไม่เพิ่มหนึ่งนาทีในเวลาที่ป้อนด้วยตนเอง เอาท์พุต+ ชุดของปุ่ม 0-9 เวลาเข้าคือ MMSS (เช่น "130" หมายถึง 1 นาที 30 วินาที) วินาทีอาจมีตั้งแต่ 0..99 ดังนั้น "130" และ "90" จึงเป็นรายการที่เทียบเท่ากัน เห็นได้ชัดว่าแต่ละนาทีคือ 60 วินาทีแม้ว่าส่วนวินาทีของรายการเกิน 59 เอาท์พุท0..9 ปุ่ม "เริ่มต้น" ซึ่งจะต้องกดเพื่อเริ่มต้นไมโครเวฟหากป้อนเวลาด้วยตนเอง เอาท์พุตS แพ็คเกจอาหารของฉันระบุเวลาเป็น MM: SSและดังนั้นโปรแกรมต้องยอมรับอินพุตนั้น …

6
เรือกวาดทุ่นระเบิดทำงาน
คล้ายกับการสร้างกริดเรือกวาดทุ่นระเบิดแม้ว่าความท้าทายคือการทำให้กริดกวาดทุ่นระเบิดทำงาน นี้จะเป็นรหัสนานกว่าปกติ (ฉันคิด) ข้อมูลเพิ่มเติมเกี่ยวกับเรือกวาดทุ่นระเบิด Minesweeper เป็นเกมลอจิกที่พบในระบบปฏิบัติการส่วนใหญ่ เป้าหมายของเกมคือการกำหนดตำแหน่งของระเบิดบนกริดให้ตัวเลขที่ระบุจำนวนเหมืองรอบ ๆ จุดนั้น คุณสมบัติที่ต้องการ: -Randomized mine generation -8x8 field with 10 mines -Mine and "unknown" flags -Reveal nearby blank spaces when a blank space has been revealed. -Input and output code: It must be playable. (Input and output code counts in the total) หมายเหตุเกี่ยวกับการให้คะแนน …

6
ทำคะแนนเกมของ Yahtzee
สำหรับScoresheet Yahtzeeแต่ละแถวจาก 13 แถวที่คุณได้รับ (จาก stdin) ช่องว่างคั่นด้วยหมายเลข 5 หมายเลข (ลูกเต๋า) งานของคุณคือการคำนวณคะแนนสำหรับแต่ละบรรทัดและส่งผลรวมทั้งหมดของเกม ตัวอย่าง อินพุตและวิธีตีความ: Input Box Score 6 1 4 1 3 Aces 2 3 2 2 1 2 Twos 6 6 3 2 3 3 Threes 9 4 2 3 6 5 Fours 4 6 3 5 5 1 Fives …
12 code-golf  number  game 

12
ค้นหาคำที่ 'ไม่เหมือนใคร' มากที่สุด
ใช้ภาษาที่คุณเลือกเขียนฟังก์ชัน / สคริปต์ / โปรแกรมที่สั้นที่สุดที่คุณสามารถระบุคำที่มีตัวอักษรเฉพาะจำนวนสูงสุดในข้อความ ตัวอักษรที่ไม่ซ้ำกันควรจะรวมถึงตัวละครที่แตกต่างใด ๆ โดยใช้UTF-8 เข้ารหัส เวอร์ชันตัวพิมพ์ใหญ่และตัวพิมพ์เล็กของอักขระเดียวกันนั้นแตกต่างกันและแตกต่างกัน 'a' != 'A' คำถูกผูกไว้ด้วยอักขระช่องว่างใด ๆ 'จดหมาย' เป็นสัญลักษณ์ใด ๆ ที่สามารถแสดงด้วยอักขระ Unicode เดียว รหัสของคุณจะต้องอ่านเอกสารข้อความ - ไม่อนุญาตให้โหลดข้อความล่วงหน้าหรือเข้ารหัสรหัสล่วงหน้า ผลลัพธ์ควรเป็นคำตามด้วยจำนวนตัวอักษรที่ไม่ซ้ำกัน llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch - 18 ตัวคั่น / ระยะห่างระหว่างค่าทั้งสองนั้นขึ้นอยู่กับคุณตราบใดที่มีอย่างน้อยหนึ่งตัวอักษรที่จะแยกพวกเขา ในกรณีที่มีมากกว่าหนึ่งคำที่มีจำนวนสูงสุดให้พิมพ์คำทั้งหมดสำหรับการนับนั้นโดยมีการขึ้นบรรทัดใหม่หนึ่งบรรทัด superacknowledgement - 16 pseudolamellibranchiate - 16 นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ คำตอบนี้เป็นภาษาอังกฤษ SE เป็นแรงบันดาลใจให้ฉันสร้างความท้าทายนี้ ตัวอย่างใช้เพียงรายการคำแต่ข้อความใด ๆ ควรสามารถประมวลผลได้
12 code-golf  word 

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