คำถามติดแท็ก matrix

เมทริกซ์คือรายการของตัวเลขที่จัดเรียงในสี่เหลี่ยมผืนผ้าที่มีแถวและคอลัมน์ ในการเขียนโปรแกรมมันเป็นที่รู้จักกันว่าเป็นอาร์เรย์ 2 มิติ ใช้แท็กนี้หากความท้าทายของคุณเกี่ยวกับการจัดการเมทริกซ์

16
โล่กองทัพโรมัน
โพสต์ Sandbox (ถูกลบ) การก่อตัวของกองทัพโรมันที่โด่งดังไปทั่วโลก ในกองทหารโรมันเหล่านี้ก่อตัวเป็นรูปทรงเรขาคณิต (โดยปกติจะเป็นรูปสี่เหลี่ยมผืนผ้า) เพื่อปกป้องปีกและส่วนที่เหนือกว่าของมันโดยใช้โล่ของพวกเขา กองทหารที่อยู่ในตำแหน่งภายในครอบคลุมส่วนที่เหนือกว่าวางโล่ไว้เหนือหัวของพวกเขากองทหารที่อยู่ด้านข้างนั้นมีเกราะตั้งแต่สองโล่ขึ้นไปหนึ่งอันเพื่อปกป้องส่วนที่เหนือกว่าและหนึ่งหรือหลายโล่สำหรับปกป้องปีก เขามี 3 โล่ถ้ามีใครคนเดียวในขบวนเขามี 5 โล่ใช่ฉันรู้ว่ามันเป็นไปไม่ได้ที่มนุษย์จะมี 5 โล่ แต่อย่างใดพวกเขาก็ทำมัน ) การใช้รูปแบบนี้กองทหารโรมันทุกคนป้องกันตนเองและเป็นคู่ต่อสู้ที่ยากที่สุดในเวลานั้น ประวัติศาสตร์บอกว่ามีนายพลโรมันที่ระบุว่ารูปร่างที่ดีที่สุดคือรูปสี่เหลี่ยม (กองทหารจำนวนเท่ากันในแถวและคอลัมน์) ปัญหาคือการหาจำนวนการก่อตัว (และขนาด) ที่เขาควรแบ่งกองทัพของเขาเพื่อ: อย่าปล่อยกองทหารออกจากรูปแบบ (แม้ว่าเขาจะยอมรับกองทหารกองพลเดียว) ลดจำนวนโล่ที่ต้องการ โดยทั่วไปหลังจากทำการคำนวณและคำนวณทางคณิตศาสตร์แล้วเขาพบว่าวิธีที่ดีที่สุดในการบรรลุ 2 เงื่อนไขนี้คือเริ่มต้นด้วยสี่เหลี่ยมที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้จากนั้นทำซ้ำจนกว่าจะไม่มีกองทหารเหลืออยู่ ตัวอย่าง: หากกองทหาร 35 นายในกองทัพของเขาการก่อตัวประกอบด้วย กองทหารราบ 5x5 (นี่คือจัตุรัสที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้) กับกองทหารที่เหลือ (10) ตาราง 3x3 กับกองทหารที่เหลือ (1) ตาราง 1x1 ในตอนท้ายมันจะมีลักษณะดังนี้: 5x5 * * * * …
26 code-golf  matrix 

3
กอล์ฟอาหารกลางวันฟรี
ค้นหาลำดับการแลกเปลี่ยนที่ให้ผลกำไรสูงสุดโดยมีตารางอัตราแลกเปลี่ยน ยกตัวอย่างเช่นพิจารณาสกุลเงินA riary (สกุลเงินที่ใช้ในบ้านของคุณ), B aht, C edi และD enar โดยที่อัตราจากหนึ่งไปอีกอัตราหนึ่ง ตารางอัตราแลกเปลี่ยนด้านล่าง: TO A B C D A 0.9999 1.719828 4.509549 0.709929 F B 0.579942 0.9999 2.619738 0.409959 R O C 0.219978 0.379962 0.9999 0.149985 M D 1.39986 2.429757 6.409359 0.9999 เห็นได้ชัดว่าการแลกเปลี่ยนAสำหรับAไม่ใช่ความคิดที่ดีเพราะโต๊ะนี้จะคิดเงินคุณอย่างมีความสุขที่ไม่ได้ทำอะไรเลย เห็นได้ชัดน้อยลง แต่เป็นความจริงกับตารางนี้การแลกเปลี่ยนAสำหรับสกุลเงินอื่น ๆ และจากนั้นการแลกเปลี่ยนกลับมาอีกครั้งเป็นผู้สร้างขาดทุน: via B: 1.719828 × …

