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

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

6
แจกแจงแผนการสัมผัส
A "สัมผัสโครงการ" คือสตริงของตัวอักษรaที่จะzดังกล่าวว่าเกิดขึ้นครั้งแรกของตัวละครที่อยู่ในลำดับจากน้อยไปมาก (ไม่มีช่องว่าง) aเริ่มต้นจาก ตัวอย่างเช่น (ที่มีการปรากฏครั้งแรก): abccdbebdcfa ^^^ ^ ^ ^ จำนวนของรูปแบบการสัมผัสของความยาวNจะได้รับจากหมายเลขที่เบลล์ B(N)( OEIS A000110 ) ความท้าทาย งานของคุณคือการใช้การแจงนับของรูปแบบสัมผัสเหล่านี้เช่นการทำแผนที่ bijective จากจำนวนเต็มไปยังรูปแบบสัมผัส คุณได้รับเป็นจำนวนเต็มบวกเช่นเดียวกับจำนวนเต็มไม่เป็นลบN <= 26 หรือคุณสามารถใช้ช่วง0 <= i < B(N) 1 <= i <= B(N)คุณควรเอาท์พุทแบบแผนสัมผัสของความยาวNเช่นที่ทุกคนiให้สตริงที่แตกต่างกัน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ คุณสามารถใช้ตัวอักษรพิมพ์เล็กหรือพิมพ์ใหญ่ รหัสของคุณจะต้องสามารถจัดการกับการป้อนข้อมูลที่ถูกต้องในระยะเวลาที่เหมาะสม (เช่นไม่เกินสองสามชั่วโมงสำหรับN = 26กรณีที่เลวร้ายที่สุดi) สิ่งนี้ควรอนุญาตโซลูชันที่ปรับมาตราส่วนแบบทวีคูณด้วยN(สำหรับฐานขนาดเล็ก) แม้ในภาษาที่ช้า แต่ห้ามใช้โซลูชันที่ขยายขนาดเชิงเส้นด้วยi(เช่นB(N)) …

2
เอาเงินสดจากตู้เอทีเอ็มมาให้ฉัน
งานง่าย ได้รับฉันบาง1000, 500และ100บันทึก ได้อย่างไร คุณอาจถาม ไม่ต้องกังวลไม่ต้องปล้นธนาคารเพราะมีตู้เอทีเอ็มอยู่ใกล้ ๆ ซึ่งรับบัตรเครดิตของคุณ แต่วงเงินเครดิตของคุณเพียงพอสำหรับงานดังนั้นคุณต้องระมัดระวังในการถอนเงิน ท้าทาย ได้รับหมายเลขของ1000, 500และ100บันทึกจำเป็นต้องคำนวณถอนเฉพาะที่จำเป็นในการได้รับการบันทึกจำนวนมากอย่างน้อยผู้ ในการถอนแต่ละครั้ง ATM สามารถคายธนบัตรแต่ละใบตามกฎต่อไปนี้: จำนวนเงินที่ถอน ( A) น้อยกว่า5000 ถ้าA%1000 == 0, จากนั้นเอทีเอ็มใช้500ธนบัตร1 ใบ, 100ธนบัตร5 ใบและ1000ธนบัตรที่เหลือ มิฉะนั้นถ้าA%500 == 0ตู้ ATM แบ่ง100ธนบัตร5 ใบและพัก1000ธนบัตร มิฉะนั้นA%1000 < 500ตู้ ATM จะแยกfloor(A/1000) 1000ธนบัตรและ100ธนบัตรที่เหลือ มิฉะนั้นถ้าA%1000 > 500ตู้ ATM แตกfloor(A/1000) 1000ธนบัตร 1 500และ100ธนบัตรที่เหลือ จำนวนเงินที่ถอนได้มีค่ามากกว่าเท่ากับ 5000 ถ้าA%1000 == …

