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

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

1
ย้ายแพลตฟอร์ม!
ความท้าทาย รับสตริง (อาจมีการขึ้นบรรทัดใหม่) หรืออาร์เรย์สองมิติและจำนวนเต็มบวกnเอาท์พุทตำแหน่งของแพลตฟอร์มnเปลี่ยนหลังจากตำแหน่งเริ่มต้น U, D, R, L เป็นแพลตฟอร์ม ^, v, >, < เป็นลูกศรที่เปลี่ยนทิศทางของแพลตฟอร์ม U, D, R, Lเลื่อนขึ้นลงขวาและซ้ายตามลำดับ เมื่อลูกศรอยู่ด้านหน้าของแพลตฟอร์มมันจะเปลี่ยนทิศทาง ส่งผลกระทบต่อแพลตฟอร์ม: R< D ^ v U >L >L < (ลูกศรด้านบนจะมีผลกับด้านบนLแต่ลูกศรด้านล่างจะไม่ส่งผลกระทบด้านบนL) จะไม่ส่งผลกระทบ: < R > L v U D ^ <R ( Rกำลังไปทางขวาดังนั้น<จะไม่ส่งผลกระทบต่อR) ตัวอย่างเช่นถ้านี่คือสตริง: >R < แพลตฟอร์มRจะเลื่อนไปทางขวาจนกว่าจะถึงลูกศร: > R< หลังจากนั้นก็จะเปลี่ยนทิศทางและเริ่มไปทางซ้าย: > R …