12
ค้นหาเพลงกล่อมเด็กของนักวางเพลิง
ลองนึกภาพนักวางเพลิงที่เดินไปรอบ ๆ เมืองและเลือกเหยื่อตามรูปแบบที่เฉพาะเจาะจง (หรือมิฉะนั้นให้ลองนึกภาพผึ้งที่บินไปรอบ ๆ สวนและเก็บดอกไม้เพื่อผสมเกสรตามรูปแบบที่เฉพาะเจาะจงมาก ) สมมติว่าเมืองเป็นN ร Nเมทริกซ์ที่Nเป็นจำนวนเต็มสูงกว่าหรือเท่ากับ2 นักวางเพลิงเริ่มต้นจากมุมบนซ้ายและกำหนดจุดMบ้านต่อหน้าพวกเขา (โดยที่Mคือจำนวนบ้านที่พวกเขากำลังอยู่ในขณะนี้) ในขณะที่เปลี่ยนทิศทางที่มันเคลื่อนเข้าหลังไฟแต่ละครั้งตามลำดับ ตะวันออก⟶ใต้⟶ตะวันตก⟶เหนือ⟶ตะวันออก⟶ใต้ ... และอื่น ๆ เพลงกล่อมเด็กของผู้วางเพลิงคือมูลค่าของMที่ทำให้พวกเขาออกจากเมือง (เช่นบ้านหลังสุดท้ายที่พวกเขาไปเยี่ยมก่อนหยุดสิ่งที่น่ารังเกียจ) นี่เป็นวิธีที่ง่ายต่อการเข้าใจด้วยตัวอย่าง ใช้เมทริกซ์ต่อไปนี้เป็นตัวอย่าง: 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 1 เราเริ่มต้นที่มุมบนซ้ายดังนั้นM = 3 …

30
ขั้นตอนดั้งเดิม
มันเป็นปัญหาที่พบบ่อยในการนำทางในเมทริกซ์ 2D เราเคยเห็นหลายครั้งและจะเห็นอีกครั้ง ดังนั้นช่วยเราในอนาคตและพัฒนาโซลูชันที่สั้นที่สุดเพื่อสร้างแปดขั้นตอนที่เป็นไปได้ทั้งหมดในเมทริกซ์ 2D ท้าทาย รหัสของคุณจะต้องส่งออก 8 คู่ต่อไปนี้ -1,0,1 ในลำดับใด ๆ : (0,1) (0,-1) (1,0) (-1,0) (1,1) (1,-1) (-1,1) (-1,-1) กฎระเบียบ ไม่มีอินพุต คำสั่งเอาท์พุทไม่เกี่ยวข้อง ผลผลิตมีความยืดหยุ่น คู่ของตัวเลขต้องแยกความแตกต่าง นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ

29
ผลรวมการหมุน
ใช้เมทริกซ์จตุรัสที่มีจำนวนเต็มบวกเป็นอินพุตและคำนวณ "ผลรวมการหมุน" ของเมทริกซ์ ผลรวมการหมุน: หาผลรวมของเมทริกซ์ดั้งเดิมและเมทริกซ์เดียวกันหมุน 90, 180 และ 270 องศา สมมติว่าเมทริกซ์คือ: 2 5 8 3 12 8 6 6 10 จากนั้นผลรวมการหมุนจะเป็น: 2 5 8 8 8 10 10 6 6 6 3 2 3 12 8 + 5 12 6 + 8 12 3 + 6 12 5 = 6 …

22
เป็นบอร์ด 2048 ที่ดีหรือไม่?
นี่เป็นคำถามแรกของฉันที่นี่ดังนั้นคำแนะนำใด ๆ ในความคิดเห็นจะได้รับการชื่นชม! ขอบคุณ;) บทนำ กลยุทธ์หนึ่งที่พบบ่อยมากสำหรับเกม 2048จะไม่เคยรูดลง ตำแหน่งนี้เป็นตัวเลขขนาดใหญ่ทั้งหมดที่ด้านบนและที่ต่ำกว่าในด้านล่าง ดังนั้นหากคุณใช้กลยุทธ์นี้อย่างถูกต้องบอร์ดของคุณจะตรงกับรูปแบบต่อไปนี้: รูปแบบการตรวจสอบ / งานของคุณ การส่งของคุณควรเป็นโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่ส่งกลับค่าความจริงหากบอร์ดสามารถอธิบายได้ดังนี้: ลงไปในแต่ละคอลัมน์ของบอร์ดหมายเลขแรกควรสูงที่สุดของคอลัมน์จำนวนที่สองควรน้อยกว่า มากกว่าหรือเท่ากับจำนวนแรก ฯลฯกระดาน 2048 ที่ดีจะถูกกำหนดให้เป็นกระดานที่มีตัวเลขสูงสุดอยู่ด้านบน นี่คือโค้ดกอล์ฟดังนั้นรหัสที่สั้นที่สุดต่อภาษา (เป็นไบต์) จะชนะ I / O อินพุตสามารถถูกใช้ในวิธีที่เหมาะสมตัวอย่างเช่นอาร์เรย์ 4 อาร์เรย์แต่ละตัวมี 4 หมายเลขหรืออาร์เรย์ 16 ตัวเลข โดยรวมมันจะเป็นตัวเลข 16 เสมอแทน 4x4 บอร์ด เอาท์พุทควรเป็นค่าความจริงของอินพุตคือ "ดี 2048 บอร์ด" และค่าเท็จเป็นอย่างอื่น ตัวอย่าง Truthy: |-------------------| | 16 | | 64 | …

