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

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

28
สุ่มเลือกหนึ่งหมายเลขที่แตกต่างจากหมายเลขสุ่มอื่น ๆ สองหมายเลข
มีการสร้างตัวเลขสุ่ม A และ B สองค่าเป็น 1, 2 หรือ 3 งานของคุณคือการสุ่มเลือกหมายเลขสาม C ซึ่งอาจเป็น 1,2 หรือ 3 แต่ C ไม่สามารถเท่ากับ A หรือ B และใช่ A สามารถเท่ากับ B ถ้า A = B ดังนั้น C จะเหลือเพียงสองตัวเลขเท่านั้น ถ้า A ไม่เท่ากับ B, C มีเพียงหนึ่งหมายเลขเท่านั้นที่สามารถเป็นได้ สมมติว่า A และ B ได้ถูกเลือกสำหรับคุณแล้ว นี่คือวิธีที่จะสร้าง A และ B ใน Python A …
14 code-golf  random 

1
ออกแบบและแก้ปัญหาเขาวงกต [ถูกพักไว้ขณะ sandboxing]
งานของคุณคือการเล่นบทบาทของตัวละครทั้งสองในฉากนี้จาก Inception ในนั้น Cobb ให้ความท้าทาย Ariadne: คุณมีสองนาทีในการออกแบบเขาวงกตที่ใช้เวลาหนึ่งนาทีในการแก้ปัญหา เสรีภาพบางอย่างจะอธิบายไว้ในคำอธิบายนั้น สิ่งสำคัญที่สุดคือความท้าทายนี้ไม่ได้ขึ้นอยู่กับเวลา แต่คะแนนจะขึ้นอยู่กับประสิทธิผลของเขาวงกตและนักแก้ปัญหาของเขาวงกต ฉันขอโทษสำหรับการแก้ไขหลายอย่างสำหรับความท้าทายนี้ในขณะที่เราย้ำสู่รูปแบบที่ง่ายและยุติธรรม .. ส่วนที่ 1: รูปแบบเขาวงกต เขาวงกตทั้งหมดเป็นรูปสี่เหลี่ยมจัตุรัส เซลล์ในเขาวงกตจะแสดงเป็น row columntuple ผนังมีสองสตริงสตริง: หนึ่งสำหรับผนังแนวนอน (ซึ่งบล็อกการเคลื่อนไหวระหว่างแถว) และผนังแนวตั้ง (ในทางกลับกัน) บนNxNเขาวงกตมีNx(N-1)กำแพงที่เป็นไปได้ของแต่ละประเภท ลองตัวอย่าง 3x3 ที่เซลล์มีข้อความกำกับ: A B | C --- D | E F --- G H | I กำแพงแนวตั้งที่เป็นไปได้ทั้งหมดคือ: AB BC DE EF GH HI. แปลเป็นสตริงผนังที่แสดงเป็น011001ผนังแนวตั้งและ010010ผนังแนวนอน …

15
แสดงเฟรมจากไฟล์. txt
งาน: ให้.txtไฟล์ที่มีเฟรมของ ASCII art แต่ละอันคั่นด้วย a \n(ดูตัวอย่างนี้ถ้าคุณไม่ชัดเจน) เอาท์พุทภาพเคลื่อนไหวที่มีเฟรมที่มี 1 เฟรมต่อวินาที โปรดทราบว่ามีการต่อท้าย\nเฟรมสุดท้าย แต่ละขนาดเฟรมจะเป็น: X <80 Y <20 กฎระเบียบ ต้องลบเฟรมก่อนหน้าก่อนหน้าเฟรมถัดไปดังนั้นเพียงพิมพ์แต่ละเฟรมลงบนเทอร์มินัลไม่ใช่คำตอบที่ถูกต้อง ใหม่คุณสามารถคว้าชื่อไฟล์ได้ตามที่คุณต้องการไม่ว่าจะเป็นการเก็บไว้ในตัวแปรหรือจาก sys args ใหม่รูปภาพจะต้องวนซ้ำอย่างไม่มีกำหนด นี่คือรหัสกอล์ฟ: โปรแกรมที่เล็กที่สุดชนะ ตัวอย่าง อินพุต 0 0 0 0 00000 0 0 0 0 00000 0 00000 0 00000 0 0 0 0 0 0 0 เอาท์พุต ยกเลิกแข็งแรงเล่นกอล์ฟ import …
14 code-golf 