22
การแทนที่สตริงแบบเรียกซ้ำ
งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับสามสายA, B, Cสร้างสายออกที่แต่ละอินสแตนซ์ของBในAได้ถูกแทนที่ด้วยCซ้ำ การแทนที่แบบเรียกซ้ำหมายถึงการทำซ้ำการแทนที่โดยในแต่ละขั้นตอนอินสแตนซ์ที่ไม่ซ้ำซ้อนทั้งหมดของBในA(เลือกอย่างตะกละตะกลามจากซ้ายไปขวา) จะถูกแทนที่ด้วยCจนกว่าBจะไม่มีอยู่ในAนั้นอีก Input / Output คุณสามารถใช้ใด ๆ ของ วิธีการเริ่มต้นสำหรับ I / O สตริงจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น (และอาจมี ใด ๆ ก็ได้ ) Bจะไม่เป็นสตริงว่างเปล่าในขณะที่AและCอาจเป็น สตริงจะถือว่าเป็นธรรมดาคุณไม่สามารถยกตัวอย่างเช่นถือว่าBเป็นรูปแบบ Regex ชุดค่าผสมบางอย่างจะไม่สิ้นสุด โปรแกรมของคุณสามารถทำอะไรก็ได้ในกรณีเหล่านั้น กรณีทดสอบ สิ่งเหล่านี้อยู่ในรูปแบบ: A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty …
25 code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

1
ล็อคหน้าจอ Android
Intro คุณกำลังนั่งอยู่ในห้องประชุมที่ท้ายตารางยาว คุณมองไปรอบ ๆ และเห็น Tim Cook, คณะกรรมการ Apple, ผีของ Steve Jobs และ Jack Donaghy Apple เรียกการประชุมนี้เพราะพวกเขาตระหนักดีว่าหน้าจอล็อคของ Android นั้นเย็นลงเพียงใดและพวกเขาต้องการ 1-UP พวกเขา ทุกคนในห้องจ้องมองคุณในขณะที่ Ghost Steve ร้องว่า "ช่วยฉันด้วย CodeGolf Man! คุณเป็นความหวังเดียวของฉัน!" ปัญหา หน้าจอล็อค Android เป็นตารางจุดขนาด 3 x 3 ที่สามารถเชื่อมต่อได้ด้วยการปัดนิ้วจากจุดหนึ่งไปยังจุดถัดไปเพื่อสร้างเส้นทาง รหัสผ่านถือเป็นเส้นทางที่เป็นไปได้ที่มีจำนวนจุดใด ๆ และไม่รวมจำนวนจุดใด ๆ (บนโทรศัพท์จริงเส้นทางต้องมีความยาวอย่างน้อย 4 จุดสำหรับความท้าทายนี้ให้ละเว้นข้อ จำกัด นั้น) Apple วางแผนที่จะแทนที่ตาราง 3 x …

24
Combinatorics: คำนวณค่า Subfactorial
ตัวเลขsubfactorialหรือrencontres ( A000166 ) เป็นลำดับของตัวเลขที่คล้ายกับตัวเลข factorial ซึ่งแสดงใน combinatorics ของพีชคณิต โดยเฉพาะอย่างยิ่งที่subfactorial ลำดับที่n ! nให้จำนวนderangementsของชุดองค์ประกอบn Derangement เป็นการเปลี่ยนแปลงที่ไม่มีองค์ประกอบใดอยู่ในตำแหน่งเดียวกัน สามารถกำหนด subfactorial ผ่านความสัมพันธ์การเกิดซ้ำดังต่อไปนี้: !n = (n-1) (!(n-1) + !(n-2)) ในความเป็นจริงความสัมพันธ์ที่เกิดซ้ำกันนั้นมีไว้สำหรับปัจจัย แต่สำหรับ subfactorial เราเริ่มต้นจาก: !0 = 1 !1 = 0 (สำหรับแฟคทอเรียลที่เรามีแน่นอน1! = 1 ) งานของคุณคือการคำนวณ! nให้n กฎระเบียบ เช่นเดียวกับแฟคทอเรียล subfactorial นั้นเติบโตอย่างรวดเร็ว มันเป็นเรื่องปกติถ้าโปรแกรมของคุณสามารถจัดการปัจจัยการผลิตnเช่นนั้น! nสามารถแสดงโดยแบ่งตามชนิดจำนวนพื้นเมืองภาษาของคุณ อย่างไรก็ตามอัลกอริทึมของคุณจะต้องทำงานในทฤษฎีสำหรับnเอง นั่นหมายความว่าคุณอาจสันนิษฐานได้ว่าผลลัพธ์ที่สมบูรณ์และค่ากลางสามารถแสดงด้วยภาษาของคุณได้อย่างแม่นยำ โปรดทราบว่าสิ่งนี้จะไม่รวมค่าคงที่eหากเก็บหรือคำนวณด้วยความแม่นยำแน่นอน ผลลัพธ์ต้องเป็นจำนวนเต็มที่แน่นอน …

