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

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

7
การวัดกองบันทึก
บทนำ นี่คือบันทึกของความยาว 5: ##### ฉันต้องการกองของบันทึกเหล่านี้อยู่ด้านบนของกันและกัน ฉันจะทำสิ่งนี้ได้อย่างไรว่าฉันเลื่อนบันทึกใหม่ไปยังด้านบนสุดจากด้านขวาและหยุดเลื่อนเมื่อแนวด้านซ้ายหรือด้านขวาของพวกเขาอยู่ในแนวเดียวกัน (ไม่ต้องถามสาเหตุ) หากบันทึกใหม่ยาวขึ้นมันจะเลื่อนไปจนสุดทางด้านซ้ายของบันทึกสูงสุด: ######## <- ##### ถ้ามันสั้นกว่ามันจะเลื่อนจนกระทั่งขวาสุดชิด: ###### <- ######## ##### ขณะที่ฉันเลื่อนบันทึกลงในกองมากขึ้นตำแหน่งของพวกเขาจะถูกกำหนดโดยบันทึกสูงสุดปัจจุบัน: ## ###### ### #### ## ###### ######## ##### สิ่งนี้ดูเป็นไปไม่ได้ทางร่างกาย แต่ลองทำเป็นว่ามันใช้ได้ งาน ข้อมูลที่คุณป้อนจะต้องเป็นรายการจำนวนเต็มบวกที่ไม่ว่างเปล่าซึ่งแสดงถึงความยาวของบันทึกของฉัน จำนวนซ้ายสุดคือบันทึกแรกที่ฉันใส่ไปยังเสาเข็มดังนั้นมันจะจบลงที่ด้านล่าง [5,8,6,2,4,3,6,2]ในตัวอย่างข้างต้นใส่จะเป็น ผลลัพธ์ของคุณจะต้องมีจำนวนบันทึกที่ข้ามคอลัมน์นั้นแต่ละคอลัมน์ [2,2,3,3,3,2,4,6,3,3,1,2,2]ในตัวอย่างข้างต้นแสดงผลที่ถูกต้องจะเป็น กฎและการให้คะแนน อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่สมเหตุสมผล เอาท์พุทสามารถมีจำนวนเต็มบวกคือมันต้องไม่นำหน้าหรือต่อท้าย0s ใช้กฎการเล่นกอล์ฟรหัสปกติ: คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบการนับจำนวนไบต์ที่ต่ำที่สุดและห้ามไม่ให้มีช่องโหว่มาตรฐาน กรณีทดสอบ [1] -> [1] [4] -> [1,1,1,1] [3,2] -> [1,2,2] [2,3] -> …

6
ใช้สัญลักษณ์ Anyfix!
ในสัญลักษณ์นำหน้าตัวดำเนินการมาก่อนอาร์กิวเมนต์ดังนั้นคุณสามารถจินตนาการได้ว่าตัวดำเนินการเรียกnext()ซึ่งเรียกซ้ำ ในสัญกรณ์มัดผู้ประกอบการไประหว่างการขัดแย้งเพื่อให้คุณสามารถจินตนาการได้ว่ามันเป็นต้นไม้แยก ในรูปแบบ postfix ตัวดำเนินการมาหลังจากอาร์กิวเมนต์ดังนั้นคุณสามารถจินตนาการได้ว่าเป็นแบบสแต็ก ในสัญกรณ์ anyfix, ผู้ประกอบการสามารถไปได้ทุกที่* หากโอเปอเรเตอร์ปรากฏขึ้นและมีข้อโต้แย้งไม่เพียงพอโอเปอเรเตอร์จะรอจนกว่าจะมีอาร์กิวเมนต์เพียงพอ สำหรับความท้าทายนี้คุณจะต้องใช้ตัวประเมิน anyfix ขั้นพื้นฐานมาก (โปรดทราบว่า anyfix เป็นภาษาสันทนาที่ฉันละทิ้งที่คุณสามารถเล่นกับที่นี่หรือลองดูที่นี่ ) คุณจะต้องสนับสนุนคำสั่งต่อไปนี้: (Arity 1) ที่ซ้ำกัน เชิงลบ (Arity 2) ส่วนที่เพิ่มเข้าไป การคูณ ความเสมอภาค: ผลตอบแทนหรือ01 คุณอาจเลือกใช้สัญลักษณ์ที่ไม่ใช่ช่องว่างห้าคำสำหรับคำสั่งเหล่านี้ เพื่อจุดประสงค์ในการสาธิตฉันจะใช้สิ่ง"ที่ซ้ำกัน×เป็นการคูณและการ+บวก สำหรับตัวอักษรคุณจะต้องสนับสนุนจำนวนเต็มที่ไม่เป็นลบเท่านั้น แต่ล่ามของคุณจะต้องมีจำนวนเต็มทั้งหมด (ภายในช่วงจำนวนเต็ม (เหมาะสม) ของภาษาของคุณ) 10+5ลองมาดูตัวอย่างนี้: ที่เก็บข้อมูลควรทำตัวเป็นสแต็กไม่ใช่คิว ดังนั้นก่อนกองเริ่มต้นที่และจัดคิวเริ่มต้นรายการที่ผู้ประกอบการ[] []จากนั้นที่แท้จริงคือการประเมินผลซึ่งจะทำให้สแต็ค10 [10]ถัดไปตัวดำเนินการ+ได้รับการประเมินซึ่งต้องการอาร์กิวเมนต์สองตัว ['+']แต่มีเพียงคนเดียวคือข้อโต้แย้งในกองดังนั้นรายชื่อผู้ประกอบการที่อยู่ในคิวจะกลายเป็น จากนั้นที่แท้จริงคือการประเมินผลซึ่งจะทำให้สแต็ค5 [10, 5]ณ จุดนี้ผู้ประกอบการ'+'สามารถประเมินจึงเป็นสิ่งที่ทำให้สแต็คและคิว[15][] ผลสุดท้ายควรจะเป็น[15]สำหรับ+ 10 5, และ10 + 510 …

