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

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

26
มีหญิงชราคนหนึ่ง
เป้าหมายของคุณคือการเขียนโปรแกรมที่พิมพ์บทกวีต่อไปนี้ตรงตามที่ปรากฏในที่นี้: There was an old lady who swallowed a fly. I don't know why she swallowed that fly, Perhaps she'll die. There was an old lady who swallowed a spider, That wriggled and iggled and jiggled inside her. She swallowed the spider to catch the fly, I don't know why …

23
ค้นหาปัจจัยสำคัญ
ในงานนี้คุณต้องเขียนโปรแกรมที่คำนวณปัจจัยสำคัญของตัวเลข อินพุตเป็นตัวเลขธรรมชาติ 1 <n <2 ^ 32 ผลลัพธ์คือรายการของตัวประกอบสำคัญของตัวเลขในรูปแบบต่อไปนี้ ต้องละเว้นเลขยกกำลังหากเป็น 1 เฉพาะจำนวนเฉพาะ (สมมติว่าอินพุตคือ 131784): 131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19 ไม่จำเป็นต้องใช้ช่องว่างในจำนวนที่เท่ากัน ช่องว่างอาจถูกแทรกตามความเหมาะสม โปรแกรมของคุณควรเสร็จสิ้นภายในเวลาไม่เกิน 10 นาทีสำหรับอินพุตใด ๆ โปรแกรมที่มีจำนวนอักขระสั้นที่สุดชนะ

30
สตริง X เป็นองค์ประกอบของสตริง Y หรือไม่
ได้รับสาย X และ Y ตรวจสอบว่า X เป็นsubsequenceของวายสตริงว่างเปล่าจะถูกยกย่องว่าเป็น subsequence ของทุกสตริง (เช่น''และ'anna'เรียงตามลำดับ'banana') อินพุต X สตริงตัวอักษรผสมตัวเลขที่คำนึงถึงขนาดตัวพิมพ์ Y สตริงตัวอักษรผสมตัวเลขที่คำนึงถึงขนาดตัวพิมพ์ เอาท์พุต จริงหรือเท็จ (หรือเทียบเท่า) แสดงอย่างถูกต้องว่า X เป็นองค์ประกอบของ Y ตัวอย่าง I / O X Y output '' 'z00' True 'z00' 'z00' True 'z00' '00z0' False 'aa' 'anna' True 'anna' 'banana' True 'Anna' 'banana' False เกณฑ์ โปรแกรมที่สั้นที่สุดชนะตามที่กำหนดโดยจำนวนไบต์ของซอร์สโค้ด ตัวอย่างโปรแกรม …
23 code-golf  string 

11
จำนวนนี้แอบ Fibonacci หรือไม่?
พื้นหลัง พวกคุณส่วนใหญ่รู้ว่าหมายเลขฟีโบนักชีคืออะไร บางท่านอาจจะรู้ว่าจำนวนเต็มบวกทั้งหมดสามารถแสดงเป็นผลรวมของหนึ่งหรือตัวเลข Fibonacci ที่แตกต่างกันมากขึ้นตามZeckendorf ทฤษฎีบท หากจำนวนเงื่อนไขในการแทนค่า Zeckendorf ที่ดีที่สุดของจำนวนเต็มnนั้นเป็นหมายเลขฟีโบนักชีเราจะเรียกnฟีโบนักชี "แอบ" ตัวอย่างเช่น: 139 = 89 + 34 + 13 + 3 This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci 140 = 89 + 34 + 13 + 3 + 1 …

