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

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

15
ASCII Art of the Day # 1 - Double Knot
เขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวกNเป็นอินพุตผ่าน STDIN / บรรทัดคำสั่ง / ARGV หรือฟังก์ชั่นการขัดแย้งและพิมพ์ ASCII ดับเบิลปมที่สอดคล้องกับการNSTDOUT ASCII double knot มีลักษณะดังนี้: __ __ __ __ __ __ / \/ \/ \/ \/ \/ \ | /\/ /\/ /\/ /\/ /\/ /\ | | \/ /\/ /\/ /\/ /\/ /\/ | \ \/\ \/\ \/\ \/\ \/\ \/ /\ …

16
รหัส Sierpinskified
เขียนบล็อกสี่เหลี่ยมของข้อความที่จัดเรียงไว้ในพรม Sierpinskiโดยใช้ช่องว่างขนาดเดียวกันสำหรับส่วนที่ว่างเปล่าสร้างโปรแกรมที่ส่งออกจำนวนการทำซ้ำของพรม ตัวอย่างเช่นหากบล็อกข้อความของคุณคือ TXT BLK จากนั้นเรียกใช้โปรแกรม TXTTXTTXT BLKBLKBLK TXT TXT BLK BLK TXTTXTTXT BLKBLKBLK ควรส่งออก1เพราะรูปร่างของโปรแกรมแสดงถึงการวนซ้ำครั้งแรกของพรม Sierpinski ในทำนองเดียวกันวิ่ง TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK BLKBLK BLKBLK BLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXT TXT TXT TXT BLK BLK BLK BLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT …

6
ลองตัดสินหนังสือจากปก
ทุกคนรู้ว่าเนื้อหาเป็นคำถาม แต่ชื่อที่ดีก็ช่วยได้เช่นกันและนั่นคือสิ่งแรกที่เราเห็น ถึงเวลาที่จะเปลี่ยนความประทับใจครั้งแรกให้เป็นโปรแกรมและหาว่าประเภทใดที่มีชื่อเรื่องมากขึ้น คุณถูกท้าทายในการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ชื่อคำถาม PPCG เป็นข้อมูลป้อนเข้าและส่งกลับการทำนายคะแนน ตัวอย่างเช่นคุณอาจได้รับCounting Grains of Riceเป็นอินพุตและคุณจะพยายามส่งคืนสิ่งที่ใกล้เคียงกับคะแนน59ในกรณีนี้ การเดาที่ไม่ใช่จำนวนเต็มนั้นใช้ได้ แต่การเดาที่หรือต่ำกว่า-20นั้นไม่ใช่ นี่คือข้อมูลสำหรับการทดสอบและการให้คะแนน: http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes การให้คะแนน:โปรแกรมของคุณจะทำงานกับทุกคำถามในประวัติเว็บไซต์ (PPCG) นี้ไม่ใช่การนับคำถามที่ปิด ฟังก์ชั่นln(score + 20)จะถูกนำไปใช้กับคะแนนแต่ละคะแนนและกับการเดาแต่ละครั้ง รูท - ค่าเฉลี่ย - ข้อผิดพลาดระหว่างชุดผลลัพธ์สองชุดคือคะแนนของคุณ ต่ำกว่าดีกว่า ตัวอย่างเช่นโปรแกรมที่เดา 0 ทุกครั้งจะได้คะแนน 0.577 ในขณะที่รายการที่เดา 11 ทุกครั้งจะได้คะแนน 0.362 โปรดคำนวณคะแนนของคุณและรวมไว้ในหัวข้อคำตอบของคุณ โปรดระบุการคาดการณ์ของโปรแกรมของคุณสำหรับจำนวน upvotes ที่คำถามนี้จะได้รับ ข้อ จำกัด: เพื่อป้องกันการเข้ารหัสที่หนักเกินไปไม่เกิน 1,000 ตัวอักษร ต้องทำงานกับข้อมูลทั้งหมดที่ตั้งไว้ข้างต้นภายในไม่กี่นาทีบนเครื่องที่เหมาะสม ช่องโหว่มาตรฐานถูกปิด นี่คือเครื่องมือทดสอบที่เขียนใน Python สำหรับการใช้งานของคุณและ / หรือเพื่อกำจัดความคลุมเครือ: …

