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

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

7
พื้นผิวของลูกบาศก์ 3x3x3 เป็นกราฟ
งานของคุณคือการสร้างกราฟที่มี 54 จุดยอดแต่ละอันสอดคล้องกับด้านของลูกบาศก์รูบิค มีขอบระหว่างจุดยอดสองจุดถ้าด้านที่เกี่ยวข้องแบ่งด้านกัน กฎระเบียบ คุณอาจเลือกที่จะแสดงผลรายการคำคุณศัพท์เมทริกซ์คำคุณศัพท์รายการขอบหรือรูปแบบที่เหมาะสมเพื่อแสดงกราฟในอัลกอริทึม (โดยทั่วไปแล้วกราฟที่มนุษย์สามารถอ่านได้มักจะไม่ใช่รูปแบบที่เหมาะสมในอัลกอริทึมในกรณีส่วนใหญ่) คุณสามารถสร้างจุดสุดยอดทุกจุดติดกับตัวเองหรือไม่ติดกับตัวเองก็ได้ คุณอาจรวมทั้งสองทิศทางสำหรับแต่ละขอบ (นับหนึ่งหรือสองครั้งสำหรับการวนรอบตัวเอง) หรือเอาท์พุทหนึ่งครั้งสำหรับแต่ละขอบ แต่ไม่รวมกัน คุณสามารถกำหนดหมายเลขจุดยอดใหม่อีกครั้งข้ามตัวเลขบางส่วนหรือใช้ป้ายกำกับที่ไม่ใช่ตัวเลขสำหรับจุดยอดในทางที่คุณต้องการ คุณควรโพสต์หมายเลขหากไม่ชัดเจนดังนั้นผู้อื่นสามารถตรวจสอบคำตอบของคุณได้ง่ายขึ้น นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่างผลลัพธ์ นี่คือการนับจำนวนจุดยอดที่ใช้ในตัวอย่าง: 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 …

7
เส้นทาง hypercube ที่ยาวที่สุด
ท้าทาย คุณจะได้รับสองบิตบิตที่แตกต่างกันของความยาวเดียวกัน (ตัวอย่างเช่น000และ111.) เป้าหมายของคุณคือค้นหาเส้นทางจากที่หนึ่งไปอีกที่หนึ่งที่: ในแต่ละขั้นตอนที่คุณเปลี่ยนเพียงหนึ่งบิต (คุณสามารถไปจาก000การใด ๆ001, 010, 100) คุณไม่สามารถเยี่ยมชมสตริงบิตเดียวกันสองครั้ง เส้นทางยาวที่สุดเท่าที่จะเป็นไปได้ภายใต้ข้อ จำกัด เหล่านี้ ยกตัวอย่างเช่นที่เกิดจาก000การ111ที่เราสามารถใช้เส้นทาง 000, 001, 011, 010, 110, 100, 101, 111 ซึ่งเข้าชมทั้งหมด 8 บิตความยาว 3 ดังนั้นมันจะต้องเป็นไปได้ที่ยาวที่สุด กฎระเบียบ ช่องโหว่มาตรฐานใช้ คุณสามารถรับอินพุตเป็นสองสตริงของศูนย์และหนึ่งหรือเป็นสองอาร์เรย์ของศูนย์และคนหรือเป็นสองอาร์เรย์ของค่าบูลีน คุณไม่สามารถรับอินพุตเป็นจำนวนเต็มสองจำนวนที่มีการแทนค่าไบนารี่ขวา (การเขียน000และ111เป็น0และ7ไม่ถูกต้อง) หากคุณต้องการคุณอาจใช้ความยาวของสตริงบิตเป็นอินพุต โปรแกรมของคุณได้รับอนุญาตให้ส่งออกเส้นทางโดยการพิมพ์บิตสตริงที่เข้าเยี่ยมชมทีละครั้งหรือโดยการส่งกลับอาร์เรย์ของบิตสตริงที่เข้าชม (แต่ละรูปแบบเดียวกับอินพุต) ผลลัพธ์ของคุณควรมีจุดเริ่มต้นและจุดสิ้นสุดของเส้นทาง (ซึ่งเป็นอินพุตของคุณ) นี่คือโค้ดกอล์ฟซึ่งเป็นรหัสที่สั้นที่สุดในหน่วยไบต์ ตัวอย่าง 0 1 -> 0, 1 10 01 -> 10, 00, 01 …

