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

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

2
สร้างตัวเปรียบเทียบการนับบิตโดยใช้เกตส์ตรรกะ NAND
ตัวเปรียบเทียบการนับบิต (BCC) เป็นวงจรลอจิกที่รับอินพุตจำนวนนับA1, A2, A3, ..., Anรวมทั้งอินพุตที่B1, B2, B4, B8, ...เป็นตัวแทนของตัวเลข จากนั้นก็ให้ผลตอบแทน1ถ้าจำนวนรวมของAปัจจัยการผลิตที่อยู่บนมากกว่าจำนวนที่แสดงในไบนารีโดยBปัจจัยการผลิต (เช่นB1, B2และB8จะทำให้จำนวน11) และ0มิฉะนั้น ตัวอย่างเช่นสำหรับเปรียบเทียบบิตนับที่ใช้5ปัจจัยการผลิตซึ่งA2, A4, A5และB2มีการตั้งค่า1จะกลับ1เพราะมี 3 Aปัจจัยการผลิตที่มีอยู่ซึ่งมากกว่า2(หมายเลขที่แสดงโดยเฉพาะB2การที่) งานของคุณคือการสร้างตัวเปรียบเทียบการนับบิตที่รับทั้งหมด 16 Aอินพุตและ 4 Bอินพุต (แทนบิตจาก1ถึง8) โดยใช้ประตู NAND แบบอินพุตสองช่องเท่านั้นและใช้ประตู NAND น้อยที่สุดเท่าที่จะทำได้ เพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้นคุณสามารถใช้ประตู AND, OR, NOT และ XOR ในแผนภาพของคุณด้วยคะแนนที่สอดคล้องกันดังต่อไปนี้: NOT: 1 AND: 2 OR: 3 XOR: 4 แต่ละคะแนนเหล่านี้สอดคล้องกับจำนวนประตู NAND …

13
ลำดับการมองและพูดอย่างไม่มีจุด
คุณกำลังเกินไปทำให้โปรแกรมที่ใช้เป็นจำนวนเต็มเป็น input และเอาท์พุทแรกสิ่งที่เคยเป็นว่าจำนวนของรูปลักษณ์และบอกว่าลำดับ ตัวอย่างเช่น: $ ./LAS 8 [1,11,21,1211,111221,312211,13112221,1113213211] วิธีที่แน่นอนที่คุณส่งออกรายการนั้นไม่สำคัญตราบใดที่ผู้ใช้สามารถเห็นตัวเลขต่าง ๆ ของลำดับได้อย่างชัดเจน นี่คือการจับแม้ว่า คุณไม่สามารถใช้ตัวแปรที่ผู้ใช้กำหนดเองได้ ตัวอย่างเช่น: ไม่มีตัวแปรรวมถึงตัวแปรที่กำหนดขอบเขต เมื่อคุณมีฟังก์ชั่นพวกเขาไม่สามารถมีชื่อ (ข้อยกเว้นหากภาษาของคุณต้องการฟังก์ชั่นหลักหรือคล้ายกับงานคุณอาจมีฟังก์ชั่นนั้น) เมื่อคุณมีฟังก์ชั่นพวกเขาไม่สามารถมีชื่ออาร์กิวเมนต์ นอกจากนี้คุณไม่สามารถใช้ห้องสมุดที่มีความสามารถเฉพาะที่เกี่ยวข้องกับลำดับการค้นหาและพูดและคุณไม่สามารถเข้าถึงเครือข่ายหรือให้โปรแกรมของคุณมีไฟล์ใด ๆ (แม้ว่าจะสามารถสร้างและใช้งานได้เอง) นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดในตัวละครชนะ!