6
แยกตัวประกอบ Gaussian จำนวนเต็ม
Gaussian จำนวนเต็มคือตัวเลขที่ซับซ้อนที่มีจริงและส่วนจินตภาพเป็นจำนวนเต็ม จำนวนเต็ม Gaussian เช่นจำนวนเต็มธรรมดาสามารถแสดงเป็นผลิตภัณฑ์ของจำนวนเฉพาะ Gaussian ในลักษณะที่ไม่ซ้ำกัน ความท้าทายที่นี่คือการคำนวณองค์ประกอบที่สำคัญของจำนวนเต็ม Gaussian ที่กำหนด อินพุต: จำนวนเต็มแบบเกาส์ซึ่งไม่เท่ากับ 0 และไม่ได้เป็นหน่วย (เช่น 1, -1, i และ -i ไม่สามารถให้เป็นอินพุต) ใช้รูปแบบที่เหมาะสมตัวอย่างเช่น: 4-5i -5 * J + 4 (4, -5) เอาท์พุท: รายการของเลขจำนวนเต็มแบบเกาส์ซึ่งเป็นจำนวนเฉพาะ (กล่าวคือไม่มีตัวใดตัวหนึ่งที่สามารถแสดงเป็นผลคูณของจำนวนเต็มแบบเกาส์ที่ไม่ใช่หน่วยสองหน่วย) และผลิตภัณฑ์มีค่าเท่ากับจำนวนอินพุต ตัวเลขทั้งหมดในรายการเอาท์พุทจะต้องไม่สำคัญคือไม่ใช่ 1, -1, i หรือ -i สามารถใช้รูปแบบเอาต์พุตที่เหมาะสมได้ ไม่ควรจะเหมือนกับรูปแบบอินพุต หากรายการเอาท์พุทมีมากกว่า 1 องค์ประกอบก็จะสามารถแก้ไขเอาต์พุตที่ถูกต้องได้หลายรายการ ตัวอย่างเช่นสำหรับอินพุต 9 เอาต์พุตสามารถเป็น [3, 3] …

30
การทดสอบที่สำคัญที่สำคัญอย่างยิ่ง
เขียนโปรแกรมที่จะทดสอบ primality ของตัวเลขที่ระบุและให้ผลลัพธ์เป็นค่าบูลีน (True is prime) การทดสอบที่สำคัญของคุณสามารถ (แต่ไม่จำเป็นต้อง) ถูกต้องสำหรับหมายเลข 1 นี่คือรายการที่จับต้องได้: โปรแกรมของคุณต้องรวมเป็นจำนวนเฉพาะ แปลงอักขระทุกตัว (รวมถึงช่องว่าง) เป็นค่า Unicode / ASCII ( ตาราง ) จากนั้นเพิ่มตัวเลขทั้งหมดเข้าด้วยกันเพื่อรับผลรวมของโปรแกรมของคุณ ตัวอย่างเช่นลองใช้โปรแกรมที่ไม่ค่อยดีนักที่ฉันเขียนใน Python 3.3: q=None y=int(input()) for x in range(2,int(y**0.5)+1): if y%x==0: q=False if not q: q=True print(q) หากคุณแปลงอักขระทั้งหมดเป็นค่า Unicode / ASCII ที่เกี่ยวข้องคุณจะได้รับ: 113 61 78 111 110 101 …

13
ทำลายเซ็นชนิดยาว
ท้าทาย ค้นหานิพจน์ที่มีความยาวไม่เกิน 100 ไบต์ด้วยลายเซ็นชนิดที่ยาวที่สุด กฎระเบียบ อนุญาตให้ใช้ภาษาที่พิมพ์แบบสแตติกที่มีการอนุมานประเภท ประเภทต้องไม่คลุมเครือ แต่อย่างอื่นอาจรวมถึงประเภทที่ไม่มีอินสแตนซ์ที่กำหนดไว้ ตัวอย่างเช่นNum [a]และEq [a]ได้รับอนุญาตแม้ไม่มีอินสแตนซ์ที่กำหนดไว้ ไม่มีการนำเข้าอื่นนอกจากขั้นต่ำที่จำเป็นในการรวบรวมโปรแกรมด้วย STDIN / STDOUT ไม่อนุญาตประเภทอนันต์ หากคำตอบมีมากกว่าหนึ่งการแสดงออกเพียงหนึ่งอาจส่งผลให้คะแนน ตัวอย่างเช่นแม้ว่าลายเซ็นประเภทของการแต่งเพลงจะ(.) :: (b -> c) -> (a -> b) -> a -> cมีคะแนน 20 แต่คำตอบที่มี 25 สำเนา(.)\nจะมีคะแนนเท่ากับ 20 ไม่ใช่ 500 นิพจน์ต้องมีขนาดไม่เกิน 100 ไบต์ คะแนนคือจำนวนตัวอักษรในลายเซ็นประเภทไม่รวมชื่อของฟังก์ชั่นและช่องว่างใด ๆ ตัวอย่างเช่นf :: (a -> b) -> a -> …

