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

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

2
ขยายช่วงเต็มจำนวนสูงสุด
สมมติว่าคุณจะได้รับชุดของที่ไม่ได้ตัด[a1,b1],[a2,b2],[a3,b3],...,[aN,bN]ช่วงของจำนวนเต็ม ( [a,b]ชุดของจำนวนเต็มมากกว่าหรือเท่ากับaและน้อยกว่าหรือเท่ากับb) ช่วงเวลาที่ดัชนีXครอบคลุมbX - aX + 1ค่า เราจะโทรไปที่หมายเลขcXนี้ เนื่องจากแต่ละช่วงเวลาสามารถเป็น ... ไม่เปลี่ยนแปลง (อยู่ในฐานะ[aX,bX]) ขยายไปทางขวาไปทาง+ด้านข้างของตัวเลขโดยcX(กลายเป็น[aX,bX + cX]), หรือขยายไปทางซ้ายไปทาง-ด้านข้างของจำนวนบรรทัดโดยcX(กลายเป็น[aX - cX,bX]) จำนวนสูงสุดของค่าใดบ้างที่สามารถรวมเข้าด้วยกันในช่วงเวลาที่อัปเดตทั้งหมดเนื่องจากพวกเขายังคงไม่ตัดกันทั้งหมด เขียนฟังก์ชันหรือโปรแกรมที่รับสตริงของฟอร์ม[a1,b1],[a2,b2],[a3,b3],...,[aN,bN]และคำนวณค่าสูงสุดนี้ ถ้าเขียนฟังก์ชันให้คืนค่า หากเขียนโปรแกรมแบบเต็มให้ใช้ stdin สำหรับอินพุตและพิมพ์ค่าไปยัง stdout (หรือใช้ทางเลือกที่ใกล้เคียงที่สุด) คุณอาจจะสมมติค่าทั้งหมดเป็นอย่างดีภายในปกติลงนาม 32 บิตขีด จำกัด ของจำนวนเต็มและaXน้อยกว่าหรือเท่ากับดัชนีทั้งหมดbX Xช่วงเวลาอาจอยู่ในลำดับใด ๆ พวกเขาไม่จำเป็นต้องเพิ่มขึ้นเสมอ พวกเขาจะต้องได้รับเป็นสตริงในรูปแบบข้างต้น สตริงอาจว่างเปล่าซึ่งในกรณีนี้คำตอบจะเป็น 0 การส่งที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่าง หากอินพุตเป็น[-3,0],[1,2],[4,9]เอาต์พุตจะเป็น 22 ช่วงเวลากลางไม่มีที่ว่างสำหรับขยายอย่างใดอย่างหนึ่งดังนั้นจึงต้องไม่เปลี่ยนแปลง ช่วงเวลาด้านซ้ายและด้านขวาสามารถขยายได้ทั้งไป[-7,0]และ[4,15]ตามลำดับ การรวมกันของ[-7,0]และ[1,2]และ[4,15]มีค่าทั้งหมดจาก -7 ถึง 15 ยกเว้น 3 …

2
กลยุทธ์การชนะสำหรับเกมก่อสร้างสตริง
พื้นหลัง Alice และ Bob เล่นเกมที่เรียกว่าสร้างคำไบนารี ในการเล่นเกมที่คุณแก้ไขความยาวn >= 0, ชุดGของ length- nคำไบนารีที่เรียกว่าชุดเป้าหมายและ length- nสตริงtที่มีตัวอักษรAและBที่เรียกว่าคำสั่งเปิด เกมเป็นเวลาnผลัดกันและในทางกลับกันiผู้เล่นที่กำหนดโดยเลือกบิตt[i] w[i]เมื่อเกมสิ้นสุดลงผู้เล่นจะดูคำฐานสองที่wพวกเขาสร้าง หากพบคำนี้ในชุดเป้าหมายGอลิซชนะเกม มิฉะนั้นบ๊อบชนะ ยกตัวอย่างเช่นการแก้ไขให้ของn = 4, และG = [0001,1011,0010] อลิซได้รับการเปิดครั้งแรกและเธอเลือกt = AABA เปิดสองยังเป็นของอลิซและเธอเลือกw[0] = 0 บ๊อบมีการเปิดสามและเขาเลือกw[1] = 0 ในการเลี้ยวโค้งสุดท้ายอลิซเลือกw[2] = 0 w[3] = 1คำที่เป็นผลลัพธ์0001ถูกพบในGดังนั้นอลิซชนะเกม ตอนนี้ถ้าบ๊อบเลือกw[2] = 1อลิซอาจเลือกw[3] = 0ในรอบสุดท้ายของเธอและยังคงชนะ นั่นหมายความว่าอลิซสามารถชนะเกมได้ไม่ว่าบ็อบจะเล่นอย่างไร ในสถานการณ์เช่นนี้อลิซมีกลยุทธ์ชนะ กลยุทธ์นี้สามารถมองเห็นได้เป็นต้นไม้ไบนารีที่มีป้ายกำกับซึ่งแยกตามระดับที่สอดคล้องกับตาของบ๊อบและทุกสาขามีคำจากG: A A B A …
14 code-golf  game 