24
ผลรวมของแถวของสามเหลี่ยมที่ต่อกัน
พิจารณาสามเหลี่ยมต่อไปนี้ 1 23 456 7891 01112 131415 1617181 92021222 324252627 2829303132 33343536373 839404142434 4454647484950 51525354555657 585960616263646 5666768697071727 37475767778798081 ดังที่คุณอาจสังเกตเห็นแถวแรกมีความยาว 1 และแต่ละแถวหลังจากนั้นจะมีความยาวมากกว่า 1 หลักก่อนหน้าและมันมีตัวเลขของจำนวนเต็มบวกที่ต่อกัน คุณจะได้รับจำนวนเต็มN งานของคุณคือการหาผลรวมของตัวเลขที่อยู่ในแถวที่nของสามเหลี่ยมด้านบน กฎระเบียบ คุณสามารถเลือกการจัดทำดัชนี 0 หรือ 1 โปรดระบุว่าในคำตอบของคุณ มีการใช้ช่องโหว่เริ่มต้น คุณสามารถรับอินพุตและให้เอาต์พุตโดยใช้ค่าเฉลี่ยมาตรฐานและในรูปแบบที่เหมาะสม นี่คือOEIS A066548และลำดับนี้คือสามเหลี่ยมเอง (ยกเว้นว่าเราจะไม่ลบเลขศูนย์นำหน้า) นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์ (ทุกภาษา) จะเป็นผู้ชนะ ขอให้สนุกกับการเล่นกอล์ฟ! กรณีทดสอบ Input | Output 0 | 1 1 | 5 …

15
ไปให้พ้น! ไม่มีของ 1 ที่นี่!
ฉันกำลังเล่นกับตัวเลขและพบลำดับที่แน่นอนอยู่ใน OEIS มันเป็นA005823 : เบอร์ที่มีการขยายตัว ternary ไม่มี 1 มันไป: a (2n) = 3 * a (n) +2 a (2n + 1) = 3 * a (n + 1) a (1) = 0 a = 0,2,6,8,18,20,24,26,54 .... ฉันเขียนโปรแกรม CJamที่สร้างn ตัวแรกของตัวเลขเหล่านี้โดยแปลงดัชนีเป็นไบนารีแทนที่ 1 ด้วย 2 และเปลี่ยนจาก ternary เป็นทศนิยม ฉันยังสังเกตเห็นว่าจำนวนคู่ใด ๆ สามารถรับได้โดยการหาผลรวมของตัวเลขสองตัวในลำดับ ความท้าทาย: ให้ตัวเลขใด …

