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

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

8
การเข้ารหัสต้นไม้แบบไบนารี
สมมติว่าคุณมีต้นไม้ไบนารีที่สมบูรณ์ (เช่นแต่ละโหนดภายในมีสองลูกหลานที่ไม่ว่างเปล่า) แต่ละโหนดมีจำนวนเต็มไม่ใช่ศูนย์ คุณได้รับภารกิจการเข้ารหัสและถอดรหัสทรีลงใน / จากรายการจำนวนเต็ม ต้นไม้ถูกเก็บไว้ภายในสิ่งที่ชอบ: struct node { int data; struct node *left, *right; }; และคุณต้องใช้สองฟังก์ชั่น: int *encode(struct node *root); struct node *decode(int *array); มันขึ้นอยู่กับคุณว่าคุณเข้ารหัสและถอดรหัสอย่างไร คะแนนสำหรับ: ความยาวการเข้ารหัสขั้นต่ำ ความซับซ้อน (นึกคิดเชิงเส้นในจำนวนโหนด) ความคิดริเริ่ม ไม่มีคะแนนสำหรับความยาวซอร์สโค้ดและคุณไม่ได้ถูก จำกัด ไว้ที่ C ตัวอย่างต้นไม้: 5 / \ 3 2 / \ 2 1 / \ 9 9

9
จัดส่งบุรุษไปรษณีย์
ฉันเพิ่งได้งานเป็นบุรุษไปรษณีย์และฉันต้องการความช่วยเหลือจากคุณเพื่อรักษามันไว้ ฉันต้องสั่งซื้ออีเมลจำนวนมากก่อนที่จะออกไปส่ง ถนนจะถูกกำหนดหมายเลขตามลำดับอย่างเคร่งครัดโดยเริ่มต้นที่ 1 ที่จุดเริ่มต้นของถนนและดำเนินการต่อเพื่อไม่ข้ามหมายเลขจนถึงจุดสิ้นสุดด้วยเลขคี่ทางด้านซ้ายและปรากฏทางด้านขวา บ้านบวกถูกเพิ่มเข้ามาในภายหลังดังนั้นเราอาจมีตัวอักษรต่อท้ายหมายเลขเทศบาล หีบมีจดหมายทั้งหมดของเมืองดังนั้นฉันต้องเลือกจดหมายจากถนนของฉันเท่านั้น ฉันต้องการความช่วยเหลือจากคุณในการสั่งซื้ออีเมลได้เร็วขึ้น สิ่งที่ฉันขอให้คุณคือการเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ: - ชื่อถนน - รายการหมายเลขพลเมืองสั่งตามเส้นทางของฉัน - รายการที่อยู่ (แสดงถึงหีบจดหมาย) และส่งออกรายการที่อยู่ที่มีเพียงถนนของฉันเท่านั้นสั่งซื้อตามรายการหมายเลขพลเมือง ที่อยู่มีแบบฟอร์ม: Person Name/n CivicN Street Name โดยที่CivicNเป็นตัวเลขที่สามารถตามด้วย '/' และตัวอักษรตัวพิมพ์ใหญ่ (10 10 / B) หากคุณต้องการตัวพิมพ์เล็กก็ยอมรับได้ หากชื่อถนนทับซ้อนกันพวกเขาจะถือว่าเป็นถนนที่แตกต่างกัน: Church Road != Saint Lorenz Church Road เราไม่ใช้ที่อยู่ที่เหลือเพื่อความเรียบง่าย (สมมติว่าเป็นที่อยู่อีเมลเดียวกันทุกฉบับ) ต้องส่งจดหมายอย่างรวดเร็วเพื่อให้ได้คำตอบที่สั้นที่สุด ตัวอย่าง: เลย์เอาต์: 1 1/B 3 5 7 9 …
12 code-golf  string 

