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

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

30
การเพิ่มเอาต์พุตจากอินพุตน้อยที่สุด
เห็นได้ชัดว่าการเล่นโค้ดเป็นเรื่องเกี่ยวกับการใช้ประโยชน์จากโค้ดให้น้อยที่สุด ใครสนใจว่าผลผลิตจริงคืออะไร ในขณะที่เรามีความท้าทายสำหรับอัตราส่วนอินพุทต่อเอาท์พุทที่สูงที่สุดนี่เป็นการเรียกเอาท์พุทจำกัด และกำหนดค่าส่วนใหญ่ด้วยความยาวโค้ดที่กำหนด กระแทกแดกดันความท้าทายนี้เป็นแล้วไม่รหัสกอล์ฟ กฎ: เขียนตัวอย่างอิสระสามชุด (ไม่ใช่โปรแกรม / ฟังก์ชั่นเต็มรูปแบบ) ตัวอย่างต้องเป็นภาษาเดียวกัน คะแนนคือจำนวนเอาท์พุทไบต์ทั้งหมด ผลลัพธ์อาจอยู่ในรูปแบบของผลลัพธ์ STDOUT เป็นต้น ตัวอย่างอาจไม่ทำให้เกิดข้อผิดพลาดใด ๆ ตัวอย่างอาจทำให้เกิดรูปแบบที่แตกต่างกันของการส่งออก อักขระบรรทัดใหม่ที่ต่อท้ายจะไม่ถูกนับ ตัวอย่างแรกจะต้องมี 1 ไบต์หรือความยาวขั้นต่ำที่สร้างอย่างน้อย 1 ไบต์ของเอาต์พุต ตัวอย่างที่สองจะต้องยาวกว่าหนึ่งไบต์ ตัวอย่างที่สามจะต้องยาวกว่าสองไบต์แรก

6
ค้นหาการจับคู่สูงสุดในความสัมพันธ์ของการหาร
คุณได้รับชุดจำนวนเต็มบวก คุณต้องจัดเรียงให้เป็นคู่เช่น: แต่ละคู่มี 2 หมายเลขโดยหนึ่งในนั้นเป็นหลายคู่ ตัวอย่างเช่น 8 คือผลคูณของ 4 และ 9 คือผลคูณของ 9 หากจำนวนเดียวกันเกิดขึ้นหลายครั้งในชุดเริ่มต้นก็สามารถใช้งานได้หลายครั้งในคู่นั้น จำนวนสามารถจับคู่กับการเกิดขึ้นของหมายเลขเดียวกันอีก ได้รับจำนวนคู่ที่เป็นไปได้สูงสุด เอาต์พุตต้องเป็นจำนวนคู่ รหัสที่สั้นที่สุดชนะ ข้อมูลตัวอย่าง 2,3,4,8,9,18 -> 3 7,14,28,42,56 -> 2 7,1,9,9,4,9,9,1,3,9,8,5 -> 6 8,88,888,8888,88888,888888 -> 3 2,6,7,17,16,35,15,9,83,7 -> 2

1
ฉันชอบที่จะย้ายมันย้ายมัน
กษัตริย์จูเลียนต้องผ่านป่า แต่เขารู้สึกขี้เกียจ เขาต้องการให้คอมพิวเตอร์คำนวณเส้นทางผ่านป่าให้เขาได้ การใช้ STDIN รับแผนที่ของป่าเพื่อให้คอมพิวเตอร์ร้าว มันจะเป็นไปตามรูปแบบต่อไปนี้: 01001E 010110 000P00 1100J1 S00111 วิธีการทำงานของแผนที่ป่าคือ: 0 เป็นพื้นดินที่จูเลียนสามารถเคลื่อนย้ายไปตาม 1 เป็นป่าทึบที่ไม่สามารถใช้ได้ P เป็นพื้นที่ที่มีผู้ล่าอยู่ในนั้นคุณต้องหลีกเลี่ยงค่าใช้จ่ายทั้งหมด Jเป็นป่าค่อนข้างหนา สมุนของจูเลียนสามารถผ่านหนึ่งในเหล่านี้ก่อนที่จะเหนื่อย Sจูเลียนเริ่มต้นที่ไหน สามารถอยู่ที่ใดก็ได้บนแผนที่ Eจูเลียนต้องการไปที่ไหน จุดสิ้นสุดของเส้นทาง นอกจากนี้ยังสามารถไปได้ทุกที่บนแผนที่เช่นเดียวกับไทล์อื่น ๆ ตัวละครทุกตัวเป็นกระเบื้องบนแผนที่ ตัวแบ่งบรรทัดระบุแถวใหม่ของไทล์ หาก STDIN ในภาษาของคุณไม่รองรับการขึ้นบรรทัดใหม่การขึ้นบรรทัดใหม่จะต้องถูกแทนที่ด้วยช่องว่างเพื่อแสดงว่าแถวใหม่ หากต้องการย้ายระหว่างไทล์คุณต้องส่งออกสตริงโดยใช้ STDOUT ที่มีอักขระพิเศษดังต่อไปนี้: F - ส่งต่อ B - ย้อนกลับ L - หมุน Julian ไปทางซ้าย (90 องศาทวนเข็มนาฬิกา) R - …
16 code-golf 