5
เรียกใช้ปัญหา Monty Hall
มีคำถามเกี่ยวกับการจำลองปัญหา Monty Hallอยู่แล้ว อันนี้ต่างออกไป ผู้ใช้จะเล่นปัญหามอนตี้ฮอลล์ โปรแกรมของคุณจะเล่นบทบาทของโฮสต์ Montybot ถ้าคุณชอบ นี่คือขั้นตอน: เลือก (สุ่ม) ประตูใดในสามประตูที่ซ่อนรางวัล แสดงผลด้วยภาพสามประตู ABCจะทำอะไรง่าย ๆ หรือสามสี่เหลี่ยม หรืออะไรก็ตาม รับอินพุตเลือกหนึ่งในประตู นี่อาจเป็นการคลิกเมาส์ที่ประตูที่เลือกหรือป้อนตัวอักษรเดียว ( B) หรืออะไรก็ได้ เปิดประตูอีกบาน คุณไม่ได้เปิดประตูที่เลือก คุณไม่ได้เปิดประตูเพื่อซ่อนรางวัลหลัก นั่นอาจหมายความว่าคุณไม่มีทางเลือกหรืออาจหมายความว่าคุณมีสองทางเลือก หากคุณมีสองทางเลือกให้เลือกแบบสุ่ม แสดงให้เห็นด้วยสายตาว่าประตูถูกเปิดออกและไม่มีรางวัลใดซ่อนอยู่ข้างหลัง สำหรับโปรแกรมอินพุต / เอาท์พุตแบบข้อความอาจเป็นเรื่องง่ายเพียงแค่เอาท์พุทAB0เพื่อแสดงว่าประตูCถูกเปิดออก รู้สึกอิสระที่จะสร้างสรรค์มากขึ้น หากคุณกำลังทำโปรแกรม GUI ตัวเลือกการแสดงผลของคุณนั้นขึ้นอยู่กับคุณ ยอมรับอินพุตจากผู้ใช้ ผู้ใช้สามารถป้อนข้อมูลstickหรือswitch(หรือสำหรับโปรแกรม GUI คลิกที่ปุ่มหรือใช้อินพุตที่เลือกหรืออะไรก็ได้) หากผู้ใช้เข้าสู่สิ่งอื่นนอกเหนือจากstickหรือswitchการใช้งานจะไม่ได้กำหนด ทำสิ่งที่คุณต้องการ. เอาท์พุทข้อความหรือYou won!You lost สิ้นสุด progam กฎ: เมื่อคุณต้องเลือกสุ่มเลือกไม่ต้องกังวลเกี่ยวกับการสุ่มเข้ารหัส rand()ฟังก์ชั่นใด ๆ …
11 code-golf 

5
ด้านหน้าของออยเลอร์ 9
Project Eulerเป็นอีกหนึ่งเว็บไซต์เกมสนุกที่ท้าทายในการแข่งขัน ปัญหาแรกเริ่มเบา ๆ แต่แล้วระเบิดในความยากลำบากเกินร้อยแรกหรือมากกว่านั้น ปัญหาสองสามข้อแรกมีความเหมือนกันบางอย่างระหว่างการค้นหาจำนวนเฉพาะทวีคูณและปัจจัยดังนั้นอาจมีโอกาสในการนำไมโครโค้ดกลับมาใช้ใหม่ที่น่าสนใจในการเล่นด้วย ดังนั้นการเขียนโปรแกรมที่แก้โดยใช้ไม่มีเบื้องต้นความรู้ใด ๆ ในครั้งแรก 9 ปัญหา ปัญหาถูกเลือกโดยผู้ใช้ ASCII '1' ถึง '9', รวม, ผ่านอาร์กิวเมนต์เมื่อมีการโทรหรืออินพุตมาตรฐานในขณะที่ทำงาน (คุณสามารถคำนวณคำตอบทั้งหมด แต่แสดงเพียงคำตอบเดียว) คำตอบที่ถูกต้องจะต้องพิมพ์บนบรรทัดใหม่ในฐาน 10 โดยใช้ ASCII โปรแกรมควรดำเนินการในเวลาน้อยกว่าหนึ่งนาที (ข้อเสนอแนะ PE) โดย "ไม่มีเบื้องต้นความรู้" ผมหมายถึงรหัสของคุณจะต้องได้มาซึ่งคำตอบที่ไม่มีทรัพยากรภายนอก‡ โปรแกรมเช่นนี้จะถือว่าไม่ถูกต้อง (ไม่อย่างนั้นก็ถูกต้องสมมติว่าฉันไม่ได้พิมพ์ผิด): print[233168,4613732,6857,906609,232792560,25164150,104743,40824,31875000][input()-1] ‡สำหรับปัญหา # 8 (เกี่ยวข้องกับตัวเลข 1,000 หลัก) คุณสามารถอ่านตัวเลขจากไฟล์ภายนอกเพียงแค่ระบุวิธีการจัดเก็บ (เช่นไบนารี, ข้อความ, ส่วนหัว, โมดูลที่นำเข้า) และ / หรือรวมไว้ในคำตอบของคุณ ( ไม่นับรวมกับความยาวของโปรแกรมหลัก) คะแนนเป็นไบต์ …
11 code-golf  math 

