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

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

19
ประมาณจำนวน Dottie
รางวัลจะหมดอายุใน 6 วัน คำตอบสำหรับคำถามนี้มีสิทธิ์ได้รับ+100 ค่าชื่อเสียง Adámต้องการให้รางวัลคำตอบที่มีอยู่ : คำตอบที่ได้รับการอธิบายอย่างดีนี้เป็นคำตอบแรกใน APL ที่นี่ดังนั้นจึงเหมาะสำหรับความโปรดปรานนี้ จำนวน Dottieเป็นจุดคงที่ของฟังก์ชั่นโคไซน์หรือวิธีการแก้สมการcos (x) = x 1 งานของคุณคือการสร้างรหัสที่ใกล้เคียงกับค่าคงที่นี้ รหัสของคุณควรแสดงถึงฟังก์ชั่นที่ใช้จำนวนเต็มเป็นอินพุตและส่งออกจำนวนจริง ขีด จำกัด ของฟังก์ชันของคุณเมื่ออินพุตเพิ่มขึ้นควรเป็นหมายเลข Dottie คุณสามารถส่งออกเป็นเศษส่วนทศนิยมหรือการแสดงพีชคณิตของตัวเลข ผลลัพธ์ของคุณควรมีความแม่นยำโดยพลการลอยตัวและเป็นสองเท่าไม่เพียงพอสำหรับความท้าทายนี้ หากภาษาของคุณไม่สามารถใช้ตัวเลขที่มีความแม่นยำได้คุณจะต้องนำไปใช้หรือเลือกภาษาใหม่ นี่เป็นคำถามเกี่ยวกับรหัสกอล์ฟดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยมีจำนวนไบต์น้อยกว่าดีกว่า เคล็ดลับ วิธีหนึ่งในการคำนวณค่าคงที่คือการใช้ตัวเลขใด ๆ และนำโคไซน์มาใช้ซ้ำ ๆ เมื่อจำนวนของแอปพลิเคชันมีแนวโน้มที่จะไม่มีที่สิ้นสุดผลลัพธ์จึงมีแนวโน้มไปยังจุดคงที่ของโคไซน์ นี่คือการประมาณจำนวนที่ถูกต้องอย่างเป็นธรรม 0.739085133215161 1: ตรงนี้เราจะใช้โคไซน์เป็นเรเดียน

30
การสลับ“ ดี” และ“ ไม่ดี”
คำอธิบายการท้าทาย: เขียนโปรแกรมที่ขอให้ผู้ใช้ป้อนข้อมูล ผู้ใช้จะใส่หรือGood Badคุณไม่จำเป็นต้องรองรับอินพุตอื่น ๆ หากผู้ใช้เข้าสู่Goodพิมพ์Badและในทางกลับกัน (เพื่อ stdout ฯลฯ ) หมายเหตุ: 1)คุณไม่สามารถใช้คำสองคำอื่น ๆ 2)โปรแกรมของคุณต้องถามและพิมพ์ครั้งเดียวเท่านั้น 3)คุณไม่จำเป็นต้องแสดงข้อความแจ้ง 4)ผลลัพธ์จะต้องปรากฏแยกออกจากอินพุตด้วยวิธีการใด ๆ 5)ฟังก์ชั่นไม่ได้รับอนุญาตให้รับค่าและส่งกลับผลลัพธ์; ผู้ใช้จะต้องโต้ตอบกับโปรแกรม โชคดี!

3
การลบจุดออกจากอาร์เรย์รูปสามเหลี่ยมโดยไม่สูญเสียรูปสามเหลี่ยม
ฉันมีปัญหาเกี่ยวกับ combinatoricsที่ฉันต้องการนำมาใช้กับOEISปัญหาคือฉันไม่มีเงื่อนไขเพียงพอ ความท้าทายของรหัสนี้คือการช่วยฉันคำนวณเงื่อนไขเพิ่มเติมและผู้ชนะจะเป็นผู้ใช้ที่มีการส่งที่มีจำนวนคำมากที่สุด ปัญหา สมมติว่าผมให้คุณเป็นแถวสามเหลี่ยมของหลอดไฟที่มีความยาวด้าน :nnn o o o o o o o o o o o o o o o o o o o o o 1 2 ... n ฉันจะเปิดหลอดไฟสามหลอดที่สร้างรูปสามเหลี่ยมด้านเท่า "ตั้งตรง" ดังตัวอย่างต่อไปนี้: o o x o o o o o o o o x o o x o …