1
Robot roadie จำเป็นต้องบรรจุรถบรรทุก
ในฐานะที่เป็น Roadie ของวงคุณต้องเก็บรถบรรทุก โปรแกรมของคุณจะวางแพ็คเกจเพื่อให้พอดีกับความสูงที่เล็กที่สุด รถบรรทุกที่บรรจุไม่ดี กฎระเบียบ แพคเกจอาจหมุนได้หลายรายการ 90 องศา แพคเกจอาจสัมผัส แต่ต้องไม่ทับซ้อนกัน เอาต์พุตเป็นอิมเมจที่บรรจุใหม่ (ไปยังไฟล์หรือ stdout) โปรแกรมของคุณอาจใช้รูปแบบภาพแรสเตอร์อินพุตหรือเอาท์พุต โปรแกรมของคุณต้องยอมรับแพคเกจรูปทรงต่าง ๆ จำนวนไม่เกิน 4,000x4000 พิกเซล ต้องไม่ฮาร์ดโค้ดสำหรับภาพทดสอบนี้ หากฉันสงสัยว่าการส่งใด ๆ จะถูกปรับให้เข้ากับภาพเฉพาะนี้ฉันขอสงวนสิทธิ์ในการแทนที่ด้วยภาพทดสอบใหม่ คะแนน คะแนนของคุณคือความสูงที่เล็กที่สุดของสี่เหลี่ยมที่จะมีการจัดเรียงของคุณ (ความกว้างคือความกว้างของสี่เหลี่ยมที่ป้อนเข้า) ในกรณีที่เสมอกันการเข้าเร็วที่สุดชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้ามตามปกติ

7
รวมพลังกับ n
คำสั่ง เขียนโปรแกรมที่ได้รับการป้อนข้อมูลจำนวนเต็มn ( n >= 0) ผลลัพธ์ที่ได้มีขนาดเล็กที่สุดจำนวนเต็มบวก เมตรที่: n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k] aและbเป็นลำดับที่มีความยาวเท่ากัน องค์ประกอบทั้งหมดของaน้อยกว่าm องค์ประกอบทั้งหมดของbน้อยกว่าm องค์ประกอบทั้งหมดของaมีที่แตกต่างกันและจำนวนเต็มa[x] >= 0 องค์ประกอบทั้งหมดของbมีที่แตกต่างกันและจำนวนเต็มb[x] >= 0 a[x]และb[x]ไม่ใช่ทั้งคู่ 0 (ตั้งแต่ 0 ^ 0 ไม่แน่นอน) นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ ตัวอย่าง In 0 -> Out 1 Possible Sum: In 1 -> Out 2 Possible …

