การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

1
C # แรก 1 (ขวาไปซ้าย) ในเลขฐานสอง
ฉันพยายามใช้ C # เพื่อค้นหาดัชนีของ 1 (ขวาไปซ้าย) ในการแทนเลขฐานสองของตัวเลข ตัวอย่างเช่นตั้งแต่ 100 ในไบนารีคือ: 0b1100100 1 แรกอยู่ในตำแหน่งที่สามจากด้านขวาดังนั้นควรให้ 3 234 ควรให้ผล 2, 0 ควรได้ 0, เป็นต้น นี่คือทางออกปัจจุบันของฉัน: k < 1 ? 0 :(int)Math.Log(k & -k, 2) + 1; ฉันจะทำให้มันสั้นกว่านี้ได้ไหม?
10 code-golf  tips  binary  c# 

9
ทำล่ามให้ใช่!
ใช่เป็นสแต็คที่ใช้ภาษาที่มีคำแนะนำการใช้พื้นที่ที่แยกออกจากกันไม่กี่: yes: Push 1 to the stack no: Push 0 to the stack what: Push the input to the stack (input is taken at the start of program execution and is the same for the whole execution) sure: Increment the last item in the stack nah: Decrement the last item …

4
สร้างกระแสน้ำวน!
ภารกิจของคุณในวันนี้คือการสร้างกระแสน้ำวนที่มีพารามิเตอร์เดียว พารามิเตอร์นี้พิจารณาความยาวของแขนแต่ละข้างเป็นตัวอักษร "เลเยอร์" แต่ละอันของแขนแต่ละข้างจะมีตัวละครมากกว่าหนึ่งตัว นี่คือรูปลักษณ์ของกระแสน้ำวนที่มีความยาวแขน: 0: # 1: # ### # 2: # # # ### # # # 3: ## # # # ### # # # ## 4: # # ## # # # ### # # # ## # # 10: # # # # # #### …

3
แก้ปริศนาไบนารี
บทนำ กฎของปริศนา: Binary Puzzle (หรือที่รู้จักกันในชื่อTakuzuหรือ Subiku) นั้นง่ายต่อการเข้าใจและมีกฎเพียงไม่กี่: เนื่องจากชื่อของเกมนั้นเป็นเลขฐานสองมันค่อนข้างชัดเจน แต่คุณสามารถเติมเลขศูนย์และคนได้เท่านั้น ไม่เกินสองหลักเดียวกันสามารถติดกันในแนวตั้งหรือแนวนอน แต่ละแถวและแต่ละคอลัมน์จะต้องมีค่าศูนย์และจำนวนเท่ากัน (โดยปริยายหมายความว่าทุกเกมไบนารีจะมีขนาดเท่ากันเสมอ) อาจไม่มีแถวที่ซ้ำกันและไม่มีคอลัมน์ที่ซ้ำกัน (โดยมีศูนย์และคอลัมน์เดียวกัน) คุณสามารถเล่นเกมได้ที่www.binarypuzzle.comหากคุณต้องการ กลยุทธ์: เนื่องจากกฎข้อที่ 1 เราสามารถกรอกตัวเลขได้เสมอหาก: - มีตัวเลขสองหลักเดียวกันในแนวตั้งหรือแนวนอนติดกันซึ่งในกรณีนี้เราสามารถกรอกตัวเลขตรงข้ามทั้งสองด้าน เช่น→.11... - มีตัวเลขสองหลักเดียวกันในแนวตั้งหรือแนวนอนโดยมีเพียงหนึ่งช่องว่างในระหว่างนั้น เช่น→0110...1.1...101.. เนื่องจากกฎข้อที่ 1 เมื่อเหลือช่องว่างสามช่องและเราไม่สามารถมีเลขสามหลักที่อยู่ติดกันได้เราสามารถเติมช่องว่างช่องใดช่องหนึ่งได้ Ie .0.1.0→ 10.1.0(เรายังต้องเติมสองอันและเราไม่สามารถมีสามอันที่อยู่ติดกันตรงกลางดังนั้นช่องว่างแรกจะต้องเป็น1) เนื่องจากกฎที่ 2 เราสามารถเติมช่องว่างที่เหลือในแถวหรือคอลัมน์ได้เสมอหากครึ่งหนึ่งของพวกเขาเต็มไปด้วยตัวเลขตรงกันข้าม เช่น.1.011→010011 เนื่องจากกฎข้อที่ 3 เราสามารถเติมตัวเลขตรงข้ามได้เสมอหากเหลือเพียงสองตัวเท่านั้นที่จะแก้ปัญหาในบรรทัดที่ได้รับคำสั่งเท่ากัน เช่น101100 & 1..100→101100 & 110100 เนื่องจากกฎข้อที่ 3 บางครั้งเราสามารถเติมเต็มช่องว่างเมื่อเหลือช่องว่างสามช่องในบรรทัดที่มีคำสั่งเท่ากัน Ie 010011 & .1.01.→ …