28
คำนวณโมดูลัสของผกผัน
งาน: มูลค่าการส่งออกสำหรับxที่สองค่าที่กำหนดa mod x = ba,b การสันนิษฐาน aและbจะเป็นจำนวนเต็มบวกเสมอ จะไม่มีทางแก้สำหรับ x หากมีหลายวิธีให้เอาท์พุทอย่างน้อยหนึ่งวิธี หากไม่มีวิธีแก้ปัญหาให้เอาท์พุทอะไรหรือบ่งชี้ว่าไม่มีวิธีแก้ไข อนุญาตให้ใช้บิวด์อิน (ไม่สนุกเท่าวิธีการทางคณิตศาสตร์อื่น ๆ ) เอาต์พุตเป็นจำนวนเต็มเสมอ ตัวอย่าง A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

7
วงจรที่ยาวที่สุดในกราฟ
รับกราฟกำกับให้ส่งออกรอบที่ยาวที่สุด กฎระเบียบ อนุญาตรูปแบบอินพุตที่เหมาะสม (เช่นรายการขอบเมทริกซ์การเชื่อมต่อ) ป้ายกำกับไม่มีความสำคัญดังนั้นคุณอาจกำหนดข้อ จำกัด ใด ๆ บนป้ายกำกับที่คุณต้องการและ / หรือปรารถนาตราบใดที่ป้ายดังกล่าวไม่มีข้อมูลเพิ่มเติมที่ไม่ได้รับในการป้อนข้อมูล (เช่นคุณไม่ต้องการให้โหนดในรอบนั้น ป้ายกำกับด้วยจำนวนเต็มและโหนดอื่น ๆ มีป้ายกำกับด้วยสตริงตัวอักษร) วัฏจักรคือลำดับของโหนดที่เชื่อมต่ออยู่และไม่มีการทำซ้ำโหนดใด ๆ นอกจากโหนดที่เป็นจุดเริ่มต้นและจุดสิ้นสุดของวงจร ( [1, 2, 3, 1]เป็นรอบ แต่[1, 2, 3, 2, 1]ไม่ใช่) หากกราฟเป็นวงจรรอบที่ยาวที่สุดจะมีความยาว 0 ดังนั้นจึงควรให้เอาต์พุตที่ว่างเปล่า (เช่นรายการว่างเปล่าไม่มีเอาต์พุตเลย) ทำซ้ำโหนดแรกที่ตอนท้ายของรายการโหนดในวงรอบเป็นทางเลือก ( [1, 2, 3, 1]และ[1, 2, 3]แสดงถึงวงจรเดียวกัน) หากมีหลายรอบที่มีความยาวเท่ากันวงจรใดวงจรหนึ่งหรือทั้งหมดอาจเป็นเอาต์พุต อนุญาตให้ใช้บิวด์ แต่ถ้าโซลูชันของคุณใช้คุณควรสนับสนุนให้รวมโซลูชันสำรองที่ไม่ได้ใช้บิวอินเล็กน้อย (เช่นบิลด์ที่มีเอาต์พุตในทุกรอบ) อย่างไรก็ตามโซลูชันสำรองจะไม่นับรวมกับคะแนนของคุณเลยดังนั้นจึงเป็นตัวเลือกทั้งหมด กรณีทดสอบ ในกรณีทดสอบเหล่านี้อินพุตจะได้รับเป็นรายการของขอบ (โดยที่องค์ประกอบแรกคือโหนดต้นทางและองค์ประกอบที่สองคือโหนดปลายทาง) และเอาต์พุตเป็นรายการของโหนดโดยไม่มีการซ้ำซ้อนของโหนดแรก / …