15
เติมในช่องว่าง
อินพุต ติดลบnและสตริงว่างที่มีเพียงตัวอักษรและตัวเลขและขีดs _ตัวอักษรตัวแรกของไม่ได้s _ขีดล่างของsถูกตีความว่าเป็นช่องว่างที่สามารถเติมด้วยอักขระอื่น ๆ เรากำหนดลำดับอนันต์ของ "สตริงอนันต์" ดังนี้ สตริงจะถูกทำซ้ำหลายครั้งอย่างไม่ จำกัด สำหรับทุกสตริงจะได้รับจากโดยการกรอกช่องว่างกับตัวละครของเพื่อให้คนแรกของจะถูกแทนที่ด้วยสองด้วยและอื่น ๆ เนื่องจากตัวอักษรตัวแรกของไม่ใช่ตัวอักษรทุกช่องว่างจะถูกเติมเต็มในที่สุดและเราแสดงด้วยสตริงที่ไม่มีที่สิ้นสุดซึ่งทุกตัวถูกแทนที่ด้วยค่าในที่สุดs1 = s s s...sk > 1sk+1sks1_sks1[0]s1[1]s_s∞_ เอาท์พุต nอักขระตัวแรกของเป็นสตริงs∞ ตัวอย่าง พิจารณาปัจจัยการผลิตและn = 30 s = ab_c_เรามี s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_... เพื่อทดแทนช่องว่างของเราs1s1 s2 = abacbab_ccab_caabbc_abcc_abacbab_cc... เราแทนที่ช่องว่างอีกครั้งซึ่งส่งผลให้s1 s3 = abacbabaccabbcaabbc_abcccabacbab_cc... การทดแทนอีกหนึ่งรายการ: s4 = abacbabaccabbcaabbcaabcccabacbabbcc... จากนี้เราสามารถอนุมานอักขระ 30 ตัวแรกของซึ่งคือs∞ abacbabaccabbcaabbcaabcccabacb นี่เป็นเอาต์พุตที่ถูกต้อง กฎระเบียบ คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น …
14 code-golf  string 