30
จำนวนเงิน Sign-Swapping
รับรายการที่ไม่ว่างของจำนวนเต็มบวก , งานของคุณคือการกำหนดจำนวนค่าที่ไม่ซ้ำของ± x ± y ± z ± …(x,y,z,…)(x,y,z,…)(x, y, z, \dots)±x±y±z±…±x±y±z±…\pm x \pm y \pm z \pm \dots ตัวอย่างเช่นพิจารณารายการ ) มีวิธีที่เป็นไปได้แปดวิธีในการสร้างผลรวม:(1,2,2)(1,2,2)(1, 2, 2) +1+2+2→+5+1+2+2→+5+ 1 + 2 + 2 \to +5 +1+2−2→+1+1+2−2→+1+ 1 + 2 − 2 \to +1 +1−2+2→+1+1−2+2→+1+ 1 − 2 + 2 \to +1 +1−2−2→−3+1−2−2→−3+ …

3
ใช้การจัดช่องไฟแบบง่าย
บทนำ การจัดช่องไฟหมายถึงการปรับระยะห่างระหว่างตัวอักษรของข้อความ ยกตัวอย่างพิจารณาคำที่Topเขียนด้วยร่ายมนตร์ต่อไปนี้สามอัน: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... เราสามารถเติมช่องว่างระหว่างร่ายมนตร์ด้วยจุดแล้วเติมลงไปได้ แต่ช่องว่างก็ดูกว้างเกินไป แต่เราเลื่อนร่ายมนตร์ไปทางซ้ายเพื่อให้พวกมันสัมผัสเกือบ: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... มันดูดีขึ้นมาก! หมายเหตุวิธีบาร์ของด้านบนของเส้นขอบด้านซ้ายของT oในการท้าทายนี้งานของคุณคือการใช้โปรแกรมการจัดช่องไฟอย่างง่ายสำหรับร่ายมนตร์รูปสี่เหลี่ยมผืนผ้าดังกล่าว กระบวนการจัดช่องไฟ พิจารณาสองสี่เหลี่ยม 2D อาร์เรย์ของตัวอักษร.และ#รูปทรงเดียวกัน ในขั้นตอนการจัดช่องไฟอย่างง่ายของเราอันดับแรกเราวางอาร์เรย์แบบเรียงต่อกันโดยมีคอลัมน์หนึ่งคอลัมน์.อยู่ระหว่างกัน จากนั้นเราย้ายแต่ละรายการ#ในอาเรย์ขวาหนึ่งก้าวไปทางซ้ายจนกระทั่ง#อาเรย์ซ้ายและขวาบางอันอยู่ติดกันแบบมุมฉากหรือแนวทแยงมุม ผลลัพธ์ของการจัดช่องไฟเป็นขั้นตอนก่อนที่เราจะแนะนำ#s ที่อยู่ติดกัน งานของคุณคือการใช้กระบวนการนี้ …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