3
เขียนโปรแกรมที่พิมพ์ N ทุกครั้งเมื่อมีการเลื่อน N คูณตัวอักษร ASCII ขึ้น
เขียนโปรแกรมโดยใช้เฉพาะอักขระ ASCII ที่พิมพ์ได้โดยไม่ป้อนข้อมูล สำหรับการอ้างอิงต่อไปนี้คืออักขระ ASCII ที่พิมพ์ได้ 95 ตัวตามลำดับ: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ เมื่อโปรแกรมของคุณรันโปรแกรมควรพิมพ์0(รวมถึงบรรทัดใหม่ท้ายที่เป็นตัวเลือก) เพื่อ stdout จากนั้นให้หยุดการทำงานตามปกติ เมื่อตัวละครในโปรแกรมของคุณแต่ละคนจะถูกแทนที่ด้วยช่องว่างอักขระเอ็นไม่มีไปทางขวาใน ASCII พิมพ์บ่วงรอบ ๆ จาก~พื้นที่ส่งผลสตริง ASCII ที่พิมพ์ได้จะนึกคิดเป็น Runnable โปรแกรมในภาษาเดียวกันกับที่ใช้เวลาไม่ป้อนข้อมูลและผล N (บวก ขึ้นบรรทัดใหม่ต่อท้ายที่ไม่จำเป็น) เพื่อ stdout จากนั้นจะสิ้นสุดลงตามปกติสำหรับ N = 1 ถึง 94 ตัวอย่างเช่นหากโปรแกรมต้นฉบับของคุณคือ @Cat~(88 !) การรันมันควรจะเอาท์พุท0และขยับตัวละครทั้งหมดขึ้นไปยังระดับ ASCII ที่พิมพ์ได้โดยหนึ่ง ADbu )99!"* 1จะส่งผลให้โปรแกรมอื่นที่เอาท์พุท การทำเช่นนั้นอีกครั้งจะส่งผลให้โปรแกรมอื่นที่ส่งออก2 BEcv!*::"#+ และอื่น ๆ ด้วย 3 และ 4 …

14
เอาท์พุทหมายเลขของเกรแฮม
เขียนโปรแกรมที่ให้ผลลัพธ์เป็นเลเยอร์ 64 ทั้งหมดของหมายเลขของ Grahamจาก Wikipedia: ผลลัพธ์ของคุณจะต้องตรงกับรุ่น ASCII นี้ (ซึ่ง^หมายถึงลูกศรขึ้นของ Knuthและการรวมกันของเครื่องหมายทับและขีดล่างแทนวงเล็บปีกกาขนาดใหญ่ในแนวนอน): 3^^...............................................................................................................................^3 \_______________________________________________________________ _______________________________________________________________/ \/ 3^^.............................................................................................................................^3 \______________________________________________________________ ______________________________________________________________/ \/ 3^^...........................................................................................................................^3 \_____________________________________________________________ _____________________________________________________________/ \/ 3^^.........................................................................................................................^3 \____________________________________________________________ ____________________________________________________________/ \/ 3^^.......................................................................................................................^3 \___________________________________________________________ ___________________________________________________________/ \/ 3^^.....................................................................................................................^3 \__________________________________________________________ __________________________________________________________/ \/ 3^^...................................................................................................................^3 \_________________________________________________________ _________________________________________________________/ \/ 3^^.................................................................................................................^3 \________________________________________________________ ________________________________________________________/ \/ 3^^...............................................................................................................^3 \_______________________________________________________ _______________________________________________________/ \/ 3^^.............................................................................................................^3 \______________________________________________________ ______________________________________________________/ \/ …

