คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

7
เพื่อนบ้านของใครเป็นศัตรู
บทนำ สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะกำหนดเพื่อนบ้านขององค์ประกอบในตารางเมทริกซ์ (เช่น ) เป็นรายการทั้งหมดของ ที่อยู่ติดกันในแนวทแยงมุมแนวนอนหรือแนวตั้งเป็น (เช่นพวกเขา"ล้อมรอบ"โดยไม่ต้องล้อมรอบ)A E = A i , j A EEEEAAAE=Ai,jE=Ai,jE=A_{i,j}AAAEEE EEE สำหรับ pedants คำนิยามอย่างเป็นทางการของเพื่อนบ้านของสำหรับ matixคือ (ดัชนี 0): โดยที่ n×n N ฉัน,Ai,jAi,jA_{i,\:j}n×nn×nn\times nAAAE ฉัน,Ni,j={Aa,b∣ ( a , b )∈Ei,j∩([0,n)∩Z)2}Nผม,J={Aa,ข|(a,ข)∈Eผม,J∩([0,n)∩Z)2}N_{i,\:j}=\{A_{a,\:b}\mid(a,b)\in E_{i,\:j}\:\cap\:([0,\:n)\:\cap\:\Bbb{Z})^2\}Eผม,J= { i - 1,ผม,i+1}×{j−1,j,j+1} \ {i,j}Ei,j={i−1,i,i+1}×{j−1,j,J+1} \ {ผม,J}E_{i,\:j}=\{i-1,\:i,\:i+1\}\times \{j-1,\:j,\:j+1\} \text{ \\ } \{i,\:j\} สมมติว่าองค์ประกอบที่ indexอาศัยอยู่ในความเป็นศัตรูถ้ามันเป็น coprime …

2
แก้ไขปัญหาการหยุดชะงักสำหรับ Modilar SNISP
ในจิตวิญญาณของการแก้ปัญหาลังเลสำหรับ Befingeให้มีกำหนดภาษาอื่นที่เรียกว่า 2D Modilar SNISP Modilar SNISP มีหกคำแนะนำต่อไปนี้: \ ชี้นำตัวชี้คำสั่งดังนี้: หากเข้าหาจากด้านบนไปทางขวา; ถ้าเดินจากทางขวาขึ้นไป; หากเข้าหาจากด้านล่างไปซ้าย; หากเข้าหาจากด้านซ้ายให้ลงไป / ชี้นำตัวชี้คำสั่งดังนี้: ถ้าเข้าหาจากด้านบนไปซ้าย; หากเข้าหาจากด้านซ้ายขึ้นไป; หากเข้าหาจากด้านล่างไปทางขวา; หากเข้าหาจากด้านขวาให้ลงไป ! ข้ามคำแนะนำถัดไป @ ผลักตำแหน่ง IP และทิศทางไปยังสแตกการโทร #ดึงตำแหน่ง IP และทิศทางจาก call stack และเรียกคืนจากนั้นข้ามคำสั่งถัดไป หาก call stack ว่างเปล่าการดำเนินการจะหยุดลง . ไม่ทำอะไรเลย ตัวชี้คำสั่งเริ่มต้นที่มุมซ้ายบนไปทางขวา หากเคยออกจากสนามแข่งขันการประหารชีวิตจะหยุดลง Modilar SNISP ไม่สามารถมีประสิทธิภาพมากกว่าPDAได้เพราะแหล่งเดียวของที่เก็บข้อมูลที่ไม่ได้ จำกัด คือสแต็ก (call call) ที่มีตัวอักษรที่ จำกัด (คู่ของ …

5
บอกขั้นตอนทางจันทรคติ!
ท้าทาย รับภาพดวงจันทร์เป็นสัญญาณเข้าให้ส่งออกเฟสของดวงจันทร์ ขั้นตอนของดวงจันทร์ โปรแกรมของคุณจะได้รับหนึ่งในภาพเหล่านี้ในรูปแบบ png และคุณต้องส่งออกเฟสตามที่กำหนด: new moon hexdump waxing crescent hexdump first quarter hexdump waxing gibbous hexdump full moon hexdump waning gibbous hexdump third quarter hexdump waning crescent hexdump อินพุต อินพุตจะเป็นเส้นทางไปยังไฟล์ 240 px คูณ 240 px png และจะเป็นหนึ่งในภาพด้านบน ไบต์รูปภาพรับประกันว่าจะเหมือนกัน การชนะ รหัสที่สั้นที่สุดชนะ

