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

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

7
ข้ามลำดับ
ข้ามลำดับ รับรายการของจำนวนเต็มบวกAเรียกมันว่าลำดับที่เพิ่มขึ้นถ้าแต่ละองค์ประกอบมากกว่าหรือเท่ากับหนึ่งก่อนหน้า; และเรียกว่าเป็นลำดับที่ลดลงหากแต่ละองค์ประกอบน้อยกว่าหรือเท่ากับหนึ่งก่อนหน้า ลำดับที่เพิ่มขึ้นบางส่วน: [1,2,4,7] [3,4,4,5] [2,2,2] [] บางลำดับลดลง: [7,4,2,1] [5,4,4,3] [2,2,2] [] ลำดับข้ามคือรายการที่สามารถย่อยสลายเป็นสอง subsequences เคล็ดหนึ่งลำดับที่เพิ่มขึ้นและอื่น ๆ ตามลำดับการลด ตัวอย่างเช่นรายการ: [3,5,2,4,1] เป็นลำดับการข้ามเนื่องจากสามารถแบ่งย่อยเป็น: [3, 4 ] [ 5,2, 1] ที่[3,4]เป็นลำดับที่เพิ่มขึ้นและ[5,2,1]เป็นลำดับที่ลดลง เราจะเรียกคู่ดังกล่าว (ที่เพิ่มขึ้นลดลง) subsequences การสลายตัวของลำดับการผสมข้ามพันธุ์ รายการ: [4,5,2,1,3] ไม่ใช่ลำดับการข้าม ไม่มีวิธีที่จะย่อยสลายมันเป็นลำดับที่เพิ่มขึ้นและลดลง งานของคุณคือการเขียนโปรแกรม / ฟังก์ชั่นการใช้เป็นรายการของจำนวนเต็มบวก; และถ้าเป็นลำดับข้ามให้ส่งคืนสองรายการในหนึ่งในการย่อยสลาย หรือค่า "เท็จ" ที่สอดคล้องกันหากรายการไม่ใช่ลำดับการข้าม นี่คือรหัสกอล์ฟ ; โปรแกรม / ฟังก์ชั่นที่สั้นที่สุดในแต่ละภาษาเป็นผู้ชนะ กฎ: อินพุตมีความยืดหยุ่น …

9
Ouroboros Quine ในระดับ n
ouroboros quine 128 ภาษานี้ (โปรแกรมที่ส่งออกโปรแกรมในภาษาอื่นซึ่งส่งออกโปรแกรมในภาษาอื่น (125 ภาษาในภายหลัง) ซึ่งแสดงผลโปรแกรมต้นฉบับ) ค่อนข้างน่าประทับใจ แต่น่าเสียดายที่มันมีการวนซ้ำแบบคงที่ เขียนโปรแกรมที่แสดงผลโปรแกรม (ไม่จำเป็นต้องเป็นภาษาอื่น แต่สามารถเป็นได้) ซึ่งแสดงผลโปรแกรมซึ่งแสดงผลโปรแกรม ฯลฯ ซึ่งหลังจากทำซ้ำแล้ว n จะแสดงผลลัพธ์โปรแกรมต้นฉบับเป็นครั้งแรก (เช่นไม่มีสื่อกลาง โปรแกรมควรเหมือนกันกับต้นฉบับเพราะไม่เช่นนั้นควินที่ไม่สนใจอินพุตจะทำงานได้) โดยที่ n เป็นจำนวนเต็มที่ไม่เป็นลบที่จัดเตรียมให้เป็นอินพุต ข้อมูลที่ป้อนต้องไม่เป็นตัวเลขในซอร์สโค้ดต้นฉบับ (เช่นx = <the value of n>เริ่มต้นโปรแกรมของคุณ) ซึ่งควรเป็นหนึ่งในสิ่งต่อไปนี้: ส่งผ่านเป็นอาร์กิวเมนต์บรรทัดคำสั่ง อ่านจากอินพุตมาตรฐาน ส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันซึ่งส่งคืน / ส่งออกโปรแกรมใหม่ สำหรับสเตจกลางใน ouroboros โปรแกรมของคุณอาจเป็นโปรแกรมที่ทำงานได้อย่างสมบูรณ์หรือฟังก์ชั่นที่ไม่มีข้อโต้แย้งซึ่งเมื่อเรียกแล้วจะส่งคืน / ส่งออกในส่วนถัดไป คุณไม่สามารถอ่านจากไฟล์ต้นฉบับเองหรือใช้บิวอินเหมือนควินิน (ฉันไม่คิดว่าจะมีสิ่งใดที่จะทำสิ่งนี้ แต่อาจมี) เพื่อความชัดเจนหากn = 0โปรแกรมควรส่งออกซอร์สโค้ดของตัวเอง หากn = 1โปรแกรมควรแสดงผลเป็นโปรแกรมอื่นซึ่งจะแสดงรหัสต้นฉบับดั้งเดิม …
11 code-golf  quine 