5
มองไม่เห็นป่าไม้สำหรับกุญแจ
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการว่างของจำนวนเต็มในรูปแบบที่สะดวกใด ๆ ที่เหมาะสมเช่นหรือ4, 0, -1, -6, 2[4 0 -1 -6 2] พิมพ์หรือส่งคืนสตริงที่แสดงรายการเป็นฟอเรสต์ ASCII ที่แต่ละหมายเลขกลายเป็นต้นไม้ที่มีความสูงตามสัดส่วน ต้นไม้แต่ละต้นใช้ข้อความสี่คอลัมน์ในเอาต์พุตดังนี้: จำนวนเต็มบวก N จะกลายเป็นต้นไม้ที่มีฐานเป็น__|_และบนคือ ^ มีชั้นของ N / \ในระหว่าง ตัวอย่างเช่นเมื่อ N = 1 ต้นไม้คือ ^ / \ __|_ เมื่อ N = 2 ต้นไม้คือ ^ / \ / \ __|_ เมื่อ N = 3 ต้นไม้คือ ^ / …

4
เข็มนาฬิกา Syzygy
(ต้องขอบคุณ El'endia Starman และ Sp3000 ที่ช่วยฉันออกแบบเคสสำหรับเรื่องนี้!) กำหนดจำนวนเต็มบวกnและรายการของช่วงเวลาการหมุนจำนวนเต็มบวกสำหรับจำนวนเข็มนาฬิกา (เป็นวินาที) ส่งออกจำนวนเต็มบวกที่เล็กที่สุดxโดยที่xวินาทีหลังจากเริ่มนาฬิกาโดยที่เข็มทุกเข็มnอยู่ในแนวเดียวกัน พวกเขาไม่จำเป็นต้องจัดตำแหน่งที่ตำแหน่งเริ่มต้น - ตำแหน่งใด ๆ ก็ดีตราบเท่าที่xเป็นจำนวนเต็มและถูกย่อให้เล็กสุด นอกจากนี้ไม่จำเป็นต้องจัดตำแหน่งมือทั้งหมดในตำแหน่งเดียวกัน - สำหรับn=4วิธีแก้ปัญหาที่จัดกลุ่มมือ 2 กลุ่ม 2 กลุ่มให้ถูกต้อง กลุ่มจะต้องมีขนาด 2 หรือมากกว่า - มือที่ไม่ได้จัดแนวสองมือนั้นไม่ถือเป็น 2 กลุ่มของ 1 มือที่ถูกปรับแนวเดียวดังนั้นจึงไม่ใช่วิธีแก้ปัญหาที่ถูกต้อง คุณอาจสันนิษฐานว่าเฉพาะอินพุตที่เป็นไปได้ที่จะมีการnจัดตำแหน่งของมืออย่างแน่นอนหลังจากจำนวนเต็มของวินาทีจะได้รับ - 2, [3,3,3]ไม่ใช่อินพุตที่ถูกต้องเพราะหลังจากจำนวนวินาทีใด ๆ ทั้ง 3 มือจะได้รับการจัดตำแหน่งและดังนั้นจึงเป็นไปไม่ได้ เพื่อให้ได้ตำแหน่งที่ตรงกัน 2 ตำแหน่ง ตัวอย่าง: 2, [3,4] -> 12 (the only option is …
16 code-golf  math 

4
ทำให้อเมริกา (n Maps) ยอดเยี่ยมอีกครั้ง
โบนัสใหม่! (ดูด้านล่าง) ทีมทำแผนที่ของ Ben Carson ที่หวังว่าจะได้รับปัญหาจากแผนที่ (ภาพทางWashington Post ): ปัญหาคือพวกเขาไม่มีเครื่องมือที่เหมาะสมสำหรับงาน™ พวกเขาต้องการโปรแกรมที่กะทัดรัดและน่าเชื่อถือที่สุดเท่าที่จะเป็นไปได้ดังนั้นพวกเขาจึงไม่ต้องกังวลกับการทำแผนที่อีกครั้ง นั่นเป็นเหตุผลที่พวกเขาจ้างคุณ คุณต้องใช้แผนที่นี้และส่งออกอีกครั้งด้วยสีที่ต้องการ: โดย Theshibboleth [GFDL ( http://www.gnu.org/copyleft/fdl.html ) หรือ CC-BY-SA-3.0 ( http://creativecommons.org/licenses/by-sa/3.0/)ผ่านทาง Wikimedia Commons หากคุณไม่ทราบว่าอยู่ที่ไหนทุกรัฐ (เพราะคุณไม่ใช่คนอเมริกัน ... หรือคุณเป็นคนอเมริกัน) นี่คือแผนที่ที่มีชื่อทั้งหมด (วอชิงตันดีซีไม่จำเป็นสำหรับความท้าทายนี้): "แผนที่อเมริกาพร้อมชื่อรัฐ 2" ได้รับอนุญาตภายใต้ CC BY-SA 3.0 ผ่าน Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Map_of_USA_with_state_names_2.svg#/media/File:Map_of_USA_with_state_names_2.svg ตัวอย่างเช่นถ้าอินพุตOhio, Indiana, Illinois;New York, New Jersey, Floridaคุณเอาต์พุต: ภาพแผนที่เปล่ามีให้ในรูปแบบSVGและPNG …

4
คุณสามารถชนะด้วยการเคลื่อนไหวอีกสองครั้งที่ Three Men's Morris ได้ไหม?
โปรดปราน ลำดับ 1 ( มอบรางวัล ) ฉันจะโยน 50 ตัวแทนสำหรับคำตอบแรกที่ถูกต้อง ฉบับที่ 2 ( ได้รับรางวัล ) ฉันจะโยนอีก 100 ตัวแทนสำหรับคำตอบที่ถูกต้องสั้นที่สุด หมายเลข 3 ( เปิดสำหรับการส่ง ) ฉันจะโยนใน 200 ตัวแทนสำหรับคนแรกที่มีคำตอบที่ถูกต้องสั้นลงอย่างมีนัยสำคัญ มีนัยสำคัญที่มากที่สุด 45% ของคำตอบที่สั้นที่สุดในปัจจุบัน ( 564 ไบต์ x 0.45 = สูงสุด 254 ไบต์ ) เกม คุณจำเกมคลาสสิค " Nine Men's Morris " หรือเพียงแค่ " Mill " มีรูปแบบที่เรียกว่าThree …

7
พิมพ์รูปสี่เหลี่ยมผืนผ้า Pentomino
เขียนโปรแกรมหรือฟังก์ชั่นที่จะใส่ไม่ แต่พิมพ์หรือผลตอบแทนคงที่ที่เป็นข้อความภาพของรูปสี่เหลี่ยมผืนผ้าที่ทำจาก 12 ที่แตกต่างกันpentominoes : สี่เหลี่ยมอาจมีมิติใด ๆ และอยู่ในทิศทางใดก็ได้ แต่ต้องใช้ Pentomino ทั้ง 12 ตัวเพียงครั้งเดียวดังนั้นมันจะมีพื้นที่ 60. Pentomino แต่ละอันจะต้องประกอบด้วยอักขระ ASCII ที่พิมพ์ได้แตกต่างกัน(คุณไม่จำเป็นต้องใช้ ตัวอักษรจากด้านบน) ตัวอย่างเช่นหากคุณเลือกที่จะแสดงผลวิธีการแก้ปัญหา pentomino rectangle 20 × 3 นี้: ผลลัพธ์ของโปรแกรมของคุณอาจมีลักษณะเช่นนี้: 00.@@@ccccF111//=--- 0...@@c))FFF1//8===- 00.ttttt)))F1/8888=- หรือคุณอาจพบว่ามันง่ายกว่าสำหรับการเล่นกอล์ฟ 6 × 10 โซลูชันนี้: 000111 203331 203431 22 444 2 46 57 666 57769! 58779! 58899! 5889!! โซลูชันรูปสี่เหลี่ยมผืนผ้าใด ๆ …

6
ใครคือการกระจายความน่าจะเป็น
บทนำ ในความท้าทายนี้คุณจะได้รับรายชื่อหมายเลขจุดลอยตัวที่ไม่ติดลบซึ่งแยกออกมาจากการแจกแจงความน่าจะเป็น งานของคุณคืออนุมานการกระจายจากตัวเลข เพื่อให้การท้าทายเป็นไปได้คุณมีการแจกแจงห้าแบบให้เลือก Uการแจกแจงแบบสม่ำเสมอในช่วง [0,1] Tการแจกแจงสามเหลี่ยมในช่วง [0,1] ด้วยโหมด c = 1/2 B, การแจกแจงแบบเบต้าในช่วงเวลา [0,1] พร้อมพารามิเตอร์α = β = 1/2 E, การแจกแจงแบบเอ็กซ์โพเนนเชียลในช่วงเวลา [0, ∞) ด้วยอัตราλ = 2 G, การแจกแจงแกมมาตามช่วงเวลา [0, ∞) พร้อมพารามิเตอร์ k = 3 และθ = 1/6 โปรดทราบว่าการแจกแจงด้านบนทั้งหมดมีค่า 1/2 งาน ข้อมูลที่คุณป้อนเป็นจำนวนจุดลอยตัวที่ไม่ใช่ค่าลบซึ่งมีความยาวระหว่าง 75 ถึง 100 ผลลัพธ์ของคุณจะเป็นหนึ่งในตัวอักษรUTBEGซึ่งขึ้นอยู่กับการแจกแจงข้างต้นที่คุณคาดเดาว่าตัวเลขนั้นมาจาก กฎและเกณฑ์การให้คะแนน คุณสามารถให้ทั้งโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต ในที่เก็บนี้มีไฟล์ข้อความห้าไฟล์หนึ่งไฟล์สำหรับแต่ละการแจกจ่ายแต่ละไฟล์มีความยาว …

1
ใครที่มีดวงดาวมากที่สุดในวงที่สิบเก้า?
หมายเหตุ: ความท้าทายนี้เกี่ยวข้องกับการดาวน์โหลดและการลอดผ่านหน้าเว็บ HTML หากภาษาของคุณไม่สามารถจัดการกับสิ่งนี้ได้คุณอาจไม่ต้องการมีส่วนร่วมในการท้าทายนี้ บทนำ มีการพูดคุยกันเสมอในการพูดคุยสิบเก้าไบต์เกี่ยวกับผู้ที่เป็นผู้นำทางกราบขวา ดังนั้นให้ช่วยทุกคนออกและนับจำนวนดาวทั้งหมดต่อผู้ใช้ในการแชท ท้าทาย กำหนดจำนวนเต็มบวกNซึ่งมากกว่าศูนย์ให้คำนวณผู้นำของสตาร์บอร์ดของNข้อความที่ติดดาวล่าสุดในการแชท ข้อความเหล่านี้สามารถดูได้ที่นี่ คำแนะนำ: แต่ละหน้ามี 50 ข้อความที่ติดดาว เอาท์พุทจะเป็นรายการของด้านบน 5 ผู้ใช้โดยจำนวนของข้อความที่ติดดาว โบนัส-15%จากจำนวนไบต์ของคุณจะได้รับหากคุณสามารถแสดงชื่อผู้ใช้ของผู้ใช้เหล่านั้นได้ แต่จะไม่มีการลงโทษหากคุณเพียงแค่แสดงหมายเลขประจำตัวผู้ใช้ โปรดทราบว่ามีการดูหมิ่นข้อความที่ติดดาว หากคุณอ่อนไหวต่อภาษาประเภทนี้ให้ดูหน้านี้ด้วยความระมัดระวัง ตัวอย่าง (รูปภาพเป็นกราบขวาปัจจุบันขณะที่เขียนความท้าทายนี้): (RED) อินพุต: 5เอาต์พุต (พร้อมโบนัส):[Geobits Sp3000 PhiNotPi Seadrus] (สีน้ำเงิน) อินพุต: 10เอาต์พุต (ไม่รวมโบนัส):[51024 17335 24697 116494 129255] (GREEN) อินพุต: 14เอาต์พุต (ไม่รวมโบนัส):[51024 116494 141697 17335 24697] สิ่งพิเศษ: ความสัมพันธ์ใน 5 อันดับแรกจะเรียงลำดับตามต่ำสุดไปสูงสุดรหัสผู้ใช้จำนวน …

4
ความท้าทายขั้นต้น
ความท้าทายนี้ได้รับแรงบันดาลใจจากคำพูดของ Oliver Sacks: “ ตอนอายุ 11 ฉันสามารถพูดว่า 'ฉันเป็นโซเดียม' (ธาตุ 11) และตอนนี้ที่ 79 ฉันเป็นทอง” - Oliver Sacks ฉันต้องการให้คุณหาตัวเลขในสตริงและแทนที่ด้วยสัญลักษณ์ขององค์ประกอบที่เกี่ยวข้อง (1 คือ H, 2 คือเขา, 3 คือ Li, ฯลฯ ) มีกฎให้ปฏิบัติดังนี้: ตัวเลขเดี่ยวและสองหลักจะถูกแทนที่ด้วยองค์ประกอบที่เกี่ยวข้องตามปกติ เพิกเฉย 0s ที่จุดเริ่มต้นของตัวเลข หากมีตัวเลขเพียง 0 ให้เพิกเฉย เช่น1 01 10 0 00กลายเป็นH H Ne 0 00 มากกว่า 2 หลักด้วยกันได้รับการแบ่งออกเป็นกลุ่ม 2 จำนวนเลขคี่ควรจะมีเลขหลักเดียวในตอนท้าย เช่น0153 …

6
ควินหลายครั้ง
งานของคุณคือสร้างโปรแกรมที่ทำตาม: คุณควรใช้หมายเลข (ป้อนค่าบวกลบลบเศษส่วนได้) ถ้ามันเป็นลบคุณย้อนกลับควินิน และปฏิเสธตัวเลขนั้น (กลายเป็นบวก) จากนั้นคุณทำซ้ำ <จำนวนเต็มส่วนหนึ่งของจำนวนอินพุต> ครั้งแล้วพิมพ์ <floor (ส่วนที่เป็นส่วนหนึ่งของหมายเลขอินพุต * ยาว)> จากโปรแกรมต้นฉบับของคุณ ถ้าเป็นจำนวนเต็มส่วนเศษส่วนจะเป็นศูนย์ โบนัส -10% ถ้าโปรแกรมของคุณไม่ใช่แบบธรรมดา ตัวอย่าง หากโปรแกรมของคุณคือ "ABCDEFG" ดังนั้น 1 5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG คำอธิบาย ABCDEFG ห้าครั้ง 2 -2 GFEDCBAGFEDCBA คำอธิบาย GFEDCBA (กลับ ABCDEFG) 2 ครั้ง 3 7.5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABC คำอธิบาย ABCDEFG 7 ครั้งตามด้วย ABC (3 ตัวแรก (ชั้น (0.5 * …
16 code-golf  quine 

3
การแก้ปัญหาอสมการน้อยกว่าด้วยจำนวนเต็มบวก
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการที่ไม่ว่างของความไม่เท่าเทียมกันทางคณิตศาสตร์ที่ใช้ตัวดำเนินการน้อยกว่า ( <) แต่ละบรรทัดในรายการจะมีแบบฟอร์ม [variable] < [variable] โดยที่ a [variable]อาจเป็นสตริงที่ไม่มีข้อยกเว้นของอักขระ az ตัวพิมพ์เล็ก เช่นเดียวกับในคณิตศาสตร์และการโปรแกรมปกติตัวแปรที่มีชื่อเหมือนกันจะเหมือนกัน หากจำนวนเต็มบวกสามารถกำหนดให้กับตัวแปรแต่ละตัวเพื่อให้ความไม่เท่าเทียมกันทั้งหมดเป็นจริงได้ให้พิมพ์หรือส่งกลับรายการของตัวแปรด้วยการกำหนดดังกล่าว แต่ละบรรทัดในรายการนี้ควรมีแบบฟอร์ม [variable] = [positive integer] และตัวแปรทั้งหมดจะต้องเกิดขึ้นหนึ่งครั้งในลำดับใด ๆ โปรดทราบว่าอาจมีวิธีแก้ปัญหาจำนวนเต็มบวกที่เป็นไปได้จำนวนมากสำหรับชุดของความไม่เท่าเทียมกัน หนึ่งในนั้นคือเอาต์พุตที่ถูกต้อง หากไม่มีวิธีแก้ปัญหาความไม่เท่าเทียมกันก็ไม่ควรเอาท์พุทอะไรเลยหรือส่งออกค่าที่ผิดพลาด (ขึ้นอยู่กับคุณ) รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่าง หากอินพุตถูก mouse < cat mouse < dog จากนั้นทั้งหมดเหล่านี้จะเป็นผลลัพธ์ที่ถูกต้อง: mouse = 1 cat = 2 dog = 2 mouse = 37 cat = 194 …
16 code-golf  math 

1
แปลงตัวเลขโรมันที่เข้ารหัสได้เป็นทศนิยมอารบิก
เขียนอัลกอริทึมเพื่อตีความลำดับของตัวอักษรเป็นตัวเลขโรมัน (ดูกฎเลขโรมันด้านล่าง) แต่ละตัวอักษรที่แตกต่างมีค่าทศนิยมอารบิกที่ตรงกันไม่เกิน แต่คุณไม่มีกุญแจไว้ล่วงหน้าการ{A=10, I=1, X=5, ... Z=1000000}ตัดสินใจของคุณจะถูกตีความ ท้าทาย อ่านอินพุตผ่านSTDINหรือเทียบเท่าและเขียนเอาต์พุตผ่านSTDOUTหรือเทียบเท่า อินพุตที่ถูกต้องคือการรวมกันของตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเช่นการจับคู่ \[a-zA-Z]+\ อินพุตควรได้รับการตรวจสอบเพื่อดูว่าลำดับตัวอักษรสามารถตีความได้ว่าเป็นเลขโรมันที่ถูกต้องหรือไม่ หากอินพุตผ่านการตรวจสอบผลลัพธ์ที่ถูกต้องควรเป็นการตีความเลขฐานสิบแบบอาหรับที่ต่ำที่สุดและคีย์ที่ใช้คือAaถูกตีความว่า4 {a=5, A=1} ไม่ใช่ 6 {A=5, a=1} หรือ 9 {a=10, a=1} กฎเลขโรมัน มีเพียงตัวอักษรที่เป็นตัวแทนของพลังสิบสามารถทำซ้ำได้สูงสุดสามครั้งติดต่อกันและรวมสี่ครั้งเช่น II III XXXIX หากวางจดหมายหนึ่งฉบับหรือมากกว่าหลังจากตัวอักษรที่มีมูลค่ามากกว่าให้เพิ่มจำนวนนั้น AAaa => 22 {A=10, a=1} (20 + 2 = 22) bbAAaa => 222 {b=100, A=10, a=1} (200 + 20 + …

3
“ การบรรจบกัน” ที่กลมกลืนกัน
สลับฮาร์มอนิซีรีส์เป็นที่รู้จักกันดีชุดกัน "ชัดเจน" เป็นที่ชัดเจนว่ามันรวมเข้ากับบันทึกธรรมชาติของ 2 หรือมันได้หรือไม่ เนื่องจากซีรีย์ไม่ได้รวมกันอย่างแน่นอนโดยเพียงแค่จัดเรียงเงื่อนไขใหม่ฉันสามารถทำให้มันเข้าใกล้ทุกสิ่งที่ฉันต้องการ สมมติว่าผมต้องการชุดที่จะมาบรรจบกันเพื่ออี สิ่งที่ฉันต้องทำคือ: หากคุณไม่ได้จับแบบนั้นก็ไม่มีความชัดเจน นี่คือวิธีการทำงาน: พิจารณาข้อกำหนดของซีรีย์ฮาร์มอนิสลับในแง่ของแง่บวกและลบ เพิ่มคำศัพท์บวกเข้าด้วยกันเพื่อให้เกินเป้าหมาย (e) (aka sum > target) ลบคำลบถัดไป กลับไปที่ 2 โปรดทราบว่าในขั้นตอนที่ 2 หากเราsum == targetคุณควรเพิ่มคำบวกอีกคำหนึ่ง จากนี้เราสามารถกำหนดลำดับที่เกี่ยวข้องกับแต่ละหมายเลขดังนี้: ทำตามอัลกอริทึมด้านบน สำหรับแต่ละคำที่เป็นบวกเอาต์พุต 1 สำหรับแต่ละคำเชิงลบเอาต์พุต 0 ลองเรียกลำดับนี้ว่า "รูปแบบบิตความสามัคคี" ของตัวเลข ตัวอย่างเช่น HBP ของ e เริ่มต้นเมื่อ: 1, 1, 1, 1, <32 times>, 0, 1, 1, <54 times>, …

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