6
แก้ไขคำพูดติดอ่างของฉัน
การพูดติดอ่างเป็นปัญหาที่พวกเราหลายคนอาจเคยมีประสบการณ์หรืออย่างน้อยก็เห็นมัน แม้ว่าซอฟต์แวร์จดจำคำพูดที่โด่งดังส่วนใหญ่มีปัญหาร้ายแรงเกี่ยวกับการพูดติดอ่างลองนึกภาพซอฟต์แวร์ที่เข้าใจการพูดติดอ่าง แต่ไม่สามารถแก้ไขได้และเขียนเฉพาะตามที่เป็น ตัวอย่างข้อความที่เขียนโดยซอฟต์แวร์ดังกล่าวสามารถเป็นเช่นนี้"โปรด CA CA ระมัดระวัง" ในตัวอย่างนี้"ระวัง"คือคำเดิมและ"ca ca"เป็นคำพูดติดอ่าง ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่แก้ไขคำพูดติดอ่างโดยการลบคำเหล่านั้นออกจากอินพุตขณะที่รักษาคำเดิมไว้ ยกตัวอย่างเช่นการแก้ไขรุ่นของ"โปรด CA CA ระวัง"จะเป็น"โปรดระวัง" นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดในทุกภาษาชนะ! คำพูดติดอ่างอะไร การพูดติดอ่างมีหลายรูปแบบที่แตกต่างกัน แต่เพื่อความเรียบง่ายของความท้าทายนี้เราจะ จำกัด ให้เป็นกฎต่อไปนี้: คำพูดติดอ่างอาจเป็นส่วนที่ไม่สมบูรณ์หรือเป็นคำเดิมทั้งหมด โดย "ส่วนที่ไม่สมบูรณ์" ฉันหมายความว่าคำดั้งเดิมควรเริ่มต้นด้วยคำที่พูดติดอ่าง ยกตัวอย่างเช่น"ope"และ"เปิด"ทั้งสองสามารถจะเป็นคำพูดติดอ่าง"เปิด"แต่"ปากกา"ไม่สามารถเป็นหนึ่งตั้งแต่"เปิด"ไม่ได้เริ่มต้นด้วย"ปากกา" คำพูดติดอ่างต้องมีสระ"aeiou"อย่างน้อยหนึ่งแห่ง ตัวอย่างเช่น"ดาว"อาจเป็นคำพูดติดอ่างของคำว่า"เริ่มต้น"เนื่องจากมี"a"แต่"st"ไม่สามารถเป็นคำพูดติดอ่างได้เนื่องจากไม่มีสระใด ๆ ที่กล่าวถึง คำพูดติดอ่างสามารถปรากฏต่อหน้าคำเดิมและควรทำซ้ำอย่างน้อยสองครั้งเพื่อให้ถูกต้อง (คำเดิมไม่นับในการทำซ้ำ) ตัวอย่างเช่น"oo open"มีคำพูดติดอ่าง แต่"o open o"ไม่ได้เพราะ"o"หลังจากคำดั้งเดิมไม่ได้นับและ"o"ก่อนคำเดิมไม่ซ้ำอย่างน้อยสองครั้ง "go go go go go go"มีคำพูดติดอ่างห้าคำต่อหน้าคำเดิมและถูกต้อง คำที่พูดติดอ่างเพียงชุดเดียวไม่สามารถมีรูปแบบผสมได้และคำนั้นควรเหมือนกัน ตัวอย่างเช่น"op o op open"จะไม่นับเป็นคำพูดติดอ่าง บนมืออื่น ๆ"o …
12 code-golf  string 