1
ค้นหาความเคลื่อนไหวที่ดีที่สุดในเกม "จับคู่ 3"
ความท้าทายของคุณในวันนี้คือการรับข้อมูลเช่นนี้: fbcfbee ffcabbe debceec bccabbe edcfbcd daeaafc eebcbeb และส่งออกการเคลื่อนไหวที่ดีที่สุดในเกม Bejeweled ที่จะจับคู่ตัวอักษรสามตัวขึ้นไปเช่นนี้ (หมายเหตุเมืองหลวงBและC): fbcfbee ffcabbe deBCeec bccabbe edcfbcd daeaafc eebcbeb รายละเอียดแบบเต็ม: อินพุตจะเป็นnบรรทัดของnตัวอักษรตัวพิมพ์เล็กแต่ละตัว (ซึ่งnอาจเป็นจำนวนใดก็ได้) ผลลัพธ์จะเป็นท่าที่ดีที่สุดที่คุณสามารถทำได้ในเกมจับคู่ -3 โดยมีตัวอักษรสองตัวที่คุณต้องการเปลี่ยนเป็นตัวพิมพ์ใหญ่ การจับคู่ควรมีลำดับความสำคัญต่อไปนี้ (ในตัวอย่างเหล่านี้.บ่งชี้ว่าช่องสี่เหลี่ยมที่ไม่สำคัญ): ห้าในแถว xxYxx ..X.. เสียห้าในแถว X.. Yxx x.. x.. หรือ .X. xYx .x. .x. สี่ในแถว xYxx .X.. สามในแถว xYx .X. คุณจะต้องค้นหาการจับคู่ของลำดับความสำคัญสูงสุดและส่งออก หากมีการจับคู่ที่มีลำดับความสำคัญเท่ากันหลายรายการคุณสามารถส่งออกรายการใดรายการหนึ่งได้ จะมีการแข่งขันอย่างน้อยหนึ่งครั้งเสมอ (โปรแกรมของคุณสามารถแตกถ้าไม่มีการแข่งขันหรือทำอะไรก็ได้ที่คุณต้องการ) …
11 code-golf  game 

20
ตรวจสอบว่าจำนวนเต็มเป็น palindrome ใน radix ที่กำหนด (ฐาน)
เขียนโปรแกรมที่อ่านจาก stdin สองจำนวนเต็มแต่ละบรรทัดใหม่ถูกยกเลิกหลังจากนี้เรียกว่า "number" และ "radix" และ: พิมพ์ข้อความการแก้ไขใด ๆ ที่คุณต้องการถ้าตัวเลขเป็น palindrome ในสมุฎฐานที่ (เช่นtrue, t, 1) พิมพ์ข้อความใด ๆ ที่แตกต่างกันคงที่คุณต้องการถ้าจำนวนไม่ได้เป็น palindrome ในสมุฎฐานที่ (เช่นfalse, f, 0ฯลฯ ) ข้อความเหล่านี้จะต้องเหมือนกันต่อการวิ่งแต่ละครั้ง แต่ไม่มีกฎเกี่ยวกับสิ่งที่พวกเขาจะต้อง (สิ่งที่ดีที่สุดสำหรับการเล่นกอล์ฟ) คุณอาจจะสมมติว่าอินพุตนั้นถูกต้องซึ่งเป็นจำนวนเต็มบวกสองตัว "จำนวน" จะไม่เกิน2147483647"กี่" 32767จะไม่เกิน คุณไม่สามารถใช้ทรัพยากรภายนอกได้ แต่คุณสามารถใช้ฟังก์ชันคณิตศาสตร์ใดก็ได้ที่มีให้โดยค่าเริ่มต้นในภาษาของคุณ หมายเหตุ: radix เป็นเพียงฐานของตัวเลข ตัวอย่างการวิ่ง: 16 10 false 16 3 true 16 20 true 121 10 true 5 …