2
ค้นหากองหญ้าในเข็ม
ในการบิดในการหาเข็มในกองหญ้าที่คุณต้องพบกองหญ้าติดกันมากที่สุดที่มีตรง หนึ่ง เข็ม โปรดทราบว่าคุณไม่สามารถเชื่อมต่อเซลล์กับเส้นทแยงมุมได้เฉพาะด้านซ้าย / ขวา / ขึ้น / ลง อินพุต อาร์เรย์ (หรือจำนวนบรรทัดอินพุตของผู้ใช้, การเลือกของคุณ) ของ'N'(เข็ม) และ'#'(เฮย์) อินพุตมีอักขระสองตัวเหล่านั้นเท่านั้นและต้องมีอย่างน้อยหนึ่งตัว ตัวอย่างเช่น: N#N#N #NN## ###N# N##N# เอาท์พุต ขนาดของกองหญ้าที่ถูกต้องที่เป็นไปได้มากที่สุด ตัวอย่างของเราเราจะเอาท์พุท 11 (มีหญ้าแห้ง 11 ชิ้นและเข็มหนึ่งอัน) # # ## ###N# ## # นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ มีข้อ จำกัด ช่องโหว่มาตรฐาน กรณีทดสอบ ใส่ทางซ้ายเป็นไปได้สูงสุดที่กองฟางทางด้านขวา กรณีที่ 1: 4 N## ## NN# # …

2
ค้นหา Deadlock
ค้นหา Deadlock เมื่อโปรแกรมมิงแบบมัลติเธรดต้องใช้ความระมัดระวังเพื่อหลีกเลี่ยงการล็อคเธรดต่าง ๆ เมื่อเข้าถึงทรัพยากรที่ใช้ร่วมกัน การหยุดชะงักเกิดขึ้นเมื่อเธรดพยายามเข้าถึงทรัพยากรที่ถูกล็อคในเธรดอื่นในเวลาเดียวกันกับที่เธรดอื่นกำลังพยายามเข้าถึงทรัพยากรที่ถูกล็อคโดยเธรดแรก นี่เป็นกรณีที่ง่าย แต่อาจมีความซับซ้อนมากขึ้นด้วยโซ่ทรัพยากรที่ยาวขึ้น ความท้าทาย คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่สามารถตรวจจับสถานการณ์การหยุดชะงักที่เป็นไปได้ในรายการทรัพยากรที่เข้าถึงได้โดยแต่ละเธรด นี่คือ code-golf ดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ทุกเธรดเริ่มต้นในเวลาเดียวกัน แต่หลังจากนั้นเธรดสามารถทำงานร่วมกันได้ หากมี 2 หัวข้อ 4 การกระทำของแต่ละคนก็อาจจะทำงานเป็น (ที่แต่ละหมายเลขเป็นการกระทำที่เกิดจากด้ายกับว่า ID) 1,1,1,1,2,2,2,2, 2,2,2,2,1,1,1,1, 1,2,1,2,1,2,1,2, 1,1,2,2,2,2,1,1หรือใด ๆ รวมกันเป็นไปได้อื่น ๆ อินพุต คุณจะได้รับรายการของสตริงผ่านทาง STDIN พารามิเตอร์ฟังก์ชันหรือทางเลือกที่ใกล้เคียงที่สุด +a -bแต่ละสายจะอยู่ในรูปแบบ ทุกสตริงนี้แสดงถึงการล็อค ( +) / ปลดล็อค ( -) ของทรัพยากรโดยเธรด ระหว่างทุกเธรดจะเป็น---ตัวคั่น มีการรับประกันว่าเธรดจะไม่พยายามล็อกทรัพยากรที่ถูกล็อกไปแล้วและเธรดทั้งหมดจะปลดล็อกรีซอร์สทั้งหมดที่ล็อกไว้อย่างชัดเจนก่อนออก ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็น: +a # Lock resource …