6
จากแผ่นสู่รัฐ
นี่เป็นสิ่งที่ตรงกันข้ามกับการสร้าง US License Plate ถาม:กำหนดสตริงที่ตรงกับหนึ่งในรูปแบบป้ายทะเบียนด้านล่างออกสถานะที่เป็นไปได้ทั้งหมดที่ตรงกับการจัดรูปแบบนั้น ในตารางด้านล่าง0ย่อมาจากหลักเดียว0ผ่าน9รวมและAย่อมาจากตัวอักษรเดียวAผ่านZรวม สำหรับจุดประสงค์ของการท้าทายนี้เราไม่สนใจสถานะที่มีกฎรูปแบบที่ซับซ้อน (เช่นเดลาแวร์ซึ่งมีตัวเลขหลายหลัก) และไม่สนใจการลบตัวอักษรที่มีลักษณะเหมือนกัน (เช่นIและ1) AAA 000: AK, IA, MS, MP, VT 0000: AS AAA0000: AZ, GA, WA 000 AAA: AR, KS, KY, LA, ND, OR 0AAA000: CA AA-00000: CT AA-0000: DC AAA A00: FL AA 00000: IL 000A,000AA,000AAA,AAA000: IN 0AA0000: MD AAA 0000,0AA A00,AAA …

4
สายอักขระแฟนซีแทนที่
ให้S, aและbแต่ละแทนสตริง เป้าหมาย: เขียนฟังก์ชั่นแทนที่สตริงมาตรฐานโดยที่คุณแทนที่เหตุการณ์ทั้งหมดaในสตริงSด้วยbตราบใดที่aยังไม่ได้เป็นส่วนหนึ่งของอินสแตนซ์ของb ตัวอย่างเช่นถ้าเรามีสตริงS=My oh my that there is a big ol' that และเราอยากจะทำแฟนซีแทนที่ด้วยa = thatและb = that thereเราจะเข้ามาแทนที่อินสแตนซ์ของทุกthatกับthat thereตราบเท่าที่อินสแตนซ์ของthatไม่ได้เป็นตัวอย่างของthat there ดังนั้นในกรณีนี้ผลลัพธ์จะเป็น: My oh my that there is a big ol' that there อันแรกthatไม่ได้ถูกแทนที่เพราะมันเป็นส่วนหนึ่งของอินสแตนซ์ของแล้วthat there หมายเหตุ อินพุตทั้ง 3 ตัวต้องเป็นสตริงที่มีอักขระ ASCII ที่พิมพ์ได้เท่านั้น อินพุตอาจถูกกำหนดเป็น 3 สตริงแยกกันหรือรายการของ 3 สตริง การป้อนข้อมูลจะอยู่ในลำดับที่S, a, bนอกจากที่ระบุไว้ในคำตอบ …
16 code-golf  string 

13
ตัวแทนของฉันอยู่ในรูปแบบกองซ้อนแลกเปลี่ยนหรือไม่
สถานที่ตั้ง: ชื่อเสียงของคุณอยู่ในรูปแบบสแต็ค - แลกเปลี่ยนหากสามารถแสดงได้โดยการนับจำนวนเหรียญของคุณ (ทองเงินและทองแดงแยกต่างหาก) เป็นตัวเลขฐาน 10 ของพวกเขาและเข้าร่วมพวกเขาตามลำดับที่กำหนด ในขณะที่การย่อยสลายแต่ละ เหรียญทองหลักมีค่าสามหลัก เงินมีค่าเป็นตัวเลขสองหลัก บรอนซ์เป็นหนึ่งหลัก นอกจากนี้ตั้งแต่ SE ไม่แสดงประเภทเหรียญถ้าคุณไม่ได้ใด ๆ นับจาก 0 เหรียญสำหรับประเภทจะไม่ได้[0]ผลผลิต ตัวอย่าง: [1 Gold, 2 Silvers, 3 Bronzes][1,1,1,2,2,3]จะสลายตัวลงไป 321112 และ 213121 เป็นสองตัวอย่างของหมายเลข SE-form สำหรับเหรียญเหล่านี้ [20 Golds, 0 Silvers, 20 Bronzes][2,2,2,0,0,0,2,0]จะสลายตัวลงไป 20002022 เป็นหมายเลข SE-form [11 Golds, 0 Silvers, 0 Bronzes][1,1,1,1,1,1]จะสลายตัวลงไป 111111 เป็นหมายเลข SE-form …