30
สามเหลี่ยมง่ายมาก
เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก (ผ่าน stdin, command line หรือ function arg) แล้วพิมพ์หรือคืนค่าสตริงของสามเหลี่ยมขนาดเล็กจำนวนมากเหล่านี้เรียงกันเข้าด้วยกันสลับกันตามจุดที่พวกมันชี้ไป: /\ /__\ 1สามเหลี่ยมนี้เพียงอย่างเดียวคือการส่งออกถ้าใส่เป็น หากอินพุตเป็น2เอาต์พุตจะเป็น ____ /\ / /__\/ หากอินพุตเป็น3เอาต์พุตจะเป็น ____ /\ /\ /__\/__\ หากอินพุตเป็น4เอาต์พุตจะเป็น ________ /\ /\ / /__\/__\/ และอื่น ๆ โปรแกรมของคุณต้องรองรับอินพุตได้สูงสุด 2 16 - 1 = 65535 รายละเอียด สามเหลี่ยมซ้ายสุดชี้ขึ้นเสมอ อาจมีช่องว่างต่อท้าย แต่อาจไม่มีช่องว่างนำหน้าที่ไม่จำเป็น อาจมีบรรทัดใหม่ต่อท้ายที่เป็นตัวเลือก โปรดทราบว่าสำหรับ1การส่งออกเป็นสองบรรทัดยาว แต่อย่างอื่นมันเป็นสาม สิ่งนี้จำเป็น การส่งที่สั้นที่สุดในหน่วยไบต์ชนะ

14
ทำตารางรหัสด้วยคำที่คุณชื่นชอบ
เลือก 6 ตัวอักษรที่พบบ่อยคำภาษาอังกฤษที่คุณชื่นชอบที่ได้ไม่มีตัวอักษรซ้ำwombatเช่น เขียนโปรแกรมในตาราง N × N ของตัวละครโดยไม่มีความคิดเห็นเช่นว่าแต่ละแถวและคอลัมน์มีตัวอักษรทั้งหมดของคำของคุณในตัวพิมพ์เล็กในลำดับใด ๆ โปรแกรมต้องส่งออกความหมายของคำพูดของคุณใน 36 ตัวอักษรหรือมากกว่า กฎระเบียบ ส่งออกไปยัง stdout ไม่มีอินพุต คำของคุณจะต้องอยู่ในDictionary.comและมีเพียง az ไม่มีคำนามที่เหมาะสมไม่มีคำย่อไม่มีตัวย่อไม่มีการย่อ โปรแกรมและผลลัพธ์ของคุณอาจมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น(รหัสฐานสิบหก 20 ถึง 7E) (นี่ไม่นับบรรทัดใหม่ที่จำเป็นในตารางโปรแกรม) ความคิดเห็นคือสิ่งที่คอมไพเลอร์หรือล่ามจะไม่สนใจแบบดั้งเดิม คุณอาจใช้รหัสที่ไม่ได้มีส่วนร่วมในการส่งออกหรือไม่ได้รับการดำเนินการอย่างเป็นทางการ คำจำกัดความของผลลัพธ์ควรเป็นไวยกรณ์และถูกต้อง แต่แน่นอนอาจตลกหรือฉลาด แถวหรือคอลัมน์ใด ๆ ที่มีตัวอักษรที่ไม่ซ้ำกัน 6 ตัวของคุณเป็นตัวพิมพ์เล็กอย่างถูกต้อง เส้นทแยงมุมไม่สำคัญ เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟ แต่เนื่องจากการส่งทั้งหมดจะต้องอยู่ในรูปแบบสี่เหลี่ยมจัตุรัสเดียวกันคุณจึงสามารถระบุคะแนนของคุณด้วย N การชนะ N ที่ต่ำที่สุดและแน่นอนว่า N ที่ต่ำกว่า 6 นั้นเป็นไปไม่ได้ ในกรณีที่มีความสัมพันธ์กันคำตอบที่ได้รับคะแนนสูงสุดจะเป็นฝ่ายชนะ ตัวอย่าง หากคำของคุณคือwombatโปรแกรมของคุณอาจมีลักษณะเช่นนี้ …