4
ช่วยนายโจนส์เพลิดเพลินไปกับจักรยานไป - กลับ
Mr Jones ต้องการเดินทางไปกลับบนจักรยานของเขา เขาต้องการไปหลายเมืองตามอำเภอใจ แต่เส้นทางของเขาจะต้องไม่ข้ามไปเองเนื่องจากเขาเกลียดที่จะอยู่ที่เดิมสองครั้งในช่วงวันหยุด ในขณะที่เขารักการขี่จักรยานความยาวเส้นทางของเขาไม่เกี่ยวข้องอย่างสมบูรณ์ แต่เขาไม่ชอบขับรถไปรอบ ๆ ภูมิประเทศโดยไม่มีเป้าหมาย เส้นทางที่เขาชอบมาจากในเมืองเป็นเส้นตรงไปยังอีกเส้นทางหนึ่งโดยไม่มีทางอ้อม เนื่องจาก Mr Jones เป็นนักกอล์ฟที่หลงใหลในรหัสเขาจึงต้องการให้คุณหาโปรแกรมที่วางแผนการเดินทางไปกลับให้กับเขาตามเมืองต่างๆ A (B|C)การป้อนข้อมูลที่มีรูปแบบ Aเป็นชื่อเมืองBและCเป็นพิกัด คุณอาจสันนิษฐานว่าพิกัดนั้นเป็นค่าบวกและน้อยกว่า 1,000 ชุดข้อมูลสำหรับเมืองจะถูกคั่นด้วยเส้น นี่คือตัวอย่างลักษณะของอินพุตตัวอย่างที่อาจมีลักษณะ: บางเมือง (1 | 10) ACity (3 | 4) ทุกที่ (7 | 7) บ้าน (5 | 1) Mr Jones ไม่ใช่คนที่คลั่งไคล้เขาเพียงต้องการมีโปรแกรมที่มีประโยชน์ ดังนั้นคุณอาจตัดสินใจเองว่าผลลัพธ์จะออกมาเป็นอย่างไรตราบใดที่มันตรงตามเกณฑ์เหล่านี้: เอาท์พุทเป็นแผนที่ของเมืองที่มีเส้นทางวาดระหว่างพวกเขา หากมีสิ่งใดถูกต้องเส้นทางไม่ควรทับซ้อนกันและควรสิ้นสุดที่จุดเริ่มต้น พิกัดเหมือนการเขียนโปรแกรมปกติ: (1 | 1) อยู่ในมุม NW เพิ่มไม้บรรทัดชนิดหนึ่งลงในเส้นขอบแผนที่เพื่อให้ง่ายต่อการอ่าน …

12
กราฟิคลำดับนี้หรือไม่
ลำดับกราฟิกเป็นลำดับของจำนวนเต็มบวกแต่ละ denoting จำนวนขอบสำหรับโหนดในเป็นกราฟที่เรียบง่าย ตัวอย่างเช่นลำดับ2 1 1หมายถึงกราฟที่มี 3 โหนดหนึ่งมี 2 ขอบและ 2 กับการเชื่อมต่อหนึ่ง ไม่ใช่ลำดับทั้งหมดที่เป็นลำดับกราฟิก ตัวอย่างเช่น2 1ไม่ใช่ลำดับกราฟิกเนื่องจากไม่มีวิธีการเชื่อมต่อสองโหนดดังนั้นหนึ่งในนั้นมีสองขอบ งาน คุณจะใช้ลำดับของจำนวนเต็มด้วยวิธีการที่สมเหตุสมผล ซึ่งรวมถึงแต่ไม่ จำกัด เฉพาะอาร์เรย์ของจำนวนเต็มและขนาดรายการเชื่อมโยงของจำนวนเต็มที่ไม่ได้ลงนามและเวกเตอร์ของคู่ คุณอาจคิดว่าจะไม่มีเลขศูนย์ในอินพุต คุณอาจสมมติว่าอินพุตถูกเรียงลำดับจากน้อยไปหามากที่สุดหรือมากที่สุดไปน้อยที่สุด คุณต้องแสดงผลว่าลำดับนั้นเป็นลำดับกราฟิกหรือไม่ ค่าความจริงถ้ามันเป็นค่าเท็จอย่างอื่น เป้าหมาย นี่คือโค้ดกอล์ฟเป้าหมายคือการลดจำนวนไบต์ในโปรแกรมของคุณ Testcases เรียงลำดับมากที่สุดไปหาน้อยที่สุด -> True 3 3 3 2 2 2 1 1 1 -> True 3 3 2 2 1 1 -> True 3 …

