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

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

1
โปรแกรมวิชวลไลเซชันสมการศิลปะ ASCII
การจัดการกับสมการเมื่อไม่มีตัวแก้ไขสมการที่ดีนั้นยุ่งและไม่เป็นที่พอใจ ตัวอย่างเช่นถ้าฉันต้องการแสดงอินทิกรัลและวิธีแก้ปัญหามันอาจมีลักษณะดังนี้: ส่วนประกอบ [x ^ 3 e ^ (- mx ^ 2 b / 2), dx] = - ((2 + b m x ^ 2) / (b ^ 2 * e ^ ((b m x ^ 2) / 2) M * ^ 2)) ที่integrals.wolfram.comสิ่งนี้เรียกว่า "รูปแบบการป้อนข้อมูล" ไม่มีใครชอบเห็นสมการใน "รูปแบบการป้อนข้อมูล" วิธีที่เหมาะในการแสดงภาพสมการนี้คือ: (วุลแฟรมเรียกสิ่งนี้ว่า "รูปแบบดั้งเดิม") …

5
คำนวณลำดับเลขจำนวนเต็มที่ได้จากปัจจัยหลัก
สร้างฟังก์ชั่นการแสดงออกหรือโปรแกรมที่ทำต่อไปนี้: นำปัจจัยสำคัญของตัวเลขใด ๆ มารวมกัน ตัวอย่างเช่นปัจจัยหลักของ 28 คือ 2 2 7 รวมเป็น 11 คูณผลลัพธ์ด้วยจำนวนของปัจจัยหลักสำหรับจำนวนที่กำหนด เช่น 28 มี 3 ปัจจัยหลักซึ่งรวมถึง 11 11 * 3 คือ 33 ทำซ้ำกระบวนการซ้ำโดยจัดเก็บรายการผลลัพธ์ (ซึ่งเริ่มต้นด้วยหมายเลขเดิม) จนกว่าคุณจะไปถึงหมายเลขที่รวมอยู่ในรายการแล้ว หยุดโดยไม่เพิ่มหมายเลขสุดท้ายนั้นเพื่อให้รายการไม่มีรายการที่ซ้ำกัน ความก้าวหน้าของ 28 คือ 28 33 เพราะ 33 ผลลัพธ์ใน 28 อีกครั้ง นับองค์ประกอบในรายการผลลัพธ์ ในกรณีที่ 28 คำตอบคือ 2 นี่คือผลลัพธ์สำหรับ0<n<=10เพื่อให้คุณสามารถตรวจสอบอัลกอริทึมของคุณ 2 1 1 10 1 11 …
10 code-golf  math 

13
ผลิตภัณฑ์ของตัวเลข
สำหรับจำนวนเต็มบวกที่กำหนด N ให้เขียนโปรแกรมที่สมบูรณ์เพื่อหาค่า M ธรรมชาติน้อยที่สุดซึ่งผลคูณของ M เท่ากับ N N น้อยกว่า 1,000,000,000 หากไม่มี M ให้พิมพ์ -1 รหัสของคุณไม่ควรเกิน 10 วินาทีไม่ว่ากรณีใด ๆ Sample Inputs 1 3 15 10 123456789 32 432 1296 Sample Outputs 1 3 35 25 -1 48 689 2899
10 code-golf  math 

12
ดัชนีสมดุลของลำดับ
ดัชนีดุลยภาพของลำดับคือดัชนีที่ผลรวมขององค์ประกอบที่ดัชนีต่ำกว่าเท่ากับผลรวมขององค์ประกอบที่ดัชนีสูงกว่า ตัวอย่างเช่นในลำดับ A: A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0 3 คือดัชนีดุลเนื่องจาก: A[0]+A[1]+A[2]=A[4]+A[5]+A[6] 6 ยังเป็นดัชนีดุลยภาพเนื่องจาก: A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0 (ผลรวมขององค์ประกอบศูนย์คือศูนย์) 7 ไม่ใช่ดัชนีดุลเนื่องจากมันไม่ใช่ดัชนีที่ถูกต้องของลำดับ A แนวคิดคือการสร้างโปรแกรมที่ให้ลำดับ (อาร์เรย์) ส่งคืนดัชนีดุล (ใด ๆ ) หรือ -1 หากไม่มีดัชนีสมดุล
10 code-golf 