30
ตัวเลขหารด้วยตัวเลขแต่ละตัวหรือไม่
เพื่อนของฉันและฉันกำลังทำงานในห้องแล็บในวิชาวิทยาศาสตร์คอมพิวเตอร์ AP ของเราและตัดสินใจที่จะเขียนรหัสกอล์ฟปัญหาเนื่องจากเรายังมีครึ่งชั้นเรียนฟรีหลังจากเสร็จ นี่คือคำถาม: รับตัวเลข n, หารด้วยตัวเลขแต่ละตัวได้หรือไม่? ตัวอย่างเช่น 128 จะผ่านการทดสอบนี้มันหารด้วย 1,2 และ 8 ตัวเลขใด ๆ ที่มีศูนย์จะตัดสิทธิ์หมายเลขนั้นโดยอัตโนมัติ ในขณะที่คุณอาจใช้ภาษาอื่นและโพสต์โซลูชันด้วยหากต้องการเรามีความสนใจมากที่สุดในการเห็นว่าผู้ใช้งานขนาดเล็กสามารถสร้างโปรแกรมใน Java ได้อย่างไรเนื่องจากเป็นภาษาที่เราใช้ในชั้นเรียน จนถึงตอนนี้เราทั้งคู่มี 51 นี่คือรหัสปัจจุบันของฉัน: public boolean dividesSelf(int n){for(int p=n;n%10>0;)n/=p%(n%10)>0?.1:10;return n<1;} // 51 characters // Breakdown: // for(int p=n; Saves one semicolon to put declaration into for loop // n%10>0;) Basic check-for-zero // …
47 code-golf 

15
ตารางธาตุ - รหัสกอล์ฟ
ขึ้นอยู่กับการปฏิบัติกอล์ฟ - สหรัฐอเมริกา งานของคุณคือการหาตัวย่อ (สัญลักษณ์) ขององค์ประกอบที่กำหนดชื่อองค์ประกอบจนถึงและรวมถึง ununoctium (118) ใช้ตารางธาตุในวิกิพีเดีย ขอขอบคุณที่ ossifrage คลื่นไส้คุณสามารถหารายชื่อเต็มขององค์ประกอบตัวย่อที่http://pastebin.com/DNZMWmuf คุณไม่สามารถใช้ทรัพยากรภายนอก นอกจากนี้คุณไม่สามารถใช้ข้อมูลในตัวโดยเฉพาะเกี่ยวกับองค์ประกอบของตารางธาตุ ช่องโหว่มาตรฐานใช้ อินพุต อินพุตอาจมาจาก stdin ไฟล์promptและinputอื่น ๆ รูปแบบอินพุต: ทั้งหมดต่อไปนี้เป็นอินพุตที่ถูกต้อง: Carbon carbon CARBON cArBOn เป็นหลักชื่อองค์ประกอบ - กรณีตาย คุณไม่ต้องจัดการกับการสะกดผิดหรือชื่อองค์ประกอบที่ไม่ถูกต้อง อินพุตไม่ถูกต้องเป็นพฤติกรรมที่ไม่ได้กำหนด ผลผลิต : สัญลักษณ์สำหรับองค์ประกอบ อักขระตัวแรกจะต้องเป็นตัวพิมพ์ใหญ่และส่วนที่เหลือ จะต้องเป็นตัวพิมพ์เล็ก ตัวอย่างผลลัพธ์: C กรณีทดสอบ: Carbon -> C NiTROGen -> N Sodium -> Na Gold -> …