4
สร้าง Go AI ที่กำหนดขึ้น
นี่เป็นปัญหาที่น่าสนใจที่ฉันนึกถึงเมื่อวันก่อนซึ่งเกี่ยวข้องกับบิตของโค้ดที่แข่งขันกับบิตของโค้ดอื่น ๆ ไม่ใช่แค่ในคุณสมบัติที่โค้ดมี แต่โดยการเล่นเกมกับบิตของโค้ดอื่น ๆ งานของคุณคือการสร้างโปรแกรมที่ใช้สถานะปัจจุบันของกระดาน Go และกำหนดสิ่งที่จะทำหรือผ่าน โปรแกรมของคุณจะยอมรับสิ่งต่อไปนี้เป็นอินพุต: 19 บรรทัดแต่ละตัวมี 19 ตัวอักษรเป็นตัวแทนของชิ้นส่วนปัจจุบันบนกระดานไป อักขระของ0หมายถึงสี่เหลี่ยมจัตุรัสที่ว่างเปล่า1คือสีดำและ2เป็นสีขาว ตัวเลขสองหมายเลขแสดงถึงจำนวนชิ้นนักโทษที่ผู้เล่นแต่ละคนมี (สีดำและสีขาว) หมายเลขหนึ่งที่แสดงถึงการหมุน (สีดำหรือสีขาว) ดังกล่าว1เป็นสีดำและ2เป็นสีขาว และส่งออกอย่างใดอย่างหนึ่งต่อไปนี้: คู่ของพิกัดที่a bแสดงถึงพิกัดที่จะย้าย 1 1คือจตุรัสบนซ้ายและตัวเลขที่หนึ่งและที่สองหมายถึงการเลื่อนลงและไปทางขวาตามลำดับ สตริงpassซึ่งแสดงถึงการย้ายที่จะผ่าน ตัวอย่างเช่นโปรแกรมอาจได้รับอินพุตต่อไปนี้: 0000000000000000000 0000000000000000000 0000000000000000000 0001000000000002000 0000000000000000000 0000000000000000000 0001210000000000000 0000100000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0002000000000001000 0000000000000000000 0000000000000000000 0000000000000000000 0 0 1 ซึ่งแสดงถึงเกมที่มีการเคลื่อนไหวเพียงไม่กี่ครั้ง จากนั้นโปรแกรมอาจแสดงผล6 …

6
ปาเป้าพบ Codegolf
ฉันคิดว่าทุกคนคุ้นเคยกับปาเป้าบางคนไม่เข้าใจคะแนนดังนั้นสำหรับคนเหล่านี้ที่นี่มีลิงก์ที่มีประโยชน์ คณะกรรมการ สามารถเปรียบเทียบ dartboard กับการตัดวงกลมใน 20 ชิ้น แต่ละชิ้นแบ่งออกเป็น 4 ส่วน วงแหวนรอบนอกขนาดเล็กที่เรียกว่า double (points x2) แหวนขนาดใหญ่ที่เรียกว่าเดี่ยว (คะแนน x1) วงแหวนขนาดเล็กอีกอันหนึ่งเรียกว่าสามเท่า (คะแนน x3) วงแหวนขนาดใหญ่อีกอันหนึ่งเรียกว่าซิงเกิล (คะแนน x1) ในช่วงกลางของบอร์ดจะมีวงแหวนเพิ่มอีก 2 อันสีเขียวและสีแดง (บอร์ดแบบคลาสสิก) วงแหวนสีแดงตรงกลางของกระดานเรียกว่าเป้าหรือกระทิงคู่และดีสำหรับ 50 คะแนน อันนี้ถือว่าเป็นสองเท่าและเพราะมันอนุญาตให้เช็คเอาต์กับมัน แหวนสีเขียวที่เรียกว่าวัวกระทิงตัวเดียวหรือเพียงแค่ 25 ตัวและนับเป็นหนึ่งเดียว ท้าทาย ค้นหาความเป็นไปได้ในการชำระเงินทั้งหมดที่มี 3 ลูกดอกหรือน้อยกว่า ผู้ใช้สามารถป้อนจำนวนเต็มและคุณจะต้องตรวจสอบว่าเป็นไปได้ที่จะได้รับคะแนน 0 กับ 3 ลูกดอก (หรือน้อยกว่า) ตัวอย่าง ตัวอย่างที่ 1: Input: 170 Output: …
11 code-golf 

