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

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

5
การแสดงผลกล่อง ASCII
งาน งานของคุณคือการเขียนโปรแกรมที่จะส่งออกกล่อง ASCII ที่สถานที่ที่ระบุโดยการป้อนข้อมูล อินพุต คุณจะได้รับรายการหมายเลข รูปแบบที่นี่เป็นบิตที่มีความยืดหยุ่นในการที่คุณสามารถใช้ deliminator คุณต้องการใด ๆ (เช่น1,2,3,4, 1 2 3 4, [1,2,3,4]) รายการอยู่ในกลุ่ม 4 และระบุxywhของแต่ละกล่อง ความกว้างและความสูงของแต่ละกล่องจะมีอย่างน้อย 2 xและwidthจากซ้ายไปขวา yและจากheightบนลงล่าง เอาท์พุต การแสดงผลสามารถคิดได้ว่าเป็นขวาไปซ้ายโดยมีกล่องที่วาดบนขวาก่อนและทุกช่องหลังจากนั้นจบลง อนุญาตให้ใช้ช่องว่างต่อท้ายเช่นเดียวกับบรรทัดใหม่ต่อท้ายหนึ่งบรรทัด วิธีจัดการกับกล่องที่ทับซ้อนกัน กล่องทางด้านซ้ายของอินพุตเป็นกล่องด้านบนและไม่มีอะไรจะซ้อนทับกัน ทุก ๆ กล่องหลังจากมันถูกเรนเดอร์เฉพาะในพื้นที่ที่ไม่มีในกล่องแล้วและจะไม่แทนที่เส้นขอบของกล่องที่เรนเดอร์แล้ว สไตล์ รูปแบบของกล่องเป็นมาตรฐานค่อนข้าง+ใช้สำหรับมุม-ใช้สำหรับเส้นแนวนอนและ|ใช้สำหรับเส้นแนวตั้ง ตัวอย่าง: ( >>>หมายถึงอินพุต) >>>0 0 11 4 7 2 8 4 3 5 8 3 +---------+ | …

5
ตัวตนของBézout
รู้เบื้องต้นเกี่ยวกับตัวตนของBézout GCD ของจำนวนเต็มสองจำนวน A, B เป็นจำนวนเต็มบวกที่ใหญ่ที่สุดซึ่งแบ่งออกเป็นสองส่วนโดยไม่มีเศษเหลือ ตอนนี้เพราะคุณสมบัติของ Euclid ที่แต่ละจำนวนเต็ม N สามารถหารด้วยจำนวนเต็ม M อื่นได้ดังนี้ มีอยู่คู่ u, v เช่นที่เราสามารถเขียน: เนื่องจากมีจำนวนคู่เหล่านั้นไม่ จำกัด เราจึงต้องการหาคนพิเศษ ในความเป็นจริงมีอย่างแน่นอน (A, B ไม่เป็นศูนย์) สองคู่ดังกล่าวที่อิ่ม เช่น ท้าทาย เป้าหมายของความท้าทายนี้คือการหาคู่ของค่าสัมประสิทธิ์ (u, v) ที่อิ่มตัวข้อ จำกัด ข้างต้นและที่คุณจะต้องเป็นบวก สิ่งนี้จะแคบเอาท์พุทเป็นคู่ที่ไม่ซ้ำกัน อินพุต เราอาจสมมติว่าอินพุตเป็นค่าบวก A จะใหญ่กว่า B เสมอ (A> B) เอาท์พุต ผลลัพธ์ของโปรแกรม / ฟังก์ชั่นของเราจะต้องเป็นคู่ (สั่ง) ที่ระบุในการท้าทาย กฎระเบียบ เราต้องไม่ใช้อัลกอริธึมแบบขยายแบบยุคลิดในตัว …