5
แก้ปริศนาการหมุน
ในโทรศัพท์ Nokia รุ่นเก่าบางรุ่นมีการเปลี่ยนแปลงของปริศนาสิบห้าชุดเรียกว่าการหมุน ในรูปแบบนี้แทนที่จะเลื่อนหนึ่งไทล์ทีละครั้งคุณจะหมุนสี่ไทม์สในแต่ละทิศทางในทิศทางเดียว ในเกมนี้คุณจะเริ่มด้วยบอร์ดเช่นนี้: 4 9 2 3 5 7 8 1 6 และโดยการหมุนบล็อกซ้ายล่างสองครั้งตามเข็มนาฬิกาและบล็อกบนซ้ายตามเข็มนาฬิกาคุณจะได้: 4 9 2 8 3 7 1 5 6 4 9 2 1 8 7 3 5 6 1 4 2 8 9 7 3 5 6 และ1กระเบื้องจะอยู่ที่มุมซ้ายบนซึ่งควรจะเป็น ในที่สุดหลังจากการเคลื่อนไหวอีกสองสามครั้งคุณจะพบกับ: 1 2 3 4 5 6 …

14
โยนข้อยกเว้นตัวชี้โมฆะ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา งานของคุณคือสร้างข้อยกเว้น null-pointer นั่นคือโปรแกรมของคุณต้องยอมรับค่าที่คาดว่าจะไม่เป็นโมฆะและส่งข้อยกเว้น / ข้อผิดพลาดหรือความผิดพลาดเนื่องจากค่าเป็นโมฆะ ยิ่งไปกว่านั้นมันไม่สามารถมองเห็นได้ชัดเจนจากการอ่านรหัสว่าค่านั้นเป็นโมฆะ เป้าหมายของคุณคือทำให้ผู้อ่านเห็นได้อย่างชัดเจนว่าค่าไม่เป็นโมฆะแม้ว่าจะเป็นจริงก็ตาม แทนที่จะเป็นโมฆะคุณสามารถใช้ไม่มีไม่มีอะไรหรืออะไรก็ตามที่เทียบเท่าในภาษาของคุณ คุณยังสามารถใช้ undefined, uninitialized และอื่น ๆ ปัญหาเกี่ยวกับรหัสของคุณต้องเป็นไปได้ว่าตัวแปรนั้นเป็นโมฆะ (น่าประหลาดใจ) ที่โปรแกรมคาดว่าจะมีตัวแปรที่ไม่เป็นโมฆะ โปรแกรมของคุณสามารถตอบสนองต่อ null ได้โดยการโยนข้อยกเว้นการโยนข้อผิดพลาดการกระแทกหรือสิ่งใดก็ตามที่ทำได้ตามปกติเมื่อพบโมฆะที่ไม่คาดคิด นี่คือการประกวดความนิยมดังนั้นจงฉลาด!

8
รูปสามเหลี่ยม Heronian เกือบเท่ากัน
เกือบด้านเท่ากันหมด Heronian สามเหลี่ยมเป็นรูปสามเหลี่ยมที่มีความยาวจำนวนเต็มของรูปแบบn-1, nและn+1และยังมีพื้นที่จำนวนเต็ม สองสามคนแรกคือ: 3, 4, 5 -> 6 13, 14, 15 -> 84 51, 52, 53 -> 1170 Quest : สร้างโปรแกรมที่สั้นที่สุดที่ให้ผลลัพธ์เป็นnสามเท่า (คำแนะนำ: นี่เป็นลำดับที่รู้จัก) ผู้ชนะจะถูกเลือกในวันที่ 2 พฤษภาคม 2014