4
ผลิตจำนวน 2014 จากภาพ
ในการท้าทายปี 2014 Michael Stern แนะนำให้ใช้ OCR เพื่อแยกวิเคราะห์ในปี 2014 ฉันต้องการที่จะท้าทายนี้ในทิศทางที่แตกต่าง ใช้ OCR ในตัวจากภาษา / ไลบรารีมาตรฐานที่คุณเลือกออกแบบภาพที่เล็กที่สุด (เป็นไบต์) ซึ่งแยกวิเคราะห์ลงในสตริง ASCII "2014" รูปภาพดั้งเดิมของ Stern คือ 7357 ไบต์ แต่ด้วยความพยายามเพียงเล็กน้อยก็สามารถบีบอัดได้อย่างไม่สูญเสียไปถึง 980 ไบต์ ไม่ต้องสงสัยเลยว่ารุ่นขาวดำ (181 ไบต์) ทำงานได้ดีกับรหัสเดียวกัน กฎ: แต่ละคำตอบควรให้ภาพขนาดของมันเป็นไบต์และรหัสที่จำเป็นสำหรับการประมวลผล ไม่อนุญาต OCR ที่กำหนดเองด้วยเหตุผลที่ชัดเจน ... ! อนุญาตรูปแบบภาษาและรูปภาพที่เหมาะสม แก้ไข:เพื่อเป็นการตอบสนองต่อความคิดเห็นฉันจะขยายสิ่งนี้เพื่อรวมไลบรารี่ที่มีอยู่ก่อนหน้านี้หรือแม้แต่http://www.free-ocr.com/สำหรับภาษาเหล่านั้นที่ไม่มี OCR

23
คำนวณสี่เหลี่ยมทั้งหมดจนถึง x โดยใช้การบวกและการลบเท่านั้น
เป้าหมายคือการคำนวณกำลังสองทั้งหมดxด้วยการบวกและการลบ กฎ: รหัสจะต้องเป็นฟังก์ชั่นที่ใช้จำนวนสแควร์สทั้งหมดในการสร้างและส่งกลับอาร์เรย์ที่มีสแควร์ทั้งหมด คุณไม่สามารถใช้สตริงโครงสร้างการคูณการหารหรือฟังก์ชันในตัวสำหรับการคำนวณกำลังสอง คุณสามารถใช้อาร์เรย์จำนวนเต็ม (จำนวนเต็ม) การบวกการลบเท่านั้น ไม่มีผู้ให้บริการรายอื่นอนุญาต! นี่เป็นคำถามเกี่ยวกับcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!
11 code-golf  math  number 

7
Code Golf: ไดเรกทอรีต้นไม้ -> ต้นไม้
การประกวด (!): ในภาษาที่คุณเลือกให้เขียนโปรแกรมที่จะสำรวจทรีไดเรกทอรีของไดเรกทอรีที่กำหนดและส่งออกทรี (เช่นอาร์เรย์ของอาร์เรย์) ที่สอดคล้องกับมัน สมมติว่าไดเรกทอรีเป็นตัวแปรที่กำหนดไว้ล่วงหน้า D. จำนวนตัวอักษรที่เล็กที่สุดชนะ กฎ: คุณต้องใช้การสอบถามซ้ำ ดูกฎ หมายเหตุ: สมมติว่าไม่มีการจำกัดความลึกของการเรียกซ้ำ กล่าวอีกนัยหนึ่งรหัสของคุณต้องทำงานกับไดเรกทอรีต้นไม้ขนาดเล็กและในหลักการสำหรับต้นไม้ใหญ่ ตัวอย่างเช่น ต้นไม้ไดเรกทอรีคือ dir1 ├── dir11 │ ├── file111 │ └── file112 ├── dir12 │ ├── file121 │ ├── file122 │ └── file123 ├── file11 ├── file12 └── file13 ต้นไม้ออกคือ [[[],[]],[[],[],[]],[],[],[]] กอล์ฟรหัสแรกที่นี่เพื่อทราบว่าฉันกำลังทำอะไรผิด มีความสุข :)