9
การแปลงฐานโดยพลการ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา สร้างชุดคำสั่งที่ใช้อาร์เรย์ของบล็อกในระบบฐานตัวเลขหนึ่งและแปลงให้เป็นอาร์เรย์ของบล็อกในระบบฐานตัวเลขอื่น ทั้งจากและสู่ระบบโดยพลการและควรได้รับการยอมรับเป็นพารามิเตอร์ อาเรย์อินพุตอาจเป็นความยาวตามอำเภอใจ (หากใช้ภาษาที่ไม่ได้เก็บความยาวของอาเรย์ไว้กับอาเรย์เช่น C พารามิเตอร์ความยาวควรถูกส่งผ่านไปยังฟังก์ชัน) นี่คือวิธีการใช้งาน: fromArray = [1, 1] fromBase = 256 toBase = 16 result = convertBase(fromArray, fromBase, toBase); สิ่งใดที่ควรส่งคืน[0, 1, 0, 1]หรืออาจเป็นไปได้[1, 0, 1](การนำหน้า0s เป็นทางเลือกเนื่องจากไม่เปลี่ยนค่าของคำตอบ) นี่คือเวกเตอร์ทดสอบบางส่วน: การทดสอบเอกลักษณ์เวกเตอร์ fromArray = [1, 2, 3, 4] fromBase = …

4
ส่วนพหุนามยาว
ใช้การหารพหุนามแบบยาวอัลกอริธึมที่แบ่งชื่อพหุนามสองอันออกมาและได้รับความฉลาด (12x ^ 3 - 5x ^ 2 + 3x - 1) / (x ^ 2 - 5) = 12x - 5 R 63x - 26 ในโปรแกรมของคุณคุณจะแทนพหุนามเป็นอาเรย์โดยมีคำคงที่อยู่ท้ายคำ ตัวอย่างเช่น x ^ 5 - 3x ^ 4 + 2x ^ 2 - x + 1 จะกลายเป็น [1, -3, 0, 2, -1, 1] …

13
วาดนาฬิกา BCD Binary
สร้างนาฬิกาไบนารี BCD ใน ASCII โดยนัยแล้วมันจะแสดงเวลาในคอลัมน์หกจุด: (ที่มา: Wikimedia Commons ) แต่ละคอลัมน์เป็นตัวเลขไบนารีรหัสอ่านชั่วโมงนาทีและวินาทีจากซ้ายไปขวา ชั่วโมงถูกกำหนดในรูปแบบ 24 ชั่วโมง เวลาในการแสดงถูกอ่านจากบรรทัดคำสั่งหรือจาก stdin (แล้วแต่ว่าจะดีกว่า) หากไม่มีข้อมูลควรใช้เวลาปัจจุบันแทน ขนาดเอาต์พุตมีข้อ จำกัด เล็กน้อยที่นี่และเราสามารถใส่ข้อความสองบรรทัดเท่านั้น ดังนั้นคุณจะต้องใส่จุดลงในสองบรรทัดเท่านั้น ตัวละคร., :และ'เข้ามามีประโยชน์ที่นี่ อินพุต เวลาที่จะแสดงในรูปแบบ ISO-8601 คือHH:MM:SSไม่เสี้ยววินาที รูปแบบบังคับ 24 ชั่วโมง อินพุตอาจว่างเปล่าซึ่งในกรณีนี้จะใช้เวลาปัจจุบัน เอาท์พุต มีสองเส้นที่แสดงถึงนาฬิกาไบนารี BCD ดังภาพด้านบน แต่ละบรรทัดมีความยาวหกตัวอักษรและอักขระที่อนุญาตเท่านั้นคือช่องว่างช่วงเวลาเครื่องหมายจุดคู่และเครื่องหมายอะโพสโทรฟี ผู้ชนะ รหัสที่สั้นที่สุดนับเป็นไบต์ชนะ ในวิธีการแก้ปัญหาการโพสต์ชนะครั้งแรก ตัวอย่างอินพุต 1 (ว่าง) ตัวอย่างผลลัพธ์ 1 . ''. :: ตัวอย่างอินพุต 2 17:59:20 …

7
วงกลมของข้อความ
ค้นหาวิธีสร้างวงกลมของรัศมีที่กำหนดโดยใช้อักขระในคอนโซล กรุณาระบุชื่อตัวอักษรและขนาด นอกจากนี้โปรดระบุตัวอย่างของผลลัพธ์อย่างน้อยหนึ่งรายการ ตัวอย่างเช่น: การป้อนข้อมูล: 3 เอาท์พุท: ****** ** ** ** ** * * ** ** ** ** ****** ... เอาล่ะสิ่งที่ดูดีกว่า "วงกลมที่วาดด้วยมือ" ด้วยรัศมี 3 คำถามโบนัส:จุดไข่ปลา :)