15
เวลาสปิโรกราฟ!
สปิโรกราฟราเป็นของเล่นที่วาดไฮโปคลอรอยด์และเอพิโตรรอยด์ สำหรับความท้าทายนี้เราจะเน้นที่ไฮโปคลอรอยด์ จากวิกิพีเดีย : ไฮเปอร์โบรอยด์คือรูเล็ตที่ติดตามโดยจุดที่ติดอยู่กับวงกลมรัศมีr ที่หมุนไปรอบ ๆ ด้านในของรัศมีคงที่Rซึ่งจุดคือระยะทางdจากจุดศูนย์กลางของวงกลมภายใน สมการพารามิเตอร์สำหรับพวกเขาสามารถกำหนดเป็น: โดยที่θคือมุมที่เกิดขึ้นจากแนวนอนและศูนย์กลางของวงกลมกลิ้ง งานของคุณคือการเขียนโปรแกรมที่จะวาดเส้นทางที่ติดตามโดยจุดที่กำหนดไว้ด้านบน ในฐานะที่เป็นอินพุทคุณจะได้รับR , rและdจำนวนเต็มทั้งหมดตั้งแต่ 1 ถึง 200 คุณสามารถรับอินพุตนี้จาก stdin, อาร์กิวเมนต์หรืออินพุตของผู้ใช้ แต่ไม่สามารถ hardcoded ลงในโปรแกรม คุณสามารถยอมรับได้ในรูปแบบใดก็ตามที่สะดวกที่สุดสำหรับคุณ เป็นสตริงจำนวนเต็ม ฯลฯ สมมติ: หน่วยอินพุตมีหน่วยเป็นพิกเซล R > = r เอาท์พุทควรเป็นตัวแทนกราฟิกของ hypotrochoid ที่กำหนดโดยอินพุต ไม่อนุญาตให้ใช้ ASCII หรือเอาต์พุตแบบข้อความอื่น ๆ ภาพนี้สามารถบันทึกเป็นไฟล์หรือแสดงบนหน้าจอ รวมภาพหน้าจอหรือภาพของเอาท์พุทสำหรับอินพุตที่คุณเลือก คุณสามารถเลือกสีใดก็ได้ที่คุณต้องการสำหรับเส้นทาง / พื้นหลังโดยมีข้อ จำกัด เรื่องความคมชัด สองสีต้องมีองค์ประกอบ 'ค่า' HSV อย่างน้อยครึ่งหนึ่งของขนาดแยกจากกัน …

4
เปรียบเทียบสองมือโป๊กเกอร์
ท้าทาย: เมื่อได้ไพ่ห้าใบในมือสองใบให้ตัดสินว่าฝ่ายใดจะชนะโดยการจัดอันดับไพ่ในมือแบบมาตรฐาน การป้อนข้อมูล: ไพ่สิบใบคั่นด้วยช่องว่างจาก stdin หรืออาร์กิวเมนต์บรรทัดคำสั่งแล้วแต่ว่าคุณต้องการอะไร ไพ่ห้าใบแรกเป็นไพ่ของผู้เล่น 1 ในขณะที่ไพ่ห้าใบสุดท้ายเป็นไพ่ในมือของผู้เล่น 2 บัตรแต่ละใบจะเป็นสตริงตัวอักษรสองตัวของแบบฟอร์ม RS โดยที่ R คืออันดับและ S เป็นชุด อันดับอยู่ในช่วง 2-9, T สำหรับสิบและ J, Q, K และ A สำหรับ Jack, Queen, King และ Ace ตามลำดับ ชุดคือ H, D, C, S สำหรับหัวใจ, เพชร, คลับ, และโพดำตามลำดับ คุณต้องส่งออกจำนวนผู้เล่นที่ชนะ: '1' หรือ '2' ตัวอย่างของการ์ด: AS - the …
14 code-golf  game 