1
สร้างสคริปต์เพื่อสร้าง Deep Note
THX ทราบลึกเป็นหนึ่งในเสียงที่รู้จักมากที่สุดในเทคโนโลยีการผลิตเสียง / วิดีโอ ตามผู้สร้างมันใช้รหัส Cประมาณ20,000 บรรทัดเพื่อสร้างผลลัพธ์สุดท้าย เราทำได้ดีกว่านั้น งานของคุณคือการเขียนสคริปต์ในภาษาใด ๆ ที่จะสร้างเสียง (ไปยังไฟล์หรือไปยังฮาร์ดแวร์โดยตรง) ที่เหมาะกับคำอธิบายเครื่องหมายการค้าของเสียง THX ซึ่งจัดทำโดยสำนักงานสิทธิบัตรและเครื่องหมายการค้าของสหรัฐอเมริกา : ชุดรูปแบบโลโก้ THX ประกอบด้วย 30 เสียงในเจ็ดมาตรการเริ่มต้นในช่วงแคบ ๆ 200 ถึง 400 Hz และค่อย ๆ เบี่ยงไปที่สนามที่เลือกไว้ล่วงหน้าซึ่งครอบคลุมสามอ็อกเทฟ 30 เสียงเริ่มต้นที่ระดับเสียงระหว่าง 200 Hz ถึง 400 Hz และมาถึงระดับเสียงที่เลือกไว้ล่วงหน้าซึ่งประกอบไปด้วยสามอ็อกเทฟโดยการวัดที่สี่ ระดับเสียงสูงที่สุดจะถูกลดทอนเล็กน้อยในขณะที่มีจำนวนเสียงสองเสียงในระดับต่ำสุดสองเท่า โปรดทราบว่า "สนามที่เลือกไว้ล่วงหน้า" จะต้องเหมือนกับสนามในโน้ต THX จริงซึ่งอยู่ในคีย์ของ E Flat รหัสที่สั้นที่สุดที่จะทำในภาษาใดก็ได้ชนะ
11 code-golf 

4
Rosetta Stone Challenge: การแม็ปยีน
เป้าหมายของการท้าทาย Rosetta Stone คือการเขียนวิธีแก้ปัญหาในภาษาต่างๆให้ได้มากที่สุด แสดงการเขียนโปรแกรมได้หลายภาษาของคุณ! ความท้าทาย ความท้าทายของคุณคือการใช้โปรแกรมที่จะทำแผนที่ยีนโดยใช้ความถี่ข้ามมากกว่าที่เป็นหลายภาษาการเขียนโปรแกรมที่เป็นไปได้ คุณได้รับอนุญาตให้ใช้ฟังก์ชั่นไลบรารีมาตรฐานทุกประเภทที่ภาษาของคุณมีเนื่องจากนี่เป็นการนำเสนอภาษาเป็นส่วนใหญ่ "การแม็ปยีนคืออะไร" การทำแผนที่ยีนเป็นกระบวนการของการค้นหาตำแหน่งสัมพัทธ์ของยีนในโครโมโซม สิ่งนี้ทำได้โดยการวัดความถี่การข้ามผ่านของคู่ของยีนเท่ากับร้อยละของลูกหลานที่คู่นั้นไม่ได้รับการถ่ายทอดร่วมกัน ระยะทางวัดในหน่วยแผนที่โดยมีหนึ่งหน่วยแผนที่เท่ากับหนึ่งเปอร์เซ็นต์ของการข้ามผ่าน ตัวอย่างเช่นหากยีน C & D มีความถี่ข้าม 11% แล้วยีน C คือระยะทาง 11 หน่วยแผนที่อยู่ห่างจากยีน D การทำแผนที่ยีนจะดำเนินการกับยีนหลายคู่เพื่อกำหนดลำดับญาติของพวกเขา ตัวอย่างเช่นข้อมูล(A,B,12) (D,B,7) (A,D,5) (D,H,2) (H,B,9)สร้างแผนที่ต่อไปนี้: A..H.D......B คุณอาจสังเกตเห็นว่าB......D.H..Aเป็นแผนที่ที่ถูกต้อง นี่เป็นเรื่องจริงเพราะไม่สามารถแยกแยะความแตกต่างระหว่างกระจกเงา โปรแกรมของคุณสามารถเลือกได้ว่าจะเอาท์พุทใด แม้ว่าอินพุตอาจไม่รวมทุกคู่ที่เป็นไปได้ แต่จะมีข้อมูลเพียงพอที่จะสร้างแผนที่ใหม่ทั้งหมด (ดังนั้นจะไม่มีเอาต์พุตที่ถูกต้องมากกว่า 2) นอกจากนี้ตัวเลขที่มักจะทำงานออก (ไม่เหมือนชีววิทยาจริง) (A,B,3) (B,C,4) (A,C,13)หมายความว่าคุณจะไม่ได้สิ่งที่ต้องการ อินพุต อินพุตจะเริ่มต้นด้วยตัวเลขnตามด้วยรายการของยีน (ตัวอักษรตัวพิมพ์ใหญ่) จากนั้นจะมีnข้อมูลสามส่วน แต่ละชุดจะประกอบด้วยยีนหนึ่งคู่และการข้ามผ่านความถี่ (ระยะทาง) 3,P,H,I …