11
สร้างองค์ประกอบพื้นฐานของพีชคณิต Steenrod
พีชคณิต Steenrod เป็นพีชคณิตที่สำคัญที่เกิดขึ้นในโทโพโลยีพีชคณิต พีชคณิต Steenrod ถูกสร้างขึ้นโดยตัวดำเนินการที่เรียกว่า "Steenrod squares" มีอยู่หนึ่งตัวสำหรับจำนวนเต็มบวกแต่ละตัว มีพื้นฐานสำหรับพีชคณิต Steenrod ซึ่งประกอบด้วย "monomials ที่ยอมรับได้" ในการปฏิบัติการกำลังสอง มันเป็นเป้าหมายของเราในการสร้างพื้นฐานนี้ ลำดับของจำนวนเต็มบวกเรียกว่ายอมรับได้ถ้าจำนวนเต็มแต่ละค่าเป็นอย่างน้อยสองครั้งต่อไป ดังนั้นสำหรับตัวอย่างเช่น[7,2,1]เป็นที่ยอมรับเพราะ7≥2∗27≥2∗27 \geq 2*2และ2≥2∗12≥2∗12 \geq 2*1 1 บนมืออื่น ๆ ที่[3,2]ไม่ได้เป็นที่ยอมรับเพราะ3&lt;2∗23&lt;2∗23 < 2*2 2 (ในโทโพโลยีเราจะเขียนSq7Sq2Sq1Sq7Sq2Sq1\mathrm{Sq}^7 \mathrm{Sq}^2\mathrm{Sq}^1สำหรับลำดับ[7,2,1]) ศึกษาระดับปริญญาของลำดับคือผลรวมของรายการมันของ ดังนั้นสำหรับตัวอย่างเช่นการศึกษาระดับปริญญาของ[7,2,1]เป็น7+2+1=107+2+1=107 + 2 + 1 = 10 10 ส่วนเกินของลำดับที่ยอมรับเป็นองค์ประกอบแรกลบรวมขององค์ประกอบที่เหลือเพื่อให้[7,2,1]มีส่วนเกิน7−2−1=47−2−1=47 - 2 - 1 = 4 4 งาน จงเขียนโปรแกรมที่ใช้คู่ของจำนวนเต็มบวกได้(d,e)และผลชุดของลำดับที่ยอมรับทุกระดับและส่วนเกินที่น้อยกว่าหรือเท่ากับd …

