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

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

3
สร้างโปรแกรม C ที่ใช้ระยะเวลายาวนานที่สุดในการคอมไพล์เป็น gcc
สร้างโปรแกรม C แบบสั้นที่ใช้เวลานานในการรวบรวม gcc รายการจะถูกทำคะแนนโดยกำหนดเวลาการรวบรวมจากนั้นลบเวลารวบรวมของโปรแกรมอ้างอิง กฎระเบียบ คุณลักษณะภาษา C หรือส่วนขยาย gcc ใด ๆ gcc 4.2.1
27 code-challenge  c 

3
จำลองการจับกลุ่มที่เรียบง่าย
Redstone เป็นเนื้อหาในเกม Minecraft และใช้สำหรับการคุมกำเนิดที่ซับซ้อนหลายอย่าง สำหรับโปรแกรมนี้คุณจะต้องจำลองสามรายการเท่านั้น: ลวด Redstone (บันทึกด้วย R), ไฟฉาย Redstone (บันทึกด้วย T) และบล็อก (บันทึกด้วย B) นี่คือรายการของกฎพื้นฐานเกี่ยวกับวิธีการจับกลุ่มทำงาน: A redstone torch sends power to any adjacent redstone wire. TRRRR ^This redstone wire is powered. Redstone wire can only hold power for 15 blocks. TRRRRRRRRRRRRRRRR ^This last wire is unpowered, because the …

30
ค้นหา i ^ n, รับ n
ความท้าทาย ในตัวละครน้อยที่สุดหาค่าของ i ^ n ให้ n, จำนวนเต็มบวกมากกว่า 0 ซึ่งควรเอาท์พุทเป็นสตริง สำหรับผู้ที่ไม่รู้ฉันถูกกำหนดเช่นนั้น i ^ 2 = -1 ดังนั้น: ฉัน ^ 1 = ฉัน ฉัน ^ 2 = -1 ฉัน ^ 3 = -i ฉัน ^ 4 = 1 ซ้ำแล้วซ้ำอีก .. กฎระเบียบ หากภาษาของคุณรองรับตัวเลขที่ซับซ้อนอย่าใช้ฟังก์ชั่นหรือเลขคณิตใด ๆ ความไม่ถูกต้องของจุดลอยตัวนั้นเป็นเรื่องปกติสำหรับคำตอบที่จะส่งคืนทศนิยมอย่างไรก็ตามอินพุตจำนวนเต็มควรให้ผลลัพธ์ที่แน่นอน คะแนนโบนัส -5 ถ้าคุณสามารถหาค่าโดยที่ n เป็นลบเช่นกัน -15 ถ้าคุณสามารถคำนวณมูลค่าของจำนวนจริงใด …

