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

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

14
นาฬิกา (แปล) รหัส
บทนำ: ฉันมียันต์ต่าง ๆ มากมายที่เก็บไว้ในเอกสารที่ฉันเคยรวบรวมเมื่อตอนเป็นเด็กฉันเลือกบางอย่างที่ฉันคิดว่าเหมาะสมที่สุดสำหรับความท้าทาย ส่วนใหญ่ยังอยู่ในกล่องทรายและฉันยังไม่แน่ใจว่าฉันจะโพสต์ทั้งหมดหรือเพียงไม่กี่ นี่คืออันที่สามและง่ายที่สุด (หลังรหัสศูนย์คอมพิวเตอร์และรหัสTrifid ที่ฉันโพสต์ไว้ก่อนหน้านี้) ด้วย Clock Cipher เราใช้ภาพต่อไปนี้เพื่อเข้ารหัสข้อความ: ดังนั้นประโยคที่this is a clock cipherจะกลายเป็น: t h i s i s a c l o c k c i p h e r (without additional spaces of course, but added as clarification) 19:7:8:18:00:8:18:00:AM:00:2:11:14:2:10:00:2:8:15:7:4:17 ท้าทาย: รับสตริงsentence_to_encipherเข้ารหัสตามที่อธิบายไว้ข้างต้น กฏท้าทาย: คุณสามารถสันนิษฐานได้ว่าsentence_to_encipherจะมีเพียงตัวอักษรและช่องว่าง คุณสามารถใช้ตัวพิมพ์เล็กเต็มหรือตัวพิมพ์ใหญ่เต็มรูปแบบได้ …

13
นับเมทริกซ์ย่อยที่ต่อเนื่องกัน
ย้ายจากการแชท ได้รับจำนวนเต็มสองไม่ว่างเปล่าที่ไม่ใช่เชิงลบเมทริกซ์และBตอบจำนวนครั้งที่เกิดขึ้นเป็นที่ต่อเนื่องกันอาจจะเป็นที่ทับซ้อนกัน submatrixในB ตัวอย่าง / กฎระเบียบ 0. อาจไม่มีเมทริกซ์ย่อยใด ๆ A : [[3,1], [1,4]] B : [[1,4], [3,1]] ตอบ: 0 1. เมทริกซ์ย่อยจะต้องต่อเนื่องกัน A : [[1,4], [3,1]] B : [[3,1,4,0,5], [6,3,1,0,4], [5,6,3,0,1]] คำตอบ: 1(ทำเครื่องหมายเป็นตัวหนา) 2. เมทริกซ์ย่อยอาจทับซ้อนกัน A : [[1,4], [3,1]] B : [[3,1,4,5], [6,3,1,4], [5,6,3,1]] คำตอบ: 2(ทำเครื่องหมายด้วยตัวหนาและตัวเอียงตามลำดับ) 3. เมทริกซ์ (ย่อย) อาจมีขนาดตั้งแต่ 1 …

1
แยกบิล
งาน สมมติว่าppepole ต้องแยกบิล แต่ละคนจะถูกระบุโดยสาม(Name, n, k)ประกอบด้วย: Name: ชื่อ ; n: จำนวนเงินที่เธอ / เขามีการจ่าย ; k: จำนวนเงินที่เธอ / เขาจ่ายจริง ความท้าทายที่นี่คือการหาว่าใครเป็นหนี้ใคร สมมติฐาน อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่สะดวก p ∈N,∈N,\in \mathbb{N}, \,\;\;n ∈N+,∈N+,\in \mathbb{N}^{+},\; k ∈N.∈N.\in \mathbb{N}. p >1.>1.\gt 1. ชื่อเป็นสตริงที่ไม่ซ้ำกันของความยาวโดยพลการประกอบด้วยตัวอักษรตัวพิมพ์เล็ก วิธีการแก้ การแก้ปัญหาจะถูกแสดงด้วยชุดขั้นต่ำของการทำธุรกรรมในหมู่pประชาชน โดยเฉพาะอย่างยิ่งพวกเขาเป็นสามเท่า(from, to, amount) from: nameของบุคคลที่ให้เงิน to: nameของบุคคลที่รับเงิน amount: จำนวนเงินของการทำธุรกรรม หมายเหตุ : ผลรวมของหนี้ทั้งหมด ( n) …
12 code-golf 