22
ค้นหา C-factor ของการโหวต
ในการท้าทายนี้คุณจะพิจารณาว่าการลงคะแนนเสียงเป็นอย่างไรให้คะแนนแบบอื่นโดยการหาตัวเลขที่เรียกว่า C-factor C-factor คืออะไรคุณถาม? ลองจินตนาการว่าคุณได้รับการโหวตหลายครั้งจากการเลือกตั้ง เราจะใช้1และ0เพื่อความท้าทายในการเป็นตัวแทนผู้สมัครที่แตกต่างกันสองคนในการเลือกตั้ง นี่คือสิบคะแนนโหวตในการเลือกตั้งตัวอย่างของเรา: 0110111011 ตอนนี้บอกว่าเราต้องการที่จะหา C-ปัจจัยการโหวตใด ๆ 0สำหรับผู้สมัคร เราสามารถทำได้ด้วยฟังก์ชั่นต่อไปนี้: f(o,v)=abs(o−mean(v))f(o,v)=abs(o−mean(v)) f(o,v) = abs(o-mean(v)) ในfff , oเป็นคะแนนเสียงที่เราต้องการที่จะตรวจสอบ C-ปัจจัยและvเป็นอาร์เรย์ของคะแนนเสียง ดังนั้นโดยใช้ฟังก์ชั่นของเราเพื่อรับ C-factor ของการโหวตสำหรับผู้สมัคร0: f(0,[0,1,1,0,1,1,1,0,1,1])=0.7f(0,[0,1,1,0,1,1,1,0,1,1])=0.7 f(0, [0,1,1,0,1,1,1,0,1,1]) = 0.7 C-factor ที่ต่ำกว่าแสดงให้เห็นว่าการโหวตนั้นมีความขัดแย้งน้อยกว่าเมื่อเปรียบเทียบกับการโหวตอื่น ๆ ดังนั้นการลงคะแนนเสียงให้ผู้สมัคร0มีมากขึ้นแตกต่างจากคะแนนโหวตอื่น ๆ 1นอกเหนือจากการลงคะแนนสำหรับผู้สมัคร ในการเปรียบเทียบปัจจัย C สำหรับการ1ลงคะแนนเสียงของผู้สมัครคือ0.30.30.3ดังนั้นจึงเป็นเรื่องที่ถกเถียงกันน้อยลงเพราะมันเหมือนกับการโหวตอื่น ความท้าทาย เขียนฟังก์ชั่นf(o,v)f(o,v)f(o,v)ในการกำหนด C-ปัจจัยของการลงคะแนนผลการได้รับการโหวตov oต้องเป็นจำนวนเต็มทั้งหรือ01 v จะต้องเป็นอาร์เรย์ (หรือประเภทภาชนะที่คล้ายกันขึ้นอยู่กับข้อกำหนดของภาษา) ของความยาวโดยพลการที่มีศูนย์และคน ฟังก์ชั่นควรส่งคืนหรือพิมพ์ไปยังคอนโซลด้วยผลลัพธ์ C-factor ที่กำหนดพารามิเตอร์ของฟังก์ชันโดยใช้สูตรด้านบนหรือวิธีการแก้ไข โชคดี! …