13
คุณจัดการผับได้ไหม?
พื้นหลัง บ่ายวันศุกร์บ่ายแล้วคุณและเพื่อน ๆ ตัดสินใจตีผับในเย็นวันนั้น แต่ก่อนที่จะไปผับคุณคิดว่าคุณควรดื่มเครื่องดื่มสักสองสามแก้ว อย่างไรก็ตามสิ่งที่เพิ่มขึ้นอย่างรวดเร็ว; เพื่อนของคุณ Shaddock Pamplemousse ชนะลอตเตอรีเมื่อต้นสัปดาห์ที่ผ่านมาและตัดสินใจที่จะเอาลังใส่ลังด้วยเครื่องดื่มที่แตกต่างกัน การรักษาความปลอดภัยที่ผับนั้นเข้มงวดมากและหากคุณลองจนเกินไปก่อนที่จะพยายามเข้าสถานที่คุณจะไม่ได้รับอนุญาตภายใน คุณคือโปรแกรมเมอร์ทุกคน - ดังนั้นคุณคิดว่าสิ่งต่าง ๆ จะออกมาดีเยี่ยมอยู่ดี ท้าทาย คุณต้องตั้งโปรแกรมเครื่องวัดแอลกอฮอล์ที่ให้ผลลัพธ์ออกมาเป็นความจริง / เท็จถ้าคุณสูงกว่าหรือต่ำกว่าขีด จำกัด ผับที่สมเหตุสมผล ก่อนที่คุณจะลงไปที่ผับคุณจะต้องระบุจำนวนและประเภทเครื่องดื่มที่คุณบริโภคในช่วงเย็นstdinที่โปรแกรมการวัดของคุณอ่าน หากผลลัพธ์ออกมาเป็นความจริงคุณอยู่เหนือขีด จำกัด ผับและอยู่บ้าน หากผลลัพธ์ออกมาผิดพลาดคุณก็พร้อมที่จะไป อินพุต หนึ่งจำนวนเต็มที่มากกว่า0ซึ่งแสดงถึงน้ำหนักร่างกายของคุณในหน่วยกิโลกรัมตามด้วยขึ้นบรรทัดใหม่ ข้อมูลนี้ตามด้วยชุดของจำนวนหนึ่งหลักและเครื่องดื่มในแบบฟอร์มต่อไปนี้: <amount><amount type>o<beverage type> สำหรับเบียร์หนึ่งขวดจะมีลักษณะดังนี้: 1Bob แต่ละอินพุตถูกคั่นด้วยช่องว่าง ข้อมูลจำเพาะของอินพุต เครื่องดื่มแต่ละเครื่องมีหน่วยที่สอดคล้องกับผลกระทบที่เกิดจากมัน หากคุณบริโภคหน่วยมากกว่าน้ำหนักของคุณหารด้วยสองผับจะไม่เป็นตัวเลือกอีกต่อไป (สิ่งนี้อาจสะท้อนความเป็นจริงหรือไม่ก็ได้) ต่อไปนี้เป็นเครื่องดื่มที่ถูกต้องและหน่วยแอลกอฮอล์ที่สอดคล้องกันของเครื่องดื่ม: เบียร์: b, 1ยูนิต เครื่องดื่มให้พลังงาน: e, 0หน่วย ซอสร้อน: h, 2หน่วย …

1
ยีราฟจะไม่เป็นยีราฟเมื่อไหร่?
ฉันหวังว่า "ปัญหาลับสมอง" แบบนี้เป็นเรื่องเกี่ยวกับการเขียนโปรแกรมปริศนาและโค้ดกอล์ฟ ยกตัวอย่างสถานการณ์ที่เมธอด C # ด้านล่างส่งคืนfalse : public class Giraffe : Animal { public bool Test() { return this is Giraffe; } } กฎ: บรรทัดโค้ดข้างต้นจะต้องไม่เปลี่ยนแปลง แต่อย่างใด แต่คุณจะต้องใส่รหัสลงในแอปพลิเคชันเพื่อให้คอมไพล์ "project" และวิธีการนั้นถูกเรียก falseเมื่อเรียกใช้วิธีการที่จะต้องกลับ วิธีแก้ปัญหาที่ฉันมีอยู่ในใจไม่ปล่อย IL ของตัวเองในเวลาทำงานหรือสิ่งที่ "แปลกใหม่" ที่คล้ายกันมันเป็นวิธีการแบบปกติที่เรียก