4
พาสุนัขไปเดินเล่น
สุนัขของฉันเห่าใส่ฉัน แต่ฉันขี้เกียจเกินไปที่จะพาเขาไปเดินเล่น ฉันมีความคิด! ฉันจะให้คนที่ Code Golf ทำเพื่อฉัน! ความท้าทายของคุณคือการจำลองการเดินสุนัข นี่คือกฎสำหรับการเดินสุนัข: มนุษย์ ( H) จะเริ่มต้น0,0บนระนาบพิกัด (คาร์ทีเซียน) และจะสุ่มหนึ่งช่องว่างขึ้นไปซ้ายขวาหรือลงทุก ๆ วินาที สุนัข ( D) จะเริ่มต้นที่ตำแหน่งเดียวกันและจะเป็นศูนย์เว้นวรรคหนึ่งสองหรือสามขึ้นไปซ้ายขวาหรือลงทุกวินาที (สุ่มแน่นอน) สุนัขสามารถคาดเดาได้น้อยลงและบางครั้งจะทำงานได้เร็วขึ้นหรือหยุดอย่างสมบูรณ์ สุนัขจะไม่ได้รับมากกว่าจำนวนหนึ่งของหน่วยห่างจากมนุษย์ (ในระยะทางแบบยุคลิด) ซึ่งเป็นความยาวของสายจูง ( L) ตัวอย่างเช่นถ้าLเป็น6ตำแหน่งที่ถูกต้องจะเป็นH(0,0) D(4,4) (เนื่องจากระยะทางประมาณ 5.65 หน่วย) แต่ไม่ใช่H(0,0) D(5,4)(ประมาณ 6.4 หน่วย) ถ้าหากสุนัขเคลื่อนไหวจะเป็นการละเมิดข้อกำหนดระยะห่างของสายจูงมันจะต้องไปให้ไกลที่สุดเท่าที่จะทำได้ในทิศทางที่กำหนดซึ่งไม่ละเมิดข้อกำหนดระยะทาง ตัวอย่างเช่นหากตำแหน่งอยู่H(0,0) D(3,4)และสุนัขถูกสุ่มเลือกที่จะย้าย 3 ช่องว่างไปทางขวามันจะไปD(4,4)เนื่องจากเป็นจุดที่ไกลที่สุดที่สามารถไปได้โดยไม่ต้องไปไกลเกิน 6 หน่วย (โปรดทราบว่าสิ่งนี้อาจส่งผลให้เกิดการเคลื่อนที่ของช่องว่าง 0 นั่นคือไม่มีการเคลื่อนไหวเลย!) กฎเบ็ดเตล็ด: การเคลื่อนไหวของมนุษย์ก่อน มนุษย์จะต้องไม่เกินความยาวของสายจูงขณะเคลื่อนที่ …
14 code-golf  random 

3
ค้นหาการเริ่มต้นที่ดีที่สุดของ Chomp
Chompเป็นเกมสำหรับผู้เล่นสองคนที่มีรูปสี่เหลี่ยมผืนผ้า ผู้เล่นแต่ละคนผลัดกันถอดชิ้นส่วนใด ๆ พร้อมกับชิ้นส่วนทั้งหมดด้านบนและด้านขวา ผู้ใดก็ตามที่เอาท่อนล่างซ้าย สามารถพิสูจน์ได้ค่อนข้างง่ายว่าผู้เล่นคนแรกจะมีการเคลื่อนไหวที่ชนะ (ยกเว้นด้วยสี่เหลี่ยม 1 ต่อ 1) หามัน อินพุตคือขนาดของสี่เหลี่ยมผืนผ้า (ตัวเลขสองตัว) เอาท์พุทเป็นที่ตั้งของการย้ายที่ชนะ (ตัวเลขสองตัว) หากมีการชนะมากกว่าหนึ่งครั้งคุณสามารถส่งออกได้เลย นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุด (ทุกภาษา) ชนะ ตัวอย่าง หมายเหตุ: ผลลัพธ์เป็นเพียงตัวเลขสองตัว ASCII art ด้านล่างเป็นเพียงการแสดงให้เห็นถึงความหมายของตัวเลข อินพุต: 5 3 (ดัชนีเริ่มต้นที่ 1 จากมุมซ้ายล่าง) ผลลัพธ์: 4 3 XXX-- XXXXX XXXXX อินพุต: 4 4 ผลลัพธ์: 2 2 X--- X--- X--- XXXX โบนัส ลบ …
14 code-golf 