6
ตัวเลขขนาดใหญ่ไหนที่ใหญ่กว่า
คำถามนี้มีเล่ห์เหลี่ยม (และโดยเฉพาะอย่างยิ่งยากกว่าเลขใหญ่ใดที่ใหญ่กว่า ) สำหรับผู้ที่ชอบปริศนาที่ท้าทายมากขึ้น อินพุต จำนวน a1, a2, a3, a4, a5, b1, b2, b3, b4, b5 แต่ละค่าในช่วง 1 ถึง 10 เอาท์พุต True if a1^(a2^(a3^(a4^a5))) > b1^(b2^(b3^(b4^b5))) and False otherwise. ^ คือการยกกำลังในคำถามนี้ กฎระเบียบ นี่คือรหัสกอล์ฟ รหัสของคุณจะต้องยุติการอย่างถูกต้องภายใน 10 วินาทีสำหรับการป้อนข้อมูลที่ถูกต้องใด ๆ ในTIO หากภาษาของคุณไม่ได้อยู่ใน TIO รหัสควรเสร็จสิ้นภายใน 10 วินาทีในเครื่องของคุณ คุณสามารถเอาท์พุทอะไรจริงสำหรับ True และอะไรเท็จสำหรับเท็จ กรณีทดสอบ จำได้ว่าตามกฎของ exponentiaon, a1 …

9
R [oman | everse] สัญลักษณ์ของโปแลนด์
มันเป็นปี MDLXVII ในโลกที่จักรวรรดิโรมันไม่เคยล้มและการล่มสลายในยุคมืดไม่เคยเกิดขึ้น เนื่องจากช่วงเวลาที่ยาวนานของ Pax Romana ทำให้เสถียรภาพทางเศรษฐกิจของจักรวรรดิเปิดใช้งานเทคโนโลยีเพื่อความก้าวหน้าในอัตราที่รวดเร็ว ชาวโรมันเริ่มตะลุยกับวงจรไฟฟ้าและคิดค้นเครื่องคิดเลขที่แยบยลซึ่งไม่จำเป็นต้องใช้ปุ่ม "เท่ากับ" พวกเขาเรียกมันว่า "Roman Polish Notation" ในการคำนวณพวกเขาป้อนตัวถูกดำเนินการก่อนจากนั้นจึงทำการดำเนินการ ยกตัวอย่างเช่น 100 + 11 * 20 C XI XX * +จะเป็น นอกจากนี้ ชาวโรมันพบว่าพวกเขามักจะต้องทำการคำนวณหลายอย่างในเวลาเดียวกันและต้องการให้วิธีการคืนค่าทุกค่า "บนสแต็ก" ในโครงสร้างเรียงลำดับอาร์เรย์ / รายการ / ทูเปิลบางประเภท (เช่นX I + X I - CC II +จะส่งคืน [11, 9, 202]) ความท้าทายคือการพัฒนาโปรแกรมเครื่องคิดเลขที่สามารถคำนวณได้ ชี้แจง : จำเป็นต้องมีสัญกรณ์ลบ ฉันไม่ได้ตระหนักว่ามันไม่เป็นที่รู้จักในจักรวรรดิโรมันโบราณ …

3
Levenshtein ที่มาของคุณ
ระยะทางแก้ไข Levenshtein ระหว่างสองสายคือจำนวนที่น้อยที่สุดที่เป็นไปได้ของการแทรกการลบหรือการแทนที่เพื่อแปลงหนึ่งคำเป็นคำอื่น ในกรณีนี้การแทรกการลบและการแทนที่แต่ละรายการมีค่า 1 ตัวอย่างเช่นระยะห่างระหว่างrollและrollingคือ 3 เนื่องจากการลบมีค่าใช้จ่าย 1 และเราต้องลบ 3 ตัวอักษร ระยะห่างระหว่างtollและtallคือ 1 เนื่องจากการทดแทนมีค่าใช้จ่าย 1 ถูกขโมยไปจากคำถาม Levenshtein ดั้งเดิม งานของคุณคือการคำนวณความแตกต่างในการแก้ไข Levenshtein ระหว่างสตริงอินพุตและแหล่งที่มาของคุณ นี่คือแท็กควินดังนั้นโกง quines (ตัวอย่างเช่นการอ่านรหัสต้นฉบับของคุณ) จะไม่ได้รับอนุญาต กฎระเบียบ อินพุตจะไม่ว่างเปล่าและจะประกอบด้วย ASCII ยกเว้นว่าที่มาของคุณมีไม่ใช่ ASCII ซึ่งในกรณีนี้อินพุตอาจมี Unicode ไม่ว่าระยะทาง Levenshtein จะถูกวัดเป็นอักขระไม่ใช่ไบต์ เอาต์พุตเป็นระยะทางแก้ไข Levenshtein ขั้นต่ำของอินพุตและแหล่งที่มาของคุณ นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดเป็นไบต์ชนะ