30
ดัชนีของแถวที่มีองค์ประกอบที่ไม่ใช่ศูนย์ส่วนใหญ่
นี่เป็นวิธีง่าย ๆ :ใช้เมทริกซ์ของจำนวนเต็มเป็นอินพุตและสร้างดัชนีของแถวที่มีองค์ประกอบที่ไม่เป็นศูนย์มากที่สุด คุณอาจคิดว่าจะมีเพียงหนึ่งแถวที่มีองค์ประกอบที่ไม่ใช่ศูนย์มากที่สุด กรณีทดสอบ: สิ่งเหล่านี้เป็น 1 ดัชนีคุณสามารถเลือกได้ว่าต้องการ 0 หรือ 1 ดัชนี 1 0 row = 1 --- 0 -1 0 0 row = 1 --- 1 1 0 0 0 0 0 5 0 0 2 3 0 0 0 0 5 6 2 2 row = 4 --- …
26 code-golf  matrix 

30
สร้างเมทริกซ์กระดานหมากรุก
ใช้เป็นจำนวนเต็มบวกnเป็น input และเอาท์พุทn โดย nเมทริกซ์หมากรุกประกอบด้วย1และ0 ตัวเลขบนซ้ายควรเป็น1เสมอ กรณีทดสอบ: n = 1 1 n = 2 1 0 0 1 n = 3 1 0 1 0 1 0 1 0 1 n = 4 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 รูปแบบอินพุตและเอาต์พุตเป็นทางเลือก …

10
การคูณเมทริกซ์สัญลักษณ์
มีหลายวิธีในการอธิบายการคูณเมทริกซ์ ฉันจะยึดติดกับร่างเดียวเพราะฉันเชื่อว่าคนส่วนใหญ่ที่นี่คุ้นเคยกับมัน (และตัวเลขนั้นอธิบายได้ดีมาก) หากท่านต้องการข้อมูลรายละเอียดเพิ่มเติมผมขอแนะนำให้คุณไปที่วิกิพีเดียบทความหรือคำอธิบายในWolframMathWorld คำอธิบายง่ายๆ: สมมติว่าคุณมีเมทริกซ์สองตัวคือAและBโดยที่Aคือ 3-by-2 และBคือ 2-by-3 หากคุณทำการคูณเมทริกซ์เหล่านี้กับเมทริกซ์ABหรือBAคุณจะได้ผลลัพธ์ด้านล่าง: ท้าทาย: ใช้การคูณเมทริกซ์สัญลักษณ์ในภาษาของคุณ คุณจะต้องใช้เมทริกซ์สองตัวเป็นอินพุตซึ่งแต่ละองค์ประกอบในเมทริกซ์จะถูกแทนด้วยอักขระ ASCII ที่ไม่ใช่ whitespace (รหัสคะแนน 33-126) คุณต้องเอาท์พุทผลิตภัณฑ์ของเมทริกซ์เหล่านี้ กฎเกี่ยวกับผลลัพธ์: ผลิตภัณฑ์ของสองรายการจะต้องไม่มีสัญลักษณ์ใด ๆ ในระหว่าง มันabไม่ได้a*b, a·b, times(a,b)หรือสิ่งที่คล้ายกัน มันไม่ได้aaa^2 ผลรวมของเงื่อนไขควรมีช่องว่าง (รหัส ASCII จุด 32) ในระหว่าง มันa bไม่a+b, plus(a,b)หรือสิ่งที่คล้ายกัน เหตุผลสำหรับกฎทั้งสองนี้คือ: อนุญาตให้ใช้อักขระที่ไม่ใช่ white space ทั้งหมดเป็นสัญลักษณ์ในเมทริกซ์ดังนั้นการใช้มันเป็นสัญลักษณ์ทางคณิตศาสตร์จะยุ่งเหยิง ดังนั้นสิ่งที่คุณตามปกติสามารถเขียนเป็นจะเป็นa*b+c*dab cd คุณสามารถเลือกคำสั่งได้ ab cd, dc abและcd baได้รับการทางคณิตศาสตร์ที่พูดภาษาเดียวกันเพื่อให้คุณสามารถเลือกสั่งซื้อที่นี่ด้วย คำสั่งซื้อไม่จำเป็นต้องสอดคล้องกันตราบใดที่มันถูกต้องทางคณิตศาสตร์ …