2
โครงสร้างไดเรกทอรีแบบต้นไม้กราฟิก
แปลงโครงสร้างไดเรกทอรีคลาสสิกเช่นนี้: config.yml drafts begin-with-the-crazy-ideas.textile on-simplicity-in-technology.markdown includes footer.html header.html เข้าที่นี้ . ├── config.yml ├── drafts | ├── begin-with-the-crazy-ideas.textile | └── on-simplicity-in-technology.markdown └── includes ├── footer.html └── header.html สี่ช่องว่างระบุโฟลเดอร์หรือไฟล์ที่ซ้อนกันของ dir ด้านบน ระดับหมวดหมู่ที่ซ้อนกันที่อนุญาตอาจแตกต่างกันไป ปรับปรุง ชื่อไฟล์ : ชื่อไฟล์ Linux ที่ถูกต้องโดยไม่มีช่องว่างและ linefeeds: ไบต์ใด ๆ ยกเว้นNUL, /และspaces,linefeeds ตัวละครการวาดภาพ: | เส้นแนวตั้ง (U + 007C) ─ภาพวาดกล่องแนวนอนขนาดย่อม (U + …

15
สลับการแมป
เรากำหนดแผนที่เป็นชุดคู่คีย์ - ค่า สำหรับความท้าทายนี้คุณจะต้องใช้ค่าแต่ละค่าและกำหนดให้กับคีย์ที่เลือกแบบสุ่ม คุณต้องสุ่มสลับค่าและส่งออกแผนที่ผลลัพธ์ ซึ่งหมายความว่าทุกครั้งที่เราเรียกใช้โปรแกรมของคุณเรามีโอกาสได้รับผลลัพธ์ที่แตกต่างกัน การเปลี่ยนแปลงที่เป็นไปได้แต่ละค่าจะต้องมีโอกาสที่ไม่เป็นศูนย์ในการปรากฏ คีย์ดั้งเดิมและค่าดั้งเดิมทั้งหมดต้องปรากฏในอาร์เรย์ผลลัพธ์ ค่าซ้ำจะต้องปรากฏจำนวนครั้งเดียวกันในอาร์เรย์ผลลัพธ์ ตัวอย่างเช่นหากแผนที่ของคุณคือ: [0:10, 1:10, 5:5] ทั้งหมดต่อไปนี้ต้องมีโอกาสปรากฏ: [0:10, 1:10, 5:5] (original map) [0:10, 1:5, 5:10] [0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens) [0:10, 1:5, 5:10] [0:5, 1:10, 5:10] [0:5, 1:10, 5:10] อินพุต / เอาต์พุตที่ยอมรับได้: แผนที่ดั้งเดิมของภาษาของคุณ คุณสามารถป้อนอาร์เรย์ของคู่ของคีย์ - …

7
ลำดับของ Szekeres
คำนิยาม a(1) = 1 a(2) = 2 a(n)เป็นจำนวนที่น้อยที่สุดk>a(n-1)ที่หลีกเลี่ยงการใด ๆ ที่ก้าวหน้าเลขคณิต 3 a(1), a(2), ..., a(n-1), kระยะใน ในคำอื่น ๆa(n)เป็นจำนวนที่น้อยที่สุดk>a(n-1)เช่นว่ามีไม่ได้อยู่x, yที่และ0<x<y<na(y)-a(x) = k-a(y) ทำงานออกมาเป็นตัวอย่าง สำหรับn=5: เรามี a(1), a(2), a(3), a(4) = 1, 2, 4, 5 หากa(5)=6แล้ว2, 4, 6รูปแบบการก้าวหน้าเลขคณิต หากa(5)=7แล้ว1, 4, 7รูปแบบการก้าวหน้าเลขคณิต หากa(5)=8แล้ว2, 5, 8รูปแบบการก้าวหน้าเลขคณิต หากa(5)=9แล้ว1, 5, 9รูปแบบการก้าวหน้าเลขคณิต หากa(5)=10ไม่พบความก้าวหน้าทางเลขคณิต a(5)=10ดังนั้น งาน ได้รับการส่งออกna(n) รายละเอียด …

6
พิมพ์พีชคณิต“ คู่” ของกลุ่มสมมาตร Sn ในสัญลักษณ์วงกลม
งาน บทนิยาม พิจารณาคะแนน {1,2,3,4,5} และการเรียงลำดับทั้งหมด เราสามารถหาจำนวนทั้งหมดของการเปลี่ยนลำดับที่เป็นไปได้ของ 5 คะแนนด้วยเคล็ดลับง่ายๆ: การถ่ายภาพเติม 5 ช่องด้วยคะแนนเหล่านี้ช่องแรกจะมี 5 หมายเลขที่เป็นไปได้ 4 อันดับสอง (เนื่องจากมีการใช้เพื่อเติมช่องแรก) 3 ที่สามเป็นต้น ดังนั้นจำนวนพีชคณิตทั้งหมดคือ 5 * 4 * 3 * 2 * 1; นี่จะเป็น 5! พีชคณิตหรือ 120 พีชคณิต เราสามารถคิดได้ว่านี่เป็นกลุ่มสมมาตร S5 จากนั้น Symmetric Group Sn จะมีn! or (n*n-1*n-2...*1)การเรียงสับเปลี่ยน การเปลี่ยนรูปแบบ "คู่" คือหนึ่งที่มีจำนวนรอบความยาวเท่ากัน มันเป็นเรื่องง่ายที่จะเข้าใจเมื่อเขียนในสัญกรณ์วงจรเช่น(1 2 3)(4 5)permutes 1->2->3->1และ4->5->4มีหนึ่งรอบ …

6
ย้อนกลับตัวกรองไบเออร์ของภาพ
เซ็นเซอร์กล้องดิจิตอลเกือบทั้งหมดจะถูกจัดระเบียบในตารางของ photosensors เซ็นเซอร์ภาพแต่ละภาพมีความอ่อนไหวต่อสีหลักอย่างใดอย่างหนึ่ง: สีแดงสีเขียวและสีน้ำเงิน วิธีการจัดระเบียบเซ็นเซอร์ภาพถ่ายเหล่านี้เรียกว่าตัวกรองไบเออร์หลังจากผู้คิดค้นไบรซ์ไบเออร์แห่งอีสต์แมนโกดัก หลังจากถ่ายภาพแล้วเซ็นเซอร์ภาพถ่ายสี่ตัวจะประกอบด้วยค่า RGB ของหนึ่งพิกเซลในภาพที่ได้ งานของคุณคือการย้อนกลับกระบวนการนั้นและกำหนดค่าพิกเซลของผลลัพธ์ตามสีของฟิลเตอร์ เพื่อประโยชน์ของความเรียบง่ายที่เราจะไม่สนใจการแก้ไขแกมมา ตัวอย่างเช่น: ขั้นตอนการกรอง "ปกติ" ไปข้างหน้าไบเออร์คือ: Lightray ที่มีสี Pantone Beeswaxกระทบเซ็นเซอร์ ตัวกรอง BGGR (สีน้ำเงิน - เขียว / เขียว - แดง) จะแยกตัวออกเป็นสี่รังสี รังสีทั้งสี่ชนกับเซ็นเซอร์ซึ่งอ่านได้: 81 - 168/168 - 235 (ค่าเซ็นเซอร์อยู่ในช่วงตั้งแต่ 0 - 255) ตัวกรองไบเออร์แปลสิ่งนี้เป็นพิกเซล RGB หนึ่งสี (235, 168, 81) ขั้นตอนการกรองแบบย้อนกลับของไบเออร์คือ: พิกเซล RGB ที่มีสี (235, 168, …

10
เลือกจากชุดตุ้มน้ำหนักที่มีอยู่เพื่อสร้างผลรวมเป้าหมาย
เมื่อทำการยกน้ำหนักฉันต้องการสร้างน้ำหนักที่เฉพาะเจาะจงโดยติดแผ่นเหล็กหลายแผ่นเข้ากับแท่ง ฉันมีแผ่นต่อไปนี้: 6 แผ่นละ 1 กิโลกรัม 6 จานละ 2.5 กก 6 จานละ 5 กิโลกรัม 6 จานละ 10 กิโลกรัม แถบน้ำหนัก 10 กิโลกรัม มันได้รับอนุญาตเท่านั้นที่จะแนบแผ่นเป็นคู่ - พวกเขาจะถูกแนบที่ปลายแต่ละด้านของบาร์และการจัดเรียงที่ปลายทั้งสองจะต้องสมมาตรอย่างสมบูรณ์ (เช่นการแนบแผ่น 5 กิโลกรัมสองที่ปลายด้านหนึ่งและแผ่น 10 กิโลกรัมที่ ห้ามมิให้ใช้ปลายอีกข้างเพื่อเหตุผลด้านความปลอดภัย) จัดทำโปรแกรมหรือฟังก์ชั่นที่บอกฉันว่าฉันต้องใช้แผ่นจำนวนเท่าไหร่เพื่อที่จะได้น้ำหนักรวมที่กำหนด อินพุตเป็นจำนวนเต็มมากกว่า 11 ผลลัพธ์คือ list / array / string จำนวน 4 ตัว หากเป็นไปไม่ได้ที่จะรวมเพลตที่มีอยู่เพื่อรับน้ำหนักเป้าหมายให้ส่งออกอาร์เรย์ศูนย์ / ว่างเปล่าสตริงที่ไม่ถูกต้องโยนข้อยกเว้นหรือบางอย่าง หากมีการแก้ปัญหาหลายอย่างรหัสจะต้องส่งออกเพียงครั้งเดียว (ไม่ได้ให้ผู้ใช้เลือก - เขายุ่งเกินไปกับสิ่งอื่น ๆ …

11
เขียนโปรแกรมเพื่อแสดงทรีไดเรกทอรี
ได้รับไดเรกทอรี (เช่นC:/) ที่ได้รับจาก stdin หรืออ่านจากไฟล์สร้างทรีไดเรกทอรีโดยแต่ละไฟล์ / โฟลเดอร์เยื้องตามความลึกของมัน ตัวอย่าง หากฉันมีC:/ไดรฟ์ที่มีเพียงสองโฟลเดอร์fooและbarและbarว่างเปล่าในขณะที่fooมีbaz.txtแล้วทำงานด้วยการป้อนข้อมูลC:/ผลิต: C:/ bar/ foo/ baz.txt ในขณะที่ทำงานกับอินพุตC:/foo/ควรผลิต foo/ baz.txt เช่นนี้เป็น codegolf นับไบต์ต่ำสุดชนะ นามสกุลไฟล์ (เช่นbaz.txt) เป็นทางเลือก หมายเหตุเพิ่มเติม: ไฟล์ที่ซ่อนอยู่สามารถถูกละเว้นไดเรกทอรีต้องมีอยู่จริงมันสามารถสันนิษฐานได้ว่าไฟล์ไม่มีอักขระที่ไม่สามารถพิมพ์ได้หรือบรรทัดใหม่ แต่อักขระ ASCII ที่พิมพ์ได้อื่นทั้งหมดนั้นใช้ได้ (ต้องรองรับชื่อไฟล์ที่มีช่องว่าง) สามารถเขียนเอาต์พุตไปยังไฟล์หรือ stdout ได้ การเยื้องอาจประกอบด้วยอักขระแท็บหรือช่องว่าง 4 ช่อง

3
แยกและประมวลผลการป้อนคีย์ - ภาษา
ลองแยกและประมวลผล Key-Language! เมื่อกำหนดอินพุตของลำดับของการกดแป้นคีย์บอร์ดและ / หรือปุ่มพิเศษเขียนโปรแกรมฟังก์ชั่น ฯลฯ ที่ส่งออกผลิตภัณฑ์เมื่อการดำเนินการทั้งหมดถูกประมวลผลตามคีย์บอร์ดต่อไปนี้: +-------------------------------------------------------+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | - | + | | | ` | 1 | 2 | 3 | 4 | 5 | 6 …

5
เติมน้ำท่วมกริด 2D
คำอธิบายการท้าทาย ขอเรียกสองมิติอาร์เรย์สี่เหลี่ยม (หมายถึงทุก subarray ของมันมีความยาวเดียวกัน) ซึ่งเป็นตาราง หน่วยของตารางทุกคนเป็นทั้งพื้นที่ว่างหรือชายแดน ในตารางของอักขระพื้นที่ว่างจะถูกแทนด้วยช่องว่างเดียว อักขระอื่นใดถือเป็นเส้นขอบ ตัวอย่างกริด ( +'s, |' s และ-'s เพิ่มเพื่อให้อ่านได้ - มันไม่ได้เป็นส่วนหนึ่งของกริด ): +----+ | | | | | | | | | | +----+ an empty 4x5 grid +------+ | | | # | | # | +------+ a 6x3 grid with 2 …

9
ค่าน้ำของ Fred
เฟร็ดเป็นคนที่เป็นมิตร แต่ในความเป็นจริงแล้วเขาเป็นคนมีความหมาย ด้วยเหตุนี้เฟร็ดจึงอาศัยอยู่ตามลำพังในอพาร์ตเมนต์เล็ก ๆ ในลอสอัลตอสแคลิฟอร์เนีย เฟร็ดมีความหมายเพราะเขามีความเฉพาะเจาะจงเกี่ยวกับน้ำ ดังนั้นเขาต้องการความช่วยเหลือจากคุณในการหาว่าค่าน้ำของเขาคืออะไร งานของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมที่คืนค่าน้ำของเขาตามปริมาณน้ำที่ใช้เป็นอินพุต (ซึ่งมักจะเป็นจำนวนเต็ม) ปริมาณการใช้น้ำมาในระดับ ซึ่งหมายความว่ามีช่วงราคาขึ้นอยู่กับปริมาณน้ำ นี่คือระดับราคาและปริมาณน้ำที่พวกเขาสอดคล้องกับ: Tier I First 10 Ccf: $3.8476/Ccf Tier II Next 17 Ccf: $4.0932/Ccf Tier III All subsequent water: $4.9118/Ccf สำหรับnร้อยลูกบาศก์ฟุต (Ccf) มีค่าใช้จ่ายเพิ่มเติมดังต่อไปนี้: CPUC fee: 1.5% of above charges LIRA quantity surcharge: $0.047*n PBOP amoritization surcharge: $0.004*n ยอดรวมของเงินกองทุนชั้นที่ I, Tier …
9 code-golf  math 

2
นี่คือ Bub นักฟุตบอลระดับโลก
นี่คือ Bub Bub เป็นนักฟุตบอล อย่างไรก็ตามเขาไม่ใช่คนดีมาก เขายังไม่สามารถเตะบอลเข้าตาข่ายได้! (ถ้าคุณไม่ได้สังเกตว่า@เป็นลูก _____ | \ O | \ \|/ | \ | | net \ / ─ @ |_________\ เพื่อช่วยพัฒนาทักษะของเขาเขาได้พัฒนาระบบเพื่อช่วยประเมินประสิทธิภาพของเขาเมื่อเขาเตะบอล เขาเรียกมันว่า "ระบบ 10 คะแนน" อย่างไรก็ตามเขาไม่รู้ว่าเขาต้องทำอะไรเพื่อให้ได้xจำนวนคะแนน คุณต้องช่วยให้เขาเห็นภาพว่าลูกบอลอยู่ที่ใดเพื่อที่เขาจะได้ตั้งความคาดหวังว่าเขาจะได้คะแนนกี่แต้ม มี 10 คะแนนต่อรอบที่เขาสามารถทำได้ ดังนั้นนี่คือความท้าทายของคุณ รับจำนวนx , จำนวนคะแนน Bub ได้รับ, เอาท์พุทตำแหน่งของลูกบอลบนสนาม นี่คือเครื่องหมายที่เป็นประโยชน์บางประการ: Bub อยู่ห่างจากสุทธิ 50 ช่อง สำหรับแต่ละจุดที่ Bub ได้รับลูกบอลเคลื่อนที่ 5 …

10
อนุพันธ์ที่ขอบ
วิธีที่ฉันต้องการประมาณอนุพันธ์คือความแตกต่างกลางความแม่นยำมากกว่าความแตกต่างไปข้างหน้าหรือความแตกต่างย้อนหลังและฉันขี้เกียจเกินกว่าที่จะสั่งซื้อมากขึ้น แต่ความแตกต่างส่วนกลางนั้นต้องการจุดข้อมูลที่ด้านใดด้านหนึ่งของจุดที่คุณกำลังประเมิน ปกติแล้วนี่หมายความว่าคุณจะไม่มีอนุพันธ์ที่จุดปลายทั้งสอง เพื่อแก้ปัญหานี้ฉันต้องการให้คุณเปลี่ยนไปข้างหน้าและข้างหลังบริเวณขอบ: โดยเฉพาะฉันต้องการให้คุณใช้ความแตกต่างไปข้างหน้าสำหรับจุดแรกความแตกต่างย้อนหลังสำหรับจุดสุดท้ายและความแตกต่างกลางสำหรับจุดทั้งหมดที่อยู่ตรงกลาง นอกจากนี้คุณสามารถสมมติว่าค่า x มีระยะห่างเท่า ๆ กันและเน้นเฉพาะที่ y ใช้สูตรเหล่านี้: โชคดีฉันรอคอยที่จะดูว่ามีใครบางคนมาพร้อมกับกฎง่ายๆที่ทำซ้ำอนุพันธ์ทั้ง 3 ในสถานที่ที่เหมาะสม! EX อินพุต: 0.034 9.62 8.885 3.477 2.38 ฉันจะใช้ FD, CD และ BD เพื่อแสดงว่าอัลกอริธึมที่จะใช้ในจุดใดดังนั้นสูงกว่า 5 คะแนนจึงถูกใช้ในการประมาณอนุพันธ์โดยใช้ FD CD CD CD BD จากนั้นค่าที่คำนวณได้จะเป็น: 9.586 4.4255 -3.0715 -3.2525 -1.097 คุณสามารถสันนิษฐานได้ว่าจะมีจุดเข้าอย่างน้อย 3 จุดและคุณสามารถคำนวณโดยใช้ความแม่นยำเดียวหรือสองครั้ง และเช่นเคยคำตอบที่สั้นที่สุดชนะ
9 code-golf  math 

6
ดัชนีผลรวมและดึงเมทริกซ์ของฉัน
ดัชนีผลรวมและดึงเมทริกซ์ของฉัน ให้อาร์เรย์ matrix / 2d ในภาษาที่คุณต้องการ การป้อนข้อมูล: เมทริกซ์จะมีความยาวคี่เสมอ เมทริกซ์จะเป็นสี่เหลี่ยมจัตุรัสอย่างสมบูรณ์ ค่าเมทริกซ์สามารถเป็นจำนวนเต็มใด ๆ ในภาษาของคุณ (บวกหรือลบ) ตัวอย่าง: 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 50 6 7 8 9 4 5 6 100 8 9 10 5 6 7 8 -9 10 11 6 …

13
จาก Rgb ถึง Cmyk
รับ 3 ไบต์หรือ RGB เป็นอินพุตคำนวณค่า CMYK ที่ใกล้ที่สุดและส่งออก สร้างฟังก์ชั่นที่มีพารามิเตอร์และค่าส่งคืนหรือโปรแกรมที่ทำงานบน stdin / stdout ใช้โปรไฟล์สีที่คุณเลือก แต่ให้ข้อมูลอ้างอิง อินพุตอาจเป็นค่าตัวเลขที่แยกกันในช่วง [0; 255] หรือสตริงเลขฐานสิบหก 6 หลัก เอาต์พุตควรแยกค่าตัวเลขตั้งแต่ [0; 1] หรือ [0; 100] รหัสกอล์ฟมาตรฐาน: ไม่มีช่องโหว่รหัสที่สั้นที่สุดชนะ ความคิดฟุ่มเฟือยยินดีต้อนรับ ข้อมูลตัวอย่าง: input output 108,174,106 [0.3793103448275862, 0.0, 0.3908045977011494, 0.3176470588235294] 0,0,0 0,0,0,1 170,255,238 33,0,7,0 0x0088ff 1,0.4667,0,0 [250,235,215] [0,6,14,1.96] #123456 .7907,.3953,0,.6627 การทำแผนที่ที่ไม่ได้รับการปรับแต่งนั้นใช้ได้และอาจเป็นวิธีที่ง่ายที่สุด ไม่จำเป็นต้องมีการตรวจสอบอินพุต อนุญาตให้ลอยได้ (ตั้งแต่ …

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