2
ได้รับหน่วย
ท้าทาย รับรายการของหน่วยพื้นฐาน SI รายการสมการและเป้าหมายคุณต้องได้รับหน่วยของเป้าหมายโดยใช้หน่วยพื้นฐานเท่านั้น หน่วยที่ได้รับ จากวิกิพีเดีย: ระบบระหว่างประเทศของหน่วย (SI) ระบุชุดของหน่วยฐานเจ็ดที่หน่วยวัด SI อื่น ๆ ทั้งหมดจะได้รับ หน่วยอื่น ๆ เหล่านี้ (หน่วยที่ได้รับจาก SI) ไม่มีขนาดหรือสามารถแสดงเป็นผลิตภัณฑ์ที่มีกำลังของหน่วยพื้นฐานหนึ่งหน่วยหรือมากกว่า ตัวอย่างเช่นหน่วยที่ได้มาจากพื้นที่ SI คือตารางเมตร (m 2 ) และหน่วยความหนาแน่น SI ที่ได้มาคือกิโลกรัมต่อลูกบาศก์เมตร (kg / m 3หรือ kg m −3 ) หน่วยฐาน SI ทั้งเจ็ด ได้แก่ : แอมแปร์, Candela, cd เคลวิน, เค กิโลกรัมกิโลกรัม เมตร, เมตร โมลโมล …

3
การทำแผนที่ระหว่างจำนวนเต็มและคำที่ออกเสียง
วัตถุประสงค์ ความคิดคือการให้รหัสที่จำเป็นในการแมปจำนวนเต็ม 32 บิตไปยัง / จากคำที่ออกเสียงได้สูงสุด 9 ตัวอักษร นั่นอาจเป็นประโยชน์ตัวอย่างเช่นเพื่อให้จำหมายเลขได้ง่ายขึ้นหรือพิมพ์ในแบบฟอร์ม ทั้งวิธีการแปลจำนวนเต็มเป็นคำที่สอดคล้องกันและสำหรับการแปลกลับคำเป็นจำนวนเต็มที่สอดคล้องกันจะต้อง กฎระเบียบ จะต้องมีการแมปแบบหนึ่งต่อหนึ่งระหว่างจำนวนเต็มกับคำและทั้งชุดของจำนวนเต็ม 32 บิต (หรือใส่อีกวิธีหนึ่งคือจำนวนเต็มใด ๆ จาก 0 ถึง 4294967295) ต้องสามารถแมปได้ แม้ว่าแน่นอนว่าไม่ใช่ทุกคำที่จะมีความหมายและการป้อนคำที่ไม่ได้แมปไปยังจำนวนเต็มอาจมีพฤติกรรมที่ไม่ระบุ คุณมีอิสระในการตัดสินใจว่าชุดคำใดที่มีความหมายและสามารถทำแผนที่ได้ แต่อย่างน้อยคำต่างๆต้องเป็นไปตามกฎเหล่านี้: ควรใช้เฉพาะตัวอักษร 26 ตัว (A ... Z) เป็นอักขระ ไม่ควรใช้สำเนียงตัวเรือน ฯลฯ ... เพื่อขยายชุดค่าผสมที่เป็นไปได้ สูงสุด 9 ตัวอักษรต่อคำ ไม่ควรวางพยัญชนะสองตัว (BCDFGHJKLMNPQRSTVWXZ - 20 possiblities) ไว้ข้างๆกัน (จะต้องล้อมรอบด้วยสระ) ไม่ควรวางสระสองตัว (AEIOUY - 6 ความเป็นไปได้) …