8
การสร้างคำศัพท์ยาว ๆ
ความท้าทายนี้คือการค้นหาคำที่ยาวที่สุดของคำภาษาอังกฤษซึ่งอักขระ 3 ตัวแรกของคำถัดไปตรงกับอักขระ 3 ตัวสุดท้ายของคำสุดท้าย คุณจะใช้พจนานุกรมทั่วไปที่มีอยู่ในลีนุกซ์รุ่นลีนุกซ์ซึ่งสามารถดาวน์โหลดได้ที่นี่: https://www.dropbox.com/s/8tyzf94ps37tzp7/words?dl=0 ซึ่งมีคำภาษาอังกฤษ 99171 หากโลคัล Linux ของคุณ/usr/share/dict/wordsเป็นไฟล์เดียวกัน (มี md5sum == cbbcded3dc3b61ad50c4e36f79c37084) คุณสามารถใช้มันได้ คำสามารถใช้ได้เพียงครั้งเดียวในคำตอบ แก้ไข:ตัวอักษรต้องตรงกันทุกประการรวมถึงตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กและเครื่องหมายเน้นเสียง ตัวอย่างของคำตอบที่ถูกต้องคือ: idea deadpan panoramic micra craftsman mantra traffic fiche ซึ่งจะได้คะแนน 8 คำตอบที่มีคำที่ถูกต้องที่สุดจะเป็นผู้ชนะ ในกรณีที่เสมอกันคำตอบที่เร็วที่สุดจะเป็นฝ่ายชนะ คำตอบของคุณควรแสดงรายการคำที่คุณพบและ (แน่นอน) โปรแกรมที่คุณเขียนให้ทำ