6
มาเล่น Rummikub กันเถอะ!
หมายเหตุ: สิ่งนี้เกี่ยวข้องกับการเปลี่ยนแปลงของเกมRummikub พื้นหลังและกฎ Rummikubเป็นเกมแบบเรียงต่อกัน มีสี่สีคือแดงส้มน้ำเงินและดำ สำหรับแต่ละสีนั้นจะมีไพ่ 13 ใบ (ที่มีป้ายกำกับตั้งแต่ 1 ถึง 13) และยังมีโจ๊กเกอร์ 2 ชิ้นที่ไม่ขึ้นกับสีจึงมีทั้งหมด 54 ชิ้น ในรูปแบบของ Rummikub นี้ผู้เล่นแต่ละคนจะได้รับไพ่ 14 ใบและจะต้องได้ไพ่เพิ่มอีกหนึ่งแผ่นและวางไพ่อีกหนึ่งใบในแต่ละรอบ ผู้เล่นไม่เห็นไพ่ของกันและกัน เป้าหมายคือการจัดกลุ่มกระเบื้องเพื่อให้ทุกชิ้นเป็นของกลุ่มอย่างน้อยหนึ่งกลุ่ม (ดูด้านล่าง) เมื่อผู้เล่นมีการจัดกลุ่มชิ้นส่วนทั้งหมดพวกเขาจะวางกระดานไทล์และเปิดเผยชิ้นส่วน จากนั้นคนอื่น ๆ ตรวจสอบว่าชุดค่าผสมทั้งหมดถูกต้องหรือไม่และถ้าเป็นเช่นนั้นผู้เล่นชนะรอบนั้นหรือไม่ กระเบื้องสามารถจัดกลุ่มได้อย่างไร? มีกลุ่มสองประเภทเท่านั้น: กลุ่มหลายสี : ประกอบด้วย 3 หรือ 4 แผ่น พวกเขามีเพียงกระเบื้องที่มีหมายเลขเดียวกันกับพวกเขา กระเบื้องทั้งหมดมีสีแตกต่างกัน ตัวอย่าง: RED 9, BLUE 9, BLACK 9. กลุ่มสีโมโน : พวกเขาประกอบด้วยอย่างน้อย …

6
การบีบอัดข้อมูล RLE เพื่อวาดศิลปะ ASCII
คำถามนี้จะขึ้นอยู่กับสิ่งที่ฉันขึ้นมาด้วยที่จะตอบคำถามอื่น บางครั้งคำถามที่นี่ขอให้วาดศิลปะ ASCII บางส่วน หนึ่งในวิธีที่ง่ายในการจัดเก็บข้อมูลสำหรับศิลปะเป็นRLE (การเข้ารหัสวิ่งยาว) ดังนั้น: qqqwwwwweeerrrrrtttyyyy กลายเป็น: 3q5w3e5r3t4y ตอนนี้เพื่อวาด ASCII ขนาดใหญ่ที่คุณอาจได้รับข้อมูลเช่นนี้ (ไม่สนใจอักขระบรรทัดใหม่): 19,20 3(4)11@1$20 11@19,15"4:20 4)19,4:20 11@ ^^^ Note that this is "20 whitespaces" (Character count: 45) อักขระที่ใช้สำหรับศิลปะ ASCII จะไม่เป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่หรือตัวเลขเพียงเครื่องหมายเครื่องหมายและสัญลักษณ์ แต่จะอยู่ในชุดอักขระ ASCII ที่พิมพ์ได้เสมอ คุณต้องการประหยัดพื้นที่ในสตริงนั้นดังนั้นคุณจึงแทนที่ตัวเลขด้วยชุดอักขระตัวพิมพ์ใหญ่ (เป็น 'A' เท่ากับ 1, 'B' เท่ากับ 2 จนกระทั่ง 'Z' เท่ากับ 26) เพราะคุณจะไม่เคยไป ได้รับมากกว่า 26 …