9
จำนวนการแปลงจนกระทั่งทำซ้ำ
ให้ลำดับของจำนวนเต็มหรือเฉพาะเจาะจงมากขึ้นการเปลี่ยนแปลงของ0..N ลำดับนี้ดังนี้ เอาท์พุท [x] = ย้อนกลับ (อินพุต [อินพุต [x]]) ทำซ้ำ ตัวอย่างเช่น: [2,1,0]กลายเป็นและที่ตรงกันข้ามคือ[0,1,2] กลายเป็นและย้อนกลับ[2,1,0][0,2,1][0,1,2][2,1,0] ตัวอย่างที่ 1 In: 0 1 2 S#1: 2 1 0 S#2: 2 1 0 Output: 1 ตัวอย่างที่ 2 In: 2 1 0 S#1: 2 1 0 Output: 0 ตัวอย่างที่ 3 In: 3 0 1 2 S#1: 1 …
12 code-golf 

10
ความยืดหยุ่น Kolmogorov ขายอาคา!
นี่คือการ จำกัด แหล่งที่มา , Kolmogorov ซับซ้อน , รหัสกอล์ฟที่ท้าทายในการผลิตการส่งออกคงที่มีการป้อนข้อมูลที่ไม่มี อย่างไรก็ตามรูปแบบเอาต์พุตมีความยืดหยุ่น - อาจถูกพิมพ์ออกมาเป็นมาตรฐานพิมพ์ออกมาเป็นข้อผิดพลาดมาตรฐานส่งกลับเป็นรายการของอักขระส่งกลับเป็นรายการของไบต์หรือส่งกลับเป็นรายการของจำนวนเต็ม หากคุณคิดว่ามีสิ่งอื่นที่สมเหตุสมผลดูได้จากความคิดเห็น นี่คือการที่ง่ายและมีขนาดใหญ่ตัวอักษรศิลปะ ASCII CODEGOLF : CCCC OOO DDDD EEEEE GGG OOO L FFFFF C O O D D E G O O L F C O O D D EEE G GG O O L FFF C O O …

6
กำหนดหุบเขาที่กว้างที่สุด
ลองนึกภาพเราจะได้ชิ้นส่วนของภูเขาบางส่วนซึ่งจะส่งผลให้มีรูปร่างคล้ายกับนี้: 4 _ 3 _ _ __/ \ 2 / \__/ \ _/ \_ / 1 / \ / \_/ 0 \/ 12322223210012233343221112 อย่างที่เราเห็นเราสามารถแสดงสิ่งนี้ (ในระดับหนึ่ง) ด้วยลำดับของจำนวนเต็ม สำหรับจุดประสงค์ของการท้าทายนี้เราให้คำจำกัดความว่าหุบเขาเป็นส่วนประกอบที่ต่อเนื่องกันซึ่งค่าเริ่มต้นลดลงและจากจุดหนึ่งที่เพิ่มขึ้น เป็นทางการมากขึ้นสำหรับลำดับ(ai)ni=1(ai)i=1n(a_i)_{i=1}^n a หุบเขาจะเป็นดัชนี1≤s&lt;r&lt;t≤n1≤s&lt;r&lt;t≤n1 \leq s < r < t \leq nซึ่งมีดังต่อไปนี้: จุดเริ่มต้นและจุดสิ้นสุดของหุบเขาเหมือนกัน: as=atas=ata_s = a_t หุบเขาเริ่มต้นและสิ้นสุดในครั้งเดียวในภูมิภาคที่ได้รับต่ำ: s &gt; s + 1 ∧ T …