2
เรียงกระดานหมากรุกด้วยสามสี
งาน: พิจารณาปัญหา: "ให้กระดานหมากรุกหายไปหนึ่งสี่เหลี่ยมจัตุรัสตัดมันเป็น 21 L-triominoes" มีหลักฐานเชิงสร้างสรรค์ที่รู้จักกันดีว่าสิ่งนี้สามารถทำได้สำหรับกระดานหมากรุกสี่เหลี่ยมขนาดใดก็ได้ที่มีกำลังสอง มันทำงานได้โดยการแยกกระดานหมากรุกออกเป็นกระดานหมากรุกขนาดเล็กที่มีรูอยู่ในนั้นและ Triomino ตัวใหญ่หนึ่งตัวจากนั้นสังเกตว่า Triomino นั้นสามารถตัดออกเป็นสี่ส่วนได้แบบเรียกซ้ำ ในงานนี้คุณจะต้องตัดกระดานหมากรุกขนาด 8x8 ไปเป็นรูปสามเหลี่ยม L และจากนั้นให้สีพวกเขาด้วยสี่สีเพื่อให้ไม่มีสามคนที่อยู่ติดกันมีสีเดียวกัน รายละเอียด: ข้อมูลที่คุณป้อนคือตำแหน่งของหลุมซึ่งให้เป็นจำนวนเต็มคู่ คุณสามารถเลือกอันใดอันหนึ่งเป็นดัชนีคอลัมน์และอันไหนคือดัชนีแถว คุณสามารถเลือกได้ว่าการเริ่มต้นแต่ละครั้งที่ 0 หรือที่ 1 และอยู่ห่างจากมุมใดบ้าง คุณอาจต้องใช้ A .. H เป็นพิกัดแรกแทน 0..7 หรือ 1..8 นอกจากนี้คุณยังสามารถยอมรับพิกัดทั้งสองที่บรรจุเป็นจำนวนเต็มเดียว 0..63 หรือ 1..64 ตามลำดับพจนานุกรม (แถวหลักหรือคอลัมน์ใหญ่จากซ้ายไปขวาหรือขวาไปซ้ายขึ้นไปขึ้นหรือลง) คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น คุณสามารถส่งออกเรียงเป็น ASCII, เป็นสี ASCII หรือเป็นกราฟิกดั้งเดิม หากคุณเลือกเอาต์พุต ASCII คุณสามารถเลือกอักขระ ASCII ที่พิมพ์ได้สี่ตัวเพื่อแสดงสี่สี หากคุณเลือก …