1
Regex กำลังตรวจสอบความถูกต้องของ regex [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา สร้าง regex ที่จะยอมรับสตริง regex เป็นอินพุตและตรวจสอบว่ามันถูกต้อง โดยทั่วไป regex ของคุณควรจะสามารถตรวจสอบตัวเอง (ไม่ควรตรวจสอบ regex ที่ไม่ถูกต้องดังนั้นคุณจึงไม่สามารถใช้.*;) รสชาติของคุณจะต้องได้รับการสนับสนุนอย่างเต็มที่จากการใช้งานที่รู้จักกันดี (Perl, sed, grep, gawk, ฯลฯ ) และต้องสนับสนุนอย่างเต็มที่ว่าการใช้งานเหล่านั้นรองรับอะไรบ้าง [ไม่ต้องกังวลกับทนายพูด ฉันแค่พยายามลบช่องว่างที่เป็นไปได้สำหรับสมาร์ท ***] ฉันเขียนโค้ดกอล์ฟแต่ฉันกังวลว่ามันจะให้ความรู้แก่ผู้ที่รู้จักและใช้รสชาติที่ไม่มีคุณสมบัติ หรือความกังวลของฉันไม่มีมูลความจริง?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

9
เลือกการผจญภัยของคุณเอง
เลือกหนังสือผจญภัยของคุณเองเป็นรูปแบบของวรรณกรรมเชิงโต้ตอบที่ผู้อ่านจะต้องทำการตัดสินใจที่มีผลต่อผลลัพธ์ของเรื่องราว ในบางจุดของเรื่องผู้อ่านมีหลายตัวเลือกที่สามารถเลือกได้แต่ละคนส่งผู้อ่านไปยังหน้าอื่นในหนังสือ ตัวอย่างเช่นในการตั้งค่าจินตนาการเราอาจต้องตัดสินใจในหน้า 14 ว่าจะเสี่ยงเข้าไปในถ้ำลึกลับโดย "กระโดด" ถึงหน้า 22 หรือสำรวจป่าใกล้เคียงโดยการกระโดดไปที่หน้า 8 "กระโดด" เหล่านี้สามารถแสดงได้ เป็นคู่ของหมายเลขหน้าดังนี้: 14 22 14 8 ในกรณีส่วนใหญ่มีเรื่องราวตอนจบมากมาย แต่มีเพียงไม่กี่คนที่ดี เป้าหมายคือการนำทางเรื่องราวไปสู่จุดจบที่ดี งาน: รับรายการของ "การข้าม" สำหรับหนังสือที่กำหนดงานของคุณคือการกำหนดเส้นทางที่จะนำไปสู่การสิ้นสุดที่เฉพาะเจาะจง ตั้งแต่นี้ค่อนข้างง่ายความท้าทายที่แท้จริงคือการทำมันในตัวละครน้อยที่สุด นี่คือกอล์ฟรหัส ตัวอย่างอินพุต (โดยที่ 1 คือจุดเริ่มต้นและ 100 คือเป้าหมาย): 1 10 10 5 10 13 5 12 5 19 13 15 12 20 15 100 ตัวอย่างผลลัพธ์: 1 …

5
การดำเนินงานขั้นต่ำที่จะได้รับจากหมายเลขหนึ่งไปยังอีก
มานิยามภาษาง่าย ๆ ที่ทำงานกับค่า 8 บิตเดียว มันกำหนดการดำเนินงานสามระดับบิต (คำอธิบายรหัสถือว่าvalueตัวแปร8 บิต): !ลบล้างบิตที่สำคัญน้อยที่สุด ( value ^= 1) <ห่อกะซ้าย ( value = value << 1 | value >> 7) >ห่อขวากะ ( value = value >> 1 | value << 7) การป้อนข้อมูล: ตัวเลขสอง 8 บิตและข เนื่องจากมีขนาด 8 บิตคุณสามารถเลือกใช้เป็นอักขระได้ เอาท์พุท: วิธีที่สั้นที่สุดที่จะได้รับจาก a ถึง b โดยการปฏิบัติการทั้งสามที่กำหนดไว้ด้านบน คุณสามารถส่งคืนสตริงหรืออาร์เรย์ของอักขระหรือกำหนดค่าคงที่และแตกต่างกันสำหรับการดำเนินการแต่ละครั้งและส่งกลับอาร์เรย์ของค่าเหล่านั้น (ใช่คุณสามารถพูดความ<หมาย>และความ>หมาย<) …

4
สร้าง Portmantout!
พื้นหลัง สามปีที่ผ่านมาผู้ชายคนนี้ทอมเมอร์ฟี่ได้รับมันเข้ามาในหัวของเขาที่จะขยายความคิดของกระเป๋าหิ้วถ้อยคำในภาษาหนึ่งและเรียกนี้portmantout ( กระเป๋าหิ้วบวกทัวร์ [ภาษาฝรั่งเศสทั้งหมด ]) การกำหนดภาษาอังกฤษให้เป็นรายการจาก 108,709 คำเขาสามารถค้นหาลำดับ 611,820 ตัวอักษรโดยมีคุณสมบัติสองอย่างต่อไปนี้: คำภาษาอังกฤษทุกคำมีอยู่ในสตริง บางพื้นที่ใกล้เคียงที่มีตัวอักษรสองตัวที่ติดกันในสตริงเป็นคำภาษาอังกฤษ ต่อไปนี้เป็นลิงก์ไปยังหน้าซึ่งสามารถค้นหาพอร์ตนี้ (พร้อมด้วยคำอธิบายวิดีโอ) portmantout คุณสมบัติแรกของทั้งสองพอร์ตเป็นสิ่งที่เข้าใจได้ง่าย ครั้งที่สองอาจต้องการคำอธิบายบางอย่าง โดยทั่วไปคำจะต้องทับซ้อนกัน "golfcode" จะไม่ปรากฏในพอร์ตภาษาอังกฤษเนื่องจากไม่มีคำที่มี "fc" อย่างไรก็ตามคุณอาจพบ "codegolf" ใน portmantout สำหรับ "ego" เชื่อมช่องว่าง (และตัวอักษรอื่น ๆ ทั้งหมดอยู่ใน "code" หรือ "golf") งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่รับรายการสตริงและส่งกลับพอร์ตใด ๆ ของรายการ รหัส Python 3นี้จะตรวจสอบพอร์ตพอร์ต กรณีทดสอบ รายการทั้งหมดไม่มีการเรียงลำดับ นั่นคือ, {"code", "ego", "golf"} -> "codegolf" …

7
การหมุนของต้นไม้ไบนารี
แผนผังการค้นหาแบบไบนารีที่สมดุลเป็นสิ่งจำเป็นในการรับประกันการค้นหาO (บันทึก n) (หรือการดำเนินการที่คล้ายกัน) ในสภาพแวดล้อมแบบไดนามิกที่มีการแทรกและสุ่มคีย์จำนวนมากและ / หรือลบต้นไม้อาจทำให้รายการเชื่อมโยงแย่ลงซึ่งน่ากลัวสำหรับการค้นหา ดังนั้นจึงมีหลายชนิดของต้นไม้ไบนารีสมดุลตัวเองที่ต่อต้านผลกระทบนี้ (เช่นต้นไม้ AVLหรือต้นไม้ splay ) ต้นไม้เหล่านี้ขึ้นอยู่กับการหมุนแบบต่าง ๆที่ปรับสมดุลของต้นไม้ ผลัด ในความท้าทายนี้เราจะดูเฉพาะการหมุนทางขวาเดียวการหมุน (การหมุนซ้ายจะสมมาตร) เช่นนี้: 5 3 / \ / \ 3 6 => 1 5 / \ / \ 1 4 4 6 หากมีใบใดใบ1หนึ่ง4หรือ6มีต้นไม้ย่อยทางซ้ายหรือขวาการหมุนก็จะทำให้พวกมันอยู่ตรงนั้น หากนี่เป็นทรีย่อยของต้นไม้ที่มีขนาดใหญ่ขึ้นเราเพียงแค่ "ตัดมันออก" ที่โหนด5และ "แนบใหม่" ต้นไม้ที่หมุน (ตอนนี้โหนด3) ไปยังโหนดนั้น ท้าทาย ให้แผนภูมิการค้นหาแบบไบนารี่1และคีย์หมุนทรีบนโหนดนั้นตามที่อธิบายไว้ข้างต้น 5ที่สำคัญที่ให้ไว้ในตัวอย่างข้างต้นจะเป็น กฎและ I …

15
ความเท่าเทียมกันของสกรรมกริยา
ความท้าทาย โปรแกรมของคุณควรมี 3 อินพุต: จำนวนเต็มบวกซึ่งเป็นจำนวนตัวแปร ชุดของคู่ที่ไม่เรียงลำดับของจำนวนเต็มที่ไม่ใช่ค่าลบซึ่งแต่ละคู่แสดงถึงความเท่าเทียมกันระหว่างตัวแปรและ จำนวนเต็มบวกซึ่งแสดงถึงตัวแปรเริ่มต้น มันควรจะส่งคืนชุดของจำนวนเต็มที่ไม่ใช่ค่าลบซึ่งเป็นตัวแทนของตัวแปรทั้งหมดซึ่งสามารถแสดงให้เห็นว่าเป็นแบบเปลี่ยนผ่านได้เท่ากับตัวแปรเริ่มต้น (รวมถึงตัวแปรเริ่มต้นเอง) ในคำอื่น ๆ ปัจจัยการผลิตที่กำหนดN, EและSกลับชุดQดังกล่าวว่า: S ∈ Q. ถ้าZ ∈ Qและแล้ว(Y = Z) ∈ EY ∈ Q ถ้าZ ∈ Qและแล้ว(Z = Y) ∈ EY ∈ Q สิ่งนี้สามารถแสดงเป็นปัญหากราฟทฤษฎี : รับกราฟไม่มีทิศทางและจุดสุดยอดในกราฟรายชื่อจุดในขององค์ประกอบที่เกี่ยวโยงกัน ข้อมูลจำเพาะ คุณสามารถเลือกที่จะใช้การจัดทำดัชนีแบบอิง 0 หรือ 1 อินพุตแรกนับจำนวนตัวแปรที่มีอยู่โดยที่ตัวแปรถูกกำหนดเป็นตัวเลข อีกทางหนึ่งคุณไม่สามารถรับอินพุตนี้ซึ่งในกรณีนี้จะถือว่าเท่ากับดัชนีตัวแปรสูงสุดที่มีอยู่หรือมากกว่าหนึ่งนี้ขึ้นอยู่กับรูปแบบการจัดทำดัชนีของคุณ คุณสามารถสันนิษฐานได้ว่าอินพุตมีรูปแบบที่ดี: คุณจะไม่ได้รับตัวแปรนอกช่วงที่ระบุโดยอินพุตแรก ตัวอย่างเช่น3, [1 = 2, …

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