20
คำนวณความน่าจะเป็นในการได้ครึ่งหนึ่งของจำนวนหัวเท่ากับการโยนเหรียญ
เขียนโปรแกรมที่ให้เลขจำนวนเต็มบวกเป็นค่าบวกเล็ก ๆ จากอินพุตมาตรฐานคำนวณความน่าจะเป็นที่การโยนเหรียญจำนวนมากส่งผลให้ครึ่งหนึ่งเป็นจำนวนมาก ตัวอย่างเช่นได้รับ 2 เหรียญผลลัพธ์ที่เป็นไปได้คือ: HH HT TH TT ที่ H และ T เป็นหัวและก้อย มี 2 ​​ผลลัพธ์ ( HTและTH) ที่ครึ่งหัวเท่าจำนวนเหรียญ มีทั้งหมด 4 ผลลัพธ์ดังนั้นความน่าจะเป็นคือ 2/4 = 0.5 มันง่ายกว่าที่คิด กรณีทดสอบ: 2 -> 0.5 4 -> 0.375 6 -> 0.3125 8 -> 0.2734375

6
ผลงานออกมาเปลี่ยนแปลง [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา คุณกำลังเขียนโปรแกรมสำหรับการลงทะเบียนเงินสดอัตโนมัติ ผู้ใช้ต้องการการเปลี่ยนแปลงโดยใช้จำนวนเหรียญน้อยที่สุด เขียนโปรแกรมที่ใช้จำนวนเงิน (พูด $ 1.53) และให้การเปลี่ยนแปลงในสกุลเงินสหรัฐฯ - ในกรณีนี้: 1 x หนึ่งดอลลาร์ดอลลาร์ธนบัตร 1 x ห้าสิบเซ็นต์และ 3 x หนึ่งเซ็นต์ โปรแกรมที่สั้นที่สุดจะเป็นผู้ชนะ คะแนนโบนัสสำหรับการสนับสนุนสกุลเงินอื่น ๆ (เช่นสกุลเงินสหราชอาณาจักร) และสกุลเงินที่ผิดปกติ (1, 2, 3 เซ็นต์?) คุณมีสกุลเงินสหรัฐฯเหล่านี้: 1 เซ็นต์ 5 เซ็นต์ 10 เซ็นต์ 25 เซ็นต์ 50 เซ็นต์ 1 ดอลลาร์ (ธนบัตรหรือเหรียญ) 2 ดอลลาร์ …
10 code-golf 

4
Word Spinner Puzzle
นี่คือปริศนาคำศัพท์ โปรแกรมของคุณควรยอมรับสองคำในอินพุตมาตรฐาน คำแรกเป็นคำเริ่มต้น คำที่สองคือคำสุดท้าย จากคำเริ่มต้นคุณจะต้องไปให้ถึงคำสุดท้ายที่เปลี่ยนแปลง / เพิ่ม / ลบทีละตัวอักษร หลังจากการแก้ไขแต่ละครั้งจะต้องสร้างคำที่ถูกต้องใหม่ ตัวอักษรที่เพิ่มเข้ามาจะถูกเพิ่มไปยังจุดเริ่มต้นหรือจุดสิ้นสุด คุณสามารถลบตัวอักษรจากตำแหน่งใดก็ได้ (แต่คำต้องไม่ยาวเกินสามตัวอักษร) หมายเหตุ: คุณไม่สามารถจัดเรียงตัวอักษรใหม่เพื่อสร้างคำ ผลลัพธ์ของโปรแกรมคือลำดับของคำที่จะได้รับจากคำเริ่มต้นไปยังคำสุดท้าย ตัวอย่าง: Input: Post Shot Output: Post cost coat goat got hot shot ผู้ชนะ: โปรแกรมจะต้องทำงานในเวลาที่เหมาะสม (น้อยกว่า 10 วินาที) โปรแกรมที่สามารถสร้างลำดับผลลัพธ์ที่สั้นที่สุดให้กับคำที่ได้รับรางวัล Zink -> ซิลิคอน หากมากกว่าหนึ่งโปรแกรมได้รับลำดับที่สั้นที่สุดดังนั้นโปรแกรมที่สั้นที่สุดในตัวอักษร (ไม่สนใจพื้นที่สีขาว) หากเรายังคงมีวันที่ / เวลาในการส่งโปรแกรมมากกว่าหนึ่งครั้ง หมายเหตุ: การใช้อักษรตัวพิมพ์ใหญ่ไม่เกี่ยวข้อง รหัสในการสร้างพจนานุกรมไม่นับรวมกับค่าใช้จ่ายของรหัส คำและลำดับของรางวัลจะถูกสร้างขึ้นจาก: http://dl.packetstormsecurity.net/Crackers/wordlists/dictionaries/websters-dictionary.gz

14
เดาตัวเลข
ลักษณะ สร้างเกม "เดาหมายเลข" ที่ทำงานได้อย่างสมบูรณ์ เกมนี้เล่นโดยผู้เล่นสองคนดังต่อไปนี้: ผู้เล่นคนหนึ่งเลือกหมายเลข (A) ระหว่าง 1 ถึงN ผู้เล่นสองคนพยายามเดาการเลือกตัวเลข (B) ในช่วงเดียวกัน ครั้งแรกที่ตอบสนองผู้เล่น"สูง" if A > B , "ลด" if A < Bหรือ"ถูกต้อง" if A = B ขั้นตอนที่ 2-3 ทำซ้ำฉันครั้งหรือจนกว่าจะตอบสนอง "ถูกต้อง" หากได้ยิน "ถูกต้อง" ผู้เล่นสองคนชนะมิฉะนั้นเขาจะเสีย รายละเอียด ข้อกำหนดขั้นต่ำสำหรับรายการที่ถูกต้อง: ผู้ใช้สามารถเล่นได้ทั้งแบบผู้เล่นคนเดียวหรือผู้เล่นสองคน คอมพิวเตอร์มีบทบาทอื่น คอมพิวเตอร์จะต้องพยายามคาดเดาจำนวนขณะที่เล่นเป็นผู้เล่นสองคน (ดังนั้นการคาดเดาข้อมูลที่ได้รับหรือการเพิกเฉยต่อข้อมูลที่ให้นั้นเป็นการโกง) N = 100 หรืออินพุตโดยผู้ใช้ (ตัวเลือกของคุณ) I = 5 หรืออินพุตโดยผู้ใช้ …

5
Buzz fizz ใน TMP [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน4 เดือนที่ผ่านมา ปัญหา Fizz Buzz เป็นปัญหาพื้นฐานมากในการแก้ปัญหาที่ผู้ให้สัมภาษณ์ใช้เพื่อกำจัดวัชพืชที่ไม่รู้ว่าจะเขียนโปรแกรมอย่างไร ปัญหาคือ: Set N = [0,100] Set F = x in N where x % 3 == 0 Set B = x in N where x % 5 == 0 Set FB = F intersect B …

7
โดยประมาณที่ห้าที่สมบูรณ์แบบ
เริ่มต้นที่ 1-TET ให้อารมณ์ที่เท่าเทียมกันซึ่งมีการประมาณที่ดีกว่าและดีกว่าของห้าที่สมบูรณ์แบบ (เพียงอัตราส่วน 3/2) ( ลำดับ OEIS A060528 ) คำอธิบายอย่างเป็นทางการของลำดับคัดลอกมาจาก OEIS: รายการของอุณหภูมิเท่ากัน (ส่วนเท่า ๆ กันของระดับแปดเสียง) ซึ่งระดับขั้นที่ใกล้ที่สุดอยู่ใกล้และใกล้เคียงกับอัตราส่วนของสองโทนของความสามัคคีทางดนตรี: ที่สมบูรณ์แบบที่ 4, 4/3 และสมบูรณ์แบบที่ 5, 3/2 โปรดทราบว่าด้วยความสมมาตรความสมบูรณ์แบบที่สี่ไม่สำคัญ สมมติว่าเรารู้ว่า 3 อยู่ในลำดับ ความถี่ใน 3-TET คือ: 2^0, 2^⅓, 2^⅔ ที่ไหน2^⅔เป็นที่ใกล้เคียงลอการิทึม3/2ประมาณของ เป็น 4 ในลำดับหรือไม่ ความถี่ใน 4-TET คือ: 2^0, 2^¼, 2^½, 2^¾ ที่ไหนเป็นประมาณใกล้เคียงที่สุดของ2^½ 3/2สิ่งนี้ไม่ดีไปกว่า2^⅔ดังนั้น 4 จึงไม่อยู่ในลำดับ ด้วยวิธีที่คล้ายกันเรายืนยันว่า 5 …

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

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