13
Malbolge ปกติเพื่อแปล Malbolge
ในงานนี้คุณจะเขียนโปรแกรม / ฟังก์ชั่นที่ใช้โปรแกรมNormalized Malbolgeและแสดงผลลัพธ์Malbolge program (นี่เป็นเครื่องมือลับที่โปรแกรมเมอร์ Malbolge ทุกคนใช้!) อินพุต โครงสร้างข้อมูลที่ (อย่างใด) แสดงถึงโปรแกรมปกติ Malbolge เอาท์พุต โครงสร้างข้อมูลที่แสดงถึงโปรแกรม Malbolge ที่เกิดขึ้น ตัวอย่าง jpoo*pjoooop*ojoopoo*ojoooooppjoivvvo/i<ivivi<vvvvvvvvvvvvvoji (=BA#9"=<;:3y7x54-21q/p-,+*)"!h%B0/.~P<<:(8&66#"!~}|{zyxwvugJ% jjjj*<jjjj*<v ('&%#^"!~}{XE jjjjjjjjjjjjjjjjjjjjjjj*<jjjjjjjjjjjjjjjjjjjjjjjj*<v ('&%$#"!~}|{zyxwvutsrqpnKmlkjihgfedcba`_^]\[ZYXWVT1| วิธีการแปลง ทำซ้ำโปรแกรม Malbolge ปกติที่ทำตามขั้นตอนต่อไปนี้สำหรับแต่ละอักขระ: แทนที่ตัวอักษรในสตริงกับตัวละครที่สอดคล้องกันใน*jpovi</ '(>DQbcu(นั่นคือแผนที่*จะ', jการ(และอื่น ๆ .) จากนั้นลบตำแหน่งปัจจุบันของตัวนับโปรแกรม (เช่นจำนวนตัวอักษรก่อนหน้าปัจจุบัน) จากรหัส ASCII ของตัวละคร หากรหัส ASCII ที่ได้นั้นน้อยกว่า 33 ให้เพิ่มขึ้นเป็น 94 และทำซ้ำจนกว่าจะถึงอย่างน้อย 33 ผนวกอักขระที่เป็นผลลัพธ์ต่อท้ายเอาต์พุต กฎระเบียบ นี่คือรหัสกอล์ฟแข่งขัน ; …
12 code-golf  string 

20
สอบถามผู้ตอบ
ต้นฉบับ: https://james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html Alain Colmerauer ออกแบบภาษาโปรล็อกตรรกะ เป้าหมายของเขาคือการสร้างภาษาการเขียนโปรแกรมที่ฉลาดเหมือนเด็กสองขวบ เพื่อพิสูจน์ว่าเขาประสบความสำเร็จในเป้าหมายของเขาเขาได้เสนอโปรแกรม Prolog ที่ตอบว่า "ไม่" อย่างมีประสิทธิภาพสำหรับการสอบถามทั้งหมด ถามอะไรก็ได้! - (แน่นอนว่าเขาไม่ได้ทำ) งานของคุณคือสร้างโปรแกรมที่ฉลาดกว่าโปรแกรมของ Alain Colmerauer สิ่งนี้ไม่จำเป็นต้องอยู่ใน Prolog ข้อมูลจำเพาะ หากอินพุตลงท้ายด้วย?และมีอย่างน้อยหนึ่ง,ข้อความให้ส่งคืนจากข้อความสุดท้าย,จนถึงก่อนหน้า?จนกระทั่งก่อนสุดท้าย มิฉะนั้นถ้าสิ้นสุดการป้อนข้อมูลที่มีผลตอบแทน?No อื่นกลับมา Yesอื่นกลับมา กฎระเบียบ ไม่มีช่องโหว่มาตรฐาน อินพุต / เอาต์พุตจะดำเนินการผ่านวิธีการอินพุต / เอาต์พุตมาตรฐานของเรา โปรแกรมของคุณจะต้องทำการสอบถามอย่างน้อย 1 ครั้ง คุณควรส่งออกการสอบถามที่ประมวลผลแล้ว YesและNo 's เป็นกรณี ๆ ในตัวอย่าง คุณรับประกันได้ว่าหากอินพุตมี a ?อินพุตจะมีเพียงหนึ่งอินพุต?และมันจะเป็นตัวละครสุดท้ายเสมอ อินพุตจะเป็นวลี / ประโยคเสมอ วลีนี้ / ประโยคจะไม่เพียง แต่มีตัวละคร,และ?เช่น,, …
12 code-golf  string 

1
วาดลำดับของRecamánด้วย ASCII
ลำดับของRecamán ( A005132 ) เป็นลำดับทางคณิตศาสตร์ที่กำหนดดังนี้: A(n)=⎧⎩⎨0A(n−1)−nA (n−1)+nif n=0ถ้า A(n-1)−n is positive and not already in the sequenceotherwiseA(n)={0if n=0A(n-1)-nถ้า A(n-1)-n เป็นบวกและไม่ได้อยู่ในลำดับA(n-1)+nมิฉะนั้นA(n) = \begin{cases}0 & \textrm{if } n = 0 \\ A(n-1) - n & \textrm{if } A(n-1) - n \textrm{ is positive and not already in the sequence} \\ % Seems …

6
ไวรัส vs Antidotes code golf [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา มีอาร์เรย์ 2D แบบสี่เหลี่ยมผืนผ้าที่มีไวรัสซึ่งแสดงด้วย 'v', antidote1 ที่ระบุโดย 'a' และ antidote2 แสดงด้วย 'b' (ไม่มีค่าอื่นนอกจาก 'v', 'a' และ 'b') Antidote1 สามารถฆ่าไวรัสเพื่อนบ้านในทิศทางแนวนอนและแนวตั้งได้ แต่ Antidote2 สามารถฆ่าไวรัสเพื่อนบ้าน (ถ้ามี) ในแนวนอนแนวตั้งและแนวทแยงมุม เมื่อเปิดใช้งานยาแก้พิษจำนวนไวรัสจะยังคงอยู่ในตอนท้าย? ตัวอย่าง: การป้อนข้อมูล: vv vv ผลลัพธ์: 4 การป้อนข้อมูล: av vv ผลลัพธ์: 1 การป้อนข้อมูล: vvv vbv vvv ผลลัพธ์: 0 การป้อนข้อมูล: bvb …
12 code-golf 

5
ย้อนกลับรหัสของคุณย้อนกลับ OEIS
งานที่นี่คือการเขียนโปรแกรมที่ใช้จำนวนธรรมชาติ, , และสร้างคำที่ของลำดับ OEIS ลำดับนั้นควรมีตัวระบุในรูปแบบตามด้วยตัวเลข 6 ตัว ตอนนี้เมื่อคุณนำซอร์สโค้ดของคุณและกลับลำดับของไบต์เพื่อสร้างโปรแกรมใหม่โปรแกรมนั้นควรใช้ลำดับ OEIS ด้วย ลำดับใหม่ควรถูกระบุด้วยตัวเลข 6 ตัวเหมือนกันเป็นครั้งสุดท้าย แต่เรียงกลับกัน (รวมถึงศูนย์นำหน้า)nnnnnnAA ทีนี้เพื่อป้องกันไม่ให้สิ่งเล็ก ๆ น้อย ๆ ทั้งเลขตัว OEIS และโปรแกรมของคุณไม่สามารถเป็น palindromes นั่นคือลำดับและโปรแกรมควรแตกต่างกัน คุณไม่สามารถเลือกลำดับที่ไม่มีการย้อนกลับหรือว่างเปล่า สำหรับแต่ละลำดับของคุณคุณอาจเลือกที่จะใช้การจัดทำดัชนี 0 หรือ 1 พวกเขาไม่จำเป็นต้องใช้การจัดทำดัชนีเดียวกัน เนื่องจากลำดับของ OEIS บางตัวมีโดเมนที่ จำกัด คุณจึงต้องส่งออกเฉพาะหมายเลขที่ถูกต้องสำหรับโดเมนของลำดับนั้น พฤติกรรมที่ต้องการของคุณนั้นไม่ได้กำหนดนอกโดเมน (คุณสามารถส่งออก0, ขัดข้อง, สั่งพิซซ่า ฯลฯ ) นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์น้อยกว่าจะดีกว่า

5
ปริศนาปิรามิดที่เพิ่มเข้ามานี้มีทางออกที่ไม่ซ้ำใคร
รับพีระมิดเพิ่มเติมพิจารณาว่าจะสามารถแก้ไขได้ พีระมิดนอกจากนี้ยังประกอบด้วยชั้นซึ่งแต่ละคนมีหนึ่งหมายเลขน้อยกว่าหนึ่งด้านล่าง ชั้นเป็นสัญลักษณ์เป็นP_iเป็นชั้นฐานและเป็นชั้นบนP_iจำนวนวันของจะแสดงเป็นj} เป็นจำนวนซ้ายสุดของและเป็นจำนวนไปทางขวาของj} คุณอาจเห็นภาพอยู่ด้านบนของPPPiiiPiPiP_iP1P1P_1Pi+1Pi+1P_{i+1}PiPiP_ijjjPiPiP_iPi,jPi,jP_{i,j}Pi,1Pi,1P_{i,1}PiPiP_iPi,j+1Pi,j+1P_{i,j+1}Pi,jPi,jP_{i,j}Pi+1,jPi+1,jP_{i+1,j}Pi,jPi,jP_{i,j}และอยู่ตรงกลางดังนั้นชื่อ "การเติมพีระมิด "Pi,j+1Pi,j+1P_{i,j+1} ∀Pi,j,Pi,j∈N∗∀Pi,j,Pi,j∈N∗\forall P_{i,j},P_{i,j}\in\mathbb N^*นั่นคือทุกหมายเลขในพีระมิดเป็นจำนวนเต็มบวกที่ไม่เป็นศูนย์ ∀i>1,Pi,j=Pi−1,j+Pi−1,j+1∀i>1,Pi,j=Pi−1,j+Pi−1,j+1\forall i>1,P_{i,j}=P_{i-1,j}+P_{i-1,j+1}นั่นคือทุกหมายเลขที่ไม่ได้อยู่บนชั้นฐานของพีระมิดคือผลรวมของ ตัวเลขสองตัวข้างล่างนี้ หากมีตัวเลขมีหมายเลขจึงเป็นจำนวนขวาสุดของP_iในแง่ที่ง่ายกว่าแต่ละเลเยอร์มีหนึ่งหมายเลขน้อยกว่าเลเยอร์ด้านล่างP1P1P_1nnnPiPiP_in−i+1n−i+1n-i+1Pi,n−i+1Pi,n−i+1P_{i,n-i+1}PiPiP_i ปริศนานอกจากพีระมิด เป็นปิรามิดนอกจากนี้ยังมีตัวเลขบางที่ถูกลบ (แทนที่ด้วย ) วิธีแก้ปัญหาคือการเพิ่มพีระมิดโดยที่นั่นคือตัวเลขที่มีอยู่เดิมในปริศนามี ถูกทิ้งให้ไม่เปลี่ยนแปลง ปริศนาดังกล่าวอาจมีทางออกมากกว่าหนึ่งข้อQQQ???PPP∀Qi,j≠?,Pi,j=Qi,j∀Qi,j≠?,Pi,j=Qi,j\forall Q_{i,j}\ne{?},P_{i,j}=Q_{i,j} งานของคุณคือการเพิ่มตัวต่อปริศนาปิรามิดเพื่อตรวจสอบว่ามันมีทางออกเดียวหรือไม่ อินพุต คุณสามารถรับอินพุตในฟอร์มใด ๆ ต่อไปนี้ แต่ต้องสอดคล้องกัน: อาร์เรย์ของเลเยอร์ อาเรย์ของเลเยอร์มีรูปร่างเหมือนพีระมิดโดยใช้ค่าที่ไม่เป็นบวก - จำนวนเต็มที่สอดคล้องกันเป็นตัวคั่นระหว่างองค์ประกอบ (ใช้เพียงครั้งเดียวในแต่ละครั้ง) เช่นเดียวกับการเติมด้านซ้ายและขวา ตัวคั่นและช่องว่างภายในจะต้องเหมือนกัน อาร์เรย์ของเลเยอร์ที่มีการเติมด้านขวาหรือซ้ายที่ถูกต้องสอดคล้องกัน (คุณต้องสอดคล้องและไม่ผสมการผสมด้านขวาและซ้ายในกรณีนี้) โปรดทราบว่าจะต้องใช้ค่าที่สอดคล้องกันซึ่งไม่ใช่จำนวนเต็มบวกอย่างเคร่งครัดเพื่อแสดงตัวเลขที่ขาดหายไป ค่านี้ไม่สามารถใช้เป็นช่องว่างภายใน นอกจากนี้คุณยังสามารถนำเลเยอร์ที่ต่อกัน (คุณยังสามารถแยกพวกมันออกได้) และการเรียงลำดับอาจมาจากฐานไปยังด้านบนหรือจากด้านบนสู่ฐาน เอาท์พุต หนึ่งในสองค่าที่แตกต่างที่สอดคล้องกันโดยที่หนึ่งแสดงถึงการมีอยู่ของโซลูชันที่ไม่ซ้ำกันและอีกอย่างหนึ่งคือการขาดโซลูชันหรือการมีมากกว่าหนึ่งโซลูชัน กฎระเบียบ Qi+1,j=Qi,j+Qi,j+1Qi+1,j=Qi,j+Qi,j+1Q_{i+1,j}=Q_{i,j}+Q_{i,j+1}จะเป็นจริงเสมอถ้านั่นคืออินพุตรับประกันได้ว่าจะไม่มีตัวเลขอยู่ด้านบนของตัวเลขอีกสองตัวที่ไม่ใช่ผลรวมของพวกเขาหากรู้ตัวเลขทั้งสามQi,j,Qi,j+1,Qi+1,j∈N∗Qi,j,Qi,j+1,Qi+1,j∈N∗Q_{i,j},Q_{i,j+1},Q_{i+1,j}\in\mathbb N^* ∃Qi,j,Qi,j≠?∃Qi,j,Qi,j≠?\exists Q_{i,j},Q_{i,j}\ne{?}นั่นคือปิรามิดจะมีหมายเลขที่รู้จักอย่างน้อยหนึ่งหมายเลข ไม่ทำสิ่งเหล่านี้ …

3
พิมพ์ 'A' 1,000 ครั้งด้วย BrainFuck
รหัส BrainFuck ที่ดีที่สุด (ในแง่ของขนาดรหัส) ในการพิมพ์ 'A' 1,000 ครั้งคือเท่าไหร่ แนวทางของฉันคือ ตั้ง 'A' เป็น p [0] ตั้งค่า 255 เป็น p [1] เพื่อแสดง 255 'A', 3 ครั้ง ตั้งค่า 235 เป็น p [1] เพื่อแสดง 235 'A' มันไม่ได้มีประสิทธิภาพ แต่ฉันไม่สามารถหาวิธีใช้ตัวนับพ่วงพร้อมกันเช่นการคูณ มีวิธีที่ดีกว่าการคูณหรือไม่ คำถามทั่วไปเพิ่มเติม: มีกฎในการคูณด้วยจำนวนมากด้วยรหัสที่เล็กที่สุดหรือไม่

30
Chunk + ระบุรายการตัวเลข
ฉันมีรายการเลขทศนิยม: 4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4 รายการเลขฐานสิบเป็นที่รู้จักกันในชื่อรายการ เราสามารถสร้าง "ชิ้นส่วน" จากรายการเหล่านี้โดยจัดกลุ่มหมายเลขที่เหมือนกันและติดกัน ฉันต้องการกำหนดหมายเลขที่ไม่ซ้ำกันให้แต่ละอันเริ่มต้นจาก 1 และเพิ่มขึ้น 1 ตามลำดับที่จะปรากฏในรายการต้นฉบับ ดังนั้นเอาต์พุตสำหรับตัวอย่างที่กำหนดจะมีลักษณะดังนี้: 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5 รูปแบบอินพุต รายการของตัวเลข (0-9) คุณสามารถใช้ภาษาในตัวเพื่ออ่านรายการนี้ได้ตามต้องการ การเข้ารหัส: ASCII รูปแบบเอาต์พุต ชุดตัวเลขทศนิยมคั่นด้วยตัวคั่น โปรแกรมของคุณต้องใช้ตัวคั่นเดียวกันเสมอ ตัวคั่นต้องยาวกว่า 0 …

6
การรวมกลุ่มตามความคิดริเริ่ม
บทนำ: ฉันรวบรวมปริศนาคดเคี้ยว ส่วนใหญ่ผลิตและจำหน่ายโดย บริษัท จีน บริษัท ที่มีชื่อเสียงส่วนใหญ่ขออนุญาตจากผู้ออกแบบตัวต่อเพื่อผลิตงานออกแบบและทำงานร่วมกันเพื่อนำไปสู่ผลิตภัณฑ์ในตลาด ในกรณีนี้ผู้ออกแบบเกมปริศนานั้นมีความสุขและภูมิใจมากที่หนึ่งในปริศนาของพวกเขาเข้าสู่ตลาด อย่างไรก็ตามยังมี บริษัท ของจีนที่สร้างปริศนาเลียนแบบ การลอกเลียนแบบเหล่านี้มีทั้งการออกแบบที่ใช้โดยไม่ได้รับอนุญาตจากผู้สร้างดั้งเดิมหรือเป็นสำเนาที่มีคุณภาพต่ำกว่าของปริศนาที่มีอยู่เดิม ท้าทาย: เราจะพิจารณาความสามารถในการสร้างสรรค์ของตัวเลขที่ 'ปล่อย' ตามลำดับเฉพาะ (จากซ้ายไปขวา† ) รับรายการจำนวนเต็มจัดกลุ่มและส่งออกตามความคิดริเริ่ม ความคิดริเริ่มของตัวเลขถูกกำหนดอย่างไร? ตัวเลขซ้ำซ้อนกับตัวเลขก่อนหน้าหรือไม่ กลุ่ม (ต้นฉบับน้อยที่สุด) โดยที่กลุ่มต่อท้ายอยู่หลังจากกลุ่มอื่น ๆ ทั้งหมดX+ 1X+1X+1X+ 1X+1X+1 เป็นตัวเลขที่ซ้ำกันของตัวเลขก่อนหน้า แต่เป็นค่าลบแทน (เช่นหมายเลขเดิมคือแต่ตอนนี้ ; หรือกลับกัน) กลุ่มXnnn- n-n-nXXX สามารถสร้างค่าสัมบูรณ์ของตัวเลขโดยการต่อตัวเลขสัมบูรณ์ก่อนหน้าหนึ่งหมายเลขขึ้นไปและมันไม่ได้เป็นส่วนหนึ่งของกลุ่มที่กล่าวถึงก่อนหน้านี้หรือหรือไม่? กลุ่มโดยที่คือจำนวนตัวเลขที่แตกต่างกันที่ใช้ในการต่อข้อมูล (และ )X+ 1X+1X+1XXXX- NX-ยังไม่มีข้อความX-Nยังไม่มีข้อความยังไม่มีข้อความNยังไม่มีข้อความ≥ 1ยังไม่มีข้อความ≥1N\geq1 จำนวนไม่เหมาะสมกับกลุ่มใด ๆ ข้างต้นหรือไม่ดังนั้นจึงมีความเป็นเอกลักษณ์โดยสิ้นเชิงหรือไม่? กลุ่ม (ดั้งเดิมมากที่สุด) ซึ่งนำหน้ากลุ่มอื่นทั้งหมด111 นี่อาจฟังดูไม่ชัดดังนั้นนี่เป็นตัวอย่างทีละขั้นตอน : …

29
นับรวมตัวอักษรที่เป็นไปได้ทั้งหมดใน Word
คุณได้รับสตริงซึ่งจะมีอักขระ az สามัญ (คุณสามารถสันนิษฐานได้ว่านี่จะเป็นกรณีในการทดสอบใด ๆ และสมมติว่าตัวอักษรทั้งหมดจะเป็นตัวพิมพ์เล็กเช่นกัน) คุณต้องพิจารณาจำนวนชุดค่าผสมที่ไม่ซ้ำกันที่สามารถทำจากอักขระแต่ละตัวในสตริงและพิมพ์หมายเลขนั้น อย่างไรก็ตามตัวอักษรที่ซ้ำกันสามารถละเว้นได้ในการนับชุดค่าผสมที่เป็นไปได้ กล่าวอีกนัยหนึ่งถ้าสตริงที่กำหนดคือ "สวัสดี" การเปลี่ยนตำแหน่งของทั้งสองlนั้นไม่ถือว่าเป็นวลีที่ไม่ซ้ำกันดังนั้นจึงไม่สามารถนับรวมได้ จำนวนไบต์ที่สั้นที่สุดจะเป็นผู้ชนะรอคอยที่จะเห็นโซลูชันสร้างสรรค์ในภาษาที่ไม่ใช่กอล์ฟ! ตัวอย่าง: hello -> 60 aaaaa -> 1 abcde -> 120
12 code-golf  string 

21
กลุ่มภาษา OEIS
นี่เป็นความท้าทายคำตอบที่เกี่ยวข้องกับ OEIS โอ้ข้ออ้างสำหรับเรื่องนี้ก็เพราะ บริษัท ต้องการโปรแกรมหนึ่งเพื่อพิมพ์ลำดับ OEIS ของพวกเขาแย่มากจริง ๆ และพวกเขามีทุกภาษา รูปแบบคำตอบผูกมัดทำงานในวิธีต่อไปนี้: บางคนโพสต์คำตอบแรกซึ่งการแก้ปัญหาเพิ่มเติมทั้งหมดเกิดขึ้น คำตอบนี้เป็นโปรแกรมที่ให้หมายเลข N ป้อนตัวเลข Nth ในลำดับ OEIS ของดัชนีใด ๆ ที่พวกเขาเลือก (เราจะเรียกมันว่าลำดับ 1) ในภาษาใดก็ตามที่พวกเขาเลือก (ภาษา 1) บางคนเข้ามาและเลือกลำดับของตนเอง (ซึ่งจะต้องแตกต่างจากก่อนหน้านี้และจากลำดับก่อนหน้าทั้งหมด) พวกเขาสร้างโปรแกรมในภาษาอื่น (ซึ่งจะต้องแตกต่างจากภาษาก่อนหน้านี้ทั้งหมด) ซึ่งกำหนดหมายเลข N ในภาษา 1 เอาท์พุทหมายเลขลำดับที่ Nth 1 และให้หมายเลขเป็นภาษา 2 ส่งลำดับหมายเลขลำดับที่ N 2 กระบวนการนี้จะดำเนินต่อไปไม่สิ้นสุด คำที่ n ของลำดับคือคำที่มา n ครั้งหลังจากคำสั่งแรกทำงานจากรายการแรก ที่นี่เราใช้การจัดทำดัชนี 0 และ …

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