6
ค้นหาผลรวมของระยะทางที่ใกล้ที่สุด
สำหรับงานนี้รหัสของคุณควรใช้อาร์เรย์ที่มีการเรียงสองจำนวนเต็ม X และ Y เป็นอินพุต มันควรคำนวณผลรวมของระยะทางที่แน่นอนระหว่างแต่ละจำนวนเต็มใน X และจำนวนที่ใกล้เคียงที่สุดใน Y ตัวอย่าง: X = (1 5,9) Y = (3,4,7) ระยะทางคือ 2 + 1 + 2 X = (1,2,3) Y = (0,8) ระยะทางคือ 1 + 2 + 3 รหัสของคุณสามารถป้อนข้อมูลในวิธีที่สะดวก ข้อ จำกัด หลักคือรหัสของคุณจะต้องทำงานในเวลาเชิงเส้นในผลรวมของความยาวของสองอาร์เรย์ . (คุณสามารถสันนิษฐานได้ว่าการเพิ่มจำนวนเต็มสองจำนวนต้องใช้เวลาคงที่)

3
แสดงผล ASCII“ เครื่องหมาย”
ถ้าคุณโยนไข่ ASCII ในทิศทางที่กำหนดคุณท้ายด้วยเครื่องหมาย ASCII ขนาด n มัน "เริ่มต้น" ด้วยหนึ่งo(ไข่แดง) และดำเนินการต่อในทิศทางที่กำหนดด้วย "บรรทัด" ซึ่งประกอบด้วย 2 ถึงn * 's *'s ถูกแยกออกจาก 'พื้นที่' หนึ่งและoและทั้งหมดที่ 'สาย' ของ*' s จะถูกคั่นด้วย 'เส้น' ของ 'พื้นที่' ทิศทางของแท่งอาจเป็นหนึ่งในแปดทิศทางจากoตัวอย่างเช่น: 1 2 3 4 o 5 6 7 8 นี่คือตัวอย่างของเครื่องหมาย ASCII ขนาด 4 ทิศทาง5, 2และ3ตามลำดับ ด้านซ้ายเป็นเครื่องหมาย ASCII จริงและด้านขวาเป็นเครื่องหมายเดียวกัน แต่มี "เส้น" ของ "พื้นที่" …

5
เขียนโปรแกรม Brainfuck สองโปรแกรม
ให้ตัวอย่างโค้ด brainfuck 2 อันAและBเอาท์พุทโค้ด brainfuck บางอย่างCที่มีพฤติกรรมเช่นเดียวBกับการรันด้วยอินพุตของAผลลัพธ์ โปรดทราบว่าCการทำงานต้องให้ป้อนข้อมูลใด ๆ Aที่ตรงกับสมมติฐานดังต่อไปนี้ราวกับว่ามันถูกมอบให้กับ คุณสามารถสันนิษฐานได้ว่า: อินพุต จำกัด ทั้ง A และ B หยุดทำงาน EOF มีค่า 0 หรือ -1 อย่างสม่ำเสมอ อนุญาตหรือทิ้งเซลล์อย่างสม่ำเสมอ เทปที่ไม่มีขอบเขต (ไม่เช่นนั้นอาจเป็นไปไม่ได้) การตัดอย่างต่อเนื่อง 8 บิตหรือจำนวนเต็มไม่ จำกัด ไม่มีสตรีม (อินพุตหรือเอาต์พุตสำหรับ A หรือ B) มีไบต์เป็นตัวแทน EOF รหัส A และ B สามารถมีอักขระที่อาจปรากฏใน C ของคุณและ +-[]<>,. เช่น (EOF = 0) A …