4
โลภแบ่งรายการชุดค่าผสมด้วยการทำซ้ำอย่างโลภ
ก่อนคำจำกัดความไม่กี่: รับnและkพิจารณารายการที่เรียงลำดับของMultisetsที่แต่ละชุดที่เราเลือกkตัวเลขจาก{0, 1, ..., n-1}ด้วยซ้ำ ตัวอย่างเช่นสำหรับn=5และk=3เรามี: [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3), (0, 0, 4), (0, 1, 1), ( 0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 2, 2), (0, 2, 3), (0, 2, 4), (0, 3, 3), (0, 3, 4), (0, …

2
ถนนสองสายแยกเป็นสีเหลือง (ตอนที่ 3)
หมายเหตุ:นี่คือถนนสองสายที่แยกจากกันในป่าสีเหลือง (ตอนที่ 2)ซึ่งเป็นความท้าทายครั้งก่อน เนื่องจากความนิยมของคำถามนั้นและถนนสองสายที่แยกกันอยู่ในป่าสีเหลือง (ตอนที่ 1)ฉันต้องการสร้างที่สาม แต่ 2 ข้อแรกนั้นง่ายเกินไป ( คำตอบ2 ไบต์ในคำตอบแรกคำตอบ 15 ไบต์ในวินาที) ดังนั้นฉันจึงทำอะไรที่ซับซ้อนกว่านี้ ... แรงบันดาลใจ ความท้าทายนี้ได้รับแรงบันดาลใจจากบทกวีที่มีชื่อเสียงของ Robert Frost, The Road Not Taken : ถนนสองสายแยกในไม้สีเหลือง และขอโทษที่ฉันไม่สามารถเดินทางทั้งสอง และเป็นหนึ่งในผู้เดินทางนานผมยืนอยู่ และมองลงไปหนึ่งเท่าที่ผมจะทำได้ เพื่อที่จะงอในพง; ... 2 ย่อหน้าถูกตัด ... ฉันจะบอกเรื่องนี้ด้วยการถอนหายใจ ที่ไหนสักแห่งในยุคนี้: ถนนสองสายแยกจากกันในป่าและฉัน - ฉันเอาคนเดินทางน้อยกว่า และนั่นทำให้เกิดความแตกต่าง สังเกตบรรทัดที่สองถึงบรรทัดสุดท้ายI took the one less traveled by,. ฉากหลัง คุณได้รับมอบหมายให้ช่วยให้นักผจญภัยคนตาบอดที่กำลังเดินอยู่บนท้องถนนและได้รับแรงบันดาลใจจากถนนไม่ได้ นักผจญภัยกำลังเข้ามาใกล้ทางแยกในถนนและต้องการใช้เส้นทางน้อยกว่าการเดินทางโดย …

16
เลขฐานสิบหกเป็น Binary
แปลงเลขฐานสิบหก (ทุกขนาด) เป็นเลขฐานสอง ป้อนข้อมูลบวกเลขฐานสิบหกด้วยในการเริ่มต้น การป้อนข้อมูลที่ถูกต้องมักจะตรงกับ regex ต่อไปนี้: ถ้าใส่ไม่ได้เลขฐานสิบหกที่ถูกต้องนั่นคือสิ่งที่ไม่ตรงกับ regex นี้การส่งออกที่ควรจะเป็น 0x0x[0-9a-fA-F]+0 เอาท์พุท เลขฐานสิบหกแปลงเป็นไบนารี ชนะ กฎเดิมรหัสกอล์ฟ, (bytes)จำนวนเงินที่ต่ำสุดของกัด ตัวอย่าง IN: 0x12 OUT: 10010 IN: 0xFF OUT: 11111111 IN: 0XFF OUT: 0 IN: #0ac4 OUT: 0 IN: 0x00101011 OUT: 100000001000000010001 IN: 0x525600 OUT: 10100100101011000000000 IN: 0x58f70555118ec400 OUT: 101100011110111000001010101010100010001100011101100010000000000 IN: 0x6669795966AF3000 OUT: 110011001101001011110010101100101100110101011110011000000000000 IN: …

8
ชั้นประถมศึกษาปีของฉันสแกนตรอน!
การทดสอบที่ได้มาตรฐานมักจะมาพร้อมกับสแกน - ตรอนหรือเอกสารคำตอบบางประเภทที่บันทึกคำตอบของคุณ คอมพิวเตอร์หรือมนุษย์จะตรวจสอบคำตอบและตรวจสอบเกรดของคุณ ดังนั้นที่นี่รับสแกนตรอนและคีย์คำตอบกำหนดคะแนนและคำถามที่พลาดถ้ามี สแกนตรอนเป็นเพียงเอกสารที่มีหลายบรรทัดพร้อมคำตอบที่ผู้ใช้กรอก (ในกรณีนี้คือวงกลม) ตัวอย่าง: --- 1. |a| b c d --- อย่างที่คุณเห็นนี่คือคำถาม 1 ที่มีตัวเลือกคำตอบที่aเลือกเนื่องจากมีกล่องอยู่รอบ ๆ สำหรับความท้าทายที่คุณจะได้รับการสแกนทรอนกับnคำถาม ( 1 <= n <= 10) มีเพียงสี่คำตอบที่แสดงเป็นa, b, หรือc dคีย์คำตอบจะได้รับเป็นสตริงที่ไม่มีช่องว่างและมีตัวพิมพ์เล็กทั้งหมด ตัวอย่างสแกนตรอนพร้อมคำตอบสำคัญ: Scan-tron --- 1. |a| b c d --- --- 2. a |b| c d --- --- 3. a b …

6
ตัวเลขที่เป็น palindromes ใน N base
ได้รับจำนวนเต็มไม่เป็นลบn >= 0ออกไปตลอดกาลลำดับเลขx_i >= 3ที่มี palindromes ในตรงnฐานที่แตกต่างกันที่ฐานที่สามารถb2 <= b <= x_i-2 นี้เป็นพื้นผกผันของOEIS A126071nที่คุณส่งออกที่ดัชนีอยู่ในลำดับที่มีค่า มันแตกต่างกันเล็กน้อยเพราะฉันเปลี่ยนดังนั้นคุณจึงไม่สนใจเบสb = x_i-1, x_i, x_i+1เนื่องจากผลลัพธ์สำหรับเบสเหล่านั้นมักจะเหมือนเดิมเสมอ นอกจากนี้การชดเชยจะแตกต่างกัน x_iจะมีการ จำกัด จำนวน>= 3เพื่อให้ระยะแรกของผลสำหรับแต่ละnคือA037183 โปรดทราบว่ารูปแบบผลลัพธ์มีความยืดหยุ่น แต่ตัวเลขควรคั่นด้วยวิธีที่ดี ตัวอย่าง: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

10
เรียบเนียนเหมือนเทฟลอน
แท้จริง! วันที่ 6 เมษายนเป็นวันชาติเทฟลอนซึ่งเฉลิมฉลองด้วยกระทะเคลือบเทฟลอน (เราจะทำ) ดังนั้นให้เป็นจำนวนเต็มบวกnสร้างกระทะเทฟลอน ส่วน "แพน" ของกระทะเป็นรูปแปดเหลี่ยมกับแต่ละด้านประกอบด้วยnตัวอักษรซึ่งจะแตกต่างกันไปขึ้นอยู่กับที่ด้านข้างมันเป็นยกเว้นด้านข้างโดยใช้ตัวอักษรหรือ{ }ด้านนั้นจะมีความยาวตัวอักษรหนึ่งเสมอ ถ้าnเป็น 1: _ / \ { } \_/ ในขณะที่คุณสามารถดูแต่ละด้านประกอบด้วยตัวละครตัวหนึ่ง (อย่างใดอย่างหนึ่ง{, }, /, \หรือ_) ถ้าnเป็น 2: __ / \ / \ { } \ / \__/ ที่จับจะถูกสร้างขึ้นด้วยn+3 ='และสิ้นสุดด้วยศูนย์ ( 0) หากnเป็นหนึ่ง: _ / \ { }====0 \_/ n คือ 2: __ …

1
ค้นหาย่านที่สมดุล
งานของคุณคือการใช้สตริงที่มีความสมดุลและจำนวนเต็มแทนระยะทาง Levenshtein (จำนวนตัวอักษรที่ต้องถูกแทรกลบหรือเปลี่ยนเพื่อให้เป็นหนึ่งในสายอื่น) และคุณจะต้องค้นหาจำนวนของสตริงที่สมดุลด้วยระยะทางนั้น จากสตริงเดิม (เช่นพื้นที่ใกล้เคียงของสตริงนั้น) เงื่อนไข สตริงที่สมดุลจะประกอบด้วยอักขระเท่านั้น ()<>[]{} คุณจะถูกขอให้ค้นหาพื้นที่ใกล้เคียงในระยะทางที่เป็นบวก อินพุตและเอาต์พุตมีความยืดหยุ่น ตราบใดที่คุณรับข้อมูลที่เหมาะสมและส่งออกคำตอบที่ถูกต้องโดยไม่ละเมิดช่องโหว่ใด ๆ ฉันมีความสุขกับคำตอบของคุณ คุณอาจเลือกหารจำนวนเต็มทั้งหมด 2 ถ้าคุณเลือก นี่คือโค้ดกอล์ฟดังนั้นจุดประสงค์คือเพื่อลดจำนวนไบต์ในคำตอบของคุณ นี่คือแรงบันดาลใจจากCMC นี้และคำตอบนี้ Testcases Case | Distance | Size of Neighborhood -------------------------------------------- () | 2 | 18 ({}) | 2 | 33 (()) | 2 | 32 <> | 4 | 186 [][] …

1
แบ่งอาร์เรย์และโปรแกรมในครึ่ง
บทนำ คุณได้รับมอบหมายให้เขียนโปรแกรมที่แบ่งอาร์เรย์จำนวนเต็มสี่เหลี่ยมเท่า ๆ กันครึ่งหนึ่ง (ไม่ว่าด้วยเหตุผลใดก็ตาม) งานนี้มีการคำนวณอย่างเข้มข้น แต่โชคดีที่คุณมีเครื่องดูอัลคอร์เพื่อทำการคำนวณ เพื่อให้ได้ประโยชน์สูงสุดจากการขนานคุณตัดสินใจที่จะแบ่งโปรแกรมเท่า ๆ กันครึ่งหนึ่งแล้วปล่อยให้แต่ละคอร์รันส่วนใดส่วนหนึ่งโดยไม่ขึ้นต่อกัน อินพุตและเอาต์พุต ข้อมูลของคุณเป็นอาร์เรย์ 2 มิติรูปสี่เหลี่ยมผืนผ้าของจำนวนเต็มที่ไม่ใช่ค่าลบอย่างน้อย1 × 1ซึ่งถ่ายในรูปแบบที่เหมาะสม การแบ่งอาเรย์ดังกล่าวทำได้โดยการแบ่งแต่ละแถวในแนวนอนเป็นส่วนนำหน้าและคำต่อท้าย (ซึ่งอาจว่างเปล่า) เพื่อให้การแยกถูกต้องสองแถวที่อยู่ติดกันจะต้องถูกแยกที่ดัชนีเดียวกันหรือดัชนีที่อยู่ติดกัน ตัวอย่างเช่นพิจารณาอาร์เรย์ 2 4 5 5 6 3 9 7 1 7 7 0 0 0 3 6 7 8 1 2 4 7 6 1 6 6 8 2 0 0 …

3
แปลงการแสดงออกเชิงตรรกะเพื่อรูปแบบปกติซึ่งเชื่อมต่อกัน
เป้าหมาย: เขียนโปรแกรมหรือฟังก์ชั่นที่สมบูรณ์ซึ่งใช้สูตรในตรรกะเชิงประพจน์ (ต่อจากนี้ไปจะเรียกว่าการแสดงออกเชิงตรรกะหรือการแสดงออก ) และผลลัพธ์สูตรนั้นในรูปแบบปกติซึ่งเชื่อมต่อกัน มีสองคงอยู่⊤และ⊥เป็นตัวแทนของความจริงและเท็จผู้ประกอบการเอกภาค¬เป็นตัวแทนของการปฏิเสธและผู้ประกอบการไบนารี⇒, ⇔, ∧และ∨ตัวแทนปริยายสมมูลร่วมและความร้าวฉานตามลำดับซึ่งเชื่อฟังทั้งหมดของตรรกะการดำเนินงานปกติ ( กฎหมาย DeMorgan ของ , คู่ปฏิเสธการกำจัดฯลฯ ) รูปแบบปกติร่วมกันกำหนดไว้ดังนี้ นิพจน์อะตอมใด ๆ (รวมถึง⊤และ⊥) อยู่ในรูปแบบปกติซึ่งเชื่อมต่อกัน การปฏิเสธของการแสดงออกใด ๆ ที่สร้างไว้ก่อนหน้านี้อยู่ในรูปแบบปกติซึ่งเชื่อมต่อกัน ความแตกต่างของสองนิพจน์ที่สร้างไว้ก่อนหน้านี้อยู่ในรูปแบบปกติซึ่งเชื่อมต่อกัน การรวมกันของสองนิพจน์ที่สร้างไว้ก่อนหน้านี้อยู่ในรูปแบบปกติซึ่งเชื่อมต่อกัน การแสดงออกอื่น ๆ ไม่ได้อยู่ในรูปแบบปกติของการเชื่อมต่อ นิพจน์แบบลอจิคัลใด ๆ สามารถแปลง (ไม่ใช่แบบไม่ซ้ำกัน) ให้เป็นนิพจน์ที่มีเหตุผลเชิงตรรกะในรูปแบบปกติแบบ conjunctive (ดูอัลกอริทึมนี้ ) คุณไม่จำเป็นต้องใช้อัลกอริทึมนั้น การป้อนข้อมูล: คุณสามารถป้อนข้อมูลในรูปแบบที่สะดวกใด ๆ เช่นการแสดงออกเชิงตรรกะสัญลักษณ์ (ถ้าภาษาของคุณรองรับ), สตริง, โครงสร้างข้อมูลอื่น ๆ คุณไม่จำเป็นต้องใช้สัญลักษณ์เดียวกันสำหรับตัวดำเนินการจริงเท็จและตัวดำเนินการทางตรรกะเช่นเดียวกับที่นี่ แต่ตัวเลือกของคุณควรสอดคล้องกันและคุณควรอธิบายตัวเลือกของคุณในคำตอบหากยังไม่ชัดเจน คุณไม่สามารถยอมรับอินพุตอื่นหรือเข้ารหัสข้อมูลเพิ่มเติมใด ๆ ในรูปแบบอินพุตของคุณ …
10 code-golf  math  logic 

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