16
ฉันมีพาร์ติชั่นกี่อัน?
หมายเลขพาร์ติชันของเลขจำนวนเต็มบวกถูกกำหนดเป็นจำนวนวิธีที่สามารถแสดงเป็นผลรวมของจำนวนเต็มบวก กล่าวอีกนัยหนึ่งจำนวนพาร์ติชันจำนวนเต็มมี ตัวอย่างเช่นหมายเลข4มีพาร์ติชันต่อไปนี้: [[1, 1, 1, 1], [1, 1, 2], [1, 3], [2, 2], [4]] ดังนั้นจึงมี5พาร์ติชัน นี่คือOEIS A000041 งาน รับจำนวนเต็มบวกNกำหนดหมายเลขพาร์ติชัน ใช้กฎมาตรฐานทั้งหมด อินพุตและเอาต์พุตอาจได้รับการจัดการผ่านค่าเฉลี่ยที่สมเหตุสมผล นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ อินพุต | เอาท์พุต 1 | 1 2 | 2 3 | 3 4 | 5 5 | 7 6 | 11 7 | 15 8 | …

19
สร้างโปรแกรมที่พิมพ์ n คูณความยาว
รับจำนวนเต็มที่ไม่ใช่ค่าลบ nโซลูชันของคุณต้องแสดงผลโปรแกรมในภาษาที่คุณเลือกโดยที่เอาต์พุตมีnจำนวนไบต์เท่ากับโปรแกรมเอาท์พุท กฎระเบียบ คุณต้องระบุภาษาและการเข้ารหัสของโปรแกรมที่โซลูชันของคุณส่งออกและคุณไม่สามารถเลือกภาษาหรือการเข้ารหัสที่แตกต่างกันสำหรับอินพุตที่แตกต่างกันสำหรับโซลูชันของคุณ ภาษาของโปรแกรมเอาท์พุทของคุณอาจหรืออาจจะไม่เหมือนกันกับภาษาของโซลูชันของคุณ การส่งของคุณต้องการจัดการจำนวนเต็มในช่วงภาษาของคุณเท่านั้น แต่โปรดอย่าใช้กฎนี้ในทางที่ผิด นี่คือโค้ดกอล์ฟเพื่อการส่งที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่าง สมมติว่าnเป็นทางออกของฉัน 4. จากนั้นเอาท์พุทf_8โปรแกรมซึ่งใน (จินตนาการ) j3 1s+/2]!mzเอาท์พุทภาษาของฉัน เอาต์พุตโปรแกรมมีความยาว 3 และเอาต์พุตมีความยาว 3 * 4 = 12 ดังนั้นโซลูชันจึงถูกต้องสำหรับอินพุต 4 สมมติว่าnเป็น 1 และโปรแกรมของฉันส่งออกffffpfpffp(10 ไบต์) โปรแกรมffffpfpffpในภาษาที่ฉันเลือกจะต้องสร้างผลลัพธ์เป็น 10 * 1 = 10 ไบต์
16 code-golf  quine 

14
Mario Kart ให้คะแนนด้วยความสัมพันธ์
ฉันพบปัญหานี้ในขณะที่ทำงานกับความท้าทายอื่นที่ฉันทำกับไซต์นี้ ในความท้าทายนั้นฉันใช้ " Mario Kart 8 Scoring " จำนวนคะแนนที่ผู้เล่นได้รับในลำดับที่kจะได้รับการแสดงโดยอาเรย์ 1 ที่มีการจัดทำดัชนีนี้: [15,12,10,9,8,7,6,7,6,5,4,3,2,1] อันดับที่ 1 ได้รับ 15 คะแนนอันดับที่ 2 ได้รับ 12 คะแนน ฯลฯ มันง่ายพอที่จะกำหนดคะแนนเช่นนี้อย่างไรก็ตามส่วนที่ยุ่งยากมาพร้อมกับวิธีที่ฉันจัดการกับความสัมพันธ์ สิ่งที่ฉันทำคือให้คะแนนเฉลี่ยที่ผู้เล่นแต่ละคนได้รับในแต่ละตำแหน่ง ตัวอย่างเช่นหากมีการผูก 1 และ 2 ผู้เล่นทั้งสองจะได้รับ (15 +12) / 2 = 13.5 คะแนน (หมายเหตุ: คุณได้รับอนุญาตให้ปัดเศษเป็น int ที่ใกล้ที่สุดดังนั้นทั้ง 13 หรือ 14 จึงเป็นที่ยอมรับเช่นกัน) จากนั้นอันดับที่ 3-12 จะได้รับคะแนนตามปกติสำหรับตำแหน่งของพวกเขา ท้าทาย ได้รับ 12 …