1
คำนวณจำนวนตัวหารรุ่น
แรงบันดาลใจจากคำถามนี้เกี่ยวกับคณิตศาสตร์ ให้ตัวประกอบที่สำคัญของตัวเลขnจะแสดงเป็นP (n) = 2 x 3 ข x 5 ค x ... (ใช้xเป็นสัญลักษณ์การคูณ.) แล้วจำนวนหารของnสามารถแสดงเป็นD (n) = (A + 1) x (B + 1) x (C + 1) ... ดังนั้นเราจึงสามารถกล่าวว่าจำนวนของตัวหารของ2nเป็นD (2n) = (A + 2) x (B + 1) x (C + 1) ... , จำนวนหารของ3nเป็นD (3n ) = (A …

8
รากเหง้าดั้งเดิมของความสามัคคี
อนุญาตzเป็นจำนวนเชิงซ้อน zเป็นที่ n รากดั้งเดิมของความสามัคคีถ้าเป็นจำนวนเต็มบวกบางและสำหรับจำนวนเต็มบวกใดn ๆk < n ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบที่กำหนดให้เป็นจำนวนเต็มบวกnเป็นอินพุตเอาต์พุตทั้งหมดของรากดั้งเดิมดั้งเดิมของความสามัคคี คุณสามารถส่งออกมันในรูปแบบขั้วโลก ( e^θiหรือe^iθอาร์กิวเมนต์ควรเป็นทศนิยมอย่างน้อย 2 ตำแหน่งทศนิยม) หรือรูปสี่เหลี่ยมผืนผ้า ( a + biหรือรูปแบบที่คล้ายกันส่วนจริงและจินตภาพควรเป็นทศนิยม) และพวกเขาอาจถูกเอาท์พุทในรายการภาษาของคุณ รูปแบบอาร์เรย์ / หรือเป็นสตริงที่มีตัวเลขคั่นด้วยช่องว่างหรือบรรทัดใหม่ บิวด์อินที่คำนวณรูทที่ n ของความสามัคคีหรือ root ดั้งเดิมที่ n ของความสามัคคีไม่ได้รับอนุญาต นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่างอินพุตและเอาต์พุต 6 -> e^1.05i, e^-1.05i # polar form 3 -> e^2.094395i, e^-2.094395i # any number of decimal places is …

3
อ่านตาราง
งาน อ่านเนื้อหาของตารางที่ระบุชุดของพิกัด การจัดรูปแบบตาราง ตารางจะอยู่ในรูปแบบพื้นฐานนี้: |[name]|[name]| --------------------- [name]| [val]|[val] | [name]| [val]|[val] | ชื่อคอลัมน์มักจะไม่ซ้ำกันภายในคอลัมน์ ชื่อแถวยังไม่ซ้ำกันภายในแถวภายในแถวรวมถึงชื่อที่เหมือนกันยกเว้นช่องว่าง ค่าชื่อคอลัมน์และชื่อแถวจะไม่มี|-อยู่ในนั้น ชื่อและค่าจะไม่มีช่องว่างภายใน แต่อาจมีช่องว่างนำหน้าหรือต่อท้าย ความกว้างของสีสามารถปรับได้ตามส่วนหัว / เนื้อหา ความกว้างของคอลัมน์สอดคล้องกันจากบนลงล่างเสมอ อินพุต ตารางและรายการคั่นด้วยช่องว่างของ [name] s ตัวอย่าง [table] row col หากคุณกำลังเขียนฟังก์ชั่นสิ่งเหล่านี้สามารถแยกสตริงมิฉะนั้นrow colจะเป็นบรรทัดสุดท้ายในอินพุต row colมีความยืดหยุ่นสำหรับรูปแบบและอาจมีหลายวิธี (เช่น(row, col), r, c, ... ) ข้อกำหนดที่ยากเพียงอย่างเดียวคือมันเป็นหนึ่งบรรทัดและต้องปรากฏตามลำดับcol rowความต้องการอย่างหนักเพียงอย่างเดียวคือว่ามันเป็นหนึ่งในสายและว่ามันจะต้องปรากฏในการสั่งซื้อ เอาท์พุต เนื้อหาของเซลล์ที่ระบุโดยการป้อนข้อมูลที่ไม่มีพื้นที่นำหน้าหรือต่อท้ายจากเซลล์ ตัวอย่าง In: |a|z |_*| ------------ atb|1|85|22| b …
11 code-golf  string 

6
ตัดและนับทศนิยม
ในความท้าทายนี้คุณจะเขียนโปรแกรมเพื่อแสดงจำนวนทศนิยมในสตริงอินพุตและตัดอินพุตหากจำเป็น ตัวอย่าง -12.32 2 32 0 3231.432 3 -34.0 0 -34 023 0 23 00324.230 2 324.23 10 0 00.3 1 0.3 0 0 -04.8330 3 -4.833 กฎระเบียบ อินพุตจะเป็นสตริงที่สามารถใช้ผ่าน STDIN อาร์กิวเมนต์ของฟังก์ชันหรือค่าที่ใกล้เคียงที่สุด เอาต์พุตสามารถผ่านการคืนค่าฟังก์ชัน STDOUT หรือเทียบเท่าที่ใกล้เคียงที่สุด ไม่มีการ จำกัด ขนาดสำหรับอินพุตจำนวนเต็มยกเว้นความยาวสตริงสูงสุดของภาษาของคุณ หากอินพุตมีค่าศูนย์ (นำหน้าหรือต่อท้าย) ที่ไม่จำเป็น: คุณควรพาพวกเขาออกไป เอาท์พุทจำนวนตำแหน่งทศนิยมในจำนวนใหม่ ส่งออกหมายเลขใหม่คั่นด้วยตัวคั่น (เช่นช่องว่าง, บรรทัดใหม่, จุลภาค) ข้อมูลที่ป้อนจะตรงกับ RegEx นี้เสมอ: -?\d+(\.\d+)?หรือถ้าคุณไม่พูด …

1
แรงดึงดูดระหว่างคำ
ทฤษฎีแรงโน้มถ่วงของนิวตันบอกว่าแรงโน้มถ่วงระหว่างมวลสองจุดคือ F = (Gm 1 m 2 ) / r 2 ที่ไหน Gคือค่าความโน้มถ่วงคงตัว: 6.674 × 10 −11 N · (m / kg) 2 m 1คือมวลของวัตถุแรก m 2คือมวลของวัตถุที่สอง rคือระยะห่างระหว่างจุดศูนย์กลางมวล ท้าทาย คุณจำเป็นต้องจำลองการดึงระหว่างสองคำ ตัวอักษรพิมพ์เล็กแต่ละตัวมีมวลที่กำหนดโดยตำแหน่งในตัวอักษร ตัวพิมพ์ใหญ่มีสองเท่าของตัวพิมพ์เล็ก! คุณจะได้รับสตริงที่มีคำสองคำคั่นด้วยช่องว่างหลายเช่นเดียวกับจำนวนของจำนวนเต็มบวกวินาที s การส่งออกสิ่งสตริงจะมีลักษณะหลังจากsวินาที ข้อมูล เนื่องจากคำว่าเป็นนามธรรมจึงมีหน่วยและค่าคงที่แตกต่างกัน มวล: WMU (หน่วยมวลคำ) - เท่ากับมวลของตัวอักษร 'a' ระยะทาง: emความยาวของอักขระหนึ่งตัว แรง: N W (Word Newton) …

4
จัดสรรหน่วยความจำ
คุณกำลังออกแบบภาษาการเขียนโปรแกรมลึกลับใหม่และคุณสมบัติหนึ่งที่คุณตัดสินใจเพิ่มคือตัวจัดสรรหน่วยความจำแบบไดนามิก ภาษาของคุณระบุพื้นที่ที่อยู่เสมือนพิเศษเฉพาะสำหรับพื้นที่โปรแกรมของผู้ใช้ สิ่งนี้แยกจากพื้นที่ที่อยู่ที่ใช้โดยตัวจัดสรรหน่วยความจำสำหรับสถานะภายในใด ๆ เพื่อช่วยลดค่าใช้จ่ายในการกระจายการติดตั้งของคุณขนาดของรหัสจะต้องเล็กที่สุดเท่าที่จะทำได้ อินเตอร์เฟซ คุณต้องจัดเตรียมสามฟังก์ชัน: การกำหนดค่าเริ่มต้นจัดสรรและยกเลิกการจัดสรร การเริ่มต้น Nฟังก์ชั่นนี้จะใช้เวลาพารามิเตอร์จำนวนเต็มบวกเดียว ซึ่งหมายความว่าโปรแกรมของผู้ใช้มีNไบต์ในพื้นที่ที่อยู่ซึ่งมีจำนวนN-1ไบต์ที่จะจัดสรรหน่วยความจำ ที่อยู่0นี้สงวนไว้สำหรับ "null" มีการรับประกันว่าฟังก์ชั่นนี้จะถูกเรียกเพียงครั้งเดียวก่อนที่จะมีการจัดสรร / ยกเลิกการจัดสรร โปรดทราบว่าฟังก์ชั่นนี้ไม่จำเป็นต้องจัดสรรหน่วยความจำกายภาพสำหรับพื้นที่ที่อยู่เสมือนของโปรแกรมผู้ใช้ โดยพื้นฐานแล้วคุณกำลังสร้าง "รูปลักษณ์และความรู้สึก" ของตัวจัดสรรหน่วยความจำแบบกลวง จัดสรร ฟังก์ชั่นการจัดสรรจะต้องทำการร้องขอจำนวนไบต์ของหน่วยความจำที่จะจัดสรร อินพุตรับประกันว่าจะเป็นบวก ฟังก์ชั่นของคุณจะต้องส่งคืนที่อยู่จำนวนเต็มไปที่จุดเริ่มต้นของบล็อกที่จัดสรรหรือ0เพื่อแสดงว่าไม่มีบล็อกที่ต่อเนื่องกันของขนาดที่ร้องขอ หากบล็อกที่ต่อเนื่องกันของขนาดที่มีอยู่สามารถใช้ได้ทุกที่ในพื้นที่ที่อยู่คุณต้องจัดสรร! คุณต้องตรวจสอบให้แน่ใจว่าไม่มีการจัดสรรสองบล็อกที่ทับซ้อนกัน deallocate ฟังก์ชั่นการจัดสรรคืนจะต้องใช้ที่อยู่ของการเริ่มต้นของบล็อกที่จัดสรรและอาจมีขนาดของบล็อกที่กำหนด หน่วยความจำที่ถูกจัดสรรคืนจะพร้อมใช้งานอีกครั้งสำหรับการจัดสรร มันจะสันนิษฐานว่าที่อยู่ที่ป้อนเป็นที่อยู่ที่ถูกต้อง ตัวอย่างการนำ Python มาใช้ โปรดทราบว่าคุณสามารถเลือกวิธีใดก็ได้ในการติดตามสถานะภายใน ในตัวอย่างนี้อินสแตนซ์ของชั้นติดตามของมัน class myallocator: def __init__(self, N): # address 0 is special, it's always reserved for null …
11 code-golf 

6
เศษส่วนสามารถลดความซับซ้อนได้ด้วยการยกเลิกแบบผิดปกติหรือไม่?
การยกเลิกที่ผิดปกติ (จาก Wolfram Alpha): การยกเลิกที่ผิดปกติคือ "การยกเลิก" ของตัวเลขของ a และ b ในตัวเศษและตัวหารของเศษส่วน a / b ซึ่งส่งผลให้เศษส่วนเท่ากับต้นฉบับ โปรดทราบว่าหากมีการนับจำนวนหลายหลัก แต่แตกต่างกันของตัวเลขหนึ่งหลักขึ้นไปในตัวเศษและตัวส่วนนั้นจะมีความกำกวมเกี่ยวกับตัวเลขที่จะยกเลิกดังนั้นจึงเป็นการง่ายที่สุดในการแยกกรณีดังกล่าวออกจากการพิจารณา ลิงค์ a / bกล่าวง่ายๆว่าคุณมีเศษส่วน หากคุณสามารถยกเลิกตัวเลขในเศษส่วนเพื่อสร้างเศษส่วนอื่นc / dซึ่งเท่ากับต้นฉบับ ( a / b = c / d) การยกเลิกแบบผิดปกติสามารถใช้เพื่อทำให้เศษส่วนนั้นง่ายขึ้น ความท้าทายของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ป้อนสตริงเศษส่วนในรูปแบบa/bและเอาท์พุทหรือส่งกลับค่าความจริงหากเศษส่วนสามารถทำให้ง่ายขึ้นโดยใช้การยกเลิกแบบผิดปกติและค่าเท็จ aและbจะเป็นจำนวนเต็มบวกที่ไม่เป็นศูนย์เสมอ aและbจะมีตัวเลขสองหลักขึ้นไปเสมอ นอกจากนี้ตัวเลขทั้งหมดจากaหรือbจะไม่ถูกยกเลิก (คุณจะไม่ได้รับอินพุต12/21) อย่างน้อยหนึ่งหลักจากaและbจะถูกยกเลิกในแต่ละครั้ง (คุณจะไม่ได้รับอินพุต43/21) และผลลัพธ์สุดท้ายจะไม่เป็น0เช่นนั้นหรือa bโปรแกรมของคุณจะต้องยกเลิกตัวเลขทั่วไปทั้งหมดระหว่างaและb(เช่นใน1231/1234คุณต้องยกเลิก a 1, a 2และ a 3) หากมีความเป็นไปได้หลายทางในการยกเลิกให้เลือกหลักซ้ายสุดก่อน (515/25 …

3
รองพื้นโลกที่เก่าแก่
แรงบันดาลใจอย่างมากจากการเขียนโปรแกรมที่เก่าแก่โลก นอกจากนี้ยังเกี่ยวข้องกับความท้าทายนี้ ลองกำหนดที่สำคัญที่เก่าแก่เป็นจำนวนซึ่งเป็นตัวสำคัญ แต่จะไม่สำคัญหากคุณลบย่อยที่ต่อเนื่องกันใด ๆ ของฐาน N 10 0 < N < digits in numberหลักที่ ตัวอย่างเช่น 409 เป็นไพรม์ที่เก่าแก่เพราะ 409 เป็นไพร์มที่สำคัญ แต่ตัวเลขทั้งหมดที่เกิดจากการลบซับสตริง 1 หลักไม่ใช่ไพร์ม: 40 49 09 = 9 และตัวเลขทั้งหมดที่เกิดจากการลบสตริงย่อยของความยาว 2 นั้นไม่ได้เป็นจำนวนเฉพาะ: 4 9 ในทางกลับกันหมายเลขเฉพาะ 439 ไม่ใช่บริสุทธิ์ การลบสตริงย่อยต่างกันส่งผลให้: 43 49 39 4 9 ในขณะที่ 49, 39, 4 และ 9 ล้วน แต่ไม่สำคัญ …

12
Eeny, meeny, miny, moe
บทนำ เพลงในวัยเด็กEeny, meeny, miny, moeมักถูกใช้เพื่อเลือกผู้ที่ "มัน" เมื่อเล่นแท็ก ทุกคนจะยืนเป็นวงกลมและชี้ไปที่บุคคลหนึ่งคนที่เลือกโดยการสุ่ม พวกเขาจะร้องเพลง: Eeny, meeny, miny, moe, จับเสือด้วยนิ้วเท้า ถ้าเขาหยุดขอให้เขาไป Eeny, meeny, miny, moe เมื่อพวกเขาร้องแต่ละคำพวกเขาชี้ไปที่คนต่อไปในวงกลม บุคคลที่ถูกชี้ไปเมื่อ "โมเอะ" คนสุดท้ายร้องว่า "มัน" เด็ก ๆ จะลุกขึ้นยืนและแพร่กระจายทันที เป้าหมาย ใช้โปรแกรมที่สั้นที่สุดเป็นไบต์ที่รับอินพุตจำนวนลูกและแสดงรายการคำที่ร้องเมื่อพวกเขาถูกชี้ไปที่ ผู้ชนะจะได้รับการคัดเลือกในหนึ่งสัปดาห์ อินพุต จาก STDIN จำนวนเต็มบวกจำนวนเด็ก นี่อาจจะมากกว่าจำนวนคำในเพลง เอาท์พุต เขียนไปที่ STDOUT รายการที่แต่ละบรรทัดแสดงถึงเด็กและมีคำว่าร้องขณะที่ถูกชี้ไปที่ หากมีลูกมากเกินไปอาจเว้นบรรทัดว่างไว้ได้ ความต้องการ เริ่มต้นด้วยลูกคนแรกเสมอ แสดงคำที่ไม่มีเครื่องหมายวรรคตอน ควรเน้น "moe" สุดท้ายเป็น "MOE!" รวมถึงเครื่องหมายวรรคตอน ตัวอย่าง อินพุต …

5
วิเคราะห์เก้าอี้ของคุณ
ความท้าทายนี้จะขึ้นอยู่กับ Downgoat เป็นปรับเก้าอี้ของคุณ ท้าทาย คุณเพิ่งปรับเก้าอี้ใหม่ของคุณ! มันเหมาะกับคุณอย่างสมบูรณ์แบบ อย่างไรก็ตามล้อเป็นเสียงแหลมและคุณรู้ว่าคนซ่อมจะเปลี่ยนการปรับ ปัญหาคือคุณไม่มีไม้บรรทัดดังนั้นคุณต้องเขียนโปรแกรมเพื่อวัดมันให้คุณ คนซ่อมแซมสามารถรอได้นานเท่านั้น ดังนั้นรหัสของคุณจะต้องสั้นที่สุด ตัวอย่าง O | | | _ | | |_|_ | | O 5,3,2,2,1 O | _ | | |__|__ | | __|__ OOOOO 3,5,2,3,5 O | _ |______|______ ______|______ OOOOOOOOOOOOO 2,13,1,1,13 ชิ้นส่วนเก้าอี้ เก้าอี้มีส่วนประกอบต่าง ๆ : O <- Headrest | | …

2
การนับไอคอนสำหรับ splays นวัตกรรม
นวัตกรรมเป็นเกมไพ่ที่ผู้เล่นต่อสู้ผ่านยุคสมัยตั้งแต่ยุคก่อนประวัติศาสตร์จนถึงยุคปัจจุบันเพื่อพยายามที่จะได้รับความสำเร็จเร็วกว่าคู่ต่อสู้ การ์ดในนวัตกรรมแต่ละใบมีเอกลักษณ์และมอบไอคอนจำนวนหนึ่งให้ผู้เล่น หากเราถือว่าไพ่แต่ละใบเป็นตาราง 2x3 แล้วสามในสี่ช่องบนขอบด้านซ้ายและด้านล่างจะถูกนำขึ้นโดยไอคอนเสมอ (สัญลักษณ์ในรูปหกเหลี่ยมสีดำจะไม่ถูกนับ) เกมนี้มี 6 ประเภทของไอคอน (ปราสาทครอบใบหลอดไฟโรงงานและนาฬิกา) 012345ซึ่งเราจะเป็นตัวแทนของพลโดยใช้ตัวอักษร การใช้#เพื่อเป็นตัวแทนของรูปหกเหลี่ยมสีดำเราสามารถใช้สี่ตัวอักษรเพื่อแสดงไอคอนในการ์ดแต่ละใบ ตัวอย่างเช่นการ์ดด้านบนคือ 0.. #.. 3.. 1.. -> 03#0 #331 355# 144# 3#0 331 55# 44# ตอนนี้ในนวัตกรรมการ์ดในพื้นที่เล่นถูกจัดกลุ่มเป็นกอง * ซึ่งกระจายในหนึ่งในสี่วิธี สำหรับตัวอย่างแต่ละตัวอย่างเราจะใช้ไพ่ด้านบนสมมติว่าการ์ดด้านซ้ายสุด03#0อยู่ที่ด้านบนของเสาเข็ม ไม่มี splay:มองเห็นเฉพาะการ์ดบนสุดเท่านั้น 0.. 3#0 Splay left : การ์ดบนสุดสามารถมองเห็นได้อย่างสมบูรณ์เช่นเดียวกับอันดับสามของการ์ดด้านล่างทั้งหมด 0..|.|.|.| 3#0|1|#|#| Splay right : ไพ่ด้านบนสามารถมองเห็นได้อย่างสมบูรณ์เช่นเดียวกับไพ่สามใบด้านซ้ายของการ์ดทั้งหมดด้านล่าง 1|3|#|0.. 4|5|3|3#0 Splay up : การ์ดบนสุดสามารถมองเห็นได้อย่างสมบูรณ์เช่นเดียวกับครึ่งล่างของการ์ดทั้งหมดด้านล่าง …

2
แสดงเครื่องหมายวงเล็บอย่างเต็มที่
วันนี้ความท้าทายของคุณคือการผลิตวงเล็บที่เป็นไปได้ทั้งหมดของการแสดงออก การป้อนข้อมูลของคุณเป็น ASCII ที่พิมพ์ได้บรรทัดเดียวที่มีหนึ่งคำหรือมากกว่านั้นคั่นด้วยเครื่องหมาย อินพุตอาจมีช่องว่าง - คุณต้องละเว้นสิ่งเหล่านี้ คำที่เป็นผู้ประกอบการคือ[a-zA-Z0-9] [^ ()a-zA-Z0-9]คุณอาจคิดว่าอินพุตนั้นถูกต้องเสมอ เอาท์พุทวิธีที่เป็นไปได้ทั้งหมดในการวงเล็บนิพจน์ที่กำหนดโดยคั่นด้วยการขึ้นบรรทัดใหม่ด้วยการขึ้นบรรทัดใหม่ที่เป็นตัวเลือก ทำไม่ได้ : คำศัพท์วงเล็บ - วงเล็บเท่านั้นรอบตัวดำเนินการ เรียงลำดับเงื่อนไขใหม่ ส่งออกช่องว่างใด ๆ ตัวอย่างอินพุต / เอาต์พุต: N N a * b (a*b) x_x_0 (x_(x_0)) ((x_x)_0) a * b|c|d (a*(b|(c|d))) (a*((b|c)|d)) ((a*b)|(c|d)) ((a*(b|c))|d) (((a*b)|c)|d) รหัสที่เล็กที่สุดเป็นไบต์ชนะ

5
มันเป็นปัจจัยของพหุนามหรือไม่?
พหุนามคือหารด้วยปัจจัย(x-n)ถ้าสำหรับฟังก์ชั่นf(n)=0 fงานของคุณ: เพื่อตรวจสอบว่าฟังก์ชันพหุนามf(x)หารด้วย(x-n)หรือไม่ การป้อนข้อมูล (x-n), (Polynomial)การป้อนข้อมูลที่อยู่ในรูปแบบของ จำไว้ว่าถ้า n เป็นลบ(x-n)(x+n)จะอยู่ในรูปแบบของการป้อนข้อมูล สำหรับพหุนาม, ^เลขยกกำลังทั้งหมดจะถูกวางในฐานะ xค่าสัมประสิทธิ์จะเขียนต่อไปให้กับตัวแปร 2x^2 + x^1พหุนามตัวอย่างเช่นอาจจะ จะไม่มีช่องว่างระหว่างสิ่งใด คำที่xจะ inputed x^1เป็น ดังนั้นสิ่งที่จะ "ปกติ" มีลักษณะเหมือนจะเป็น(x - 1) (x^1-1)ค่าสัมประสิทธิ์และอำนาจจะเสมอเป็นจำนวนเต็ม ค่าสัมประสิทธิ์การหนึ่งที่จะเป็นนัยถ้ามันเป็นเพียงแค่ xเช่นxสามารถตีความได้ว่า1x ผลลัพธ์ ค่าบูลีน ความจริงหรือเท็จ ขอบคุณ @AlexA เพื่อช่วยฉันชี้แจงเรื่องนี้! ตัวอย่าง Input:(x^1-1),(x^1-1) Output: True Input: (x^1+2),(2x^2+4x^1+2) Output: False Input: (x^1+7),(x^2-49) Output: True กฎระเบียบ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ น่าเสียดายที่ฉันไม่ทราบวิธีการใช้กระดานข้อมูลโค้ด หากใครรู้วิธีสามารถแก้ไขโพสต์

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