3
แปลงข้อความเป็นปุ่มกด
ฉันเป็นหุ่นยนต์ ฉันซื้อแป้นพิมพ์นี้เนื่องจากรูปแบบสี่เหลี่ยมที่เรียบง่าย: ~` !1 @2 #3 $4 %5 ^6 &7 *8 (9 )0 _- += tab Qq Ww Ee Rr Tt Yy Uu Ii Oo Pp {[ }] \| Aa Ss Dd Ff Gg Hh Jj Kk Ll :; "' [-enter-] Zz Xx Cc Vv Bb Nn Mm <, >. …

1
ตัวตรวจสอบตัวตรวจสอบ
เป้าหมายของความท้าทายนี้คือการพิจารณาว่าการย้ายนั้นเป็นตัวตรวจสอบภาษาอังกฤษตามกฎหมายหรือไม่ ความท้าทายนี้จะใช้กระดาน 8x8 ชิ้นส่วนที่เคลื่อนไหวควรได้รับการปฏิบัติเหมือนเป็นชาย (ไม่ใช่กษัตริย์) ที่สามารถเคลื่อนที่ไปข้างหน้าในแนวทแยงมุมได้ กระดานจะมีชิ้นส่วนสีดำ 0 ชิ้นขึ้นไปและชิ้นส่วนสีขาว 1 ชิ้นขึ้นไป ชิ้นส่วนสีขาวหนึ่งชิ้นกำลังเคลื่อนที่ ชิ้นส่วนสีขาวสามารถ "กระโดด" เหนือแผ่นดำหนึ่งเส้นทแยงมุมตรงหน้าถ้าสี่เหลี่ยมด้านหลังว่างเปล่า เป็นไปได้ที่จะกระโดดต่อจากตำแหน่งนั้นหากมีชิ้นส่วนสีดำอีกอันหนึ่งอยู่ในทิศทางใดก็ได้ในแนวทแยงมุมด้านหน้า การจับเป็นสิ่งจำเป็นดังนั้นจึงผิดกฎหมายที่จะไม่กระโดดที่มี อย่างไรก็ตามไม่จำเป็นต้องใช้พา ธ ที่เพิ่มจำนวนการกระโดดได้สูงสุด โดยทั่วไปหมายความว่าหากคุณกระโดดและมีการกระโดดที่เป็นไปได้อีกครั้งจากตำแหน่งสิ้นสุดการเคลื่อนไหวนั้นผิดกฎหมาย ตำแหน่งชิ้นใช้รูปแบบการกำหนดหมายเลขต่อไปนี้: กฎระเบียบ ปัจจัยการผลิต: รายการหมายเลขที่แสดงถึงชิ้นส่วนสีดำ รายการหมายเลขที่แสดงถึงชิ้นส่วนสีขาว ตำแหน่งเริ่มต้นสำหรับชิ้นส่วนสีขาว ตำแหน่งสิ้นสุดสำหรับชิ้นส่วนสีขาว เอาท์พุท: ค่าความจริงหากการย้ายถูกต้องมิฉะนั้นจะเป็นค่าเท็จ คุณสามารถถือว่าชิ้นส่วนสีขาวจะครองตำแหน่งเริ่มต้นเสมอ หากสะดวกคุณสามารถสันนิษฐานได้ว่าชิ้นส่วนสีขาวชิ้นแรกในรายการชิ้นส่วนสีขาวจะมีตำแหน่งเริ่มต้นแทนที่จะยอมรับอินพุต 3 กฎกอล์ฟมาตรฐานรหัส ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ กรณีทดสอบ เพื่อแสดงให้เห็นว่า O คือตำแหน่งเริ่มต้น X คือตำแหน่งสิ้นสุด B คือชิ้นส่วนสีดำและ W เป็นชิ้นส่วนสีขาว Black pieces: [] White pieces: …

5
ผลรวม จำกัด แบบวงกลม
ท้าทาย ลองจินตนาการN-tuple ของจำนวนเต็มระหว่าง 0 และรวมและขอเรียกว่าMF มีความเป็น(M + 1) ** Nไปได้Fทั้งหมด จำนวนดังกล่าวFตอบสนองความไม่เท่าเทียมกันต่อไปนี้ทั้งหมด (ดัชนีเป็นฐานเดียว) F[n] + F[n+1] <= M สำหรับ 1 <= n < N F[N] + F[1] <= M เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เวลาสองจำนวนเต็มบวก NและMและผลคำตอบในรูปแบบที่สะดวกใด ๆ กรณีทดสอบ (N,M) => Answer (1,1) => 1 (2,1) => 3 (3,1) => 4 (4,1) => 7 (1,2) => 2 …

26
ฟังก์ชั่นที่จะใช้สามจำนวนเต็มและส่งกลับรายการจำนวนเต็มและตัวอักษรตัวอักษร
ท้าทาย เราใช้เวลาสามจำนวนเต็มบวกa, bและcเป็น input ใช้จำนวนเต็มเหล่านี้เป็นครั้งแรกสร้างลำดับในช่วงที่[0, c](รวมทั้งสองด้าน) bในขั้นตอนของ ตัวอย่างเช่นสำหรับลำดับจะเป็นa=4, b=2, c=100[0,2,4,...,96,98,100] สำหรับทุกหมายเลขในลำดับนี้ซึ่งหารด้วยaให้แทนที่ด้วยตัวอักษรถัดไปในตัวอักษรตัวพิมพ์เล็กเริ่มต้นด้วยตัวอักษร 'a' และล้อมรอบกลับเป็น 'a' หลังจากคุณถึง 'z' ตัวอย่าง: อินพุต: a=4, b=2, c=100 เอาต์พุต:a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z กฏท้าทาย: คุณสามารถสมมติว่าa, bและเป็นจำนวนเต็มบวกเท่านั้นที่cb ≤ a ≤ c คุณสามารถสันนิษฐานได้ว่าaมีหลายbตัว คุณสามารถสันนิษฐานได้ว่าคือหารด้วยcb เอาต์พุตที่ต้องการคือสตริงที่ต่อกันเดียวตามด้านบน แต่รายการ / อาร์เรย์นั้นเป็นที่ยอมรับ กรณีทดสอบ: Input: a=4, b=2, c=100 Output: a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z Input: a=9, b=3, c=174 Output: a36b1215c2124d3033e3942f4851g5760h6669i7578j8487k9396l102105m111114n120123o129132p138141q147150r156159s165168t174 Input: a=10, …

4
องค์ประกอบสิบอันดับแรกที่คุณไม่เชื่อว่าอยู่ในชุดนี้
AKA: สร้าง Clickbait จากแถวลำดับ เมื่อกำหนดจำนวนเต็มให้สร้าง clickbait ที่คุ้มค่าขึ้นอยู่กับการจัดเรียงและความยาว: หากเป็น 20 องค์ประกอบหรือน้อยกว่าคุณสามารถสร้างรายการ X อันดับสูงสุด พารามิเตอร์: ความยาวของอาร์เรย์ ตัวเลขสำคัญคือดาราดังนั้นเมื่อใดก็ตามที่มีสองคนอยู่ติดกันมันจะผ่านเหมือนการนินทา พารามิเตอร์: สองช่วงเวลาที่อยู่ติดกันตามลำดับที่ปรากฏในอาร์เรย์ หากหมายเลขใด ๆ ปรากฏขึ้นสองครั้งหรือมากกว่าในอาเรย์นั้นมันน่าตกใจและไม่น่าเชื่อและทุกคนต้องการได้ยินเกี่ยวกับมัน หากมีตัวเลขหลายตัวปรากฏขึ้นสองครั้งให้สร้างข่าวขึ้นมาสำหรับแต่ละคน พิมพ์หนึ่งครั้งต่อหมายเลขที่ไม่ซ้ำกันเท่านั้น พารามิเตอร์: การเกิดขึ้นของจำนวนที่วัดโดยลักษณะที่ปรากฏทั้งหมด หากคุณเห็นองค์ประกอบ 3 รายการเรียงตามลำดับที่ เพิ่มขึ้นแบบ monotonicallyตามด้วยการลดลงอย่างกะทันหันให้บอกว่าพวกเขาเรียงลำดับแล้วหยอกล้อว่าจะเกิดอะไรขึ้นต่อไป ทำเช่นนี้เพียงครั้งเดียวต่อตรง พารามิเตอร์: ความยาวของเส้นตรง นี่คือ clickbaits ที่เกี่ยวข้องที่คุณควรใช้: The Top {{N}} Array Elements {{N1}} And {{N2}} Were Spotted Together, You Won't Believe What …

2
เกาะโดดเดี่ยว
การป้อนข้อมูล: อาร์เรย์ 2 มิติที่มีค่าแตกต่างกันสองค่า ฉันจะใช้0และ1เมื่ออธิบายกฎ รูปแบบการป้อนข้อมูลมีความยืดหยุ่นแน่นอน ท้าทาย: เลขศูนย์คือน้ำและอีกอันคือเกาะ เพื่อให้มั่นใจในความเหงางานของคุณคือล้อมรอบเกาะด้วยน้ำโดยการแทรกแถวและคอลัมน์ของศูนย์ คุณไม่ต้องการเสียน้ำดังนั้นคุณต้องลดปริมาณน้ำที่เติมเข้าไป ในกรณีที่มีวิธีการแก้ปัญหามากกว่าหนึ่งวิธีที่ต้องใช้น้ำในปริมาณเดียวกันคุณควรเพิ่มคอลัมน์ของน้ำไม่ใช่แถว ฉันจะแสดงสิ่งนี้ในกรณีทดสอบ เอาท์พุท: อาร์เรย์ 2D ใหม่ที่ได้รับการแก้ไข รูปแบบผลลัพธ์มีความยืดหยุ่นแน่นอน กรณีทดสอบ: อินพุตและเอาต์พุตถูกคั่นด้วยขีดกลาง เลขศูนย์ที่เพิ่มจะแสดงเป็นตัวอักษรตัวหนา ใช้หนึ่งในคำตอบที่นี่หากคุณต้องการแปลงกรณีทดสอบเป็นรูปแบบที่สะดวกกว่า 1 --- 1 1 1 --- 1 0 1 1 1 1 1 --- 1 0 1 0 0 0 1 0 1 1 0 0 1 --- 1 …

22
รายการคาร์ทีเซียนของรายการด้วยตัวเอง n ครั้ง
เมื่อได้รับรายชื่อ aa และค่าจำนวนเต็มบวกnรหัสของคุณควรเอาท์พุทผลิตภัณฑ์คาร์ทีเซียนของรายการด้วยnเวลาตัวเอง ตัวอย่างเช่นใน pseudocode ฟังก์ชั่นของคุณอาจคล้ายกับ: for x1 in list: for x2 in list: for x3 in list: ... for xn in list: print x1, x2, x3, ... , xn ตัวอย่าง: repeated_cart([1,2,3], 3) 1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 …

30
ค้นหาตำแหน่งตัวอักษร
แรงบันดาลใจจากCodewars กะตะ เป้าหมายของคุณคือใช้สตริงอินพุตเช่นอันนี้: "'Twas a dark and stormy night..." และส่งคืนสตริงที่มีตำแหน่งของอักขระแต่ละตัวในตัวอักษรคั่นด้วยช่องว่างและละเว้นอักขระที่ไม่ใช่ตัวอักษรเช่นนี้ "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" สำหรับความท้าทายเพิ่มเติมคุณสามารถแทนที่ตัวอักษรตัวเลขใด ๆ ในสายเดิมด้วยตัวเอง + 27. ตัวอย่างเช่นจะกลายเป็น"25" "29, 32"นี่เป็นทางเลือกที่สมบูรณ์ คุณต้องใช้ 1 การจัดทำดัชนี ( 'a'==1, 'b'==2ฯลฯ ) กฎเพิ่มเติม: คุณต้องส่งคืนสตริงไม่ใช่อาร์เรย์ …

26
ค่าเฉลี่ยถ่วงน้ำหนัก - ปัญหาแนวโน้มการกด
สมมติว่าอาร์เรย์นี้มีจำนวนการกดอัพที่ฉันทำได้ในแต่ละวันในช่วง 28 วันที่ผ่านมา: [ 20,20,20,30,30,30,30, 35,35,40,40,40,45,45, 50,50,50,50,50,50,50, 60,70,80,90,100,110,120 ] อย่างที่คุณเห็นมันเป็นแนวโน้มที่สูงชันในสัปดาห์ที่ผ่านมาและนั่นเป็นส่วนหนึ่งของข้อมูลนี้ที่ฉันสนใจมากที่สุดยิ่งในอดีตที่ผ่านมายิ่งฉันต้องการให้ข้อมูลนั้นมีค่าเฉลี่ยน้อยลง จำนวนกด ด้วยเหตุนี้ฉันต้องการคำนวณ 'ค่าเฉลี่ย' ซึ่งแต่ละสัปดาห์มีค่ามากกว่าสัปดาห์ที่แล้ว ข้อมูลความเป็นมาไม่ใช่ส่วนหนึ่งของปัญหานี้ ค่าเฉลี่ยปกติ: ผลรวมของค่าทั้งหมด / จำนวนของค่า สำหรับด้านบน: 1440/28 = 51.42857142857143 ค่าเฉลี่ยถ่วงน้ำหนัก: แบ่งอาร์เรย์ออกเป็น 4 กลุ่มจาก 7 และเริ่มอาร์เรย์ใหม่ เพิ่มกลุ่มแรกลงในอาร์เรย์ เพิ่มกลุ่มที่สองในอาร์เรย์สองครั้ง เพิ่มกลุ่มที่สามลงในอาร์เรย์สามครั้ง เพิ่มกลุ่มที่สี่ลงในอาร์เรย์สี่ครั้ง รวมอาเรย์ใหม่ทั้งหมดแล้วหารด้วยความยาวของอาเรย์ใหม่ สำหรับด้านบน: แปลงอาเรย์เป็น: [ 20,20,20,30,30,30,30, # first week once 35,35,40,40,40,45,45, 35,35,40,40,40,45,45, # second week twice 50,50,50,50,50,50,50, 50,50,50,50,50,50,50, …

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