15
หารด้วย 1000003? ง่ายเพียงแค่คูณตัวเลขสุดท้ายด้วย 300001 และเพิ่ม!
กำหนดที่สำคัญPมากกว่า10โปรแกรมหรือการทำงานของคุณจะต้องคิดออกกฎหารของxกำหนดเป็นจำนวนเต็มกับค่าสัมบูรณ์ที่เล็กที่สุดที่ทำให้หลายนายกเดิมเมื่อคูณด้วยหลักสุดท้ายของนายกและเพิ่มในส่วนที่เหลือของเดิม สำคัญ ตัวอย่าง ได้รับการป้อนข้อมูล31ที่เป็นตัวเลขหลักสุดท้ายและส่วนที่เหลือของจำนวน1 3ดังนั้นโปรแกรมของคุณจะต้องพบกับจำนวนเต็มxกับค่าสัมบูรณ์ขั้นต่ำดังกล่าวว่ามีหลาย1*x + 3 31ในกรณีนี้การทำงานเพื่อให้โปรแกรมหรือฟังก์ชั่นจะกลับมาx=-3-3 ได้รับการป้อนข้อมูล1000003ที่เป็นตัวเลขหลักสุดท้ายและส่วนที่เหลือของจำนวน3 100000ดังนั้นโปรแกรมของคุณจะพบx=300001เพราะสิ่ง3*300001+100000 = 1000003ที่เป็นจำนวน1000003มาก พื้นหลังทางคณิตศาสตร์ ค่าของxสามารถใช้เป็นการทดสอบการหารได้ หากตัวเลขNหารด้วยPแล้วการเพิ่มจำนวนxหลักสุดท้ายของNส่วนที่เหลือNจะให้ผลคูณของจำนวนPและถ้าหากNหารด้วยPในตอนแรก สำหรับการP=11ที่เราได้รับx=-1ซึ่งจะเทียบเท่ากับกฎหารที่รู้จักกันดีสำหรับ11: หมายเลขคือหารด้วยความแตกต่างสลับหลักของมันคือการหารด้วย1111 กฎระเบียบ เอาต์พุตอาจอยู่ในรูปแบบใด ๆ ที่เข้ารหัสทั้งสัญญาณและมูลค่าของเอาต์พุตอย่างชัดเจน อินพุตที่สำคัญจะอยู่ระหว่าง 10 และ 2 ^ 30 คุณไม่จำเป็นต้องจัดการถ้าอินพุตไม่ใช่ไพร์มหรือไม่อยู่ในช่วง คุณไม่จำเป็นต้องจัดการหากทั้งคู่xและ-xเป็นผลลัพธ์ที่ถูกต้อง (ไม่ควรเกิดขึ้น) อนุญาตให้ใช้กำลังแบบเดรัจฉาน แต่ได้รับการยอมรับในการสร้างสรรค์โซลูชั่นมากขึ้น นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาชนะ! อย่าปล่อยให้คำตอบในภาษากอล์ฟกีดกันคุณจากการโพสต์ในภาษาอื่น ๆ กรณีทดสอบ Input Output 11 -1 13 4 17 -5 19 2 23 7 …

11
ค้นหาแทนเจนต์ของผลรวมของแทนเจนต์ผกผัน
พื้นหลัง ก็สามารถที่จะแสดงให้เห็นว่าสำหรับจำนวนเต็มใด ๆk >= 0, f(k) = tan(atan(0) + atan(1) + atan(2) + ... + atan(k))เป็นจำนวนจริง เป้าหมาย เขียนโปรแกรมหรือฟังก์ชั่นที่สมบูรณ์ซึ่งเมื่อได้รับk >= 0ผลลัพธ์จะf(k)เป็นส่วนที่ลดลงเพียงครั้งเดียว (ตัวเศษและส่วนคือ coprime) กรณีทดสอบ ค่าแรก ๆ คือ f(0) = (0,1) f(1) = (1,1) f(2) = (-3,1) f(3) = (0,1) f(4) = (4,1) f(5) = (-9,19) f(6) = (105,73) กฎระเบียบ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม อินพุตและเอาต์พุตอาจอยู่ในรูปแบบที่สะดวก …