18
แปลงเอกพจน์เป็นพหูพจน์
คำนามมีสองรูปแบบเอกพจน์และพหูพจน์ การแปลงระหว่างสองคนนี้ค่อนข้างง่าย sโดยปกติแล้วคุณจะจบมันด้วย อดีต =>carcars ถ้ามันจบลงด้วยs, x, z, chหรือจบมันด้วยsh esอดีต =>busbuses ถ้ามันจบลงด้วยการyที่มีพยัญชนะก่อนที่มันจะเปลี่ยนไปy iesอดีต =>pennypennies ถ้ามันจบลงด้วยfหรือเปลี่ยนไปfe vesอดีต =>knifeknives ถ้ามันจบลงด้วยการที่มีพยัญชนะก่อนที่มันจะเปลี่ยนไปo oesอดีต =>potatopotatoes งาน คุณจะได้รับคำนามเอกพจน์ คุณต้องแปลงคำนามที่ให้เป็นพหูพจน์และเอาท์พุท กฎระเบียบ คุณจะไม่ได้รับคำนามที่ผิดปกติเช่นและmousemoose คุณจะไม่ได้รับการยกเว้นเช่นsafe( safes; ละเมิด # 4), piano( pianos; ละเมิด # 5) และo( oes, ละเมิด # 5) คุณจะไม่ได้รับคำศัพท์ที่มีรูปแบบพหูพจน์ที่เป็นไปได้สองรูปแบบขึ้นไปเช่นmosquito( mosquitosหรือmosquitoes) และroof( roofsหรือrooves) คุณจะไม่ได้รับคำนามนับไม่ได้ y ไม่นับเป็นสระ ตัวอย่าง car => …

4
พรรค Laser Mirror Portal
บอร์ด 2D จะมีวัตถุดังต่อไปนี้: ^, >, vหรือ<: เลเซอร์อีซีแอลหันขึ้นขวาลงหรือซ้ายตามลำดับ อาจมีมากกว่าหนึ่ง เลเซอร์จะเดินทางเป็นเส้นตรงในพื้นที่ว่าง (พื้นที่ว่างจะแสดงด้วยจุด.) เลเซอร์ไม่ผ่านตัวปล่อย *: เป้าหมาย เลเซอร์ผ่านเป้าหมาย อาจมีมากกว่าหนึ่ง บอร์ดอาจมีวัตถุต่อไปนี้: @: ผนังทึบ เลเซอร์จะไม่ผ่านที่นี่ \: ตัวสะท้อนแสงเอนซ้าย เปลี่ยนทิศทางของเลเซอร์ตามตารางต่อไปนี้: Direction laser is travelling Direction of laser after hitting reflector Up Left Right Down Down Right Left Up มันควรจะเป็นสัญชาตญาณของการสะท้อนแสง แค่คิดว่าพวกเขาเป็นกระจกสองด้านจริงและทิศทางควรชัดเจน /: ตัวสะท้อนแสงเอนด้านขวา เปลี่ยนทิศทางของเลเซอร์ตามตารางต่อไปนี้: Direction laser is travelling Direction …
27 code-golf 

27
พิมพ์เมทริกซ์ Block-Diagonal Matrix
นี่คือรหัสกอล์ฟแบบง่ายๆขนาดกัด (ขนาดไบต์): เนื่องจากรายการจำนวนเต็มบวกที่ไม่ว่างน้อยกว่า 10 ให้พิมพ์เมทริกซ์บล็อกเส้นทแยงมุมที่รายการจะระบุขนาดของบล็อกตามลำดับ บล็อกจะต้องประกอบด้วยจำนวนเต็มบวกน้อยกว่า 10 ดังนั้นหากคุณได้รับเป็นอินพุต [5 1 1 2 3 1] ตัวอย่างเช่นผลลัพธ์ของคุณอาจเป็นเช่นนั้น 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 …

11
อบ moji ให้ฉันหน่อย
รับสตริงรายการตัวอักษรไบต์สตรีมลำดับ ... ซึ่งเป็นทั้ง UTF-8 ที่ถูกต้องและ Windows-1252 ที่ถูกต้อง (ภาษาส่วนใหญ่อาจต้องการใช้สตริง UTF-8 ปกติ) แปลงจาก (นั่นคือทำเป็นว่ามันคือ ) Windows-1252ถึงUTF-8 UTF-8 ตัวอย่างแบบ walk-through สตริง UTF-8 I ♥ U T F - 8 แสดงเป็นไบต์ 49 20 E2 99 A5 20 55 54 46 2D 38 ค่าไบต์เหล่านี้ในตาราง Windows-1252ทำให้เรามี Unicode ที่เทียบเท่า 49 20 E2 2122 A5 20 55 54 …

8
สุดยอดยาห์ซี่
Yahtzee เป็นเกมที่เล่นด้วยลูกเต๋าหกด้านห้าแผ่นและแผ่นคะแนนที่มีสิบสามกล่องเพื่อเติมคะแนนในแต่ละกล่องมีกฎการให้คะแนนของตัวเอง: 1s, 2s, 3s, 4s, 5s, 6s คะแนนทุกคะแนนเท่ากับผลรวมของลูกเต๋าตามลำดับ (นั่นคือการหมุนของ [3, 2, 3, 1, 5] คะแนนที่ 3s จะได้รับ 6 คะแนน: 3 สำหรับแต่ละ 3) 3-of-a-kind และ 4-of-a (ขณะที่พวกเขาฟังสามหรือสี่ลูกเต๋ากลิ้งเหมือนกัน) คะแนนคะแนนเท่ากับผลรวมของห้าลูกเต๋าทั้งหมด Full house (สองลูกเต๋าแสดงค่าหนึ่งค่าอีกสามแสดงอีก) คะแนน 25 คะแนน เส้นตรงขนาดเล็ก (ค่าสี่ค่าติดต่อกัน) ให้คะแนน 30 คะแนน เส้นตรงขนาดใหญ่ (ค่าติดต่อกันทั้งหมด) ได้คะแนน 40 คะแนน Yahtzee (ลูกเต๋าทั้งหมดแสดงค่าเดียวกัน) ได้ 50 คะแนน ที่สิบสาม …
26 code-golf  number 

28
คุณสามารถหมุนลูกเต๋าได้กี่ลูกโดยไม่หมุนไปได้มากที่สุด
ปัญหา เริ่มต้นจากn=2ลูกเต๋า: หมุนnลูกเต๋าโดยแต่ละหมายเลข 1 ถึง 6 มีโอกาสเท่ากันในแต่ละตาย ตรวจสอบว่าผลรวมของพวกเขาเท่ากับผลรวมน่าจะเป็นที่สุดสำหรับลูกเต๋าที่เป็น n3.5*n หากพวกเขาเท่าเทียมกันยุติ มิฉะนั้นพิมพ์nและทำซ้ำตั้งแต่เริ่มต้นด้วยn+2ลูกเต๋า รหัสของคุณไม่จำเป็นต้องทำตามขั้นตอนนี้อย่างแน่นอน แต่ควรให้ผลลัพธ์แบบสุ่มที่น่าจะเทียบเท่ากับมันโดยยึดตามคำจำกัดความของการสุ่มของเรา โปรแกรมของคุณควรส่งออกตัวเลขทั้งหมดในบรรทัดของตนเอง ตัวอย่างเช่นหากโปรแกรมเพิ่มขึ้น 8 ลูกเต๋าและหมุนหมายเลขที่น่าจะเป็นที่สุดด้วย 8 ลูกเต๋าผลลัพธ์จะเป็น: 2 4 6 ตัวอย่าง Run ใน 2 ลูกเต๋า7เป็นผลรวมที่เป็นไปได้มากที่สุด สมมติว่าตัวเลขที่รีดได้และ2 จากนั้นคุณจะพิมพ์32 ใน 4 ลูกเต๋า14เป็นผลรวมที่เป็นไปได้มากที่สุด สมมติว่าตัวเลขที่รีดได้3, 4, และ2 5จากนั้นผลรวมคือ14ดังนั้นโปรแกรมจะยุติที่นี่ "2"ผลลัพธ์สุดท้ายในกรณีนี้คือ กฎระเบียบ code-golfวิธีที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานใช้ นิยามเมตาของแบบแผนใช้ คุณสามารถใช้ฟังก์ชั่นเช่นเดียวกับโปรแกรม
26 code-golf  random 

11
นักการพนันเข้าใจผิดลูกเต๋า
ความผิดพลาดของนักการพนันคืออคติทางปัญญาที่เราคาดหวังอย่างไม่เหมาะสมว่าสิ่งต่าง ๆ ที่เกิดขึ้นบ่อยครั้งจะมีโอกาสน้อยที่จะเกิดขึ้นในอนาคตและสิ่งต่าง ๆ ที่ไม่ได้เกิดขึ้นในอีกไม่นาน งานของคุณคือการใช้เวอร์ชันนี้โดยเฉพาะ คำอธิบายการท้าทาย เขียนฟังก์ชั่นที่ส่งกลับจำนวนเต็มแบบสุ่มระหว่าง 1 ถึง 6 โดยรวม การดักจับ: ครั้งแรกที่มีการเรียกใช้ฟังก์ชั่นผลลัพธ์ควรเป็นแบบเดียวกัน (ภายใน 1%) อย่างไรก็ตามการเรียกแต่ละครั้งที่ตามมาจะเบ้กับค่าที่มีการหมุนน้อยลงก่อนหน้านี้ รายละเอียดเฉพาะมีดังนี้: ผู้จำความตายนับจำนวนที่สร้างขึ้นแล้ว ผลลัพธ์แต่ละอย่างจะถูกถ่วงน้ำหนักด้วยสูตรต่อไปนี้: c o u n tm a x- c o u n tdฉันจ+ 1คโอยูnเสื้อม.ax-คโอยูnเสื้อdผมอี+1count_{max} - count_{die} + 1 ตัวอย่างเช่นหากการนับม้วนจนถึง[ 1 , 0 , 3 , 2 , 1 , 0 ][1,0,3,2,1,0][1, …
26 code-golf  random 

10
ฉันจะพูดโปรแกรมของคุณเร็วแค่ไหน?
ฉันเพิ่งตัดสินใจดาวน์โหลดซอฟต์แวร์เขียนตามคำบอกเพื่อช่วยในการเขียนของฉัน อย่างไรก็ตามมันไม่ได้ผลดีมากเมื่อฉันเขียนโปรแกรมเนื่องจากฉันต้องเปลี่ยนจากการพูดคำสัญลักษณ์และกลับมาอีกครั้ง มันยิ่งเลวร้ายลงเมื่อฉันเขียนโค้ดด้วยภาษาลึกลับซึ่งเป็นสัญลักษณ์ทั้งหมด เพื่อที่จะทำให้โปรแกรมการเขียนตามคำบอกของฉันสอดคล้องกันมากขึ้นฉันตัดสินใจที่จะสลับไปใช้โหมดตัวละครโดยที่ฉันพูดชื่อตัวละครแต่ละตัวแทน แก้ไขปัญหา! แม้ว่าสิ่งนี้จะทำให้วันที่วางจำหน่ายของฉันล่าช้าออกไปเล็กน้อย ... ดังนั้นสมมติว่ายิ่งชื่อของตัวละครยาวขึ้นเท่าไหร่ก็จะยิ่งบอกว่าอีกนานเท่าไหร่มันจะใช้เวลานานเท่าใดในการเขียนโปรแกรม / ประโยคของฉัน ข้อมูลจำเพาะ รับสตริงที่ประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้นให้ส่งคืนผลรวมของชื่อ Unicode ของตัวละคร ยกตัวอย่างเช่น/ที่เรียกว่าSOLIDUSมี 7 ตัวอักษรและAเป็นLATIN CAPITAL LETTER A22 ตัวอักษร แต่จำไว้ว่าฉันต้องพูดโปรแกรมของคุณออกมาดัง ๆ เพื่อให้ได้คะแนนของพวกเขาจะขึ้นอยู่กับว่าฉันใช้เวลานานแค่ไหนในการบอกพวกเขานั่นคือผลรวมของความยาวของชื่อยูนิโค้ดของตัวละครแต่ละตัว กรณีทดสอบ: ในรูปแบบที่input => outputไม่มีช่องว่างต่อท้าย / นำหน้าในอินพุต A => 22 / => 7 Once upon a time... => 304 slurp.uninames>>.comb.sum.say => 530 JoKing => 124 …

13
Superpermutations
บทนำ คุณเป็นอาชญากรที่ได้ขโมยแผนลับจาก Dejavu เทคโนโลยีใหม่ คุณแอบเข้าไปในกำแพงด้านหลัง แต่หาประตูที่ต้องใช้หมุดเปิด คุณรับรู้ถึงการล็อคและรู้ว่ามันใช้เวลา 5 พินโดยใช้ตัวเลขทั้งหมดจาก 0 ถึง 4 หลังจากป้อนแต่ละหลักแล้วการล็อคจะตรวจสอบ 5 หลักสุดท้ายที่ป้อนและเปิดหากรหัสถูกต้อง คุณต้องผ่านล็อคนี้และรวดเร็ว ผลสรุปโดยย่อ การเปลี่ยนแปลงคือการรวมกันที่เป็นไปได้ทั้งหมดของชุดของตัวเลข ตัวอย่างเช่นพีชคณิตทั้งหมดของตัวเลข 0, 1, 2 คือ: 012, 021, 102, 120, 201 และ 210 ถ้าเราต่อพีชคณิตทั้งหมดนี้เข้าด้วยกันเราจะได้ผลลัพธ์ที่ยอดเยี่ยม: 012021102120201210 superpermutation นี้มีพีชคณิตทั้งหมดเป็น 0, 1, 2 แต่เป็นไปได้ที่จะทำให้สั้นกว่านี้ ฉันจะข้ามไปนิดหน่อยที่นี่ แต่ superpermutation ที่สั้นที่สุดของตัวเลขเหล่านี้คือ: 012010210 สำหรับจุดประสงค์และจุดประสงค์ของเรานี่คือสตริงหลักที่สั้นที่สุดที่มีการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของตัวเลขเหล่านั้นนั่นคือ superpermutation งาน งานของคุณนั้นยากกว่าตัวอย่าง superpermutation ดังที่แสดงไว้ด้านบนเนื่องจากคุณมีตัวเลขอีกสองหลักที่ต้องกังวล - …

17
เฉพาะช่วงเวลามากมาย
ตั้งแต่ยูคลิดเรารู้ว่ามีช่วงเวลามากมาย อาร์กิวเมนต์เป็นความขัดแย้งโดย: ถ้ามีเพียงขอบเขตหลายสมมติว่าp1,p2,...,pnp1,p2,...,pnp_1,p_2,...,p_nแล้วแน่นอนm:=p1⋅p2⋅...⋅pn+1m:=p1⋅p2⋅...⋅pn+1m:=p_1\cdot p_2\cdot...\cdot p_n+1ไม่หารด้วยใด ๆ ของช่วงเวลาเหล่านี้ดังนั้นตัวประกอบที่สำคัญที่จะต้องให้ผลผลิตที่สำคัญใหม่ที่ไม่ได้อยู่ในรายการ ดังนั้นการสันนิษฐานว่ามีเฉพาะช่วงเวลาที่ จำกัด เท่านั้นจึงเป็นเท็จ ทีนี้สมมติว่า222เป็นเพียงนายกเท่านั้น วิธีการจากด้านบนให้ผลตอบแทน2+1=32+1=32+1=3ในรูปแบบไพรม์ใหม่ (เป็นไปได้) ใช้วิธีถัวเฉลี่ยอีกครั้ง2⋅3+1=72⋅3+1=72\cdot 3+1=7แล้ว2⋅3⋅7+1=432⋅3⋅7+1=432\cdot 3\cdot 7+1=43แล้ว2⋅3⋅7⋅43+1=13⋅1392⋅3⋅7⋅43+1=13⋅1392\cdot 3\cdot 7\cdot 43+1=13\cdot 139เพื่อให้ทั้ง131313และ139139139เป็นช่วงเวลาใหม่ ฯลฯ ในกรณีที่เราได้รับหมายเลขคอมโพสิตเราก็จะเลือกนายกคนใหม่อย่างน้อยที่สุด ผลนี้ในA000945 ท้าทาย รับค่าเฉพาะp1p1p_1และจำนวนเต็มnnnคำนวณคำnnn -th pnpnp_nของลำดับที่กำหนดไว้ดังต่อไปนี้: pn:=min(primefactors(p1⋅p2⋅...⋅pn−1+1))pn:=min(primefactors⁡(p1⋅p2⋅...⋅pn−1+1))p_n := \min(\operatorname{primefactors}(p_1\cdot p_2\cdot ... \cdot p_{n-1} + 1)) ลำดับเหล่านี้รู้จักกันในชื่อEuclid-Mullin -sequences ตัวอย่าง สำหรับp1=2p1=2p_1 = 2 : 1 2 2 3 3 7 …

12
หมายเลขกริฟฟิน Nth
ฉันได้ตัวเลขมาหลายชุดในวันก่อนและตัดสินใจตรวจสอบหมายเลข OEIS แปลกใจมากที่ลำดับไม่ปรากฏอยู่ในฐานข้อมูล OEIS ดังนั้นฉันจึงตัดสินใจตั้งชื่อลำดับหลังจากตัวเอง (โปรดทราบว่ามีคนที่ฉลาดกว่าฉันมากอาจเกิดขึ้นกับเรื่องนี้และถ้ามีคนพบ ชื่อจริงของลำดับนี้โปรดแสดงความคิดเห็นและฉันจะเปลี่ยนชื่อคำถาม) เนื่องจากฉันไม่สามารถหาลำดับได้ทุกที่ฉันจึงตัดสินใจตั้งชื่อตามตัวเองดังนั้น "Gryphon Numbers" แก้ไข: ขอบคุณ @Surb ที่ทำให้ฉันทราบถึงความจริงที่ว่าลำดับนี้มีค่าเท่ากับลำดับ OEIS A053696 - 1 หมายเลขกริฟฟอนคือตัวเลขของแบบฟอร์มโดยที่ทั้งและเป็นจำนวนเต็มมากกว่าหรือเท่ากับสองและลำดับกริฟฟอนเป็นชุดของหมายเลขกริฟอนทั้งหมดจากน้อยไปหามาก ใบสั่ง. หากมีหลายวิธีในการสร้างหมายเลข Gryphon (ตัวอย่างแรกคือซึ่งทั้งและ ) จำนวนจะถูกนับเพียงครั้งเดียวในลำดับ ครั้งแรกที่ตัวเลข Gryphon ไม่กี่:72a+a2+...+axa+a2+...+axa+a^2+...+a^xaaaxxx3030302+22+23+242+22+23+242+2^2+2^3+2^45+525+525+5^26,12,14,20,30,39,42,56,62,726,12,14,20,30,39,42,56,62,726, 12, 14, 20, 30, 39, 42, 56, 62, 72 งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มเป็นอินพุทและส่งออกหมายเลขกริฟฟอนที่ nnnnnn การป้อนข้อมูล: จำนวนเต็มตั้งแต่ 0 ถึง 10,000 (รวม) คุณอาจถือว่าลำดับเป็น 0 หรือดัชนี 1 …

15
สร้าง ASCII Podiums
ในการแข่งขันกีฬามักจะเกิดขึ้นที่ผู้ชนะจะได้รับการนำเสนอบนโพเดียมโดยมีผู้ชนะอันดับที่หนึ่งในอันดับที่สูงที่สุดในกลางคนที่สองที่อยู่ในระดับความสูงกลางไปทางซ้ายและคนที่สามที่อยู่ต่ำสุดและต่ำสุด ไปทางขวา. เราจะสร้างใหม่ที่นี่ด้วยการปรับแต่งพิเศษ โพเดียมนำเสนอด้านล่าง: @---@ | @ | @---@| | | | @ || | | | | || | |@---@ | | || | || @ | สิ่งนี้จะเป็นพื้นฐานสำหรับความท้าทายนี้ ขั้นตอนต่อไปคือการทำให้แท่นกว้างพอที่จะใส่คน (สตริง ASCII ที่พิมพ์ได้) ที่อยู่บนพวกเขา อย่างไรก็ตามเราต้องการให้มั่นใจในความงามที่สวยงาม (เพราะนี่เป็นโอกาสในการถ่ายภาพที่ยอดเยี่ยม) ดังนั้นแต่ละแท่นจะต้องมีความกว้างเท่ากันและความกว้างจะต้องแปลก นอกจากนี้ผู้คนจะ (เห็นได้ชัด) ต้องการยืนอยู่ตรงกลางแท่นดังนั้นสตริงจะต้องอยู่กึ่งกลางที่ดีที่สุดเท่าที่จะทำได้ (คุณสามารถจัดตำแหน่งไปทางซ้ายหรือขวาและไม่จำเป็นต้องสอดคล้องกัน) podiums ด้านบนมีขนาดต่ำสุดและถือว่า3กว้าง ตัวอย่างเช่นเนื่องจากอินพุตที่["Tom", "Ann", "Sue"]แสดงถึง first-, second- และ Third-place …

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