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

สำหรับความท้าทายที่เกี่ยวข้องกับ combinatorics

1
ดิสก์ที่เขียนน้อยที่สุดเพื่อจัดเรียงข้อมูลหลายไฟล์
บทนำ ดิสก์เป็นภาชนะเชิงเส้นที่มีการจัดทำดัชนีบล็อกผ่าน0size-1 ไฟล์คือรายการชื่อของดัชนีบล็อกที่ใช้โดยไฟล์นั้น ตัวอย่างระบบไฟล์แสดงดังนี้: 15 ALPHA=3,5 BETA=11,10,7 "ดิสก์มี 15 บล็อกบล็อกแรกของไฟล์ ALPHA คือบล็อกดิสก์ที่ดัชนี 3 ... " แผนที่ดิสก์สามารถวาดได้ดังนี้: Block Index 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 Contents | | | |A0 | |A1 | |B2 | | |B1 |B0 | | | | …

15
g o l f a t a n 2
บางครั้งจริงๆมันคือการต่อสู้การแปลงพิกัดคาร์ทีเซียนพิกัดขั้วโลก(x,y) (r,phi)ในขณะที่คุณสามารถคำนวณr = sqrt(x^2+y^2)ได้ง่ายมากคุณมักจะต้องแตกต่างจากกรณีเมื่อคำนวณมุมphiเพราะarcsin, arccosและarctanและฟังก์ชันตรีโกณมิติอื่น ๆ ทุกคนมีร่วมโดเมนที่เฉพาะในแต่ละช่วงครึ่งวงกลม ในหลายภาษามี built-in สำหรับการแปลงสี่เหลี่ยมพิกัดเชิงขั้วหรืออย่างน้อยก็มีatan2ฟังก์ชั่นที่ - รับ(x,y)- phiคำนวณมุม งาน งานของคุณคือการเขียนโปรแกรม / ฟังก์ชั่นที่ใช้เวลาสอง (จุดลอยไม่ใช่ทั้งสองศูนย์) พิกัดคาร์ทีเซียน(x,y)และเอาท์พุทมุมขั้วโลกที่สอดคล้องกันphiที่phiจะต้องมีในองศาเรเดียนหรือเกรด (มีเกรดผมหมายถึงGradiansซึ่งเป็น 1 / 400 ของวงกลมเต็ม) แล้วแต่ว่าอะไรจะสะดวกสำหรับคุณ (1,0)มุมที่เป็นวัดในทิศทางบวกและเรามีมุมสำหรับศูนย์ รายละเอียด คุณไม่สามารถใช้สร้างเพิ่มเติมที่คำนวณมุมที่phiได้รับสองพิกัดรวมทั้งatan2, rect2polar, argOfComplexNumberและฟังก์ชั่นที่คล้ายกัน อย่างไรก็ตามคุณสามารถใช้ฟังก์ชั่นตรีโกณมิติปกติและการกลับด้านได้ซึ่งจะรับเพียงหนึ่งอาร์กิวเมนต์เท่านั้น สัญลักษณ์หน่วยใดก็ได้เป็นตัวเลือก รัศมีrจะต้องไม่เป็นลบและphiจะต้องอยู่ในช่วง[-360°, 360°](ไม่สำคัญว่าคุณจะส่งออก270°หรือ-90°) ตัวอย่าง Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) …
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

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 …