20
ระบุสัญลักษณ์ของเซลล์
ดังนั้นเราทุกคนหวังว่าจะคุ้นเคยกับสัญกรณ์เซลล์ Spreadsheet 'A1' มันเป็นเพียงตัวอักษรและตัวเลขของการวางตำแหน่งของเซลล์ดังกล่าวภายในตาราง ตัวอักษรแสดงถึงการวางตำแหน่งคอลัมน์ของเซลล์และตัวเลขแสดงถึงแถว ส่วน 'ตัวอักษร' อาจประกอบด้วยตัวอักษรอย่างน้อย 1 ตัวจากตัวอักษรภาษาอังกฤษ 26 ตัวซึ่งทั้งหมดต้องเป็นตัวพิมพ์ใหญ่ แผนที่เหล่านี้เป็นตัวเลขโดยใช้การคำนวณตัวเลข bijective 26 adic ส่วน 'หมายเลข' อาจประกอบด้วยจำนวนเต็มบวกที่ไม่เป็นศูนย์ ความท้าทายเขียนโปรแกรมที่ให้สัญลักษณ์ A1 ของเซลล์ใด ๆ เป็นสตริงเดียวสามารถส่งออกสตริงที่มีตำแหน่งคอลัมน์ที่แสดงเป็นตัวเลขตามด้วยช่องว่างแล้วตามด้วยหมายเลขแถว ตัวอย่างอินพุต / เอาต์พุตด้านล่าง: A1 >>1 1 B10 >>2 10 AC4 >>29 4 AAC753 >>705 753 F123 >>6 123 GL93 >>194 93 นี่คือความท้าทายครั้งแรกของฉันดังนั้นความเรียบง่ายสัมพัทธ์และความอ่อนแอที่มีศักยภาพของเกณฑ์ แก้ไข : สตริงจะต้องเป็นตัวอักษรตามด้วยตัวเลขและเกณฑ์การชนะคือความยาวรหัสที่สั้นที่สุด (ถ้าเป็นได้) …

7
รหัส PPCG ของฉันคืออะไร
ท้าทาย ระบุชื่อของสมาชิก PPCG ส่งออกหมายเลข PPCG ID หากไม่มีผู้ใช้คุณอาจรายงานข้อผิดพลาดหรือส่งกลับหมายเลขที่ไม่เป็นบวกใด ๆ หากมีสมาชิกหลายคนที่มีชื่อนี้คุณสามารถเลือกที่จะส่งออกเพียง ID เดียวหรือทั้งหมด กรณีทดสอบ "musicman523" -> 69054 "Dennis" -> 12012 "xnor" -> 20260 "แม่ชีรั่ว" -> 48934 "fəˈnɛtɪk" -> 64505 "JörgHülsermann" -> 59107 "ชุมชน" -> -1 "ผู้ใช้ใด ๆ ที่ไม่มีอยู่" -> 0 "Alex" -> 69198 (นี่คือผลลัพธ์ที่เป็นไปได้หนึ่งรายการ) "Leaky N" -> 0 "Jorge" -> 3716

6
Double Slit Experiment
นักฟิสิกส์ขี้เกียจมีหน้าที่ในการทำการทดลองสองช่อง อย่างไรก็ตามพวกเขาขี้เกียจและไม่สามารถใส่ใจในการตั้งค่าอุปกรณ์ทั้งหมดด้วยตัวเองและเพื่อจำลองผลกระทบ พวกเขาไม่สามารถตั้งโปรแกรมได้ดังนั้นจะต้องการความช่วยเหลือบ้าง โปรแกรมของคุณควรสั้นที่สุดเท่าที่จะเป็นไปได้ รับจำนวนเต็มบวกคี่n( n >= 1และn % 2 == 1) ทำการจำลอง มันทำงานอย่างไร คุณจะเริ่มต้นด้วยผ้าใบที่ว่างเปล่าและแต่ละเฟรมจะมีแสงอนุภาคเดียวผ่านทะลุและลงบนผืนผ้าใบ อนุภาคจะตกลงมาถึงจุดสูงสุดโดยมีโอกาส: n = 1: +-----+ | | | 1/2 | | | +-----+ n = 3: +-----+ +-----+ +-----+ | | | | | | | 1/4 | | 1/2 | | 1/4 | | …