9
รูปแบบวันที่นี้คืออะไร
สำหรับปฏิทินเกรโกเรียนรูปแบบวันที่จะแตกต่างกันไปในแต่ละประเทศ มีสามรูปแบบหลักที่รู้จัก: YY-MM-DD (big-) DD-MM-YY (น้อย endian) MM-DD-YY (กลาง endian) งานของคุณคือการเขียนโปรแกรมซึ่งกำหนดให้สายอักขระที่เป็นตัวแทนของวันที่ออกรูปแบบวันที่ที่เป็นไปได้ทั้งหมดซึ่งสตริงนี้สามารถตีความได้ว่าเป็นวันที่ กฎระเบียบ วันที่อินพุตอยู่ในรูปแบบxx-xx-xxโดยที่แต่ละฟิลด์มีสองหลักและไม่มีการเติมเบาะ วันที่นั้นถูกต้องเสมอ (ดังนั้นคุณจะไม่สามารถรับสิ่งต่าง ๆ เช่น 14-13-17) วันที่อยู่ในรูปแบบด้านบนอย่างน้อยหนึ่งรูปแบบเสมอ (ดังนั้นคุณจะไม่สามารถรับสิ่งต่าง ๆ เช่น 17-14-11) เพราะในความเป็นจริงเราอยู่ในโลกคู่ขนานมี 31 วันสำหรับทุกเดือนของปีและดังนั้นจึงไม่มีปีอธิกสุรทิน วันที่อยู่ระหว่าง 1 มกราคม 2001 และ 31 ธันวาคม 2099 หากมีเพียงหนึ่งรูปแบบสำหรับวันที่รหัสจะต้องพิมพ์เท่านั้น (อนุญาตให้ขึ้นบรรทัดใหม่ต่อท้ายเท่านั้น) หากมีหลายรูปแบบสำหรับวันที่พวกเขาจะต้องคั่นด้วยเครื่องหมายจุลภาค, ช่องว่าง, การขึ้นบรรทัดใหม่หรือการรวมกันของเหล่านั้น คุณต้องส่งออกชื่อที่แน่นอนของรูปแบบ ไม่อนุญาตให้ใช้ค่าตามอำเภอใจที่แตกต่างกัน ไม่อนุญาตให้นำหน้าหรือต่อท้ายอักขระอื่นนอกเหนือจากพื้นที่ต่อท้าย ผลลัพธ์จะต้องเป็นตัวพิมพ์เล็ก คุณไม่ได้รับอนุญาตให้ใช้ฟังก์ชันวันที่หรือปฏิทินในตัว รูปแบบเอาต์พุตไม่จำเป็นต้องเรียงลำดับ ตัวอย่าง Input Output 30-05-17 big-endian, …
11 code-golf  date 