2
การนับ polystrips
Polystrips เป็นส่วนย่อยของ polyominoes ที่สอดคล้องกับกฎต่อไปนี้: แต่ละชิ้นประกอบด้วยเซลล์อย่างน้อย 1 เซลล์ ไม่มีเซลล์ใดสามารถมีมากกว่าสองเพื่อนบ้าน เซลล์ไม่ควรปิดรู โพลีโม่โนอิสระจะแตกต่างกันเมื่อไม่มีการเปลี่ยนแปลงอย่างเข้มงวด (การแปล, การหมุน, การสะท้อนหรือการสะท้อนแบบร่อน) ของอีกชิ้นหนึ่ง (ชิ้นที่สามารถหยิบขึ้นมาและพลิกได้) การแปลการหมุนการสะท้อนหรือการร่อนสะท้อนให้เห็นถึงโพลีโนมิโนฟรีนั้นไม่ทำให้รูปร่างของมันเปลี่ยนไป ( Wikipedia ) ตัวอย่างเช่นมี heptastrips ฟรี 30 (polystrips ที่มีความยาว 7) นี่คือทั้งหมดของพวกเขาบรรจุในตาราง 14x15 เครดิตรูปภาพ: Miroslav Vicher เป้าหมาย เขียนโปรแกรม / ฟังก์ชั่นที่รับจำนวนเต็มบวกnเป็นอินพุตและแจกแจงn-polystrips อิสระที่แตกต่างกัน n = 1 -> 1 (สี่เหลี่ยมจัตุรัสเดียว) n = 2 -> 1 (มีเพียง 2 โพลสต็อกที่เป็นไปได้ที่ทำจาก …

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

8
ผันคำกริยา
การเปลี่ยนขนาดnเป็นการเรียงลำดับของจำนวนเต็มบวกn ตัวแรก (หมายถึงแต่ละจำนวนเต็มปรากฏขึ้นหนึ่งครั้งและทุกครั้ง) พีชคณิตสามารถรักษาได้เช่นฟังก์ชั่นที่มีการเปลี่ยนแปลงคำสั่งของรายชื่อของรายการที่มีขนาดที่n ตัวอย่างเช่น (4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"] ดังนั้นการเรียงสับเปลี่ยนสามารถประกอบด้วยฟังก์ชั่น (4 1 2 3)(2 1 3 4) = (4 2 1 3) สิ่งนี้นำมาซึ่งคุณสมบัติที่น่าสนใจมากมาย วันนี้เราจะมุ่งเน้นไปconjugacy การเรียงสับเปลี่ยนyและx (ทั้งสองขนาดn ) เป็นคอนจูเกตถ้ามีการเปลี่ยนลำดับgและg -1 (เช่นขนาดn ) x = gyg-1 และgg -1เท่ากับการเปลี่ยนรูปแบบตัวตน ( ตัวเลขn ตัวแรกตามลำดับที่เหมาะสม) งานของคุณคือการเปลี่ยนขนาดเท่ากันสองขนาดผ่านวิธีการป้อนข้อมูลมาตรฐานและตัดสินใจว่าจะเชื่อมต่อกันหรือไม่ คุณควรส่งออกหนึ่งในสองค่าที่สอดคล้องกันหนึ่งถ้าพวกเขาเป็นคอนจูเกตและอื่น …

10
ระบุกริดที่เป็นไปได้ทั้งหมดของจำนวนเต็มด้วยข้อ จำกัด
ปัญหา พิจารณาสแควร์ 3 คูณ 3 ตารางของจำนวนเต็มไม่เป็นลบ สำหรับแต่ละแถวผลรวมของจำนวนเต็มจะถูกกำหนดให้เป็นi r_iในทำนองเดียวกันสำหรับแต่ละคอลัมน์ผลรวมของจำนวนเต็มในคอลัมน์นั้นจะถูกกำหนดให้เป็น jc_j งานคือการเขียนรหัสเพื่อระบุการมอบหมายที่แตกต่างกันทั้งหมดที่เป็นไปได้ของจำนวนเต็มไปยังตารางที่กำหนดข้อ จำกัด ผลรวมแถวและคอลัมน์ รหัสของคุณควรส่งออกหนึ่งครั้ง อินพุต รหัสของคุณควรใช้จำนวนเต็ม 3 จำนวนที่ไม่เป็นลบซึ่งระบุข้อ จำกัด ของแถวและ 3 จำนวนเต็มที่ไม่เป็นลบระบุข้อ จำกัด ของคอลัมน์ คุณสามารถสันนิษฐานได้ว่าสิ่งเหล่านี้ถูกต้องกล่าวคือข้อ จำกัด ของผลรวมหรือแถวเท่ากับผลรวมของข้อ จำกัด ของคอลัมน์ รหัสของคุณสามารถทำได้ทุกวิธีที่สะดวก เอาท์พุต รหัสของคุณควรแสดงกริด 2d ที่แตกต่างกันซึ่งคำนวณในรูปแบบที่มนุษย์สามารถอ่านได้ที่คุณเลือก แน่นอนยิ่งดี เอาต์พุตต้องไม่มีกริดที่ซ้ำกัน ตัวอย่าง หากข้อ จำกัด ของแถวและคอลัมน์ทั้งหมด1นั้นมี6ความเป็นไปได้ที่แตกต่างกันเท่านั้น สำหรับแถวแรกคุณสามารถใส่หนึ่ง1ในสามคอลัมน์แรกสำหรับแถวที่สองขณะนี้มี2ทางเลือกและตอนนี้แถวสุดท้ายจะถูกกำหนดโดยทั้งสองก่อนหน้าอย่างสมบูรณ์ 0ทุกสิ่งทุกอย่างในตารางควรจะกำหนดให้ สมมติว่าอินพุต2 1 0สำหรับแถวและ1 1 1สำหรับคอลัมน์ ด้วยรูปแบบผลลัพธ์ที่น่ารักของ APL กริดจำนวนเต็มที่เป็นไปได้คือ: ┌─────┬─────┬─────┐ …

25
Patttern ง่าย
ปัจจัยการผลิต: ตัวเลขสองหลักเดียว (เรียกว่าพวกมันmและn) และสองตัวอักษร (เรียกมันว่า) aและbในรูปแบบอินพุตที่คุณเลือก เอาท์พุท: m=2, n=5, a='a', b='b'สำหรับคำแนะนำการหลอก เอาต์พุตของคุณจะเป็นสตริงที่สร้างจากอินพุตสี่ตัวของคุณ ขอเรียกสตริงที่มีค่าresult ""ครั้งแรก concatenate aบนresult mเวลาเพื่อ concatenate aบนresult 2ครั้ง ตอนนี้เท่ากับresult aaประการที่สอง concatenate bบนresult mเวลาเพื่อ concatenate bบนresult 2ครั้ง ตอนนี้เท่ากับresult aabbสุดท้ายหากผลเป็นที่เรียบร้อยแล้วนานกว่าn, ตัดเพื่อที่จะมีความยาวresult nมิฉะนั้นต่อสลับกับmระยะเวลาในการทำงานของaและbจนกว่าจะมีความยาวresult nสุดท้ายresultมีที่ซึ่งมีความยาวaabba5 กรณีทดสอบ: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

1
Hold'em หรือ Fold'em
เพื่อนของคุณเชิญคุณเข้าร่วมการแข่งขันโปกเกอร์ขั้นสูงในนาทีสุดท้ายและในฐานะนักวิทยาศาสตร์คอมพิวเตอร์คุณตัดสินใจที่จะใช้ทักษะของคุณเพื่อสร้างความได้เปรียบให้กับเกม งานของคุณจะได้รับ2 cards(มือของคุณ) และ0, 3, 4 or 5 cards(ไพ่ที่แจก) คุณต้องตัดสินใจว่ามือที่ดีที่สุดที่คุณจะได้รับคืออะไร หากได้รับไพ่ทั้งหมด 7 ใบเป็นอาร์กิวเมนต์คำตอบนั้นค่อนข้างชัดเจน หากได้รับน้อยปัญหาจะซับซ้อนมากขึ้น อย่างไรก็ตามมันไม่เพียงพอที่จะให้คุณได้เปรียบคุณต้องคำนวณมือที่ดีที่สุดที่เป็นไปได้จากไพ่ที่เหลือเพื่อให้เข้าใจว่าฝ่ายตรงข้ามของคุณจะมีอะไรบ้าง Hold'em Refresher หากคุณไม่รู้จัก Hold'em ผู้เล่นแต่ละคนในเกมจะเริ่มด้วยไพ่ 2 ใบในมือของพวกเขา ในช่วงระยะเวลา 3 รอบจะมีการเปิดเผยการ์ดเพิ่มเติมเพื่อแบ่งปันระหว่างผู้เล่นทุกคน เทิร์นแรกไพ่ 3 ใบถูกเปิดเผย ครั้งที่สองอีก 1 และครั้งที่สามมีการเปิดเผยไพ่ใบสุดท้าย ไพ่สองใบแรกที่มอบให้แสดงถึงมือของคุณในขณะที่ไพ่หลังนั้นเป็น 0, 3, 4 หรือ 5 ใบที่ได้รับจากการเปลี่ยนต่อเนื่อง ตัวเลขที่เป็นไปได้: [2,3,4,5,6,7,8,9,T(10),J,Q,K,A] ชุดที่เป็นไปได้: [S,C,H,D] เด็คเต็มรูปแบบ: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, # Spades. 2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC, # Clubs. 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, …

15
คำนวณหมายเลข Eulerian
จำนวน Eulerian A(n, m)คือจำนวนของพีชคณิตของ[1, 2, ..., n]ที่ว่าmองค์ประกอบมากกว่าองค์ประกอบก่อนหน้านี้ เหล่านี้เรียกว่าเพิ่มขึ้น ตัวอย่างเช่นถ้าn = 3มี 3! = 6 การเรียงสับเปลี่ยนของ[1, 2, 3] 1 2 3 < < 2 elements are greater than the previous 1 3 2 < > 1 ... 2 1 3 > < 1 ... 2 3 1 < > 1 ... …

13
ดัชนีการเปลี่ยนแปลงของผกผัน
บทนำ พีชคณิตเรียงลำดับของรายการที่มีองค์ประกอบnสามารถกำหนดหมายเลขได้ตั้งแต่ 0 ถึงn ! - 1. ตัวอย่างเช่น 3! = 6 พีชคณิต(1,2,3)จะ(1,2,3), (1,3,2), (2,1,3), (2,3,1), ,(3,1,2)(3,2,1) เมื่อการเรียงสับเปลี่ยนถูกนำไปใช้กับรายการองค์ประกอบของมันจะเรียงลำดับตามลำดับเดียวกับตัวเลขในการเรียงลำดับ ยกตัวอย่างเช่นการใช้การเปลี่ยนลําดับ(2,3,1)การอัตราผลตอบแทนl = (a,b,c)(l[2],l[3],l[1]) = (b,c,a) อินเวอร์สของการเปลี่ยนแปลงนั้นหมายถึงการเรียงสับเปลี่ยนที่ย้อนกลับการดำเนินการนี้คือการใช้การเปลี่ยนแปลงและจากนั้นอินเวอร์สของมัน (หรือกลับกัน) ไม่ได้ปรับเปลี่ยนอาร์เรย์ ยกตัวอย่างเช่นค่าผกผันของการ(2,3,1)เป็น(3,1,2)ตั้งแต่การใช้ที่อัตราผลตอบแทน(b,c,a)(a,b,c) นอกจากนี้การเปลี่ยนแปลงผกผันของนำไปใช้กับการเปลี่ยนแปลงของตัวเองผลตอบแทนถัวเฉลี่ยเลข 1 ... n ยกตัวอย่างเช่นการใช้(3,1,2)เพื่อให้อัตราผลตอบแทน(2,3,1)(1,2,3) ตอนนี้เรากำหนดฟังก์ชั่นrevind ( x ) เป็นดัชนีของการเปลี่ยนแปลงผกผันของการเปลี่ยนแปลงที่มีดัชนีx (นี่คือA056019หากคุณสนใจ) เนื่องจากการเรียงสับเปลี่ยนกับดัชนีฉันเพียงแก้ไขรายการสุดท้ายkของรายการiff 0 ≤ i < k !,เราสามารถเพิ่มองค์ประกอบจำนวนใด ๆ ไปยังจุดเริ่มต้นของรายการโดยไม่มีผลต่อrevind ( i ) ดังนั้นความยาวของรายการจึงไม่มีผลต่อผลลัพธ์ …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

5
หมายเลขช็อคโกแลต
กำหนดmโดยnแท่งช็อกโกแลตm,nบวกออกจำนวนวิธีการแบ่งแถบออกเป็นmn1 โดย 1 ชิ้นที่แต่ละตัวแบ่งเกิดขึ้นบนเส้นตาราง คำสั่งซื้อเป็นสิ่งสำคัญ ชิ้นยังมีความแตกต่างดังนั้นทั้งสองชิ้นที่ปลายด้านหนึ่งของ 1 โดย 3 ช็อกโกแลตบาร์ไม่เท่ากัน ตัวอย่างเช่นสำหรับบล็อก 2 คูณ 2 เรามี: _ _ _ _ _ _ _ _ |_‖_| -> |‗| |_| -> |_| |‗| -> |_| |_| |_‖_| |_| |_| _ |_| _ _ |_| |_| |_| _ _ _ _ _ _ _ …

9
การนับน้ำพุ
น้ำพุคือการจัดเรียงของเหรียญในแถวเพื่อให้แต่ละเหรียญสัมผัสสองเหรียญในแถวด้านล่างหรืออยู่ในแถวด้านล่างและแถวล่างมีการเชื่อมต่อ นี่คือน้ำพุ 21 เหรียญ: ความท้าทายของคุณคือการนับจำนวนน้ำพุที่แตกต่างกันด้วยจำนวนเหรียญที่กำหนด คุณจะได้รับเป็น input nเป็นจำนวนเต็มบวก คุณต้องส่งออกจำนวนnน้ำพุที่แตกต่างกันที่มีอยู่ กฎ I / O มาตรฐานห้ามช่องโหว่มาตรฐาน คำตอบควรจะสามารถคำนวณได้n = 10ภายในไม่กี่นาที ผลลัพธ์ที่ต้องการสำหรับn = 1 ... 10: 1, 1, 2, 3, 5, 9, 15, 26, 45, 78 ลำดับนี้เป็นOEIS A005169 นี่คือรหัสกอล์ฟ ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ

6
การแจกแจง N-Dimensions เวกเตอร์
รับจำนวนเต็มบวกk > 1และไม่ใช่จำนวนเต็มลบiสร้างk-tuple (หรือk-dimensional vector) ของจำนวนเต็มไม่เป็นลบ ทุกkแผนที่จากℕเพื่อℕ k , ต้อง bijective นั่นคือทุกการป้อนข้อมูลiควรผลิต tuple ที่แตกต่างกันและทุก tuple iเป็นไปได้ที่จะต้องมีการผลิตโดยการป้อนข้อมูลบางส่วน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ คุณสามารถใช้รูปแบบรายการแบบแบนที่สะดวกและไม่คลุมเครือสำหรับเอาท์พุท วิธีการแก้ปัญหาของคุณควรกำหนดไม่มีการ จำกัด เทียมkและiแต่คุณอาจคิดว่าพวกเขาพอดีกับขนาดจำนวนเต็มภาษาพื้นเมือง อย่างน้อยที่สุดคุณต้องสนับสนุนค่าถึง255แม้ว่าขนาดจำนวนเต็มดั้งเดิมของคุณจะเล็กกว่านั้น สำหรับการใด ๆ1 < k < 32, รหัสของคุณควรสร้างผลลัพธ์ในเรื่องของการวินาที (แน่นอนถ้าคำตอบของคุณไม่สนับสนุนว่าเนื่องจากขนาดใหญ่เพื่อการปกครองก่อนหน้านี้ จำกัด การปรับเปลี่ยนตาม) นี้ควรจะไม่มีปัญหา: มันเป็นไปได้ที่จะแก้ปัญหาความท้าทายเช่นนี้ว่ามันทำงานได้ถึง 2 128ในไม่กี่วินาที แต่วงเงินที่จะมีการหลีกเลี่ยงการตอบที่จริงสำทับจากการที่จะหาผลi < 231i0i โปรดระบุคำอธิบายเกี่ยวกับการทำแผนที่ที่คุณเลือกและคำตอบว่าทำไมมันถึงเป็น bijective (ไม่จำเป็นต้องพิสูจน์อย่างเป็นทางการ) นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุด …

7
การหาพาร์ติชันที่ไม่ต้องเสียเงิน
บทสรุปผู้บริหาร ป้อนข้อมูลkให้ค้นหาพาร์ทิชันของจำนวนเต็ม1เพื่อnเป็นkส่วนย่อยฟรีสำหรับที่ใหญ่ที่สุดที่nคุณสามารถภายใน 10 นาที พื้นหลัง: หมายเลข Schur ชุดAคือผลรวมฟรีถ้าผลรวมของตนเองA + A = { x + y | x, y in A}มีองค์ประกอบที่ไม่มีในการร่วมกันกับมัน สำหรับเลขจำนวนเต็มบวกทุกตัวkจะมีจำนวนเต็มที่มากที่สุดS(k)ซึ่งชุด{1, 2, ..., S(k)}นั้นสามารถแบ่งพาร์ติชันเป็นkเซ็ตย่อยที่ไม่มีผลรวมได้ หมายเลขนี้เรียกว่าหมายเลข k th Schur (OEIS A045652 ) ตัวอย่างเช่นS(2) = 4. เราสามารถแบ่งพาร์ติชัน{1, 2, 3, 4}เป็น{1, 4}, {2, 3}และนั่นคือพาร์ติชันที่ไม่ซ้ำกันในชุดย่อยที่ไม่มีผลรวมสองชุด แต่ตอนนี้เราไม่สามารถเพิ่ม5ส่วนใดส่วนหนึ่งได้ ท้าทาย เขียนโปรแกรมกำหนดขึ้นซึ่งทำสิ่งต่อไปนี้: ใช้จำนวนเต็มบวกkเป็นอินพุต เขียนการประทับเวลา Unix ปัจจุบันเพื่อ stdout ขาออกลำดับของพาร์ทิชันของ1การnเข้าไปในkส่วนย่อยรวมฟรีสำหรับเพิ่มขึ้นnตามลำดับด้วยเวลา …

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