10
สั้นที่สุดระบุสารตั้งต้น
รับรายการสตริงแทนที่แต่ละสตริงด้วยหนึ่งในสตริงย่อยที่ไม่ว่างซึ่งไม่ใช่สตริงย่อยของสตริงอื่นใดในรายการและสั้นที่สุดเท่าที่จะทำได้ ตัวอย่าง ได้รับรายการ["hello","hallo","hola"], "hello"ควรจะถูกแทนที่โดยเพียงแค่"e"เป็น substring นี้ไม่ได้มีอยู่ใน"hallo"และ"hola"และมันก็เป็นที่สั้นที่สุด "hallo"จะถูกแทนที่ด้วยอย่างใดอย่างหนึ่ง"ha"หรือ"al"และ"hola"โดยใด ๆ ของ"ho", หรือ"ol""la" กฎระเบียบ คุณสามารถสันนิษฐานได้ว่าสตริงนั้นจะต้องไม่ว่างเปล่าและมีอักขระที่เป็นตัวอักษรของเคสเดียวกันเท่านั้น คุณสามารถสันนิษฐานได้ว่ามีสตริงย่อยดังกล่าวอยู่ในแต่ละสตริงในรายการนั่นคือไม่มีสตริงใดในรายการที่จะเป็นสตริงย่อยของสตริงอื่น ๆ อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่เหมาะสม นี่คือโค้ดกอล์ฟดังนั้นพยายามใช้ให้น้อยที่สุดในภาษาที่คุณเลือก กรณีทดสอบ มีเพียงหนึ่งเอาต์พุตที่เป็นไปได้สำหรับกรณีส่วนใหญ่ ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] เกี่ยวข้อง: สตริงย่อยที่ระบุสั้นที่สุด - แนวคิดที่คล้ายกัน แต่มีกฎที่เกี่ยวข้องมากกว่าและรูปแบบที่ยุ่งยาก
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

26
ค้นหาอันดับของ Word
คำนิยาม อันดับของคำถูกกำหนดให้เป็นตำแหน่งของคำเมื่อการเรียงสับเปลี่ยน (หรือการจัดเรียง) ที่เป็นไปได้ทั้งหมดของตัวอักษรถูกจัดเรียงตามลำดับตัวอักษรเช่นในพจนานุกรมไม่ว่าคำนั้นจะมีความหมายหรือไม่ก็ตาม ให้เราพิจารณาสองคำนี้ - "สีน้ำเงิน" และ "เห็น" ก่อนอื่นเราจะเขียนตัวอักษรของคำเหล่านี้ตามลำดับตัวอักษร: "blue": "belu","beul","bleu","blue","buel","bule","eblu","ebul","elub","elbu","eubl", "eulb","lbeu","lbue","lebu","leub","lube","lueb","ubel","uble","uebl","uelb", "ulbe","uleb" "seen": "eens","eesn","enes","ense","esen","esne","nees","nese","nsee","seen", "sene","snee" ทีนี้ลองดูจากทางซ้ายและค้นหาตำแหน่งของคำที่เราต้องการ เราเห็นว่าคำว่า "สีน้ำเงิน" อยู่ที่ตำแหน่งที่ 4 และ "เห็น" อยู่ที่ตำแหน่งที่ 10 ดังนั้นอันดับของคำว่า "สีน้ำเงิน" คือ 4 และของ "เห็น" คือ 10 นี่คือวิธีทั่วไปในการคำนวณอันดับของคำ ตรวจสอบให้แน่ใจว่าคุณเริ่มนับจาก 1 เท่านั้น งาน งานของคุณคือการเขียนรหัสเพื่อใช้คำใด ๆ ที่เป็นอินพุตและแสดงอันดับของมัน อันดับควรเป็นผลลัพธ์ ระวังคำที่มีตัวอักษรซ้ำ ๆ ตัวอย่าง "prime" -> 94 "super" …

5
กำหนดจำนวนล้อที่มี
คำอธิบายที่ไม่ใช่คณิตศาสตร์ นี่คือคำอธิบายที่ตั้งใจให้เข้าถึงได้โดยไม่คำนึงถึงพื้นหลังของคุณ น่าเสียดายที่มันเกี่ยวข้องกับคณิตศาสตร์บางอย่าง แต่ควรเข้าใจได้สำหรับคนส่วนใหญ่ที่มีระดับความเข้าใจในระดับมัธยมต้น ลำดับชี้เป็นลำดับใด ๆ ดังกล่าวที่A (n + 1) = a (na (n)) ลองแยกสูตรนี้หน่อยเพื่อทำความเข้าใจความหมายของมัน นี่หมายถึงการหาเทอมถัดไปในลำดับที่เราดูในเทอมสุดท้ายนำขั้นตอนนั้นกลับมาและคัดลอกคำที่เราค้นหา ตัวอย่างเช่นถ้าเรามีลำดับจนถึงตอนนี้ ... 3 4 4 4 3 ? เราจะย้อนกลับไป 3 ก้าว 3 ... 3 4 4 4 3 ? ^ 4ทำให้ผลของเรา ตอนนี้โดยปกติเราเล่นเกมนี้บนเทปที่ไม่มีที่สิ้นสุดในทั้งสองทิศทาง แต่เรายังสามารถเล่นเกมบนวงล้อซึ่งหลังจากผ่านไปหลายขั้นตอนเรากลับไปที่จุดเริ่มต้นของลำดับ ตัวอย่างเช่นที่นี่คือการสร้างภาพของลำดับ [1,3,1,3,1,3] ตอนนี้เราอาจสังเกตเห็นว่าตัวเลขใด ๆ , xในวงล้อที่เกินจำนวนเซลล์ในวงล้อ, n , อาจเท่ากับx mod nเพราะทุกวงจรที่สมบูรณ์รอบ …