4
ตั้งชื่อโม้มือ
พื้นหลัง Brag เป็นเกมไพ่ที่มีแนวคิดคล้ายกัน แต่ง่ายกว่าโป๊กเกอร์ ไพ่ในมือประกอบด้วยไพ่สามใบและมีการจัดอันดับดังนี้จากสูงไปต่ำสุด: ไพ่สามใบ - ไพ่สามใบเรียงลำดับเดียวกัน ตั้งชื่อเป็น "Three Kings" ฯลฯ การเรียกใช้ flush หรือที่เรียกว่า flush แบบตรง ไพ่ทั้งสามใบที่มีชุดเดียวกันและมีลำดับติดกัน ไพ่ในมือเรียงตามลำดับจากน้อยไปมากตามด้วยคำว่า "ที่เด้ง" เพื่อแยกความแตกต่างจากการวิ่ง / ตรงเช่น "สิบแจ็ค - ราชินีในการเด้ง" หมายเหตุเอซมีค่าสูงหรือต่ำ แต่ไม่ใช่ทั้งคู่ - "king-ace-two" ไม่ใช่การวิ่ง เรียกใช้ตรงไปตรงมา ข้างต้น แต่ไม่มีข้อกำหนดในการจับคู่ชุดสูท ตั้งชื่อง่ายๆเช่น "ten-jack-queen" ฟลัช - ไพ่ทั้งสามใบในชุดเดียวกันตั้งชื่อตามอันดับสูงสุดเช่น "Ace flush" คู่ - ไพ่สองใบที่มีอันดับเดียวกันพร้อมกับหนึ่งในสามของอันดับรุ่นอื่น ชื่อเป็น "คู่ของสาม" เป็นต้น ชุดค่าผสมอื่น ๆ ตั้งชื่อตามอันดับสูงสุดเช่น …

12
ปีกตัวอักษร!
งานของคุณคือการพิมพ์ข้อความที่แน่นอนนี้: az za abyz zyba abcxyz zyxcba abcdwxyz zyxwdcba abcdevwxyz zyxwvedcba abcdefuvwxyz zyxwvufedcba abcdefgtuvwxyz zyxwvutgfedcba abcdefghstuvwxyz zyxwvutshgfedcba abcdefghirstuvwxyz zyxwvutsrihgfedcba abcdefghijqrstuvwxyz zyxwvutsrqjihgfedcba abcdefghijkpqrstuvwxyz zyxwvutsrqpkjihgfedcba abcdefghijklopqrstuvwxyz zyxwvutsrqpolkjihgfedcba abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba abcdefghijklopqrstuvwxyzyxwvutsrqpolkjihgfedcba abcdefghijkpqrstuvwxyzyxwvutsrqpkjihgfedcba abcdefghijqrstuvwxyzyxwvutsrqjihgfedcba abcdefghirstuvwxyzyxwvutsrihgfedcba abcdefghstuvwxyzyxwvutshgfedcba abcdefgtuvwxyzyxwvutgfedcba abcdefuvwxyzyxwvufedcba abcdevwxyzyxwvedcba abcdwxyzyxwdcba abcxyzyxcba abyzyba aza ได้รับอนุญาตดังต่อไปนี้: เว้นช่องว่างท้ายท้ายบรรทัด ทำทุกอย่างด้วยตัวพิมพ์ใหญ่แทนที่จะเป็นตัวพิมพ์เล็ก ขึ้นบรรทัดใหม่ จำไว้ว่านี่คือcode-golfดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ

2
ผันคำกริยาภาษาตุรกี
อินพุต กริยาสตริงที่ตรงกับการแสดงออกปกติ([a-pr-vyzıöüçğş]*[aeıioöuü][bcçdfgğhj-nprsştvyz]+|([a-pr-vyzıöüçğş]*[aeıioöuü]){2})(mak|mek) พหูพจน์ค่าความจริงหรือเท็จ person , จำนวนเต็มมีค่าเป็น 1, 2 หรือ 3 tenseคือเลขจำนวนเต็มที่มีค่า 1, 2 หรือ 3 เอาท์พุต รูปแบบคอนจูเกตของคำกริยาตุรกีคำกริยาในคนST / ครั้ง / ถนนคนพหูพจน์ถ้าเป็นพหูพจน์เป็นTRUEเอกเทศและถ้ามันไม่ได้ใน ถ้ากาลเป็น 1 สิ่งที่ง่าย ถ้ากาลเป็น 2, ปัจจุบันอย่างต่อเนื่อง; ถ้ากาลเป็น 3 อนาคต กฎระเบียบ คำกริยาภาษาตุรกีประกอบกันในสามองค์ประกอบซึ่งเรียงตามลำดับ: ต้นกำเนิดที่เกิดขึ้นโดยการลบmakหรือmekจากจุดสิ้นสุดของ infinitive นั้น สัญลักษณ์ของความตึงเครียดซึ่งเป็น: สำหรับของขวัญที่เรียบง่าย: -rถ้าก้านจบลงด้วยเสียงสระ; -irตามกฎความกลมกลืนของสระ (ดูด้านล่าง) ถ้าก้านมีพยางค์มากกว่าหนึ่งพยางค์ (เช่นสระ) หรือมาจากหนึ่งในคำกริยาที่ผิดปกติดังต่อไปนี้: almak, bilmek, bulmak, durmak, gmemek, olmak, olmak …