2
ใช้ superoptimizer สำหรับการเพิ่ม
งานคือการเขียนรหัสที่สามารถหาสูตรตรรกะขนาดเล็กสำหรับจำนวนบิต ความท้าทายโดยรวมคือการให้โค้ดของคุณค้นหาสูตรเชิงตรรกะที่มีความเป็นไปได้น้อยที่สุดเพื่อตรวจสอบว่าผลรวมของตัวแปร y ไบนารี 0/1 เท่ากับค่า x หรือไม่ ให้เราเรียกตัวแปร x1, x2, x3, x4 เป็นต้นนิพจน์ของคุณควรเท่ากับผลรวม นั่นคือสูตรตรรกะควรเป็นจริงถ้าหากผลรวมเท่ากับ x นี่เป็นวิธีที่ไร้เดียงสาที่จะเริ่มต้นด้วย พูดว่า y = 15 และ x = 5. เลือกวิธีทั้งหมด 3003 วิธีในการเลือกตัวแปร 5 ตัวและแต่ละอันสร้างประโยคใหม่ด้วย AND และของตัวแปรเหล่านั้นและ AND ของตัวแปรที่เหลือ คุณจบด้วย 3003 ส่วนของความยาวแต่ละข้อ 15 สำหรับค่าใช้จ่ายทั้งหมด 45054 คำตอบของคุณควรเป็นนิพจน์เชิงตรรกะของการเรียงลำดับที่สามารถวางลงในไพ ธ อนพูดดังนั้นฉันสามารถทดสอบได้ หากคนสองคนมีขนาดเท่ากันรหัสที่ทำงานเร็วที่สุดจะเป็นผู้ชนะ คุณได้รับอนุญาตให้แนะนำตัวแปรใหม่ในโซลูชันของคุณ ดังนั้นในกรณีนี้สูตรตรรกะของคุณประกอบด้วยตัวแปร y แบบไบนารี, x และตัวแปรใหม่บางอย่าง …

1
สร้างตั๋วลอตเตอรีที่น้อยที่สุดเพื่อเล่นเพื่อให้มีหมายเลขที่ดีอย่างน้อย N ตัว
นี่เป็นวิชาคณิตศาสตร์ที่ค่อนข้างซับซ้อน แต่น่าสนใจมาก (รู้จักกันในชื่อ"การแก้ปัญหา" ) และฉันต้องการให้คุณช่วยนำไปใช้ ลองนึกภาพเกมลอตเตอรีที่แต่ละตั๋วต้องเลือก 5 ตัวเลขสุ่มในชุดของ 50 หมายเลข (จาก 1 ถึง 50) มันค่อนข้างง่ายที่จะทราบความน่าจะเป็นของตั๋วที่ชนะหรือความน่าจะเป็นที่จะมีตัวเลขที่ดี 1, 2, 3 หรือ 4 นอกจากนี้ยังค่อนข้างง่ายในการ "สร้าง" ตั๋วทั้งหมดที่มีหมายเลขที่ดี 1, 2, 3, 4 คำถามของฉัน (และการท้าทายรหัส) เกี่ยวข้องกับสิ่งนี้ แต่แตกต่างกันเล็กน้อย: ฉันต้องการซื้อตั๋วลอตเตอรี (น้อยที่สุดเท่าที่จะเป็นไปได้) เช่นอย่างน้อยหนึ่งตั๋วของฉันมี 3 หมายเลขที่ดี ท้าทาย เป้าหมายของคุณคือการใช้โซลูชันทั่วไป (เป็นโปรแกรมหรือเพียงฟังก์ชั่น) เช่นนี้ในภาษาใด ๆ : // Input: 3 prameters min_lottery_tickets(total_numbers_to_choose_from, how_many_numbers_to_choose, how_many_good_numbers_i_want) สำหรับตัวอย่างข้างต้นหนึ่งจะต้องโทร: …

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