18
เคล็ดลับสำหรับการเล่นกอล์ฟใน Perl?
คุณมีเคล็ดลับทั่วไปอะไรสำหรับการเล่นกอล์ฟใน Perl ฉันกำลังมองหาความคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ Perl (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
47 code-golf  tips  perl 

30
Pixel-art ตอนที่ 1: แสดง Super Mario
มันคือฉัน! ภารกิจของวันนี้เป็นเรื่องง่าย: เขียนโปรแกรมหรือฟังก์ชั่นที่แสดง Mario Sprite ขนาดเล็กที่ไม่ได้ใช้งานจาก Super Mario Bros บน NES บนพื้นหลังสีน้ำเงิน รายการประเภทใดก็ได้ที่ถูกต้องตราบเท่าที่มันแสดงขนาด 12 * 16 พิกเซลที่ใดก็ได้บนหน้าจอ / หน้าต่าง / เบราว์เซอร์ (แก้ไข: ภาพที่แสดงสามารถปรับขนาดได้หากภาษาของคุณไม่สามารถใช้งานภาพพิกเซลได้นอกจากนี้คุณยังสามารถส่งออกงานศิลปะ ASCII หรือศิลปะ HTML ได้ แต่ใช้สีที่เหมาะสม) ภาพ (ซูม 400%): คุณต้องใช้สีต่อไปนี้: สีน้ำเงิน: # 6B8CFF สีแดง: # B13425 เขียว / น้ำตาล: # 6A6B04 สีส้ม: # E39D25 โปรแกรมที่สั้นที่สุด (จำนวนตัวอักษร) ชนะ! มีช่องโหว่มาตรฐานใช้ …

15
สร้างโลโก้สแต็คโอเวอร์โฟลว์ [ปิด]
ความท้าทายคือการสร้างภาพที่คล้ายกับโลโก้ StackOverflow: ผลลัพธ์จะต้องประกอบด้วย: ขนาดภาพ 64 * 64 หรือสูงกว่า สีเทา | __ | ฐานรูป สแต็กแบ่งส่วนโค้งขึ้นมาจากฐาน ส่วนจะจางลงจากสีเทาเป็นสีส้มและเลี้ยวขวาประมาณ 90 องศา จำนวนของเซ็กเมนต์ควรอยู่ระหว่าง 5 ถึง 7 โดยที่ 6 เป็นที่ต้องการ หมายเหตุ: สำหรับ ascii แสดงว่าไม่มีสีให้ใช้อักขระ '0' เพื่อแทนสีเทาและ '9' เป็นสีส้ม '1' ถึง '8' จะแสดงเฉดสีที่อยู่ระหว่าง ข้อ จำกัด: คุณต้องสร้างภาพ ไม่อนุญาตให้โหลดภาพหรือเก็บไว้ในรหัส / ไบนารี กฎ / ข้อมูลเพิ่มเติม: รูปภาพไม่จำเป็นต้องเหมือนโลโก้ แต่ต้องเป็นที่รู้จักเช่นเดียวกับโลโก้ วิธีการแสดงผลขึ้นอยู่กับคุณ สามารถบันทึกเป็นไฟล์ภาพหรือแสดงผลบนหน้าจอได้ เกณฑ์การตัดสิน …

30
แปลง 1, 2, 3, 4, 5, 6, 7, 8, และ 9 เป็น“ หนึ่ง”,“ สอง”,“ สาม” ฯลฯ
ผู้ชนะ: คำตอบทุบตีของ professorfish ! ทั้ง 9 ไบต์! ว้าว! คุณสามารถส่งคำตอบของคุณต่อไปได้ แต่คุณจะไม่สามารถชนะได้อีกต่อไป โพสต์ต้นฉบับเก็บไว้สำหรับลูกหลาน: เป้าหมายของคุณคือการแปลงจำนวนเต็มระหว่าง 1-9 เป็นคำที่แสดง คุณไม่จำเป็นต้องกังวลเรื่องทศนิยม ผู้ใช้จะป้อนหมายเลข สมมติว่าพวกเขาจะไม่ป้อนอะไร 10 หรือสูงกว่า ผู้ใช้ต้องพิมพ์ตัวเลขในบางจุดอย่างไรก็ตามวิธีการที่โปรแกรมอ่านไม่สำคัญ มันอาจจะเป็นกับ stdin อ่านไฟล์ข้อความ ฯลฯ อย่างไรก็ตามผู้ใช้จะต้องกดปุ่ม 9 บนแป้นพิมพ์ของพวกเขา (ตัวอย่าง) ในบางจุด ไม่คำนึงถึงขนาดตัวพิมพ์ (เช่น "หนึ่ง", "หนึ่ง", "oNe", "OnE" และอื่น ๆ ทั้งหมดเป็นที่ยอมรับได้) อนุญาตให้ใช้คำขอ HTTP / etc อย่างไรก็ตามโค้ดใด ๆ ที่ดำเนินการโดยเซิร์ฟเวอร์จะทำการนับจำนวนไบต์ของรหัสสุดท้ายของคุณ (เช่นถ้าฉันมีโปรแกรม C ++ ทำการร้องขอ HTTP, …

30
พิมพ์“ ทิศตะวันตกเฉียงเหนือทิศตะวันตกเฉียงเหนือทิศตะวันตกเฉียงเหนือ "
สิ่งนี้ดูเหมือนจะเล็กน้อย แต่เนื่องจากหลังจากความพยายามบางอย่างฉันจึงไม่สามารถเอาชนะวิธีแก้ปัญหาที่แท้จริงใน J ฉันคิดว่ามันอาจเป็นการท้าทายที่เหมาะสม (แม้ว่าจะชัดเจนแล้วนี่ไม่ใช่ความท้าทายเฉพาะสำหรับ J) ชื่อกล่าวมันทั้งหมด คุณเพียงแค่ต้องเขียนโปรแกรมหรือฟังก์ชั่น (ไม่มีข้อโต้แย้ง) ที่ส่งคืนหรือพิมพ์: N NE E SE S SW W NW คุณสามารถใช้การขึ้นบรรทัดใหม่แทนการเว้นวรรค ฟังก์ชั่นไม่มีข้อโต้แย้งส่งกลับอาร์เรย์ของสตริงเช่น ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'] ยังเป็นที่ยอมรับ ตัวอักษรอาจเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก แต่ไม่สามารถผสมกันได้

30
สร้างกริดสี RGB
นี้! เป็นตารางสี RGB ... โดยทั่วไปมันเป็นเมทริกซ์สองมิติที่: แถวแรกและคอลัมน์แรกเป็นสีแดง แถวที่สองและคอลัมน์ที่สองเป็นสีเขียว แถวที่สามและคอลัมน์ที่สามเป็นสีน้ำเงิน นี่คือสีที่อธิบายแบบกราฟิกโดยใช้ตัวอักษร R, G และ B นี่คือวิธีที่เราคำนวณสีของแต่ละพื้นที่บนตารางที่คำนวณ แดง + แดง = แดง (# FF0000) เขียว + เขียว = เขียว (# 00FF00) น้ำเงิน + น้ำเงิน = น้ำเงิน (# 0000FF) แดง + เขียว = เหลือง (# FFFF00) แดง + น้ำเงิน = ม่วง (# FF00FF) เขียว …

30
มาวาดระเบิด Atari ST กัน!
บทนำ Atari STเป็นคอมพิวเตอร์ส่วนบุคคลที่ได้รับความนิยมค่อนข้างตั้งแต่กลางเดือน 80 ถึงต้นยุค 90 ของพลังงานจากโมโตโรล่า 68000 ไมโครโปรเซสเซอร์ บนเครื่องนี้พฤติกรรมเริ่มต้นของระบบปฏิบัติการสำหรับข้อยกเว้นของ CPU ที่ไม่ถูกตรวจจับคือการแสดงแถวของระเบิดบนหน้าจอดังแสดงในภาพต่อไปนี้: ที่มา: https://commons.wikimedia.org/wiki/File:Row_of_bombs.png หมายเหตุ: กราฟิกระเบิดอาจแตกต่างกันเล็กน้อยขึ้นอยู่กับเวอร์ชั่นของระบบปฏิบัติการ แต่ลองดูอันนี้เป็นข้อมูลอ้างอิง จำนวนระเบิดขึ้นอยู่กับข้อยกเว้นเวกเตอร์วัตถุที่พบมากที่สุดคือ: ($ 008) ข้อผิดพลาดของบัส: 2 ระเบิด ($ 00c) ที่อยู่ผิดพลาด: 3 ครั้ง ($ 010) คำสั่งที่ผิดกฎหมาย: 4 ลูก เป้าหมาย เป้าหมายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่พิมพ์หรือแสดงผล ASCII ของระเบิด Atari ST ดังกล่าว อินพุต จำนวนเต็มแทนจำนวนระเบิดที่จะแสดง รหัสของคุณจะต้องรองรับค่าที่พบบ่อยที่สุด: 2, 3 และ 4 การสนับสนุนการวางระเบิดน้อยลงและ / หรือมากกว่านั้นใช้ได้ …

12
กราฟิกอักษรเบรลล์
ตัดเมทริกซ์บูลใน 4x2 บล็อกและทำให้พวกเขาเป็นตัวอักษรเบรลล์...U+2800U+28FF [[0,1,0,0,1,0], [1,0,0,0,0,0], [1,0,0,0,1,0], [1,1,1,1,0,0]] ⣎⣀⠅ แผ่นที่มี 0-s หากขนาดไม่ได้เป็นทวีคูณของ 4 และ 2 [[0,1,0], [1,0,0], [1,1,1]] ⠮⠄ ใช้กฎการเล่นกอล์ฟตามปกติมีความยืดหยุ่นในรูปแบบอินพุต เอาต์พุตควรมีโครงสร้างของเมทริกซ์หรือดูเหมือนเมทริกซ์เช่นรายการสตริง สายเดียวกับการขึ้นบรรทัดใหม่ คำแนะนำ: chr(0x2800 + 128*b7 + 64*b6 + 32*b5 + 16*b4 + 8*b3 + 4*b2 + 2*b1 + b0)เป็นรูปแบบจุด b0 b3 b1 b4 b2 b5 b6 b7 ทดสอบที่ใหญ่กว่า: [[0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0], [0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1], …

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