7
พิมพ์ค่าเฉพาะในเมทริกซ์ไบนารีที่สร้างขึ้นนี้
สมมติว่าเรานิยามเมทริกซ์ที่ไม่มีที่สิ้นสุดMบนN^2 -> {0, 1}(โดยNเริ่มจาก1แทน0) ในลักษณะนี้: M(1, 1)= 0. ทุก ๆx > 1, M(x, 1)= 1ถ้าxเป็นสำคัญและ0เป็นอย่างอื่น ทุกy > 1, M(1, y)การ = yระยะ TH Thue-Morse sequenceใน ทุก ๆx, y > 1, =M(x, y)M(x, y-1) + M(x-1, y) mod 2 ส่วนด้านซ้าย16x16บนของเมทริกซ์นี้ดูเหมือนว่า ( xเป็นแถวและyเป็นคอลัมน์): 0 1 1 0 1 0 0 1 1 …

24
รวมสองรายการที่เรียงลำดับ
ผสานเรียง ในความท้าทายนี้คุณจะใช้รูทีนย่อยผสานของการเรียงลำดับการผสาน โดยเฉพาะคุณต้องสร้างฟังก์ชั่นหรือโปรแกรมหรือคำกริยาหรือที่คล้ายกันซึ่งจะมีสองรายการแต่ละเรียงในลำดับที่เพิ่มขึ้นและรวมไว้ในหนึ่งรายการเรียงตามลำดับที่เพิ่มขึ้น ที่ต้องการ: - อัลกอริทึมของคุณจะต้องใช้เวลาเชิงเส้นแบบเชิงเส้นเท่ากับขนาดของอินพุต โปรดหยุดการแก้ปัญหา O (n ^ 2) คุณไม่สามารถใช้ฟังก์ชั่นในตัวที่มีความสามารถในการเรียงลำดับรายการหรือรวมรายการหรืออะไรทำนองนั้น ดุลยพินิจของผู้เขียน รหัสควรจะสามารถจัดการองค์ประกอบที่ซ้ำกัน ไม่ต้องกังวลกับรายการที่ว่างเปล่า ตัวอย่าง: merge([1],[0,2,3,4]) [0,1,2,3,4] merge([1,5,10,17,19],[2,5,9,11,13,20]) [1, 2, 5, 5, 9, 10, 11, 13, 17, 19, 20] นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดอาจชนะ!