30
“ สวัสดีโลก!” (ด้ายของตำรวจ)
นี่คือด้ายของตำรวจ ด้ายโจรเป็นที่นี่ ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่มีอินพุตที่แน่นอนพิมพ์สตริงที่แน่นอนHello, World!และขึ้นบรรทัดใหม่ การใช้ตัวพิมพ์ใหญ่เว้นวรรคและเครื่องหมายวรรคตอนต้องเป็นตัวพิมพ์ใหญ่ อินพุตอาจถูกใช้ผ่านอินพุตมาตรฐานไฟล์หรืออาร์กิวเมนต์บรรทัดรับคำสั่ง / ฟังก์ชัน เอาต์พุตอาจถูกกำหนดผ่านค่าส่งคืนการเขียนไปยังไฟล์หรือเอาต์พุตมาตรฐาน โปรแกรมของคุณจะต้องพิมพ์Hello, World!อย่างน้อยหนึ่งอินพุต เมื่อโปรแกรมของคุณได้รับอินพุตผิด (เช่นอินพุตที่ไม่ได้ทำการพิมพ์Hello, World! ) มันสามารถทำอะไรก็ได้ที่คุณต้องการ - ขัดข้องพิมพ์เรื่องไร้สาระสุ่มโทร Chuck Norris เป็นต้น คุณไม่สามารถใช้อัลกอริทึมการแปลงแป้นพิมพ์หรือวิธีการที่คล้ายกันในการปิดบังอินพุตที่ต้องการ สิ่งที่ส่งมานั้นต้องการให้สามารถรันได้ & ถอดรหัสได้ TIO อนุญาตให้ส่งไฟล์ที่ไม่สามารถเรียกใช้หรือถอดรหัสได้ใน TIO แต่โปรดรวมคำแนะนำในการดาวน์โหลด / เรียกใช้ หลังจากผ่านไปหนึ่งสัปดาห์ความท้าทายนี้จะถูกปิดเพื่อส่งให้ตำรวจในอนาคต ผู้ชนะคือรหัสที่สั้นที่สุดที่ไม่ได้ทำการถอดหลังจากหนึ่งสัปดาห์ของการโพสต์ ("เป็น" เป็นรหัสไม่ใช่ความท้าทายนี้) ผู้ชนะจะได้รับการยอมรับหลังจากสองสัปดาห์ หลังจากผ่านไปหนึ่งสัปดาห์ตั้งแต่โพสต์โปรดทำเครื่องหมายคำตอบของคุณว่าปลอดภัยและแสดงอินพุต (ใน> ! spoiler quote) หากโจรปล้นการส่งของคุณ (ก่อนสัปดาห์สิ้นสุด) โปรดทำเครื่องหมายว่าแคร็กแล้วแสดงการหยุดพัก (ใน> ! spoiler quote ) กำลังมองหาการส่งที่ไม่ได้ติดตาม? …

