คำถามติดแท็ก graph-theory

สำหรับความท้าทายเกี่ยวกับกราฟโครงสร้างทางคณิตศาสตร์ที่ใช้ในการสร้างแบบจำลองความสัมพันธ์ระหว่างวัตถุ

4
ส่วนประกอบที่เชื่อมต่ออย่างยิ่ง
จุดยอดที่แตกต่างกันสองจุดในกราฟกำกับนั้นเชื่อมต่อกันอย่างแน่นหนาหากมีเส้นทางในกราฟจากจุดหนึ่งไปยังอีกจุดหนึ่ง องค์ประกอบเชื่อมต่ออย่างยิ่งของกราฟเป็นส่วนหนึ่งของกราฟดังกล่าวว่าคู่ของจุดที่แตกต่างกันในกลุ่มย่อยในแต่ละมีการเชื่อมต่ออย่างมากและเพิ่มจุดใด ๆ ที่มากขึ้นในการย่อยจะทำลายคุณสมบัตินี้ ความท้าทายของคุณคือการแยกกราฟออกเป็นส่วนประกอบที่เชื่อมต่ออย่างแน่นหนา คุณต้องส่งออก SCC ทั้งหมดในกราฟ I / O: ในฐานะที่เป็นอินพุตคุณอาจใช้รายการของขอบชีทรายการ adjacency เมทริกซ์ adjacency หรือรูปแบบอินพุตที่สมเหตุสมผลอื่น ๆ ถามว่าคุณไม่แน่ใจ คุณอาจสมมติว่ากราฟไม่มีการตัดการเชื่อมต่อทั้งหมดและไม่มีขอบตัวเอง แต่คุณไม่สามารถตั้งสมมติฐานเพิ่มเติมได้ คุณยังสามารถเลือกรายการจุดยอดเป็นอินพุตเช่นเดียวกับจำนวนจุดยอด ในฐานะที่เป็นเอาท์พุทคุณจะต้องให้การแบ่งจุดยอดเช่นรายการของจุดยอดที่แต่ละรายการย่อยเป็นองค์ประกอบที่เชื่อมต่ออย่างยิ่งหรือการติดฉลากของจุดยอดที่แต่ละป้ายสอดคล้องกับองค์ประกอบที่แตกต่างกัน หากคุณใช้การติดฉลากฉลากจะต้องเป็นจุดยอดหรือลำดับของจำนวนเต็มติดต่อกัน นี่คือการป้องกันไม่ให้หลุดการคำนวณลงในฉลาก ตัวอย่าง: ตัวอย่างเหล่านี้ใช้รายการขอบที่แต่ละขอบถูกชี้นำจากรายการที่ 1 ไปยังรายการที่สองและพาร์ติชันเอาท์พุท คุณมีอิสระที่จะใช้รูปแบบนี้หรือรูปแบบอื่น อินพุตอยู่บนบรรทัดแรกเอาต์พุตอยู่บนบรรทัดที่สอง [[1, 2], [2, 3], [3, 1], [1, 4]] [[1, 2, 3], [4]] [[1, 2], [2, 3], [3, 4]] [[1], [2], …

3
ลูปและลูปและลูป
ความท้าทาย สร้างฟังก์ชั่นที่เมื่อป้อนอินพุตของ ASCII art (นำทางเส้นทางที่อาจวนลูปในที่สุด) เอาต์พุตของความยาวของลูป (ถ้ามี) และความยาวของ "หาง" ที่นำไปสู่ลูปในหนึ่งใน แบบฟอร์มด้านล่าง อินพุต ข้อมูลของคุณจะต้องถูกส่งผ่านไปยังฟังก์ชั่น ด้านล่างเป็นตัวอย่างของการป้อนข้อมูลแบบง่าย # --> # --> # ^ | | | | v # <-- # คุณสามารถเห็นภาพบล็อกด้านบนเช่นนี้ "หาง" เป็นหนึ่งรายการในขณะที่ห่วงยาวสี่ สิ่งที่ยากกว่านี้: # --> # --> # ^ | | | | v # --> # <-- # # --> …

4
ค้นหาชุดอิสระที่ใหญ่ที่สุดในกราฟที่มีลักษณะเป็นโครงตาข่ายขนาดสูง
สำหรับจำนวนเต็มบวกให้พิจารณาสตริงไบนารีทั้งหมดของความยาวn 2n-1สำหรับสตริงที่กำหนดSให้Lเป็นอาร์เรย์ของความยาวnซึ่งมีการนับจำนวนของ1ในย่อยของระยะเวลาในแต่ละของn Sตัวอย่างเช่นถ้าn=3และแล้วS = 01010 L=[1,2,1]เราเรียกอาร์เรย์นับLS เราบอกว่าสองสายS1และS2ความยาวเดียวกันการแข่งขันถ้าอาร์เรย์นับของตนL1และL2มีคุณสมบัติที่L1[i] <= 2*L2[i]และสำหรับทุกL2[i] <= 2*L1[i]i งาน สำหรับการnเริ่มต้นที่เพิ่มขึ้นn=1ภารกิจคือการหาขนาดของชุดสตริงที่ใหญ่ที่สุดแต่ละความยาว2n-1เพื่อไม่ให้มีสองสตริงตรงกัน nรหัสของคุณควรส่งออกจำนวนหนึ่งต่อมูลค่าของ คะแนน คะแนนของคุณสูงที่สุดnซึ่งไม่มีใครโพสต์คำตอบที่ถูกต้องสูงกว่าสำหรับคำตอบของคุณ เห็นได้ชัดว่าถ้าคุณมีคำตอบที่ดีที่สุดแล้วคุณจะได้รับคะแนนสูงสุดสำหรับการnโพสต์ อย่างไรก็ตามแม้ว่าคำตอบของคุณจะไม่เหมาะสมคุณยังสามารถได้รับคะแนนหากไม่มีใครสามารถเอาชนะได้ ตัวอย่างคำตอบ สำหรับฉันได้รับn=1,2,3,42,4,10,16 ภาษาและห้องสมุด คุณสามารถใช้ภาษาและไลบรารีใด ๆ ที่คุณต้องการ หากเป็นไปได้จะเป็นการดีที่จะสามารถเรียกใช้รหัสของคุณได้ดังนั้นโปรดระบุคำอธิบายโดยละเอียดเกี่ยวกับวิธีเรียกใช้ / รวบรวมรหัสของคุณใน linux หากเป็นไปได้ รายการชั้นนำ 5โดย Martin BüttnerในMathematica 6โดย Reto Koradi ในc ++ 2, 4, 10, 16, 31, 47, 75, 111, 164, 232, 328, 445, …

10
เลิกทำกราฟ
บทนำ ในความท้าทายนี้คุณจะได้รับกราฟกำกับด้วยการวนรอบตัวเองและงานของคุณคือการแปลงให้เป็นกราฟที่ไม่ได้เปลี่ยนทิศทางโดยไม่มีการวนรอบเอง อินพุต การป้อนข้อมูลของคุณเป็นกราฟกำกับโดยมีการตั้งค่าจุดยอด{0, 1, ..., n-1}สำหรับจำนวนธรรมชาติn ≥ 0(หรือ{1, 2, ..., n}ถ้าคุณใช้การจัดทำดัชนีแบบ 1) กราฟจะได้รับเป็น length- nรายการLที่เป็นรายการของออกจากเพื่อนบ้านของจุดสุดยอดL[i] iตัวอย่างเช่นรายการ[[0,1],[0],[1,0,3],[]]แสดงกราฟ .-. | v '-0<--2-->3 ^ | | | v | 1<--' โปรดทราบว่ารายชื่อเพื่อนบ้านไม่จำเป็นต้องสั่งซื้อ แต่รับประกันว่าจะไม่ซ้ำซ้อน เอาท์พุต เอาต์พุตของคุณเป็นกราฟอื่นในรูปแบบเดียวกับอินพุตที่ได้จากกราฟดังต่อไปนี้ ลบการวนซ้ำทั้งหมด สำหรับแต่ละขอบที่เหลือu -> vให้เพิ่มขอบที่กลับด้านv -> uถ้ายังไม่มีอยู่ เช่นเดียวกับอินพุตรายการเพื่อนบ้านของกราฟผลลัพธ์อาจไม่ได้เรียงลำดับ แต่พวกเขาไม่สามารถมีรายการซ้ำได้ สำหรับกราฟด้านบนเอาต์พุตที่ถูกต้องจะเป็น[[1,2],[0,2],[0,1,3],[2]]ซึ่งแทนกราฟ 0<->2<->3 ^ ^ | | v | 1<--' กฎระเบียบ …

15
เกมชื่อเมือง
หากคุณต้องการเขียนโปรแกรมที่เรียงลำดับเมืองตามกฎของเกมชื่อเมือง ชื่อเมืองแต่ละเมืองควรเริ่มจากอักษรตัวสุดท้ายในชื่อเมืองก่อนหน้า เช่นLviv -> v -> Viden -> n -> Neapolis -> s -> Sidney -> y -> Yokogama -> a -> Amsterdam -> m -> Madrid -> d -> Denwer ในรายการเรียงลำดับอักษรตัวแรกของเมืองแรกและตัวอักษรสุดท้ายของสุดท้ายไม่ควรตรงกับสิ่งใดไม่จำเป็นต้องเป็นตัวอักษรเดียวกัน คุณสามารถสมมติว่าชื่อเมืองมีตัวอักษรเท่านั้น ผลลัพธ์ของโปรแกรมควรมีตัวพิมพ์ใหญ่เหมือนกับอินพุต ตัวอย่าง: % ./script Neapolis Yokogama Sidney Amsterdam Madrid Lviv Viden Denwer ["Lviv", "Viden", "Neapolis", "Sidney", "Yokogama", …

11
จำลอง NFA
ออโตเมติก จำกัด nondeterministicเป็นเครื่องสถานะ จำกัด ที่ tuple ถูกแมปกับหลายรัฐ กล่าวคือ เราแทนที่ปกติδ : Q × Σ →การQฟังก์ชั่นการเปลี่ยนแปลงของDFAกับฟังก์ชั่นอื่นΔ : Q × Σ →การP ( Q )( s t a t e , s y)m b o l )(sเสื้อaเสื้ออี,sYม.ขโอล.)(state,symbol)δ: Q × Σ → Q δ:Q×Σ→Q \delta : Q \times \Sigma \to Q\ Δ : Q …

16
ตรวจสอบว่าความสัมพันธ์เป็นสกรรมกริยา
คำอธิบายการท้าทาย เริ่มด้วยคำจำกัดความบางอย่าง: ความสัมพันธ์เป็นชุดของคู่อันดับขององค์ประกอบ (ในความท้าทายนี้เราจะใช้จำนวนเต็ม) ตัวอย่างเช่น[(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]มีความสัมพันธ์ ความสัมพันธ์เรียกว่าสกรรมกริยาหากมีองค์ประกอบสองคู่(a, b)และ(b, c)ในความสัมพันธ์นี้คู่(a, c)ก็มีอยู่ด้วย [(1, 2), (2, 4), (6, 5), (1, 4)]เป็นสกรรมกริยาเพราะมันมี(1, 2)และ(2, 4)แต่ก็(1, 4)เช่นกัน [(7, 8), (9, 10), (15, -5)]เป็นสกรรมกริยาเพราะมีไม่ใดสองคู่ (a, b), (c, d)ปัจจุบันเช่นที่=bc [(5, 9), (9, 54), (0, 0)]ไม่ใช่สกรรมกริยาเนื่องจากมี(5, 9)และ(9, 54)แต่ไม่ใช่(5, 54) รับรายการคู่จำนวนเต็มพิจารณาว่าความสัมพันธ์เป็นสกรรมกริยาหรือไม่ อินพุต …

5
เดินเขาวงกต
หรืออาจจะไม่ใช่เขาวงกตจริงๆ แต่ก็ยังอยู่ กฎ: การป้อนข้อมูลเป็นสตริงสองบรรทัดประกอบด้วย*, 1, และx Xสายนั้นเป็นเขาวงกตที่จะเดินผ่าน เส้นมีความยาวเท่ากัน คุณสามารถรับอินพุตเป็นสตริงที่มี,(เครื่องหมายจุลภาค) หรือตัวคั่นใด ๆ ที่สะดวกระหว่างสองบรรทัดนี้ หรือคุณอาจใช้ทั้งสองบรรทัดเป็นอาร์กิวเมนต์แยกกันในการทำงานของคุณ เอาต์พุตคือจำนวนขั้นตอนที่คุณต้องดำเนินการเพื่อออกจากสายอักขระ (ขั้นตอนสุดท้ายคือขั้นตอนที่จะย้ายคุณออกจากสายอักขระ) คุณเริ่มต้นที่มุมซ้ายบน (บรรทัดที่สูงกว่า) หน้าสัญลักษณ์แรก สำหรับแต่ละขั้นตอนคุณก้าวไปข้างหน้าโดยหนึ่งในสัญลักษณ์ (จากที่ n จะ (n + 1) TH ตำแหน่ง ) จากนั้นขึ้นอยู่กับตัวละครที่คุณก้าวเข้ามาผลลัพธ์จะแตกต่างกัน นี่คือสิ่งที่แต่ละถ่านทำ: *- ไม่มีอะไร คุณเพียงแค่เหยียบมันตามปกติ x- เมื่อคุณเหยียบมันแล้วให้สลับสาย แต่ยังคงอยู่ในระยะทางแนวนอนเดียวกันจากจุดเริ่มต้น ตัวอย่างเช่นคุณก้าวไปสู่ตำแหน่งที่สามของบรรทัดที่สูงกว่าและพบตัวพิมพ์เล็กxที่นี่ จากนั้นคุณย้ายไปที่บรรทัดล่างทันที แต่อีกครั้งที่ตำแหน่งที่สาม X- สลับสายและไปที่ตำแหน่งถัดไป ตัวอย่างมีเหมือนกัน แต่คุณย้ายจากตำแหน่งที่สามไปยังตำแหน่งที่สี่ (ดังนั้นคุณจึงอยู่ในบรรทัดที่สองที่ตำแหน่งที่สี่) 1 - เพียงแค่เดินหน้าต่อไปโดยตำแหน่งอื่น เมื่อตัวละครแต่ละตัวทำงานแล้วมันจะถูกแทนที่ด้วยช่องว่างและไม่สามารถใช้งานได้อีกต่อไป ตัวอย่างดังต่อไปนี้ อินพุต …

5
ไกลแค่ไหนจากภายนอก?
ใช้พื้นที่ 2 มิติแบ่งออกเป็นองค์ประกอบตารางหน่วยของแกนที่มีการจัดกึ่งกลางตามระยะเวลาจำนวนเต็ม มีการกล่าวถึงขอบภายในถ้ามันแบ่งเป็นสององค์ประกอบมิฉะนั้นจะเป็นขอบภายนอก เป้าหมายของคุณคือการหาจำนวนขั้นต่ำขององค์ประกอบที่อยู่ใกล้เคียงซึ่งจะต้องสำรวจให้ถึงขอบด้านนอกโดยเริ่มจากศูนย์กลางของแต่ละองค์ประกอบหรือที่เรียกว่า traversal distanceหรือdistanceสั้น คุณสามารถเคลื่อนที่ผ่านขอบเท่านั้น (เช่นไม่มีการตัดมุม / การเคลื่อนที่ในแนวทแยง) โปรดทราบว่า "องค์ประกอบภายนอก" (องค์ประกอบที่มีขอบภายนอกอย่างน้อยหนึ่ง) ได้รับการพิจารณาว่าจำเป็นต้องสำรวจ0องค์ประกอบที่อยู่ใกล้เคียงเพื่อเข้าถึงขอบด้านนอก .. อินพุต อินพุตเป็นรายการของคู่พิกัดจำนวนเต็มที่ไม่เป็นลบซึ่งแสดงถึง (x, y) ของศูนย์กลางขององค์ประกอบทั้งหมด มันจะสันนิษฐานว่าไม่มีองค์ประกอบที่ทับซ้อนกัน (เช่นคู่ x / y ระบุองค์ประกอบ) คุณอาจไม่คิดอะไรเกี่ยวกับลำดับการป้อนองค์ประกอบ คุณสามารถแปลงต้นกำเนิดของอินพุตให้เป็นตำแหน่งใดก็ได้ (เช่น 0,0 หรือ 1,1 เป็นต้น) คุณอาจสมมติว่าองค์ประกอบอินพุตทั้งหมดเชื่อมต่อกันหรืออาจกล่าวได้ว่าเป็นไปได้ที่จะเดินทางจากองค์ประกอบหนึ่งไปยังองค์ประกอบอื่น ๆ โดยใช้กฎด้านบน โปรดทราบว่านี่ไม่ได้หมายความว่าการเชื่อมต่อภูมิภาค 2 มิตินั้นง่าย มันอาจมีรูอยู่ข้างใน ตัวอย่าง: ต่อไปนี้เป็นอินพุตที่ไม่ถูกต้อง 0,0 2,0 ไม่จำเป็นต้องตรวจสอบข้อผิดพลาด อินพุตอาจมาจากแหล่งใดก็ได้ (ไฟล์ stdio พารามิเตอร์ฟังก์ชัน …

7
ฉันควรใส่ร้านอาหารไว้ที่ไหน
คุณเป็นเจ้าของร้านอาหาร คุณกำลังเปิดในพื้นที่ใหม่ใน Cartesia ที่มีถนนสายหลักเพียงเส้นเดียวเท่านั้นที่รู้จักกันในชื่อแกน y คุณต้องการวางร้านอาหารของคุณเพื่อลดระยะทางโดยรวมจากร้านอาหารและบ้านแต่ละหลังในพื้นที่นั้น อินพุต : อินพุตจะเป็น n, the number of houses house1 house2 house3 ... houseN x yซึ่งแต่ละบ้านจะประสานงานในรูปแบบ แต่ละหน่วยแสดงถึงหนึ่งกิโลเมตร คุณสามารถรับอินพุตเป็นสตริงหรือจัดเตรียมฟังก์ชันที่รับอินพุตในรูปแบบใดก็ได้ที่คุณเลือกเป็นอาร์กิวเมนต์ เอาท์พุท : พิกัด y ของร้านอาหารของคุณ (จำไว้ว่ามันจะอยู่บนแกน y) จริงๆแล้วมันจะอยู่ข้างถนน แต่ความแตกต่างนั้นเล็กน้อย โดยพื้นฐานแล้วถ้าบ้านหลังที่ n อยู่h_nและDเป็นฟังก์ชั่นระยะทางคุณจะต้องหาสิ่งkที่D(h_0, (0, k)) + D(h_1, (0, k)) + D(h_2, (0, k)) + ... + D(h_n, (0, …

11
สร้างกราฟ
ในความท้าทายนี้งานของคุณคือการสร้างกราฟที่ไม่มีทิศทางจากลำดับของคำสั่ง มีหนึ่งคำสั่งสำหรับแต่ละจำนวนเต็มไม่ใช่ค่าลบและแต่ละแปลงกราฟที่กำหนดเป็นหนึ่งใหม่ คำสั่ง0: เพิ่มโหนดที่ไม่ได้เชื่อมต่อใหม่ คำสั่ง1: เพิ่มโหนดใหม่และเชื่อมต่อกับทุกโหนดที่มีอยู่ Directive m > 1: เอาโหนดทั้งหมดที่มีการศึกษาระดับปริญญา (จำนวนเพื่อนบ้าน) mหารด้วย โปรดทราบว่า0สามารถแบ่งได้โดยทั้งหมดmดังนั้นโหนดที่ไม่ได้เชื่อมต่อจะถูกลบออกเสมอ คำสั่งถูกนำไปใช้หนึ่งโดยหนึ่งจากซ้ายไปขวาเริ่มต้นด้วยกราฟที่ว่างเปล่า ตัวอย่างเช่นลำดับ[0,1,0,1,0,1,3]จะถูกประมวลผลดังต่อไปนี้อธิบายโดยใช้ศิลปะ ASCII ที่ยอดเยี่ยม เราเริ่มต้นด้วยกราฟที่ว่างเปล่าและเพิ่มจุดยอดเดียวตามที่กำกับโดย0: a จากนั้นเพิ่มจุดสุดยอดอีกอันและเชื่อมต่อกับจุดแรกตามที่กำกับโดย1: a--b เราเพิ่มจุดสุดยอดที่ไม่ได้เชื่อมต่ออีกอันจากนั้นเชื่อมต่ออีกจุดหนึ่งตามที่กำกับโดย0และ1: a--b c \ \ / `--d เราทำซ้ำอีกครั้งตามที่กำกับโดย0และ1: ,--f--e / /|\ a--b | c \ \|/ `--d สุดท้ายเราก็ลบจุดยอดองศา -3 aและbตามที่กำกับโดย3: f--e |\ | c |/ d [0,1,0,1,0,1,3]นี้เป็นกราฟที่กำหนดโดยลำดับ อินพุต …

1
ก่อวินาศกรรมรถไฟเพื่อให้มันสาย [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา "ฉันต้องการไปที่ Araby bazaar เพื่อซื้อของขวัญสำหรับที่ฉันตกหลุมรักด้วยอย่างไรก็ตามถ้าฉันมาสายเกินไปร้านค้าทั้งหมดจะถูกปิดและฉันจะไม่สามารถซื้ออะไรได้คุณช่วยได้ไหม ผมได้ไหม " เป้าหมาย:พาเด็กชายไปที่ Araby จาก North Richmond Street ก่อนที่ร้านค้าทั้งหมดจะปิด เป้าหมายที่แท้จริง:ตรวจสอบให้แน่ใจว่าเด็กผู้ชายไม่ได้มาถึง Araby ก่อนที่ร้านค้าจะปิด โปรแกรมของคุณจะรับอินพุตในรูปแบบต่อไปนี้: <time> <map> ที่ไหน <time>เป็นเวลาสูงสุดที่เด็กชายสามารถใช้เวลาเดินทางเป็นนาที มันเป็นจำนวนเต็มบวก <map> เป็นกราฟของเส้นทางที่รถไฟสามารถรับได้ นี่คือรูปแบบของกราฟที่ใช้งานได้: แต่ละคำสั่งจะจบด้วยเซมิโคลอน โหนดในแผนที่ (ซึ่งเป็นตัวแทนของสวิทช์) จะถูกแสดงโดยใช้ตัวอักษรตัวพิมพ์เล็ก เส้นทางระหว่างโหนดจะถูกแสดงด้วยไวยากรณ์a,X,bโดยที่Xเป็นจำนวนเต็มแทนน้ำหนักของเส้นทาง น้ำหนักของเส้นทางคือเวลาเป็นนาทีรถไฟจะผ่านทั้งสองโหนด อาราบีเป็นตัวแทนที่มีและนอร์ทริชมอนด์ถนนเป็นตัวแทนที่มี an เส้นทางทั้งหมดเป็นแบบสองทิศทาง ตัวอย่างเช่นกราฟนี้ (เสแสร้งเส้นทางเป็นแบบสองทิศทาง): ภาพโดย Artyom Kalinin …

10
วิธีที่จะทำให้ขี้เมาช้าลงระหว่างทางกลับบ้าน
พิจารณารูปสี่เหลี่ยมจัตุรัส n และ n ตารางกราฟที่มีลักษณะเช่นนี้ มันเป็นสิ่งสำคัญที่จะแจ้งให้ทราบว่ากราฟนี้คือ 11 11 เมื่อถึงจุดใดก็ตามชายคนหนึ่งยืนอยู่ที่สี่แยกและเขาจะเคลื่อนที่ในแนวตั้งหรือแนวนอนทีละก้าวไปยังจุดตัดถัดไป น่าเศร้าที่เขาเมามากเกินไปเล็กน้อยดังนั้นเขาจึงเลือกทิศทางที่เขาเคลื่อนที่แบบสุ่มจากทิศทางที่เป็นไปได้ 4 ทิศทาง (ขึ้น, ลง, ซ้าย, ขวา) นี่คือมากถึง 4 ราวกับว่าเขากำลังยืนอยู่ที่กำแพงเขามี 3 ตัวเลือกแน่นอนและในมุมที่เขามีเพียง 2 เขาเริ่มที่มุมซ้ายล่างและเป้าหมายของเขาคือกลับบ้านซึ่งเป็นมุมบนขวามือ เวลาเป็นเพียงจำนวนก้าวที่เขาใช้ อย่างไรก็ตามคุณเป็นคู่ต่อสู้ที่ประสงค์ร้ายที่ต้องการให้เขากลับบ้านอย่างช้าที่สุด คุณสามารถลบจำนวนขอบใด ๆ ออกจากกราฟได้ตลอดเวลาในระหว่างที่เขาเดิน ข้อ จำกัด เพียงอย่างเดียวคือคุณต้องออกจากทางเพื่อให้เขากลับบ้านเสมอและคุณไม่สามารถลบขอบที่เขาใช้ไปแล้ว ความท้าทายคือการคิดว่าเป็นปฏิปักษ์ที่อันตรายที่สุดเท่าที่จะเป็นไปได้แล้วทดสอบบนกราฟขนาด100 คูณ 100 20 คูณ 20 ด้วยรูปวอล์คเกอร์แบบสุ่ม คะแนนของคุณเป็นเพียงเวลาเฉลี่ยที่จะใช้เวลาวอล์คเกอร์แบบสุ่มเพื่อกลับบ้านกว่า10 1,000 วิ่ง คุณสามารถใช้ภาษาและไลบรารีใด ๆ ที่คุณต้องการตราบใดที่พวกเขาสามารถใช้งานได้อย่างอิสระและติดตั้งได้อย่างง่ายดายใน Linux ฉันต้องใช้อะไรบ้าง คุณควรใช้รหัสสำหรับวอล์คเกอร์แบบสุ่มและสำหรับฝ่ายตรงข้ามและรหัสควรรวมกันเพื่อให้ผลลัพธ์เมื่อรันเป็นเพียงค่าเฉลี่ย 1,000 การรันโดยใช้โค้ดคู่ต่อสู้ของคุณ รหัสวอล์คเกอร์แบบสุ่มควรง่ายมากในการเขียนเนื่องจากเขาเลือกจาก …

6
กราฟ 5 สี
พูดตามตรงฉันไม่อยากจะเชื่อเลยว่าสิ่งนี้ยังไม่ได้ถูกถาม แต่ที่นี่คือ พื้นหลัง เมื่อพิจารณาจากระนาบที่ไม่ได้บอกทิศทางอย่างง่าย(สามารถวาดกราฟในระนาบที่ไม่มีทางแยก) กราฟมันเป็นทฤษฎีบทที่พิสูจน์แล้วว่ากราฟมีสี 4 สีซึ่งเป็นคำที่เราจะสำรวจในบิต อย่างไรก็ตามมันง่ายกว่าที่จะใช้กราฟ 5 สีซึ่งเป็นสิ่งที่เราจะมุ่งเน้นไปที่ความท้าทายของเราในวันนี้ k-colouring ที่ถูกต้องของกราฟคือการกำหนด "colors" ให้กับโหนดของกราฟที่มีคุณสมบัติดังต่อไปนี้ หากสองโหนดเชื่อมต่อกันด้วยขอบโหนดจะมีสีที่มีสีต่างกัน ในกราฟมีสีได้สูงสุด 5 สี เมื่อได้สิ่งนี้ฉันจะนำเสนออัลกอริธึมพื้นฐานสวย ๆ ให้กับ 5 สีกราฟระนาบแบบไม่มีทิศทางใด ๆ อัลกอริทึมนี้ต้องใช้คำจำกัดความต่อไปนี้ ความสามารถเข้าถึงได้: หากโหนด 1 สามารถเข้าถึงได้จากโหนด 2 นั่นหมายความว่ามีลำดับของโหนดแต่ละโหนดเชื่อมต่อกับขอบถัดไปดังนั้นโหนดแรกคือโหนด 2 และสุดท้ายคือโหนด 1 โปรดทราบว่าเนื่องจากกราฟที่ไม่ได้ถูกบอกทิศทาง เป็นแบบสมมาตรหากโหนด 1 สามารถเข้าถึงได้จากโหนด 2 โหนด 2 สามารถเข้าถึงได้จากโหนด 1 Subgraph : กราฟย่อยของกราฟของชุดโหนดที่ระบุ N คือกราฟที่โหนดของกราฟย่อยทั้งหมดใน N และขอบจากกราฟต้นฉบับอยู่ในกราฟย่อยถ้าหากโหนดทั้งสองเชื่อมต่อกันด้วยขอบ …

14
ผลรวมสะสมแบบวนซ้ำของ [N] ด้วยการวนซ้ำ M
ใช้จำนวนเต็มบวกสองจำนวนNแล้วMสร้างผลบวกสะสม[N]โดยมีMการวนซ้ำ เอาต์พุตผลลัพธ์ของการวนซ้ำล่าสุด คำจำกัดความของผลรวมสะสมตัดแบ่ง: เริ่มต้นด้วยตัวเลขNและกำหนดลำดับX = [N] ผนวกกับXผลรวมสะสมของX ทำซ้ำขั้นตอนที่ 2 Mครั้ง ผลรวมสะสมของเวกเตอร์X = [x1, x2, x3, x4]คือ: [x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]. ตัวอย่างด้วยN = 1และM = 4: P = ฟังก์ชันผลรวมสะสม M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

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