2
คำไขว้บังคับ!
คริสผู้เสพติดปริศนาอักษรไขว้ที่มีความลับมีอัลกอริทึมที่กำหนดไว้สำหรับลำดับที่เขาแก้ไขได้ เราจะใช้ภาพด้านบนเป็นแนวทาง คริสมักจะเริ่มต้นด้วยเบาะแสแรกในกรณีนี้ 1 ข้าม คริสเป็นคนที่มีความสามารถในการไขว้กันดังนั้นจึงคิดว่าเขาจะรู้คำตอบสำหรับเบาะแสที่เขากำลังทำอยู่เสมอ เมื่อคริสทำเบาะแสได้สำเร็จเขาจะตรวจสอบเบาะแสทั้งหมดที่อยู่ติดกับที่เขาทำเสร็จแล้ว (ในกรณีแรกคือ 1 ลง, 2 ลงและ 3 ลง) จากนั้นกรอกข้อมูลให้ครบด้วยจำนวนที่น้อยที่สุด หากไม่มีเงื่อนงำที่อยู่ติดกันเขาจะไปที่ขั้นตอนที่ 3 หากเบาะแสเป็นเช่นนั้นหมายเลขถัดไป (ตามที่อธิบายไว้ในขั้นตอนที่ 3) มีทั้งเงื่อนงำข้ามและเงื่อนงำลงเขาจะทำตามข้ามเงื่อนงำก่อน (แน่นอน 100% ขอบนี้บน OCD!) หากไม่มีเบาะแสที่อยู่ติดกันเขาจะไปที่เบาะแสต่อไปที่มีอยู่ถัดไปเป็นตัวเลข (ข้ามหรือลง) ทำซ้ำจากขั้นตอนที่ 2 จนกระทั่งเบาะแสทั้งหมดเสร็จสมบูรณ์ และนี่คือที่มาของคุณ coders ที่รัก คุณได้รับมอบหมายให้สร้างรหัสที่สามารถให้เทมเพลตไขว้เพื่อให้ได้ผลลัพธ์ที่อธิบายลำดับของเบาะแสตามอัลกอริทึมของ Chris ในการแก้ปัญหา รหัสจะยอมรับการป้อนข้อมูลของแม่แบบปริศนาคำไขว้ในรูปแบบของการเป็น.ตัวแทนของสี่เหลี่ยมสีขาวและเป็น#ตัวแทนของสี่เหลี่ยมสีดำ ตัวอย่าง : .....#......... .#.#.#.#.#.#.#. ...#...#....... .#.#.#.#.#.#.#. ....#.......... ##.#.#.#.#.#.#. ......#........ .###.#####.###. ........#...... .#.#.#.#.#.#.## ..........#.... …

17
ทำลายมาตรฐานบางอย่าง! [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา ทุกคนรู้ว่าวลี "กฎถูกทำให้เสีย!" ดังนั้นนี่คือหน้าที่ของคุณ: เขียนรหัสในภาษาใดก็ได้ที่ทำลายมาตรฐาน สิ่งนี้สามารถเป็นอะไรก็ได้ตั้งแต่การวางสาย 240 โวลต์ลงไปที่ USB เพื่อส่งเราเตอร์ของคุณ ( ไม่ใช่เว็บไซต์ของคนอื่น!) ด้วยแพ็กเก็ตขนาด 10mb! (อย่ารับความคิดใด ๆ ทั้งสองอย่างนี้อาจทำให้เกิดการลงโทษได้!) คำตอบที่ถูกโหวตมากที่สุดหลังจาก 10 วัน (เช่นการละเมิดที่ร้ายแรงที่สุด) จะเป็นผู้ชนะ! กฎ: ต้องอธิบายรหัส มาตรฐานที่คุณทำลายจะต้องเชื่อมโยงกับและคุณต้องอธิบายสิ่งที่คุณกำลังทำ (หมายถึง 1) เพื่อทำลายมัน มิฉะนั้นคำตอบจะไม่ได้รับการยอมรับ คำตอบที่เพิ่งล่ามหรือทำให้หยุดทำงานจะไม่ได้รับการยอมรับ ฉันต้องการคำตอบที่สร้างสรรค์ไม่เพียงแค่วางสิ่งที่ต้องการ𐒢ลงใน IDLE (ซึ่งขัดข้อง) ไม่อนุญาตการใช้ประโยชน์จากข้อบกพร่องเว้นแต่ว่ามันจะผิดมาตรฐาน มิฉะนั้นคำตอบจะไม่ได้รับการยอมรับ เริ่มต้นและขอให้สนุก!

30
เขียนฟังก์ชั่นที่ใช้ (x, y) และคืนค่า x เป็นพลังของ y โดยไม่มีลูป [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการในวันที่ 11 เดือนที่ผ่านมา นี่เป็นความท้าทายที่สั้นมาก ๆ เขียนฟังก์ชั่นหรือขั้นตอนที่ใช้สองพารามิเตอร์xและyและส่งกลับผลลัพธ์ของโดยไม่ต้องใช้ลูปหรือฟังก์ชั่นพลังงานในตัวxy ผู้ชนะคือทางออกที่สร้างสรรค์ที่สุดและจะถูกเลือกตามจำนวนโหวตสูงสุดหลังจาก 3 วัน

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