19
ความท้าทายของ Dijkstra
นำเสนอเพื่อเป็นเกียรติแก่APL ในฐานะเครื่องมือโต้ตอบอายุ 50 ปีในปีนี้ พื้นหลัง Ken [Iverson]นำเสนอพิธีการในภาษาโปรแกรมในเดือนสิงหาคม พ.ศ. 2506 ในการประชุมเชิงปฏิบัติการเกี่ยวกับโครงสร้างภาษาเครื่องกลเมืองปรินซ์ตันรัฐนิวเจอร์ซีย์รายการสารภาพเต็มไปด้วยชื่อที่มีชื่อเสียงและจะเป็นที่โด่งดังในอนาคต (Backus, Curry, Dijkstra, Floyd, Iverson, Newell, Perlis, Wilkes) กระดาษยังบันทึกการสนทนาที่เกิดขึ้นหลังจากการนำเสนอจบลงด้วยการแลกเปลี่ยนระหว่าง Ken และ[Edsger] Dijkstraซึ่ง Ken ตอบคำถามของ Dijkstra นั้นเป็นแบบหนึ่งเดียว ท้าทาย คุณจะเป็นตัวแทนของการดำเนินการที่ซับซ้อนมากขึ้นอย่างไรเช่นผลรวมขององค์ประกอบทั้งหมดของเมทริกซ์Mซึ่งเท่ากับผลรวมของดัชนีแถวและคอลัมน์ที่สอดคล้องกัน เขียนตัวอย่างหรือการแสดงออก (ไม่จำเป็นต้องใช้โปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ) เพื่อคำนวณผลรวมของแต่ละองค์ประกอบในเมทริกซ์จำนวนเต็มที่กำหนดซึ่งเท่ากับผลรวมของดัชนี หรือเป็น FryAmTheEggman ทำให้มันได้รับเมทริกซ์Mกับองค์ประกอบIJกลับผลรวมของแต่ละIJที่IJ = i + J คุณอาจถือว่าเมทริกซ์อยู่ในตำแหน่งตัวแปรหรือหน่วยความจำแล้วหรือคุณอาจใช้มันเป็นอาร์กิวเมนต์หรืออินพุต คุณสามารถใช้ดัชนีอ้างอิง 0 หรือ 1 กรณีทดสอบ 0 สำหรับเมทริกซ์ที่ว่างเปล่า 2 0สำหรับดัชนี 0 ฐานหรือ21 …

2
เครื่องจำหน่ายอีโมจิ
ไม่เห็นอิโมจิใช่ไหม คลิกที่นี่ คุณจะจำลองเครื่องหยอดเหรียญ ไอเท็มต่าง ๆ มีอิโมจิ 56 แบบซึ่งสามารถแสดงเป็นอักขระ UTF-8 ตัวแทนสองตัวจาก: 🍅 (U + D83C U + DF45) ถึง🍼 (U + D83C U + DF7C) ใน HTML อีโมจิเหล่านี้สามารถแสดงใน UTF-16 รูปแบบเป็น& # x1F345ผ่าน& # x1F37C ในฐาน 10 คนแรก UTF-8 ตัวละครที่มีค่า55356 ค่าของตัวละครที่สองช่วงจาก57157ที่จะ57212 นี่คือโปรแกรม CJam ที่สร้างอิโมจิที่เกี่ยวข้องทั้งหมด เพื่อหลีกเลี่ยงความสับสนกับความท้าทายนี้จะได้รับคะแนนในตัวอักษรไม่ไบต์ อิโมจิบางตัวมี 2 ตัวอักษรบางตัวเป็น 3 ตัวhttp://www.lettercount.comจะให้การนับที่แม่นยำสำหรับความท้าทายนี้ ราคา💵💵💵 มี …
23 code-golf 

27
จัดเรียงลำดับใหม่
บทนำ ลองสังเกตลำดับต่อไปนี้ (จำนวนเต็มไม่เป็นลบ): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ... ตัวอย่างเช่นลองหาตัวเลขสามตัวแรก 0, 1, 2เหล่านี้เป็น หมายเลขที่ใช้ในลำดับนี้สามารถสั่งซื้อได้หกวิธี: 012 120 021 201 102 210 ดังนั้นขอบอกว่าF (3) = 6 อีกตัวอย่างหนึ่งคือF (12) สิ่งนี้มีตัวเลข: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 หรือรุ่นที่ต่อกัน: …