10
มดบนบันทึกธรรมชาติ
นี่เป็นความท้าทายเริ่มต้นที่ดีและเป็นนักฆ่าเวลาที่ดี ฉันเพียงแค่พูดว่า - บันทึก - ธรรมชาติเพราะชื่อสั้นเกินไปนี่ไม่มีส่วนเกี่ยวข้องกับลอการิทึม รับ 2 ตัวแปร: nจำนวนของมด wความกว้างของการเข้าสู่ระบบ การส่งออกเข้าสู่ระบบของความกว้างwกับnมด (ตัวอย่างแสดงให้เห็นw=3,n=6 ) | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ …

14
ใช้รหัสของคุณซ้ำ!
ในการท้าทายนี้เราพยายามที่จะแก้ปัญหาที่สำคัญสองอย่างพร้อมกัน พวกเขาเป็น: รับจำนวนเต็มaและb , บอกว่าa -1 เป็นจำนวนเฉพาะ รับจำนวนเต็มaและbส่งคืนnCr (a, b) คุณต้องเขียนโปรแกรมสองโปรแกรมหนึ่งที่ทำงานแรกและอีกอันหนึ่งทำงาน เนื่องจากเราต้องการแก้ไขปัญหาทั้งสองพร้อมกันจึงขอแนะนำให้ใช้โค้ดชิ้นเดียวกันในโปรแกรมทั้งสอง เกณฑ์การให้คะแนน คะแนนคำตอบคือระยะทางของ Levenshtein ระหว่างสองโปรแกรม คะแนนต่ำกว่าดีกว่า ในกรณีที่เสมอกันคำตอบด้วยรหัสที่สั้นที่สุดของทั้งสองโปรแกรมจะชนะ คุณสามารถใช้สคริปต์นี้เพื่อคำนวณคะแนนการแก้ปัญหาของคุณ กฎระเบียบ คุณต้องเขียนโปรแกรมสองโปรแกรมในภาษาเดียวกันกับที่แก้งานที่อธิบายไว้ข้างต้น คุณสามารถใช้วิธีการ I / O ใด ๆ ที่คุณต้องการ สำหรับภารกิจที่ 1 คุณสามารถส่งกลับค่าความจริง / เท็จหรือเลือกสองค่าเพื่อหมายถึงความจริงและเท็จและคืนค่าเหล่านั้นตามลำดับ เช่น. คุณสามารถเลือกได้ว่า"prime"หมายถึงจริงและ"not prime"หมายถึงเท็จ อัลกอริทึมที่คุณใช้จะต้องใช้งานได้กับอินพุตที่เป็นไปได้ทั้งหมด แต่ก็โอเคถ้ารหัสล้มเหลวสำหรับจำนวนมากเนื่องจากข้อ จำกัด ของประเภทหมายเลขที่ใช้ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้อง ไม่มีส่วนย่อยของโปรแกรมที่จะต้องแก้ปัญหาคือ รหัสจะต้องไม่ทำงานหากมีการลบอักขระใด ๆ ออก ตัวอย่างเช่นรหัสต่อไปนี้ไม่ถูกต้องเนื่องจากเป็นไปได้ที่จะลบบล็อกอื่นที่ไม่ได้ใช้โดยไม่ทำให้โปรแกรมแตก: if (1) { /* …

15
พูดตามฉัน!
รับสตริงเป็นอาร์กิวเมนต์ส่งออกความยาวของสตริงย่อยที่ซ้ำกันที่ยาวที่สุดที่ไม่ซ้ำซ้อนกันหรือศูนย์หากไม่มีสตริงดังกล่าว คุณสามารถสมมติว่าสตริงอินพุตไม่ว่างเปล่า ตัวอย่าง abcdefabc: ซับสตริงabcซ้ำที่ตำแหน่ง 1 และ 7 ดังนั้นโปรแกรมควรเอาต์พุต3 abcabcabcabcab: abcabcหรือbcabcaหรือcabcabมีการทำซ้ำเพื่อให้โปรแกรมควรเอาท์พุท6 (สตริงย่อยabcabcabcabซ้ำแล้วซ้ำอีก แต่เหตุการณ์ที่เกิดขึ้นทับซ้อนกันดังนั้นเราจึงไม่ยอมรับมัน) aaaaaaa: aaaถูกทำซ้ำที่ตำแหน่ง 1 และ 4 ตัวอย่างเช่นดังนั้นโปรแกรมควรเอาต์พุต3 abcda: aซ้ำแล้วซ้ำอีกดังนั้นโปรแกรมควรจะออก1 xyz: ไม่มีสตริงซ้ำแล้วซ้ำอีก→ 0 ababcabcabcabcab: ควรกลับ6 นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

6
ตัวประกอบบางส่วนของจำนวนเต็มบวก
คอลเลกชันของจำนวนเต็มบวกd_1 d_2 ... d_kคือการแยกตัวประกอบของจำนวนเต็มบวกnถ้า d_1 * d_2 * ... * d_k = n เลขจำนวนเต็มบวกแต่ละตัวมีการแยกตัวประกอบเฉพาะที่สำคัญแต่โดยทั่วไปแล้วพวกมันยังมีตัวประกอบที่ซึ่งคำบางคำประกอบกัน เช่น 12 = 6 * 2 = 4 * 3 = 3 * 2 * 2 เขียนโปรแกรมฟังก์ชั่นคำกริยาหรือสิ่งที่คล้ายกันซึ่งรับอินพุตเป็นจำนวนเต็มบวกเดียวและส่งคืนหรือพิมพ์รายการทั้งหมดของตัวประกอบที่แตกต่างกัน ตัวประกอบอาจถูกสร้างขึ้นในลำดับใด ๆ และเงื่อนไขอาจอยู่ในลำดับใดก็ได้ แต่ไม่ควรมีการเรียงสับเปลี่ยนกัน Factorisations อาจยังไม่รวม1กับสองข้อยกเว้น: สำหรับการป้อนข้อมูลnที่คุณอาจจะให้ factorisation n*1แทนn; และสำหรับการป้อนข้อมูล1คุณอาจให้การแยกตัวประกอบ1แทนรายการว่างเปล่า คุณอาจคิดว่าอินพุตจะอยู่ในช่วงของจำนวนเต็ม 32- บิตที่ลงชื่อแล้ว ถ้าผลการเป็นสตริงควรจะมีความแตกต่างที่ชัดเจนระหว่างการปักปันเขตของตัวเลขภายใน factorisation และการปักปันเขตของ factorisations ที่ แต่ก็ไม่จำเป็น …

27
รายการพาร์ทิชันที่สั่งซื้อทั้งหมดของ n
ความท้าทายคือการแสดงรายการพาร์ทิชันทั้งหมดที่สั่งซื้อ (องค์ประกอบ (combinatorics)) nของจำนวนเต็มบวกให้ เหล่านี้เป็นรายการของตัวเลขจาก1การที่มีผลรวมเป็นn nตัวอย่างเช่นอินพุตที่กำหนดn = 4ผลลัพธ์ควรเป็น: 4 1, 3 3, 1 2, 2 2, 1, 1 1, 2, 1 1, 1, 2 , 1, 1, 1, 1, 1 ผลลัพธ์สามารถอยู่ในลำดับใดก็ได้ แต่ต้องมีพาร์ติชันที่สั่งซื้อแต่ละครั้ง ซึ่งหมายความว่าสำหรับn = 4, [1, 1, 2], [1, 2, 1]และ[2, 1, 1]ทุกคนจะต้องเป็นส่วนหนึ่งของผล นี่คือรหัส JavaScript ของฉันเองซึ่งประสบความสำเร็จในสิ่งนี้: function range(n) { for …

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