2
สร้างช่องสัญญาณ RGB ที่หายไปใหม่
ดูภาพถ่ายธรรมชาติเหล่านี้ด้วยหนึ่งในช่อง RGB ที่นำออกมาจากพวกเขา: แหล่งที่มา (มีสีแดง): https://en.wikipedia.org/wiki/File:Altja_j%C3%B5gi_Lahemaal.jpg แหล่งที่มา (พร้อมสีเขียว): https://commons.wikimedia.org/wiki/File:2007_mather-lake_hg.jpg แหล่งที่มา (มีสีน้ำเงิน): https://commons.wikimedia.org/wiki/File:Fox_01.jpg แม้ว่าจะไม่มีช่องใดช่องหนึ่งคุณก็สามารถสร้างสีสันที่แน่นอนว่าควรจะเป็นสีอะไรหรืออย่างน้อยก็มีความคิดที่ดีถ้าการสร้างช่องสัญญาณที่หายไปนั้นมีความแม่นยำ ตัวอย่างเช่นนี่คือภาพแรกที่มีช่องสีแดงเพิ่มเข้ามาซึ่งเป็นเพียงสัญญาณรบกวนแบบสุ่ม: ภาพนี้ชัดเจนไม่ใช่การสร้างช่องสีแดงใหม่อย่างแม่นยำ นี่เป็นเพราะภาพถ่ายธรรมชาติไม่ได้ใช้สเปกตรัม RGB ทั้งหมด แต่เป็นเพียงชุดย่อยของ "สีที่ดูเป็นธรรมชาติ" นอกจากนี้เฉดสีแดงจะเป็นไปตามการไล่ระดับสีบางอย่างที่สัมพันธ์กับสีอื่น ๆ งานของคุณคือการสร้างโปรแกรมที่จะถ่ายภาพที่มีช่องหนึ่งออกและพยายามประมาณภาพต้นฉบับให้ใกล้เคียงที่สุดโดยสร้างสิ่งที่เชื่อว่าเป็นช่องที่หายไป โปรแกรมของคุณจะได้คะแนนว่าช่องที่ขาดหายไปนั้นตรงกับช่องของภาพต้นฉบับมากน้อยเพียงใดโดยการนับเปอร์เซ็นต์ของพิกเซลที่มีค่าของช่องนั้นภายใน± 15 (รวม) ของมูลค่าจริงในภาพต้นฉบับ (โดยที่ค่านั้น ช่วงจาก 0 ถึง 255 ในช่องสีมาตรฐาน 8 บิต) กรณีทดสอบที่โปรแกรมของคุณจะได้รับสามารถดูได้ที่นี่ (ไฟล์ซิป 9.04 MB, 6 ภาพ) ขณะนี้มันมีเพียงภาพสามภาพด้านบนและต้นฉบับของพวกเขา แต่ฉันจะเพิ่มอีกไม่กี่นาทีเพื่อสร้างชุดเต็มเมื่อฉันทำเสร็จแล้ว ภาพแต่ละภาพจะถูกลดขนาดลงและถูกตัดเหลือ 1024 x 768 ดังนั้นภาพเหล่านั้นจะมีน้ำหนักเท่ากันในคะแนนของคุณ โปรแกรมที่สามารถทำนายจำนวนพิกเซลมากที่สุดภายในความอดทนที่กำหนด