5
New Order # 5: Fibonacci และ Beatty พบกันที่ Wythoff
บทนำ (อาจถูกละเว้น) การใส่ตัวเลขบวกทั้งหมดในลำดับปกติ (1, 2, 3, ... ) นั้นน่าเบื่อนิดหน่อยใช่ไหม? ดังนั้นนี่คือชุดของความท้าทายรอบพีชคณิต (reshuffelings) ของจำนวนบวกทั้งหมด นี่คือความท้าทายที่ห้าในชุดนี้ (เชื่อมโยงไปครั้งแรก , สอง , สามและสี่ความท้าทาย) ในการท้าทายนี้เราจะได้พบกับอาร์เรย์ Wythoff ซึ่งเป็นหิมะถล่มที่ผสมผสานระหว่างFibonacci และ Beatty sequences! ตัวเลข Fibonacciอาจจะเป็นส่วนใหญ่ของคุณลำดับที่รู้จักกันดี ได้รับตัวเลขสองเริ่มต้นF0F0F_0และF1F1F_1ต่อไปนี้FnFnF_nจะได้รับโดย: Fn=F(n−1)+F(n−2)Fn=F(n−1)+F(n−2)F_n = F_{(n-1)} + F_{(n-2)}สำหรับn&gt;2n&gt;2n>2 2 ลำดับเบ็ตตี้ได้รับพารามิเตอร์rrrคือBrn=⌊rn⌋Bnr=⌊rn⌋B^r_n = \lfloor rn \rfloorสำหรับn≥1n≥1n \ge 1 1 หนึ่งในคุณสมบัติของลำดับเบ็ตตี้คือสำหรับพารามิเตอร์rrrทุกตัวมีพารามิเตอร์หนึ่งตัวคือs=r/(r−1)s=r/(r−1)s=r/(r-1)เช่นนั้นลำดับเบ็ตตี้สำหรับพารามิเตอร์เหล่านั้นจะแยกกันและรวมเข้าด้วยกัน 0 (เช่น: Br∪Br/(r−1)=N∖{0}Br∪Br/(r−1)=N∖{0}B^r \cup B^{r/(r-1)} = \Bbb{N} \setminus …

30
แบ่งออกเป็นสาม!
รับสตริงคุณต้องแบ่งมันออกเป็นกลุ่มของอักขระสามตัว (โดยการเติม_ที่ท้าย) ที่เกี่ยวข้องแต่ก็ยังแตกต่างกัน ตัวอย่าง I / O: 'abcde' -&gt; 'abc', 'de_' '1234' -&gt; '123', '4__' '' -&gt; [] or falsey value 'Three spree!' -&gt; 'Thr', 'ee ', 'spr', 'ee!' สตริง 6 MB นี่คือรหัสกอล์ฟดังนั้นไบต์ที่น้อยที่สุดจึงจะชนะ! แก้ไข:ในที่สุดการส่งออกคือไม่ จำกัด

6
ใหม่ # 3: 5 8 6
บทนำ(อาจถูกละเว้น) การใส่ตัวเลขบวกทั้งหมดในลำดับปกติ (1, 2, 3, ... ) นั้นน่าเบื่อนิดหน่อยใช่ไหม? ดังนั้นนี่คือชุดของความท้าทายรอบพีชคณิต (reshuffelings) ของจำนวนบวกทั้งหมด นี่คือความท้าทายที่สามในซีรีส์นี้ (เชื่อมโยงกับความท้าทายแรกและครั้งที่สอง ) ในการท้าทายนี้เราจะจัดเรียงตัวเลขตามธรรมชาติในแถวของความยาวที่เพิ่มขึ้นในลักษณะที่ผลรวมของแต่ละแถวนั้นเป็นจำนวนเฉพาะ สิ่งที่ฉันคิดว่าน่าทึ่งมากเกี่ยวกับเรื่องนี้คือตัวเลขธรรมชาติทุกตัวมีอยู่ในข้อตกลงนี้ ไม่มีการข้ามหมายเลข! การสร้างภาพของการจัดเรียงนี้มีลักษณะเช่นนี้: row numbers sum 1 1 1 2 2 3 5 3 4 5 8 17 4 6 7 9 15 37 5 10 11 12 13 21 67 6 14 16 17 …

7
เขียนช่วงเวลาที่ยาวที่สุดวนซ้ำควินที่ล้อมรอบด้วย 500 ไบต์
งานของคุณคือการสร้างช่วงเวลาที่ยาวที่สุดวนซ้ำซึ่งความยาวของแต่ละโปรแกรมในลำดับนั้นล้อมรอบด้วย 500 ไบต์ นั่นคือถ้าคุณทำซ้ำขั้นตอนต่อไปนี้: เริ่มด้วยโปรแกรมเริ่มต้นของคุณ เรียกใช้โปรแกรมปัจจุบัน กลับไปที่ขั้นตอนที่ 2 ในที่สุดคุณจะกลับไปที่โปรแกรมดั้งเดิมของคุณ จำนวนโปรแกรมในรอบคือคะแนนของคุณซึ่งคุณพยายามเพิ่ม ไม่มีโปรแกรมใดที่สามารถเพิ่มข้อผิดพลาดได้ แต่ละโปรแกรมจะต้องทำงานในลักษณะเดียวกันเช่นกัน (เช่นไม่มีเวอร์ชั่นที่แตกต่างกันการนำไปใช้งานตัวเลือกคอมไพเลอร์แพลตฟอร์ม ฯลฯ ... ) (แก้ไข: ใช่สถานะภายนอกใด ๆ เช่นที่ของเครื่องกำเนิดเลขสุ่มหลอกรวมอยู่ในที่สุด คำสั่งสถานะภายนอกจะต้อง "รีเซ็ต" หลังจากการเรียกใช้แต่ละครั้งหากคุณใช้ตัวเลขสุ่มจริงจะถือว่าเป็นกรณีที่เลวร้ายที่สุด) สิ่งที่แยกความท้าทายนี้ออกจากรอบระยะเวลาที่ยาวที่สุดวนรอบควิน (นอกเหนือจาก 100 vs 500) คือทุกโปรแกรมในรอบนั้นจะต้องมี 500 ไบต์หรือน้อยกว่า ซึ่งหมายความว่ารอบที่ยาวที่สุดที่เป็นไปได้คือ (256 ^ 501 - 1) / 255 หรือน้อยกว่า แน่นอนว่าเป็นจำนวนมาก แต่ไม่มากในแง่ของจำนวนรหัสที่ใช้ในการคำนวณ ดังนั้นความท้าทายจึงเกี่ยวกับการใช้ความเป็นไปได้ (256 ^ 501 - 1) / 255 …

7
ตารางไร้ขอบ
ในการท้าทายนี้คุณจะต้องวางตัวอักษรจากตัวอักษรในระนาบคาร์ทีเซียนและส่งออกผลลัพธ์เป็นข้อความ ข้อมูลที่คุณป้อนจะประกอบด้วยรายการ 3 พารามิเตอร์ พิกัด X พิกัด Y เชือก อย่างไร? เรารู้ว่าระนาบคาร์ทีเซียนมีแกน 2 แกน( X, วาย)(X,Y)(X, Y)และจตุภาคที่ 4 ซึ่งสัญญาณของพิกัด(X,Y)(X,Y)(X,Y)คือ(+,+)(+,+)(+,+) , (−,+)(−,+)(−,+) , (−,−)(−,−)(−,−)และ(+,−)(+,−)(+,−) )ตัวอย่างเช่น พิจารณาเมทริกซ์ 3 คูณ 3 ต่อไปนี้เป็นระนาบคาร์ทีเซียน ( - 1 , 1 )( - 1 , 0 )( - 1 , - 1 )( 0 , 1 )( 0 …

3
ทำโปรแกรม lenguage อีกต่อไป
Lenguageเป็นภาษาซีกสมองที่มีชื่อเสียงในการทำลายความท้าทายที่ จำกัด แหล่งที่มา นั่นเป็นเพราะ Lenguage ใส่ใจแค่ความยาวของแหล่งที่มาและไม่ใช่เนื้อหา ขั้นแรกให้คำนวณความยาวของโปรแกรม จากนั้นความยาวดังกล่าวจะถูกแปลงเป็นเลขฐานสองและเลขศูนย์ด้านซ้ายเป็นศูนย์เป็นผลคูณของ 3 สตริงเลขฐานสองที่ได้จะถูกแบ่งออกเป็นชิ้น ๆ ละ 3 บิตซึ่งแต่ละอันถูกแปลเป็นคำสั่ง brainfuck เช่น: 000 -&gt; + 001 -&gt; - 010 -&gt; &gt; 011 -&gt; &lt; 100 -&gt; . 101 -&gt; , 110 -&gt; [ 111 -&gt; ] ในที่สุดก็มีการรันโปรแกรมเป็น brainfuck 1 จากที่นี่ความท้าทายนั้นง่ายมากเขียนโปรแกรม lenguage ที่ไม่มีอินพุตและสร้างเอาต์พุตที่ประกอบด้วยจำนวนเต็มซ้ำหนึ่งไบต์nnnคูณโดยที่nnnนั้นมากกว่าความยาวของโปรแกรมอย่างเคร่งครัด คำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยลง นี่คือโปรแกรมแฮ็คในการคำนวณ lenguage จาก …

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