10
การเสี่ยงภัย: ลงไป
เมื่อให้ลูกเต๋าสองรายการสำหรับการต่อสู้ใน Risk โปรแกรมหรือฟังก์ชันของคุณจะต้องแสดงจำนวนกองทหารที่ผู้เล่นแต่ละคนแพ้ พื้นหลัง คุณไม่จำเป็นต้องอ่านสิ่งนี้เพราะมันเป็นเพียงพื้นหลัง ข้ามไปยังหัวข้อย่อย "งาน" เพื่อดำเนินการต่อไปคงที่ ในเกมแห่งความเสี่ยงผู้เล่นคนหนึ่งสามารถโจมตีผู้เล่นอื่นได้ (ในความเป็นจริงมันเป็นสิ่งจำเป็นที่จะชนะ) ผลลัพธ์ของการต่อสู้จะพิจารณาจากการทอยลูกเต๋า การต่อสู้ทุกครั้งเกิดขึ้นเนื่องจากการต่อเนื่องของการรบย่อยซึ่งผู้เล่นแต่ละคนสามารถแพ้ได้2ชิ้นส่วนของกองทัพ ในการต่อสู้ย่อยผู้พิทักษ์และผู้โจมตีแต่ละคนทอยลูกเต๋าหลายลูกซึ่งจำนวนอาจแตกต่างกันไปตามสถานการณ์ที่ไม่เกี่ยวข้องกับความท้าทายนี้ ค่าสูงสุดของผู้โจมตีนั้นเทียบกับค่าสูงสุดของผู้พิทักษ์ หากผู้โจมตีเสียชีวิตสูงกว่าผู้พิทักษ์ตายฝ่ายป้องกันเสียหนึ่งชิ้น มิฉะนั้นผู้โจมตีสูญเสียหนึ่งชิ้น จากนั้นหากผู้เล่นทั้งสองมีอย่างน้อยสองลูกเต๋าลูกเต๋าที่มีมูลค่าสูงสุดอันดับสองของผู้เล่นทั้งสองจะถูกเปรียบเทียบ อีกครั้งถ้าผู้โจมตีตายมากกว่าผู้พิทักษ์ฝ่ายตายผู้พิทักษ์เสียชิ้นเดียว มิฉะนั้นผู้โจมตีสูญเสียหนึ่งชิ้น (Defender ชนะการผูกหากทั้งผู้พิทักษ์และผู้โจมตีกลิ้ง a 4ผู้โจมตีจะแพ้ชิ้น) ในการต่อสู้ย่อยจากบทความ Wikipedia ลูกเต๋าของผู้โจมตีเป็นสีแดงและลูกเต๋าของผู้พิทักษ์เป็นสีขาว สูงสุดของลูกเต๋าโจมตีเป็นและสูงสุดของการมีกองหลังของ4 3เนื่องจากผู้โจมตีสูงขึ้นผู้พิทักษ์จึงเสียส่วนหนึ่ง อันดับสอง3สำหรับผู้โจมตีและ2ผู้พิทักษ์ เนื่องจากผู้โจมตีสูงขึ้นอีกครั้งผู้พิทักษ์จึงเสียอีกชิ้นหนึ่ง ดังนั้นในการรบย่อยนี้ผู้โจมตีไม่ต้องเสียชิ้นใดเลยและผู้พิทักษ์ก็สูญเสีย2ชิ้นส่วนไป โปรดทราบว่าชิ้นส่วนที่สามที่สูงที่สุดจะไม่ถูกเปรียบเทียบ นี่เป็นเพราะผู้พิทักษ์ไม่มีลูกเต๋ามากกว่าสองครั้งในการรบย่อยครั้งเดียวดังนั้นจึงไม่มีการเปรียบเทียบชิ้นที่สามที่สูงที่สุดเท่าที่เคยมีมา งาน ให้ลูกเต๋าที่ไม่ได้เรียง (จำนวนเต็มในช่วง 1 ถึง 6 รวม) ของทั้งผู้โจมตีและผู้ปกป้องการรบย่อยของความเสี่ยงในรูปแบบที่สะดวกสบายใด ๆ ส่งออกจำนวนชิ้นส่วนกองทัพที่ผู้เล่นแต่ละคนแพ้ เอาต์พุตอาจอยู่ในรูปแบบที่สะดวกใด ๆ ตราบใดที่มีเอาต์พุตต่างกันเพื่อระบุความเป็นไปได้ทั้งห้า คุณต้องระบุว่าอะไรคือผลลัพธ์ที่แตกต่างกันในคำถามของคุณ เอาท์พุทจะถูกกำหนดดังนี้เริ่มต้นด้วยและdef=0 ถ้าค่าที่ยิ่งใหญ่ที่สุดของรายการของลูกเต๋าม้วนโจมตีที่มีค่ามากกว่าค่ามากที่สุดของรายการของลูกเต๋าม้วนของกองหลังที่เพิ่มขึ้นแล้วatk=0 มิฉะนั้นการเพิ่มขึ้นdefatk …

9
ทำโซ่ที่ไม่มีที่สิ้นสุด
ให้นิยามคลาสของฟังก์ชัน ฟังก์ชั่นเหล่านี้จะแมปจากจำนวนเต็มบวกกับจำนวนเต็มบวกและต้องเป็นไปตามข้อกำหนดต่อไปนี้: ฟังก์ชั่นจะต้องเป็น Bijective ซึ่งหมายความว่าทุกค่าจะจับคู่กับและถูกแมปด้วยค่าหนึ่งค่า คุณจะต้องสามารถรับจำนวนเต็มบวกจากจำนวนเต็มบวกอื่น ๆ ได้โดยการใช้ฟังก์ชั่นซ้ำ ๆ ของฟังก์ชันหรืออินเวอร์ส ตอนนี้เขียนโค้ดที่จะทำหน้าที่ใด ๆ หนึ่งฟังก์ชั่นในชั้นเรียนนี้ในการป้อนข้อมูลของมัน นี่เป็นคำถามเกี่ยวกับรหัสกอล์ฟดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น
16 code-golf  math  number 

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