13
is_gaussian_prime (z)?
งาน เขียนฟังก์ชันที่รับจำนวนเต็มสองจำนวนa,bที่แทนจำนวน Gaussian จำนวนเต็มz = a+ib(จำนวนเชิงซ้อน) โปรแกรมจะต้องกลับมาจริงหรือเท็จขึ้นอยู่กับว่าa+ibเป็นนายกเสียนหรือไม่ ความหมาย: a + bi คือ Gaussian prime ถ้าหากว่าตรงตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้: aและbทั้งสองไม่ใช่ศูนย์และa^2 + b^2เป็นนายก aเป็นศูนย์|b|คือไพร์มและ|b| = 3 (mod 4) bเป็นศูนย์|a|คือไพร์มและ|a| = 3 (mod 4) รายละเอียด คุณควรเขียนฟังก์ชั่นเท่านั้น หากภาษาของคุณไม่มีฟังก์ชั่นคุณสามารถสมมติได้ว่าจำนวนเต็มถูกเก็บไว้ในตัวแปรสองตัวแล้วพิมพ์ผลลัพธ์หรือเขียนลงในไฟล์ คุณไม่สามารถใช้ฟังก์ชั่นการใช้ภาษาของคุณชอบisprimeหรือprime_listหรือหรือnthprime factorจำนวนไบต์ต่ำสุดชนะ โปรแกรมต้องทำงานสำหรับa,bที่a^2+b^2เป็นจำนวนเต็ม 32 บิต (ลงนาม) และควรเสร็จในไม่เกิน 30 วินาทีอย่างมีนัยสำคัญ รายการสำคัญ จุดต่างๆแสดงตัวเลขจำนวนมากบนระนาบเกาส์เซียน ( x= จริง, y= แกนจินตภาพ): ช่วงเวลาที่มีขนาดใหญ่กว่า: (9940, 43833) …

7
รหัส Crosswords
นี่เป็นความท้าทายของตำรวจและโจร ตอบที่นี่ถ้าคุณเป็นตำรวจ (ผู้สร้างคำไขว้) ตอบคำถามที่แสดงร่วมถ้าคุณเป็นโจร (ผู้แก้ปริศนาอักษรไขว้) คุณอาจใช้ทั้งสองบทบาท ตำรวจ (Puzzlers) งานของคุณคือการเขียนตัวต่อไขว้ 10 × 10 ตัวแทนที่จะเป็นคำหรือวลีตัวอย่างของรหัสคือคำตอบสำหรับปม เงื่อนงำแต่ละอันจะเป็นลำดับอักขระที่ไม่มีข้อยกเว้นเช่นการเรียกใช้ส่วนย่อยของโค้ดที่อ้างถึงจะพิมพ์ลำดับไปยัง stdout โพสต์ของคุณจะต้องมีสามสิ่ง: ว่างไขว้กริด 10 × 10 ของคุณใช้#สำหรับความมืด (ตัวคั่นปม) และ_สำหรับไฟ (เซลล์ที่ต้องใส่) ทุกลำดับแนวนอนหรือแนวตั้งของแสง 2 หรือมากกว่า (ล้อมรอบด้วยความมืดหรือขอบกริด) เป็นรายการที่คุณต้องเขียนคำใบ้ เพื่อความสะดวกคุณควรกำหนดหมายเลขตามปกติ (จากซ้ายไปขวา, จากบนลงล่าง) โดยแทนที่_ที่จุดเริ่มต้นของแต่ละรายการด้วยตัวระบุอักขระที่ไม่ซ้ำกัน (เช่น 1, 2, ... , A, B , ... ) กริดของคุณอาจมีจำนวนมืด กริดของคุณอาจมีเงื่อนงำจำนวนเท่าใดก็ได้ รายการแนวนอนมักจะอ่านจากซ้ายไปขวาและแนวตั้งจากบนลงล่าง รายการของเงื่อนงำที่มีทุกรายการในคำไขว้ของคุณลงและข้าม เบาะแสต้องมีอย่างน้อย 1 และไม่เกิน …

1
เป็นไปได้ไหมที่จะทำให้ฟังก์ชั่นแคลมป์สั้นลงกว่าไตรภาคใน JS?
ลองนึกภาพฟังก์ชั่นสั้น ๆ นี้เพื่อจับตัวเลขระหว่าง 0 ถึง 255: c = n => n > 0 ? n < 255 ? n : 255 : 0 นี่เป็นรุ่นที่สั้นที่สุดที่เป็นไปได้ของฟังก์ชันตัวหนีบที่มี JavaScript (ไม่มีคุณสมบัติ ES.Next) หรือไม่ PS: ไม่แน่ใจว่ามันเกี่ยวข้องหรือไม่ 0 และ 255 ไม่สุ่มความคิดคือการยึดตัวเลขเป็นจำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ

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