1
แฉดนตรีกระโดด
Dal SegnoและDa Capoสองมากมักใช้แง่ดนตรี พวกเขาหมายถึง " จากเครื่องหมาย " (𝄋) และ " จากจุดเริ่มต้น " ตามลำดับ นอกจากนี้ยังมีความคิดของcoda (𝄌) ซึ่งเป็นจุดสิ้นสุดของเพลงชิ้นหนึ่ง มันคือสิ่งที่เล่นหลังจาก "ส่วนหลัก" ของชิ้นส่วน DS อัลตอนจบ ( Dal Segno อัลตอนจบ ) ตัวอย่างเช่นหมายถึง "ไปSegnoเล่นจนกว่าคุณจะบอกว่าจะไปตอนจบแล้วกระโดดมี." ลักษณะ งานของคุณในการท้าทายนี้คือการป้อนข้อมูลประกอบด้วยโน้ตจำนวนเท่าใดก็ได้ที่อาจมีหรือไม่มีDal DalnoและDa Capo s และส่งออกเพลงเดียวกันกับการกระโดดข้าม "ดังกล่าว" เพื่อให้การทำซ้ำจะขยายออกเป็นคำต่อคำ อินพุต รหัสของคุณควรใช้เป็นลำดับของบันทึกย่อหรือสัญญาณ (ที่นี่กำหนดเป็นอะไรก็ได้ยกเว้นโน้ต) คั่นด้วยช่องว่างในสตริงเดียว หมายเหตุใด ๆ ของa, b, c, d, e, fหรือgมีตัวเลือก#หรือbผนวก (สำหรับวัตถุประสงค์ของความท้าทายนี้ไม่มีจังหวะ) A …
11 code-golf  music 

4
Quine สองช่อง
วัตถุประสงค์: โค้ดสองโปรแกรมที่แต่ละโปรแกรมแสดงโค้ดต้นฉบับทั้งสองอินเทอร์เรซต่ออักขระเช่นซิปซึ่งเป็น Double-Slit Quine เอาต์พุตจาก Double-slit Quine เริ่มต้นด้วยอักขระตัวแรกจากซอร์สโค้ดของโปรแกรมแรก หากซอร์สโค้ดของโปรแกรมใดโปรแกรมหนึ่งมีความยาวสั้นกว่าโปรแกรมอื่นดังนั้นเอาต์พุตที่เหลือจะต้องถูกเติมด้วยซอร์สโค้ดที่เหลือ กฎ: คุณสามารถใช้ภาษาการเขียนโปรแกรมสำหรับทั้งสองโปรแกรมโดยไม่จำเป็นต้องใช้ภาษาการเขียนโปรแกรมเดียวกันสำหรับทั้งสองโปรแกรม โปรแกรมของคุณไม่ควรรับอินพุตใด ๆ จากไฟล์ชื่อไฟล์เครือข่ายโปรแกรมอื่นหรืออะไรก็ตาม เกณฑ์ที่บังคับ: มีการจับที่ไหนสักแห่งในเอาท์พุทคำว่าQUINEต้องมีอยู่ในตัวอักษรพิมพ์ใหญ่อย่างต่อเนื่อง คุณต้องระบุว่าคุณกำลังใช้ภาษาการเขียนโปรแกรมสองภาษาอะไร หากคุณกำลังใช้ภาษาการเขียนโปรแกรมเดียวกันสำหรับทั้งสองคุณต้องระบุภาษาการเขียนโปรแกรมเดียวเท่านั้น ทั้งสองโปรแกรมควรสามารถดำเนินการหรือตีความตามลำดับซึ่งเป็นอิสระจากโปรแกรมอื่น ตัวอย่าง: มีรหัสนี้ตัวอย่างเช่นแหล่งที่มาของโปรแกรมหนึ่ง : "QIE" มีตัวอย่างซอร์สโค้ดของโปรแกรมที่สอง : "UN" ดังนั้นเอาต์พุต Quine Double-slit ที่ถูกต้องจากทั้งสองโปรแกรมจะต้อง: ""QUINE"" นี่คือโค้ดกอล์ฟอย่างน้อยไบต์เมื่อรวมความยาวของรหัสที่มาทั้งสองและเห็นได้ชัดว่าความยาวของแต่ละโปรแกรมออกชนะ!
11 code-golf  quine 

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