4
เกือบจะกระเพื่อม!
ท้าทาย ความท้าทายของคุณคือการออกแบบสำหรับล่ามภาษากระเพื่อมเหมือนซึ่งจะไปจากที่นี่มาได้รับการประกาศเกียรติคุณ: GLisp รหัสโปรแกรมสำหรับGLispจะประกอบด้วยจำนวนของนิพจน์ที่ซ้อนกันที่แสดงโดยวงเล็บในรูปแบบต่อไปนี้โดยพลการ: (func arg1 arg2 ...) โปรดทราบว่าล่ามจะต้องอนุญาตสำหรับอักขระช่องว่างภายนอกก่อนและหลังวงเล็บฟังก์ชั่นและข้อโต้แย้ง ประเภท คุณจะใช้งานสี่ประเภท, จำนวนเต็ม, รายการ, บูลีนและฟังก์ชั่น ค่าจำนวนเต็มและบูลีนสามารถแทรกอย่างชัดเจนในซอร์สโค้ดด้วยไวยากรณ์ของตัวเอง ล่ามของคุณต้องสมมติว่าการใช้อักขระตัวเลขหมายถึงจำนวนเต็ม (คุณไม่จำเป็นต้องใช้ไวยากรณ์เพื่อแทรกจำนวนเต็มลบอย่างชัดเจน) ล่ามของคุณจะต้องถือว่าtrueและfalseได้รับการกำหนดค่าบูลีน ฟังก์ชั่นไม่สามารถกำหนดได้อย่างชัดเจนโดยผู้ใช้และจะส่งกลับค่าเดียวเสมอ (รายการที่มีความยาวนับเป็นค่าเดียว) ฟังก์ชั่น ฟังก์ชั่นต่อไปนี้จะต้องได้รับการดำเนินการและอยู่ในรูปแบบฟังก์ชั่น , arity หาก Arity nดำเนินการต่อโดยเครื่องหมายบวกแสดงว่าnมีการโต้แย้งหรือมากกว่า คุณอาจสมมติว่าอาร์กิวเมนต์ทั้งหมดที่กำหนดให้กับฟังก์ชันนั้นเป็นประเภทเดียวกันเว้นแต่จะระบุไว้เป็นอย่างอื่น คุณอาจคิดว่าหากไม่มีการระบุพฤติกรรมสำหรับประเภทใบรับรองคุณอาจสมมติว่าไม่มีข้อโต้แย้งของฟังก์ชันนั้น ๆ ที่จะเป็นประเภทนั้น อาร์กิวเมนต์จะถูกอ้างถึงในแผนภาพต่อไปนี้: (func argument1 argument2 ... argumentn) + , 2+ หากอาร์กิวเมนต์ทั้งหมดเป็นประเภทจำนวนเต็มคุณต้องส่งคืนผลรวมของข้อโต้แย้ง ถ้าขัดแย้งทั้งหมดเป็นประเภทรายการคุณต้องกลับมาเรียงต่อกันของการขัดแย้งในการเรียงลำดับ ( arg1+arg2+ ...) หากอาร์กิวเมนต์ทั้งหมดเป็นประเภทBooleanคุณต้องส่งคืนตรรกะทั้งหมดของลำดับอาร์กิวเมนต์ (+ 1 2 3 …

2
ไปและทำให้มันเป็นดาว
ในการประกวดครั้งนี้คุณต้องเขียนโปรแกรมที่ยอมรับภาพพิกเซลขาวดำและพยายามที่จะแก้ไขเช่นว่ารูปร่างสีขาวก่อตัวเป็นโดเมนดาวโดยมีการเปลี่ยนแปลงน้อยที่สุดเท่าที่จะทำได้ การเปลี่ยนแปลงที่อนุญาตคือการเปลี่ยนพิกเซลสีขาวเป็นสีดำและเปลี่ยนพิกเซลสีดำเป็นสีขาว เอาท์พุทจะต้องประกอบด้วยภาพเดียวกันอีกครั้ง แต่คราวนี้มีการเปลี่ยนแปลงทั้งหมดและมี / ศูนย์การทำเครื่องหมาย พิกเซลที่เปลี่ยนจากสีขาวเป็นสีดำจะต้องแสดงเป็นสีน้ำเงินส่วนพิกเซลที่เปลี่ยนจากสีดำเป็นสีขาวจะต้องแสดงเป็นสีเหลืองและอย่างน้อยหนึ่งพิกเซลศูนย์จะต้องแสดงเป็นสีแดง (สีที่แน่นอนขึ้นอยู่กับคุณ) โปรแกรมจะต้องนำภาพที่ระบุออกมารวมถึงจำนวนการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้น คำนิยาม ติดดาวโดเมน ชุดของพิกเซลสีขาวของภาพที่เป็นตัวแทนของโดเมนดาวถ้า (และถ้ามี) มี (อย่างน้อย) หนึ่งในศูนย์พิกเซล พิกเซลศูนย์เป็นหนึ่งในพิกเซลสีขาวที่สามารถ conneced โดยเส้นตรงทั้งหมดของพิกเซลสีขาวอื่น ๆ เช่นว่าเส้นเท่านั้นลัดเลาะพิกเซลสีขาว ( พิกเซลกลางจึงไม่จำเป็นต้องซ้ำกัน) เส้นตรงระหว่างสองพิกเซล กำหนดสองพิกเซล (เริ่มต้นและสิ้นสุดทั้งสองสีแดงในภาพประกอบด้านล่าง) เส้น straigthระหว่างพิกเซลทั้งสองประกอบด้วยพิกเซลทั้งหมดที่สัมผัสเส้น (คณิตศาสตร์สีเหลืองในภาพประกอบด้านล่าง) ที่นำไปสู่จากจุดศูนย์กลางของแรก พิกเซลไปที่กึ่งกลางของพิกเซลสุดท้าย พิกเซลไม่ได้ถูกสัมผัสหากมันสัมผัสที่มุมเท่านั้นดังนั้นสำหรับพิกเซลที่จะเป็นของเส้นพิกเซลที่บรรทัด (คณิตศาสตร์, สีเหลือง) ต้องข้ามพิกเซลที่เป็นปัญหาด้วยความยาวที่ไม่ใช่ศูนย์ (หากสัมผัสเฉพาะจุดมุมเท่านั้นถือว่าเป็นความยาวศูนย์) ลองพิจารณาตัวอย่างต่อไปนี้: ตัวอย่าง ภาพแรกควรแสดงตัวอย่าง 'อินพุต' ของตัวอย่างทดสอบและรูปภาพอื่นสองภาพแสดงถึงเอาต์พุตที่ใช้ได้ที่เป็นไปได้สองตัวอย่างสำหรับตัวอย่างที่กำหนด: พื้นที่สีเหลือง (ก่อนหน้านี้เป็นสีดำ) นับรวมถึงโดเมน 'สีขาว' เช่นกันในขณะที่พื้นที่สีฟ้า (เคยเป็นสีขาว) นับเป็นส่วน 'สีดำ' นอกโดเมนและจุดสีแดงในแต่ละครั้งจะแทนจุดศูนย์กลางหนึ่งจุด …

1
คำแนะนำของงูหลาม: การพกพาของการเรียกฟังก์ชั่นครุ่นคิด
ใน Python คุณสามารถใช้dirฟังก์ชั่นบนวัตถุใดก็ได้เพื่อรับรายการชื่อฟังก์ชั่นอินสแตนซ์ของมัน: >>> dir('abc') ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__','__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', …
14 code-golf  tips  python 

5
ประติมากรรมแม่เหล็ก
นี้คือความต่อเนื่องหลวมของความท้าทายที่ก่อนหน้านี้ของฉันในกราฟก่อสร้าง พื้นหลัง ศิลปินคนประหลาดได้ว่าจ้างคุณให้ประเมินความสมบูรณ์ของโครงสร้างของประติมากรรมของเขา เขาสร้างผลงานศิลปะของเขาโดยนำแม่เหล็กรูปทรงลูกบาศก์จำนวนหนึ่งมาวางลงในกองใหญ่ทีละก้อน เพื่อวิเคราะห์วิธีการของเขาให้ดีขึ้นเราใช้โมเดลสองมิติต่อไปนี้ เราเริ่มต้นด้วยพื้นว่างและวางแม่เหล็ก#ที่พิกัดจำนวนเต็มใด ๆ พูดว่า0: | v # =============== 0 หากแม่เหล็กตกอยู่ที่0หนึ่งมันจะจบลงที่ด้านบนของแม่เหล็กก่อนหน้า: | v # # =============== 0 ตอนนี้ให้เราวางแม่เหล็กอีกหนึ่งที่0และอีกหนึ่งที่1: | #v ## # =============== 0 ตามที่เห็นด้านบนแม่เหล็กที่ตกลงมาจะติดกับแม่เหล็กที่สองที่มันผ่าน แม่เหล็กที่สองไม่จำเป็นต้องอยู่ใต้แม่เหล็กแรกโดยตรงและแม่เหล็กทั้งสองข้างยังคงนับเป็นแม่เหล็กเดียว: # # ##|## # v # ### # # # =============== 0 ศิลปินต้องการให้คุณคำนวณช่องว่างแนวตั้งสูงสุดในรูปปั้นสุดท้ายนั่นคือจำนวนช่องว่างสูงสุดระหว่างสองแม่เหล็กในคอลัมน์เดียวกันหรือแม่เหล็กและพื้นดินด้านล่าง ในภาพด้านบนหมายเลขนี้จะเป็น 3 (ในคอลัมน์2) อินพุต รายการจำนวนเต็มแทนค่าพิกัดที่ศิลปินวางแม่เหล็กอ่านจากซ้ายไปขวา คุณอาจคิดว่าพิกัด-1024 <= i …
14 code-golf  grid 

5
ทำให้หมายเลขใด ๆ โดยเพิ่มหมายเลข 2 ซ้ำ ๆ
คุณจะได้รับเครื่องที่มีสองลงทะเบียน 16 บิตและx yลงทะเบียนจะเริ่มต้นและx=1 y=0การดำเนินการเพียงอย่างเดียวที่เครื่องสามารถทำได้คือการเพิ่มโมดูโล 65536 นั่นคือ: x+=y- xถูกแทนที่ด้วย(x + y) mod 65536; yไม่เปลี่ยนแปลง y+=x - ในทำนองเดียวกันสำหรับ y x+=x- xถูกแทนที่ด้วย2x mod 65536; ถูกกฎหมายเฉพาะในกรณีที่xเป็นแม้กระทั่ง y+=y - ในทำนองเดียวกันสำหรับ y เป้าหมายคือการรับจำนวนที่กำหนดไว้ในหนึ่งในการลงทะเบียน (อย่างใดอย่างหนึ่งxหรือy) เขียนโปรแกรมหรือรูทีนย่อยที่ได้รับหมายเลข (ในstdin,, argvพารามิเตอร์ฟังก์ชั่น, ด้านบนของสแต็กหรือสถานที่ทั่วไปอื่น ๆ ) และส่งออกโปรแกรมเพื่อรับหมายเลขนี้ เอาต์พุตควรไปที่stdoutหรือ (หากภาษาของคุณไม่มีstdout) ไปยังอุปกรณ์เอาต์พุตทั่วไปอื่น ๆ โปรแกรมเอาต์พุตสามารถมีได้สูงสุด 100% บวกกับ 2 ขั้นตอนจากขั้นตอนที่เหมาะสมที่สุด นั่นคือถ้าโปรแกรมที่สั้นที่สุดที่จะได้รับจำนวนเป้าหมายมีขั้นตอนวิธีการแก้ปัญหาของคุณไม่สามารถจะยาวกว่าn 2n+2ข้อ จำกัด นี้คือการหลีกเลี่ยงการแก้ปัญหา "ง่ายเกินไป" …

4
เขียนตัวตรวจการสะกดคำ
เกมWaving Handsอยู่ที่ไหนสักแห่งระหว่าง Magic Pen และ Paper: Gathering และกรรไกรกระดาษ Rock ที่ประณีตมาก ทุกเทิร์นที่คุณเขียนหนึ่งในแปดท่าทางสำหรับแต่ละมือ: wiggled Fingers เสนอPalm Sงีบ WAVE Digit ชี้ Cตัก STAB Nothing มีกฎสำคัญบางประการที่สำคัญกว่าส่วนที่เหลือ: หากทั้งสองมือท่าทางPคุณจะยอมแพ้ (นี่คือการทำให้เข้าใจง่าย แต่เราจะทำตามนั้น) Bมือข้างเดียวในเวลาที่สามารถท่าทาง ชุดของท่าทางที่กระทำโดยมือเดียวกันสามารถเสกคาถาที่แต่ละคาถาถูกผูกไว้กับลำดับหนึ่งโดยเฉพาะ ลำดับเหล่านี้สามารถทับซ้อนกัน แต่แต่ละท่าทางสามารถใช้เป็นท่าทางสุดท้ายของคาถาเดียวเท่านั้น (เพื่อให้คุณสามารถสร้างคาถาได้มากถึงสองคาถาในรอบเดียว) คาถาบางอย่างต้องใช้ท่าทางด้วยมือทั้งสองพร้อมกัน งานของคุณคือกำหนดรายการท่าทางสำหรับแต่ละมือเพื่อกำหนดคาถาที่สามารถส่งในเทิร์นปัจจุบัน สำหรับแต่ละมืออักษรสุดท้ายในรายการแสดงถึงท่าทางที่เลือกสำหรับเทิร์นปัจจุบัน นี่คือรายการของลำดับท่าทาง ตัวอักษรตัวพิมพ์ใหญ่หมายถึงท่าทางที่ดำเนินการโดยมือเดียวตัวอักษรตัวพิมพ์เล็กหมายถึงท่าทางที่กระทำด้วยมือทั้งสอง B Stab cDPW Dispel magic cSWWS Summon elemental cw Magic mirror DFFDD Lightning bolt DFPW …
14 code-golf  string  game 

5
แปลง x-illion เป็นรูปแบบมาตรฐาน
รับสตริงซึ่งประกอบด้วยคำนำหน้าและจากนั้น "illion" แปลงตัวเลขนี้เป็นรูปแบบมาตรฐาน ตัวอย่างเช่น: "million" -> 10^6 "trillion" -> 10^12 "quattuordecillion" -> 10^45 โปรแกรมต้องสามารถจัดการอินพุตได้สูงถึง Centillion ซึ่งก็คือ 10 ^ 303 รายการชื่อและค่าแบบฟอร์มมาตรฐานสามารถพบได้ที่นี่ - โปรดทราบว่าสิ่งนี้ให้ค่าสำหรับการเพิ่มขึ้นทุก 10 ^ 3 ถึง 10 ^ 63 แต่จากนั้นให้เพิ่มทีละ 10 ^ 30 แต่รูปแบบนั้นค่อนข้างตรงไปตรงมา โปรแกรมจำเป็นต้องจัดการทั้งหมด 100 ราย (แม้จะไม่ได้ระบุอย่างชัดเจนจากเว็บไซต์ที่ให้ไว้) - นี่คือตัวอย่างของสิ่งนี้: "sexvigintillion" -> 10^81 "unnonagintillion" -> 10^276 "octotrigintillion" -> 10^117 อินพุตสามารถถูกกำหนดผ่าน …

4
Scriptbot Warz!
Scriptbot Warz! ผลลัพธ์อยู่ในและAssassinเป็นแชมป์ของเราชนะ 2 จาก 3 แมทช์! ขอบคุณทุกคนที่ส่ง Scriptbots! ขอขอบคุณเป็นพิเศษสำหรับแตรสำหรับBestOpportunityBotซึ่งแสดงเส้นทางที่ยอดเยี่ยมและใช้ประโยชน์จากตัวเลือกการดำเนินการทั้งหมด แผนที่ 1 แอสแซสซินดึงเอาโอกาสที่ดีที่สุดออกมาก่อนและการแข่งขันที่เหลือก็ค่อนข้างน่าเบื่อ รายละเอียดการเล่นโดยการเล่นที่นี่ Assassin: 10 HP, 10 Dealt ความเสียหาย, 3 ดาเมจที่ได้รับ The Avoider v3: 10 HP, จัดการความเสียหาย 0, รับความเสียหาย 0 ต้องกินให้หมด: 10 HP, ทำดาเมจ 0 ค่า, ทำลายดาเมจเป็น 0 BestOpportunityBot: 0 HP, 3 ดาเมจดาเมจ, ดาเมจ 10 ดาเมจ แผนที่ 2 BestOpportunityBot …

3
ค้นหาเมทริกซ์เกณฑ์การให้คะแนนสูงสุดโดยไม่มีคุณสมบัติ X
ความท้าทายนี้เป็นความท้าทายส่วนหนึ่งของอัลกอริทึมส่วนหนึ่งเป็นความท้าทายด้านการปรับให้เหมาะสมส่วนหนึ่งเป็นความท้าทายด้านโค้ดที่เร็วที่สุด rเมทริกซ์วงจรที่ระบุไว้อย่างเต็มที่โดยแถวแรกของ แถวที่เหลือคือการเรียงสับเปลี่ยนแบบวนรอบของแถวที่rมีออฟเซ็ตเท่ากับดัชนีแถว เราจะอนุญาตให้เมทริกซ์แบบวงกลมซึ่งไม่เป็นรูปสี่เหลี่ยมจัตุรัสเพื่อให้พวกเขาหายไปแถวสุดท้ายบางส่วนของพวกเขา อย่างไรก็ตามเราคิดเสมอว่าจำนวนแถวไม่เกินจำนวนคอลัมน์ ตัวอย่างเช่นให้พิจารณาเมทริกซ์ไซโคลไซเคิลต่อไปนี้ 3 คูณ 5 10111 11011 11101 เราบอกว่าเมทริกซ์มีคุณสมบัติ X ถ้ามันมีคอลัมน์ที่ไม่ว่างสองชุดที่มีดัชนีไม่เหมือนกันซึ่งมีผลรวม (เวกเตอร์) เหมือนกัน ผลรวมเวกเตอร์ของสองคอลัมน์เป็นเพียงการรวมองค์ประกอบที่ชาญฉลาดของสองคอลัมน์ นั่นคือผลรวมของสองคอลัมน์ที่มีxองค์ประกอบแต่ละคนเป็นอีกคอลัมน์ที่มีxองค์ประกอบ เมทริกซ์ด้านบนมีคุณสมบัติ X เล็กน้อยเนื่องจากคอลัมน์แรกและคอลัมน์สุดท้ายเหมือนกัน เมทริกซ์เอกลักษณ์ไม่เคยมีคุณสมบัติ X หากเราเพิ่งลบคอลัมน์สุดท้ายของเมทริกซ์ด้านบนเราจะได้ตัวอย่างซึ่งไม่มีคุณสมบัติ X และจะให้คะแนน 4/3 1011 1101 1110 งาน ภารกิจคือการเขียนโค้ดเพื่อค้นหาเมทริกซ์ไซโคลการให้คะแนนสูงสุดซึ่งรายการทั้งหมด 0 หรือ 1 และไม่มีคุณสมบัติ X คะแนน คะแนนของคุณจะเป็นคอลัมน์ตัวเลขหารด้วยจำนวนแถวในเมทริกซ์การให้คะแนนที่ดีที่สุดของคุณ Tie Breaker หากคำตอบสองข้อมีคะแนนเท่ากันคำตอบที่ชนะจะได้รับก่อน ในกรณีที่ไม่น่าเป็นไปได้มากที่ใครบางคนพบวิธีการที่จะได้รับคะแนนไม่ จำกัด หลักฐานที่ถูกต้องแรกของการแก้ปัญหาดังกล่าวจะได้รับการยอมรับ ในกรณีที่ไม่น่าเป็นไปได้มากขึ้นที่คุณสามารถหาข้อพิสูจน์ของการหาค่าเหมาะที่สุดของเมทริกซ์ จำกัด แน่นอนว่าฉันจะได้รับรางวัลเช่นกัน เปรย …

4
แก้ไขการกระทำสองเท่าและสามเท่าใน Dominion
แรงบันดาลใจ คำถามนี้เป็นแรงบันดาลใจด้วยบัตรห้องบัลลังก์กษัตริย์และศาลจากความนิยมดาดฟ้าอาคารเกมการ์ดปกครอง ในฐานะที่เป็นส่วนหนึ่งของหนึ่งเราเล่นลำดับของการกระทำ การกระทำเฉพาะสองอย่างนี้ทำให้การกระทำถัดไปที่เล่นซ้ำสองหรือสามครั้ง * การกระทำ "ทั่วไป" อื่น ๆ ทำให้เกิดเอฟเฟกต์เกมเฉพาะ แต่เราจะไม่สนใจรายละเอียดใด ๆ เพียงแค่ติดป้ายกำกับด้วยตัวอักษร กรณีที่น่าสนใจคือเมื่อห้องบัลลังก์หรือราชสำนักมีผลต่อห้องบัลลังก์อีกแห่งของศาลทำให้เกิดเอฟเฟกต์สองเท่าหรือสามเท่าให้ตัวเองเป็นสองเท่าหรือสามเท่า โซ่ยาวของห้องบัลลังก์กษัตริย์และการกระทำที่หลากหลายสามารถสร้างความสับสนให้กับผู้เล่นที่มีประสบการณ์ เป้าหมายของคุณคือการเขียนโค้ดที่สามารถแก้ไขเชนเหล่านี้ได้อย่างถูกต้องโดยใช้จำนวนไบต์น้อยที่สุด ฉันจะอธิบายข้อกำหนดของโปรแกรมก่อนที่จะอธิบายวิธีการแก้ไขปัญหาโซ่ในกฎ Dominion * ในทางเทคนิคคุณเลือกการกระทำที่ได้รับผลกระทบซึ่งเป็นส่วนหนึ่งของการแก้ไข Throne Room หรือ King's Court แต่มุมมองนี้สะอาดกว่าสำหรับความท้าทายนี้ ข้อกำหนดของโปรแกรม เขียนโปรแกรมหรือฟังก์ชั่นการตั้งชื่อ มันควรใช้ในห่วงโซ่ของการกระทำที่เล่น (STDIN หรือฟังก์ชั่นอินพุต) และเอาท์พุทหรือพิมพ์ห่วงโซ่ของการกระทำจากผลของการเสแสร้งและสามเท่า ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ อินพุต สตริงที่แทนลำดับของการดำเนินการที่เล่น การกระทำทั่วไปจะแทนด้วยตัวอักษรทุนผ่านA Zห้องบัลลังก์แอ็คชั่นสองเท่าเป็นพิเศษแสดงโดยตัวละคร2และแอ็คชั่นสามเท่าของคิงส์คอร์ต3 , จำนวนอักขระ (การกระทำ) จะอยู่ระหว่าง 1 ถึง 30 โดยรวม คุณอาจมีจุดสิ้นสุดการป้อนข้อมูลในบรรทัดใหม่หากคุณต้องการ อินพุตตัวอย่าง: WA23G3GA เอาท์พุต สตริงตัวอักษรพิมพ์ใหญ่AถึงZที่จะนี่ควรเป็นลำดับของการกระทำทั่วไปที่เป็นผลมาจากการแก้ไขเอฟเฟกต์สองเท่าและสามเท่าตามลำดับที่เกิดขึ้น …
14 code-golf  game 

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