9
คำนวณแบบถาวรให้เร็วที่สุด
ความท้าทายคือการเขียนรหัสที่เร็วที่สุดที่เป็นไปได้สำหรับการคำนวณถาวรของเมทริกซ์ ถาวรของn-by- nmatrix A= ( ai,j) ถูกกำหนดเป็น นี่แสดงให้เห็นถึงชุดของพีชคณิตทั้งหมดของS_n[1, n] เป็นตัวอย่าง (จาก wiki): ในเมทริกซ์คำถามนี้เป็นสี่เหลี่ยมจัตุรัสทั้งหมดและจะมีค่า-1และ1อยู่ในนั้นเท่านั้น ตัวอย่าง การป้อนข้อมูล: [[ 1 -1 -1 1] [-1 -1 -1 1] [-1 1 -1 1] [ 1 -1 -1 1]] ถาวร: -4 การป้อนข้อมูล: [[-1 -1 -1 -1] [-1 1 -1 -1] [ 1 -1 -1 -1] [ …

11
เมทริกซ์ Pascal นี้หรือไม่
ในรูปสามเหลี่ยมของปาสคาลแต่ละตัวเลขคือผลรวมของตัวเลขสองตัวที่อยู่เหนือมันโดยตรงโดยรักษาจุดว่างเป็นศูนย์: โดยการหมุนสามเหลี่ยมเราสามารถตัดเมทริกซ์สี่เหลี่ยมจัตุรัสที่มีขนาดและการหมุนต่างกันซึ่งฉันจะเรียกว่าเมทริกซ์ของปาสคาล โปรดทราบว่าเมทริกซ์เหล่านั้นจำเป็นต้องมี111อันดับแรกเสมอ นี่คือตัวอย่างบางส่วน: 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 6 3 1 3 2 1 1 1 1 1 5 15 35 70 1 4 10 20 35 1 3 6 10 15 1 2 3 4 5 1 …

8
หมายเลขระเบิด
sandbox (ถูกลบ) ให้นิยามเมทริกซ์ของ 9s เป็น: N=⎡⎣⎢999999999⎤⎦⎥N=[999999999] N = \begin{bmatrix} 9&9&9\\9&9&9\\9&9&9 \end{bmatrix} ให้กำหนดหมายเลขการระเบิดเป็นตัวเลขที่ตำแหน่งที่สามารถแยกย่อยเป็นจำนวนเต็มเท่ากันระหว่างเพื่อนบ้านที่อยู่ติดกันทั้งหมด (รวมถึงตัวเอง) และค่าสัมบูรณ์ของแต่ละส่วนนั้นมากกว่า 0( x , y)(x,Y)(x,y) จากเมทริกซ์ก่อนหน้าให้ปล่อยตัวเลขที่ตำแหน่ง (0 ดัชนี) ( 1 , 1 )(1,1)(1,1)ยังไม่มีข้อความ= ⎡⎣⎢999999999⎤⎦⎥ยังไม่มีข้อความ=[999999999] N = \begin{bmatrix} 9&9&9\\9&\color{red}9&9\\9&9&9 \end{bmatrix} ยังไม่มีข้อความ= ⎡⎣⎢9 + 19 + 19 + 19 + 10 + 19 + 19 + 19 + 19 …
25 code-golf  matrix 

12
วาดรูปทรงของฉัน
ให้เมทริกซ์สี่เหลี่ยมของระดับความสูง, วาดรูปทรงของมัน งาน สององค์ประกอบxและอยู่ในระดับเดียวกันถ้ารูปร่างy floor(x/10) == floor(y/10)ตัวอย่างเช่น52และ58อยู่ในระดับรูปร่างเดียวกัน แต่58และ64ไม่ใช่ การกระทำของรูปวาดที่กำหนดไว้ดังต่อไปนี้: สำหรับทุกองค์ประกอบeแทนที่ด้วยสตริงสองถ่านเลือกดังนี้ อักขระตัวแรกคือ" "ถ้าองค์ประกอบด้านล่างeอยู่ในระดับรูปร่างเดียวกันกับeหรือหากไม่มีองค์ประกอบอยู่ด้านล่างeและ"_"อย่างอื่น อักขระตัวที่สองคือ" "ถ้าองค์ประกอบทางด้านขวาของeอยู่ในระดับเส้นชั้นเดียวกับeหรือไม่มีองค์ประกอบทางด้านขวาของeและ"|"อื่น ๆ องค์ประกอบภายในแถวเข้าด้วยกันจากนั้นรวมแถวเข้าด้วยกันด้วยการขึ้นบรรทัดใหม่ ตัวอย่าง สมมติว่าอินพุตเป็น[[5,20],[3,6]]ภาพเป็น 5 20 3 6 5ครั้งแรกที่เรามองไปที่ ตั้งแต่3อยู่ในระดับเดียวกับรูปร่างตัวละครแรกคือ5 " "เนื่องจาก20ไม่ได้อยู่ในระดับเดียวกับรูปร่างตัวละครที่สองคือ5"|" 20ตอนนี้เรามองไปที่ เนื่องจาก6ไม่ได้อยู่ในระดับเดียวกับรูปร่างตัวละครแรกคือ20 "_"เนื่องจากมีองค์ประกอบไปทางขวาของไม่มีตัวละครที่สองคือ20" " 3ตอนนี้เรามองไปที่ เนื่องจากไม่มีองค์ประกอบด้านล่าง3, " "ตัวอักษรตัวแรกคือ ตั้งแต่6อยู่ในระดับเดียวกับรูปร่างตัวละครที่สองคือ3" " 6ตอนนี้เรามองไปที่ เนื่องจากไม่มีองค์ประกอบด้านล่าง6, " "ตัวอักษรตัวแรกคือ เนื่องจากมีองค์ประกอบไปทางขวาของไม่มีตัวละครที่สองคือ6" " [[" |","_ "],[" "," "]]ขึ้นอยู่กับเหล่านี้สายสองถ่านที่เราทำทดแทนที่จะได้รับ เข้าร่วมด้วยกันเราจะได้ผลลัพธ์จาก |_ กฎระเบียบ …

4
การหมุนแบบอินเตอร์เลซ
ท้าทาย กำหนดเมทริกซ์จตุรัสของอักขระ (อักขระ ASCII ที่พิมพ์ได้ไบต์เดียว) หมุน "วงแหวน" ของเมทริกซ์แต่ละทิศทางในทิศทางตรงกันข้าม ลองมาตัวอย่าง: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P จากนั้นวงแหวนรอบนอกสุดหมุนตามเข็มนาฬิกา 90 องศาดังนี้: 1 2 3 4 5 L G B 6 1 6 A M …
25 code-golf  matrix 

17
Vandermonde ตัวกำหนด
ให้เวกเตอร์ของnค่า(x1,x2,x3,...,xn)ส่งคืนดีเทอร์มิแนนต์ของเมทริกซ์ Vandermonde ที่เกี่ยวข้อง ดีเทอร์มิแนนต์นี้สามารถเขียนเป็น: รายละเอียด โปรแกรม / ฟังก์ชั่นของคุณต้องยอมรับรายการหมายเลขจุดลอยตัวในรูปแบบที่สะดวกใด ๆ ที่อนุญาตให้มีความยาวผันแปรและส่งออกปัจจัยที่กำหนด คุณสามารถสมมติว่าอินพุตรวมทั้งเอาต์พุตอยู่ในช่วงของค่าที่ภาษาของคุณรองรับ หากภาษาของคุณไม่รองรับหมายเลขทศนิยมคุณอาจถือว่าเป็นจำนวนเต็ม บางกรณีทดสอบ โปรดทราบว่าเมื่อใดก็ตามที่มีสองรายการเท่ากันดีเทอร์มิแนนต์จะเป็น0เนื่องจากมีสองแถวเท่ากันในเมทริกซ์ Vandermonde ที่เกี่ยวข้อง ขอบคุณ @randomra สำหรับการชี้ให้เห็น testcase ที่ขาดหายไปนี้ [1,2,2,3] 0 [-13513] 1 [1,2] 1 [2,1] -1 [1,2,3] 2 [3,2,1] -2 [1,2,3,4] 12 [1,2,3,4,5] 288 [1,2,4] 6 [1,2,4,8] 1008 [1,2,4,8,16] 20321280 [0, .1, .2,...,1] 6.6586e-028 [1, .5, .25, …

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