13
เอาท์พุตเพลงîþarâþcrîþโดยไม่ใช้ (m) ตัวอักษรใด ๆ
เป้าหมายของคุณคือการเขียนโปรแกรมที่ไม่มีการป้อนข้อมูลและแสดงผลข้อความต่อไปนี้ ca e na ŋa va o sa; þa ša ra la ła. ma a pa fa ga ta ča; în ja i da ða. ar ħo ên ôn ân uħo; carþ taŋ neŋ es nem. elo cenvos. แต่มีการจับ: สำหรับตัวอักษรแต่ละตัว (ตัวละครใด ๆ ที่มีประเภททั่วไปใน Unicode เริ่มต้นด้วยL) ในแหล่งที่มาของคุณคุณจะได้รับโทษ 20 ตัวอักษร! (สำหรับการอ้างอิงข้อความที่จะพิมพ์มี 81 …

2
สร้างภูเขาจาก Molehill
คุณจะได้รับภูมิประเทศที่เต็มไปด้วยโมเลกุลและภูเขา: /\ / \ _/\__ / \ ___/ \_/ \_ ____/\___/ \___ งานของคุณคือแทนที่ทุกฮิลล์ในสตริงด้วยภูเขาที่เทียบเท่าโดยมีศูนย์กลางอยู่ที่คอลัมน์เดียวกัน ส่วนที่เหลือของสตริงจะต้องไม่ได้รับผลกระทบ สิ่งนี้อาจต้องการบรรทัดเพิ่มเติมที่จุดเริ่มต้นของสตริง จอมปลวกประกอบด้วยคอลัมน์ที่อยู่ติดกันที่มีลักษณะภูมิประเทศขึ้นไปทันทีตามด้วยคอลัมน์ที่อยู่ติดกันที่มีลักษณะภูมิประเทศลงไป ด้านที่สั้นที่สุดจะต้องมีความกว้างหนึ่งคอลัมน์ นี่คืออณูทั้งหมด: _____/\______ /\________ __/ ________/\ \__ \ / \ / \ / \ / \/\_/ สิ่งเหล่านี้ไม่ใช่โมเลกุล: /\ ___/ \______ ___ _____/ \___ ____ _______ \/ ภูเขาเป็นเหมือนจอมปลวก แต่ด้านที่สั้นที่สุดคือสี่สายสูงแทนหนึ่ง ตัวอย่าง /\ / \ -&gt; / …

21
สตริงย่อยที่เพิ่มขึ้นยาวที่สุด
รับรายการของจำนวนเต็มบวกเขียนโค้ดที่ค้นหาความยาวของรายการย่อยที่อยู่ติดกันที่ยาวที่สุดที่เพิ่มขึ้น (ไม่เคร่งครัด) นั่นคือรายการย่อยที่ยาวที่สุดซึ่งแต่ละองค์ประกอบนั้นมากกว่าหรือเท่ากับครั้งสุดท้าย ตัวอย่างเช่นถ้าอินพุตคือ: [ 1 , 1 , 2 , 1 , 1 , 4 , 5 , 3 , 2 , 1 , 1 ][1,1,2,1,1,4,5,3,2,1,1][1,1,2,1,1,4,5,3,2,1,1] ที่ยาวที่สุดในการเพิ่มรายการย่อยจะดังนั้นคุณจะเอาท์พุท4[ 1 , 1 , 4 , 5 ][1,1,4,5][1,1,4,5]444 คำตอบของคุณจะได้รับคะแนนโดยนำแหล่งที่มาของมันเป็นรายการของไบต์แล้วค้นหาความยาวของรายการย่อยที่เพิ่มขึ้นที่ยาวที่สุดของรายการนั้น คะแนนที่ต่ำกว่าคือเป้าหมาย ความสัมพันธ์ระหว่างโปรแกรมต่าง ๆ มีจำนวนน้อยลงโดยรวม

6
พาฉันออกไปจากที่นี่
ท้าทาย กำหนดขนาดกริดตำแหน่งอุปสรรคตำแหน่งผู้เล่นและตำแหน่งเป้าหมายงานของคุณคือหาเส้นทางให้ผู้เล่นไปถึงเป้าหมายและหลีกเลี่ยงอุปสรรคในเวลาเดียวกัน (ถ้าจำเป็น) อินพุต N : ขนาดกริดN x N P : ตำแหน่งของผู้เล่น[playerposx, playerposy] T : ตำแหน่งของเป้าหมาย[targetposx, targetposy] O : ตำแหน่งของอุปสรรค[[x1, y1], [x2, y2],...,[xn, yn]] เอาท์พุต เส้นทาง : ผู้เล่นเส้นทางสามารถใช้เพื่อเข้าถึงเป้าหมาย[[x1, y1], [x2, y2],...,[xn, yn]] กฎระเบียบ จุด[0,0]อยู่ที่มุมบนซ้ายของตาราง ตำแหน่งของผู้เล่นจะอยู่ทางด้านซ้ายของกริดเสมอ ตำแหน่งของเป้าหมายจะอยู่ทางด้านขวาของกริดเสมอ ตารางจะมีสิ่งกีดขวางอย่างน้อยหนึ่งรายการเสมอ คุณสามารถสันนิษฐานได้ว่าไม่มีสิ่งกีดขวางผู้เล่นหรือตำแหน่งที่ทับซ้อนกัน คุณไม่จำเป็นต้องค้นหาเส้นทางขั้นต่ำ ผู้เล่นสามารถเลื่อนไปทางซ้ายขวาบนและล่างไม่ได้ตามแนวทแยงมุม คุณสามารถรับอินพุตได้อย่างสะดวกสบาย คุณสามารถสันนิษฐานได้ว่าเส้นทางสำหรับผู้เล่นที่จะไปถึงเป้าหมายนั้นจะมีอยู่เสมอ เห็นได้ชัดว่าสำหรับแต่ละเส้นทางมีหลายเส้นทางที่ใช้ได้ให้เลือกหนึ่งเส้นทาง สมมติดังนั้นตารางจะมีอย่างน้อยN &gt; 23 x 3 ตัวอย่าง การป้อนข้อมูล: …

14
การตรวจสอบไฟล์มีเพียง null null
เป้าหมายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เป็นอินพุตสตริงแทนพา ธ ไปยังไฟล์และส่งออกค่าจริงหากไฟล์นั้นไม่ว่างเปล่าและไม่มีไบต์ที่ไม่เป็นศูนย์เช่นบิตทั้งหมดเป็น 0 - - และค่าเท็จเป็นอย่างอื่น ฉันรู้ว่ามันเป็นปัญหาที่ง่ายมากและฉันคิดว่าฉันสามารถแฮ็กบางอย่างได้ แต่ฉันคิดว่าต้องมีวิธีสั้น ๆ และสง่างามในการทำเช่นนั้นและนั่นทำให้ฉันมีความคิดที่จะท้าทายมัน นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ (การตั้งค่าของฉันเองจะไปที่โซลูชันที่เร็วที่สุด แต่นั่นก็ขึ้นอยู่กับการติดตั้ง ... ) คำถามที่เกี่ยวข้อง : แพดไฟล์ด้วยเลขศูนย์ แรงจูงใจ : เพียงเพื่อบอกว่าปัญหามาจากที่ใดในกรณีที่คุณสนใจ คุณไม่จำเป็นต้องอ่าน อิมเมจ ISO ของซีดีและดีวีดีคัดลอกด้วย "dd" หรือวิธีอื่นมักจะจบลงด้วยลำดับของบล็อกที่ไม่มีประโยชน์ที่มีเพียง null ไบต์เท่านั้น เทคนิคมาตรฐานในการลบบล็อกเหล่านี้เป็นที่รู้จักและเรียบง่าย (ดู /unix/74827/ ) แต่บางครั้งพวกเขาอาจลบข้อมูลที่ไม่เป็นประโยชน์ออกเนื่องจากสื่ออาจอยู่ในขนาดของตัวเอง ดังนั้นฉันต้องการตรวจสอบว่าบล็อกที่ลบออกมีไบต์ว่างเท่านั้น การลบบล็อคเหล่านี้มีความสำคัญต่อการกำหนด ISO อิมเมจเวอร์ชันปกติ

30
รหัสสีจริง
สีจริง (24- บิต) ที่Wikipediaอธิบายไว้ในส่วนที่เกี่ยวข้องดังนี้ 24 บิตมักจะใช้ 8 บิตของแต่ละ R, G, B ณ ปี 2018 ความลึกของสี 24 บิตถูกใช้โดยแทบทุกเครื่องคอมพิวเตอร์และโทรศัพท์หน้าจอโทรศัพท์และรูปแบบการจัดเก็บภาพส่วนใหญ่ เกือบทุกกรณีที่มี 32 บิตต่อพิกเซลหมายความว่า 24 ใช้สำหรับสีและ 8 ที่เหลือเป็นช่องอัลฟาหรือไม่ได้ใช้ 2 24ให้ความหลากหลายของสี 16,777,216 สี ดวงตามนุษย์สามารถแยกแยะสีได้มากถึงสิบล้านสี[10]และเนื่องจากขอบเขตของการแสดงมีขนาดเล็กกว่าช่วงของการมองเห็นของมนุษย์นี่หมายความว่าสิ่งนี้ควรครอบคลุมช่วงนั้นโดยมีรายละเอียดมากกว่าที่สามารถรับรู้ได้ ... ... ระบบ Macintosh อ้างถึงสี 24 บิตเป็น "ล้านสี" บางครั้งคำว่า "สีจริง" ใช้เพื่อหมายถึงสิ่งที่บทความนี้เรียกว่า "สีโดยตรง" [13]นอกจากนี้ยังใช้เพื่ออ้างถึงความลึกของสีทั้งหมดที่มากกว่าหรือเท่ากับ 24 สีทั้งหมด 16,777,216 สี งาน เขียนโปรแกรมที่สร้างและส่งกลับค่าสีทั้งหมด 16,777,216 สีภายในอาร์เรย์เป็นสตริงในrgb()ฟังก์ชันCSS …

17
คำนวณขั้นต่ำเช่นที่เป็นค่าเฉพาะ (OEIS A051935)
พื้นหลัง พิจารณาลำดับต่อไปนี้ ( A051935ใน OEIS): เริ่มต้นด้วยคำว่า2222 ค้นหาจำนวนเต็มต่ำสุดมากกว่าเพื่อให้เป็นจำนวนเฉพาะ2 2 + nnnn2222 + n2+n2+n ค้นหาจำนวนเต็มต่ำสุดมากกว่าเช่นที่เป็นต้น n 2 + n + n ′n′n′n'nnn2+n+n′2+n+n′2 + n + n' คำจำกัดความที่เป็นทางการมากขึ้น: an={2min{x∈N∣x&gt;an−1 and (x+∑n−1i=0ai) is prime}if n=0otherwisean={2if n=0min{x∈N∣x&gt;an−1 and (x+∑i=0n−1ai) is prime}otherwisea_n=\begin{cases}2 & \text{if }n=0 \\ \min\{x\in\Bbb{N}\mid x>a_{n-1} \text{ and }\left(x+\sum_{i=0}^{n-1}a_i\right) \text{ is prime}\} & \text{otherwise}\end{cases} …

6
กอล์ฟแผนภูมิการละลาย
รับชื่อไอออนบวกและประจุลบเอาต์พุต "S" (ละลายได้) หรือ "I" (ไม่ละลายน้ำ) ตารางที่เราจะใช้จากวิกิพีเดีย: https://en.wikipedia.org/wiki/Solubility_chart มันจะถูกคัดลอกในตอนท้ายของคำถามสำหรับการอ้างอิงในอนาคต อินพุต : ไอออนบวกตามด้วยประจุลบคั่นด้วยช่องว่าง ไอออนบวกจะเป็นหนึ่งในสิ่งต่อไปนี้: Lithium Sodium Potassium Ammonium Beryllium Magnesium Calcium Strontium Barium Zinc Iron(II) Copper(II) Aluminium Iron(III) Lead(II) Silver และประจุลบจะเป็นหนึ่งในสิ่งต่อไปนี้: Fluoride Chloride Bromide Iodide Carbonate Chlorate Hydroxide Cyanide Cyanate Thiocyanate Nitrate Oxide Phosphate Sulfate Dichromate แต่ละคนจะมีตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ อินพุตตัวอย่าง: Sodium Chloride เอาท์พุท …

11
Codegolf Rainbow: Fun with Integer-Arrays
บทนำ: (ที่มา: Wikipedia ) เมื่อเราดูรุ้งมันจะมีสีจากบนลงล่างเสมอ: สีแดง; ส้ม; สีเหลือง; เขียว; สีน้ำเงิน; คราม; ม่วง ถ้าเราดูที่วงแหวนเหล่านี้แต่ละวงแหวนสีแดงย่อมใหญ่กว่าวงแหวนม่วง นอกจากนี้ยังเป็นไปได้ที่จะมีรุ้งสองหรือสามตัวในเวลาเดียวกัน ทั้งหมดนี้รวมกันจะถูกนำมาใช้ในการท้าทายนี้: ท้าทาย: รับรายการของจำนวนเต็มขนาดที่แน่นอน 7 ซึ่งแต่ละค่าระบุว่ามีอนุภาคสีในรูปแบบรุ้ง (ที่ดัชนีที่ใหญ่ที่สุดหมายถึงสีแดงและดัชนีที่เล็กที่สุดที่ระบุสีม่วง) เอาท์พุทจำนวนรุ้งที่สามารถเกิดขึ้น จำนวนเต็มรุ้งเดียวจะต้องมีอย่างน้อย 3 สีม่วง, สีคราม 4x, 5x สีฟ้า, 6x สีเขียว, 7x สีเหลือง, สีส้ม 8x, สีแดง 9x รุ้งที่สองอยู่ด้านบนของมันจะใหญ่กว่าวงแหวนสีแดงของรุ้งแรก (รวมช่องว่างระหว่างหนึ่ง) ดังนั้นมันจะต้องมีสีม่วงอย่างน้อย 11x, 12x สีคราม, 13x สีน้ำเงิน, 14x เขียว, 15x เหลือง, ส้ม 16x …

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