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

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

12
เคล็ดลับสำหรับการเล่นกอล์ฟในกลุ่ม
ฉันได้ตระหนักถึงเมื่อเร็ว ๆ นี้ว่าเป็นกลุ่มทำงานที่ดีสำหรับการเล่นกอล์ฟโดยเฉพาะอย่างยิ่งสำหรับKolmogorov ซับซ้อน นอกจากนี้ตามmeta vim เป็น 'ภาษาการเขียนโปรแกรม' ที่ยอมรับได้อย่างสมบูรณ์สำหรับขอบเขตของเว็บไซต์นี้นั่นคือ คุณมีเคล็ดลับอะไรบ้างสำหรับการเล่นกอล์ฟใน Vim? ฉันกำลังมองหาความคิดเห็นที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟและอย่างน้อยก็ค่อนข้างเฉพาะกับ Vim (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
32 code-golf  tips  vim 

30
คำนวณการตรวจสอบ Adler-32
พื้นหลัง Adler-32เป็นเช็คซัม 32 บิตที่คิดค้นโดย Mark Adler ในปี 1995 ซึ่งเป็นส่วนหนึ่งของ zlib library ที่ใช้กันอย่างแพร่หลาย (พัฒนาโดย Adler) Adler-32 ไม่น่าเชื่อถือเท่ากับการตรวจสอบความซ้ำซ้อนแบบ 32 บิตแต่อย่างน้อยในซอฟต์แวร์ - มันเร็วกว่าและง่ายกว่าในการนำไปใช้ คำนิยาม ให้B = [b 1 , ⋯, b n ]เป็นอาร์เรย์ไบต์ การตรวจสอบ Adler-32 ของBหมายถึงผลลัพธ์ของ+ 65536 ×สูงต่ำโดยที่: ต่ำ: = ((1 + b 1 + ⋯ + b n ) mod 65521) สูง: …

24
ตัวแปลรหัสมอร์ส
เขียนโปรแกรมที่สั้นที่สุดที่จะเปลี่ยนเข้ามาตรฐานลงในรหัสมอร์ส อักขระที่ไม่ได้อยู่ในตารางควรพิมพ์ตามที่เป็น
32 code-golf  morse 

19
การปรับปรุง Caesar Pig Latin Cipher
ปัญหาเกี่ยวกับ Caesar cipher คือคำที่เป็นผลลัพธ์มักไม่สามารถออกเสียงได้ ปัญหากับ Pig Latin คือการถอดรหัสง่าย ทำไมไม่รวมพวกเขา? อินพุต คำที่ประกอบด้วยตัวอักษรภาษาอังกฤษ 26 ตัว เอาท์พุต ขั้นแรกให้เปลี่ยนพยัญชนะทุกตัวในคำเป็นพยัญชนะตัวถัดไปในตัวอักษร ดังนั้น b ไปที่ c, d ไปที่ f และ z ไปที่ b จากนั้นเปลี่ยนเสียงสระทุกตัวเป็นเสียงสระถัดไปในตัวอักษร (คุณไปที่ a) สุดท้ายหากตัวอักษรตัวแรกของคำเป็นตัวอักษรให้ย้ายตัวอักษรนั้นไปยังท้ายคำและเพิ่ม "ay" ไปยังตอนท้ายของคำ ตัวอย่าง: cat -> evday dog -> uhfay eel -> iim นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ กรณีไม่สำคัญ สระที่จะใช้คือ A, E, I, O และ …

21
กระเบื้อง Minesweeper รอบตัวฉันคืออะไร
เรือกวาดทุ่นระเบิดเป็นเกมไขปริศนาที่มีการซ่อนทุ่นอยู่รอบ ๆ แผ่นกระดานที่มีวัตถุประสงค์เพื่อระบุตำแหน่งของทุ่นระเบิดทั้งหมด การคลิกที่เหมืองจะสูญเสียเกม แต่การคลิกที่ไทล์อื่น ๆ จะแสดงตัวเลขตั้งแต่ 0-8 ซึ่งหมายถึงจำนวนเหมืองที่ล้อมรอบมันโดยตรง เมื่อกำหนดตัวเลขคุณต้องแสดงการรวมตัวแบบสุ่มที่เป็นไปได้ของแผ่นเปล่าและเหมืองโดยรอบ สิ่งนี้ควรอยู่ในรูปแบบของอาร์เรย์ 3x3 ไทล์กึ่งกลางควรเป็นจำนวนเหมืองที่ใช้เป็นอินพุต * ต้องมีโอกาสที่ไม่เป็นศูนย์เพื่อให้ชุดค่าผสมทั้งหมดเกิดขึ้น ตัวอย่าง _ = blank square X = mine 0 ___ _0_ ___ 1 _X_ _1_ ___ 1 ___ _1_ X__ ___ _1_ __X 4 _X_ X4X _X_ 4 X_X _4_ X_X 4 ___ X4X X_X …

29
เป็นสองเท่าในแบบของคุณ
มีการคู่ของความท้าทายที่เกี่ยวข้องกับรหัสที่มาเสแสร้ง A: ที่นี่และที่นี่ งานที่เรามีที่นี่ยากขึ้นนิดหน่อย แต่น่าจะทำได้ในเกือบทุกภาษา ในการท้าทายนี้คุณจะต้องใช้จำนวนเต็มบวกโดยพลการ โปรแกรมของคุณจะต้องแสดงผลเป็นจำนวนเต็มสองเท่าสองเท่าเมื่อรหัสต้นฉบับของคุณเป็นสองเท่าก็จะใช้เวลาในการเป็นจำนวนเต็มบวกและการส่งออกมันยกกำลังสอง ซอร์สโค้ดของคุณเป็นสองเท่าได้อย่างไร ดีคุณสามารถมีได้ในแบบของคุณ นั่นคือจะบอกว่าคุณสามารถแยกรหัสที่มาของคุณขึ้นเป็นสตริงของไบต์หรืออักขระ (หรือราชสกุลใน Langs tokenized) ของใด ๆที่เท่าเทียมกันระยะเวลาที่คุณต้องการและทำซ้ำแต่ละก้อนสองครั้ง สำหรับโปรแกรมเริ่มต้นของABCDEFGHIJKL(ความยาว 12) ที่นี่เป็นโปรแกรมสองเท่าที่เป็นไปได้ทั้งหมด : Chunk length | Doubled source code -------------+------------------------- 1 | AABBCCDDEEFFGGHHIIJJKKLL 2 | ABABCDCDEFEFGHGHIJIJKLKL 3 | ABCABCDEFDEFGHIGHIJKLJKL 4 | ABCDABCDEFGHEFGHIJKLIJKL 6 | ABCDEFABCDEFGHIJKLGHIJKL 12 | ABCDEFGHIJKLABCDEFGHIJKL โปรดทราบว่านี่หมายถึงโปรแกรมที่มีความยาวสูงสุดสองเท่าสามารถทำได้สองวิธีเท่านั้น: ทุกตัวละครเพิ่มเป็นสองเท่าหรือโปรแกรมเต็มจะทำซ้ำสองครั้ง กฎ: รหัสจะต้องเป็นโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม อนุญาตให้ใช้วิธีมาตรฐาน …

6
จัดเรียงตำรา
จัดเรียงตำรา โรงเรียนจะเริ่มเร็ว ๆ นี้ (ถ้ายังไม่ได้ดำเนินการ) และถึงเวลาที่จะต้องสั่งหนังสือเรียนของเรา คุณต้องเรียงลำดับหนังสือตามลำดับตัวอักษร แต่ใช้เวลานานเกินไปคุณจึงตัดสินใจเขียนโปรแกรมเพื่อทำมัน ตัวอย่าง การป้อนข้อมูล: _ | | _ |F| | | |o|_|P| |o|B|P| | |a|C| | |r|G| |_|_|_| เอาท์พุท: _ | |_ |F| | _|o|P| |B|o|P| |a| |C| |r| |G| |_|_|_| อินพุต ข้อมูลที่ป้อนจะเป็นชุดหนังสือที่ต้องจัดเรียงตามตัวอักษรใหม่ มันจะมีเพียง: |, _, และ A-Za-zชื่อหนังสือถูกอ่านในแนวตั้งและบนล่าง คุณอาจเลือกที่จะสมมติว่าอินพุตนั้นถูกเติมด้วยช่องว่างเพื่อให้พอดีกับสี่เหลี่ยม หากคุณเลือกที่จะใส่เบาะด้วยช่องว่างโปรดระบุสิ่งนี้ในคำตอบของคุณ ความสูงของหนังสือสูงสุดที่โปรแกรมของคุณจะต้องจัดการมีความสูง 5,120 บรรทัดโดยไม่ล้มเหลว หนังสือจะมีความหนา …

7
เราลืมอะไรไป
งานของคุณคือการเขียนโปรแกรมคอมพิวเตอร์ที่ไม่ว่างประกอบด้วยลำดับของไบต์ หากเราเลือกไบต์เฉพาะในโปรแกรมและลบอินสแตนซ์ทั้งหมดของมันออกจากโปรแกรมโปรแกรมที่ถูกแก้ไขควรเอาท์พุทไบต์ที่ถูกลบออก เช่นถ้าโปรแกรมของเรา aabacba จากนั้นbcbจะส่งออกa, aaacaจะต้องมีการส่งออกbและจะเอาท์พุทaababac ไม่สำคัญว่าโปรแกรมที่ไม่ได้แก้ไขจะทำอะไร คำตอบจะได้คะแนนเป็นไบต์โดยมีเป้าหมายเพื่อลดจำนวนไบต์

22
ทำให้ตัวละครฝนตก
แรงบันดาลใจจากการแชทขนาดเล็กที่ท้าทาย รับสตริงเป็นอินพุต (อักขระที่พิมพ์ได้ ASCII เท่านั้น) ส่งออกสตริงด้วยตัวอักษร "raining" down ตัวอักษรแต่ละตัวจะต้องเป็นจำนวนสุ่มของบรรทัดลง (สุ่มระหว่าง0และความยาวของสตริงแต่ละคนมีความน่าจะเป็นไม่เป็นศูนย์) และตัวละครเดียวต่อคอลัมน์ เอาต์พุตที่เป็นไปได้ทั้งหมดต้องมีความน่าจะเป็นที่ไม่เป็นศูนย์อีกครั้งที่จะเกิดขึ้น อาจจะสับสนเล็กน้อยดังนั้นนี่เป็นตัวอย่าง (นำมาจาก CMC นั้น): Hello World d H o llo l W e r โปรดสังเกตว่าการHเว้นช่องว่างหนึ่งช่องเป็นเท่าไรdและlloทั้งหมดเกิดขึ้นในแนวนอน ที่rอยู่ไกลที่สุดลงไปที่9แต่ก็ยังน้อยกว่าความยาวของสตริงที่อยู่ห่างจากด้านบน นี่เป็นเพียงตัวอย่างหนึ่งที่มีหลายสิบของความเป็นไปได้อื่น ๆ Hello Worldสำหรับการป้อนข้อมูล ตัวอย่างอื่น ๆ อาจเป็น: test t e s t PP&CG & G P P C เข้าและส่งออกจะได้รับโดยวิธีการที่สะดวกใด ๆ อินพุตมีการรับประกันว่าไม่ว่างเปล่า (เช่นคุณจะไม่ได้รับ""เป็นอินพุต) …

8
ทำให้ตัวอักษร
พิจารณารายการคำที่เรียงตามตัวอักษรต่อไปนี้: balderdash ballet balloonfish balloonist ballot brooding broom คำทั้งหมดเริ่มต้นด้วยbและ 5 balเริ่มต้นครั้งแรกกับ ถ้าเราแค่ดูที่ 2 คำแรก: balderdash ballet เราสามารถเขียนแทน: balderdash +let โดยที่' 'จะใช้โดยที่คำที่ใช้ร่วมกันอักขระนำหน้ากับคำก่อนหน้า; ยกเว้น'+'อักขระที่ระบุอักขระสุดท้ายที่คำที่สองใช้คำนำหน้าร่วมกับคำก่อนหน้า นี่คือการจัดเรียงของ'Trie'สร้างภาพ: ผู้ปกครองคือ ' bal' และมี 2 ลูกหลาน: และ'derdash''let' ด้วยรายการที่ยาวขึ้นเช่น: balderdash ballet brooding เราสามารถใช้อักขระไพพ์เพิ่มเติม'|'เพื่อให้ชัดเจนยิ่งขึ้นเมื่อคำนำหน้าที่ใช้ร่วมกันสิ้นสุดลงดังต่อไปนี้: balderdash | +let +rooding และต้นไม้ที่เทียบเท่าจะมีรากของ'b'การมีลูกสองคน: ทรีย่อยที่มีราก'al'และและลูกสองคน'derdash'และ'let'; 'rooding'และ หากเราใช้กลยุทธ์นี้กับรายการดั้งเดิมของเรา balderdash ballet balloonfish balloonist ballot brooding broom …
31 code-golf  string 

28
Count rook เคลื่อนไหว 1D
เมื่อกำหนดตำแหน่งที่มีแถวของ rooks และ / หรือช่องว่างให้ส่งออกจำนวน rook การเคลื่อนไหวที่แตกต่างกันได้ rook สามารถเลื่อนไปทางซ้ายหรือขวาไปยังพื้นที่ว่างได้ แต่ไม่ใช่ไปยังที่ที่ต้องผ่าน rook อื่น เมื่อ rook เคลื่อนที่ไป rooks อื่นจะยังคงอยู่ ตัวอย่างเช่นจากตำแหน่งนี้สามารถทำได้6 การเคลื่อนไหว : .R..RRR. rook แรก (ซ้ายสุด) สามารถเลื่อนไปทางซ้าย 1 ช่องหรือ 1 หรือ 2 ช่องทางด้านขวา (3 ย้าย) rook ถัดไปสามารถย้ายได้ 1 หรือ 2 ช่องทางซ้าย (2 ย้าย) rook ตัวที่สามไม่สามารถเคลื่อนที่ได้เลยเพราะมันถูกบีบระหว่าง rooks สองอัน (0 ท่า) โกงครั้งสุดท้ายสามารถย้าย 1 ช่องว่างด้านขวา …

19
หมายเลขตัวหารที่ไม่เป็นมิตร
ตัวหารบางตัวของจำนวนเต็มบวกเกลียดกันและพวกเขาไม่ต้องการแบ่งปันตัวเลขหนึ่งหลักหรือมากกว่า จำนวนเต็มเหล่านั้นเรียกว่าHostile Divisor Numbers ( HDN ) ตัวอย่าง Number 9566มี4ตัวหาร: 1, 2, 4783 and 9566 (อย่างที่คุณเห็นไม่มีสองคนที่มีตัวเลขเดียวกัน ) ดังนั้น9566จึงเป็นH ostile D ivisor N umber จำนวน9567เป็นไม่HDNเพราะตัวหารของ ( 1, 3, 9, 1063, 3189, 9567) แบ่งปันตัวเลขบางอย่างร่วมกัน นี่เป็นHDNแรกสองสามอัน 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... งาน รายการข้างต้นดำเนินต่อไปและหน้าที่ของคุณคือค้นหาHDNลำดับที่ n อินพุต จำนวนเต็มบวกnตั้งแต่1ถึง4000 เอาท์พุต nth HDN กรณีทดสอบ นี่คือกรณีทดสอบที่จัดทำดัชนี 1รายการ โปรดระบุระบบการจัดทำดัชนีที่คุณใช้ในคำตอบของคุณเพื่อหลีกเลี่ยงความสับสน input -> output 1 …

9
qvolume ของจำนวนเต็ม
It is ancient knowledge that every non-negative integer can be rewritten as the sum of four squared integers. For example the number 1 can be expressed as 02+02+02+1202+02+02+120^2+0^2+0^2+1^2. Or, in general, for any non-negative integer nnn, there exist integers a,b,c,da,b,c,da,b,c,d such that n=a2+b2+c2+d2n=a2+b2+c2+d2n = a^2+b^2+c^2+d^2 Joseph-Louis Lagrange proved this in …

30
ผลรวมของพลังของ 2
ความท้าทาย ได้รับการป้อนข้อมูลจำนวนเต็มxที่กลับผลของผู้มีอำนาจของทั้งสองว่าเมื่อสรุปให้1 <= x <= 255x ตัวอย่าง รับอินพุต: 86 โปรแกรมของคุณควรส่งออก: 64 16 4 2 การป้อนข้อมูล: 240 เอาท์พุท: 128 64 32 16 การป้อนข้อมูล: 1 เอาท์พุท: 1 การป้อนข้อมูล: 64 เอาท์พุท: 64 เอาท์พุทอาจมีค่าศูนย์ถ้ากำลังสองที่ไม่ได้อยู่ในผลรวม ยกตัวอย่างเช่นการป้อนข้อมูลการส่งออกเดือนพฤษภาคม650 64 0 0 0 0 0 1 เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ
31 code-golf  binary  code-golf  sequence  integer  chess  code-golf  number  arithmetic  matrix  code-golf  code-golf  combinatorics  grid  set-partitions  code-golf  array-manipulation  graph-theory  code-golf  number  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  3d  code-challenge  restricted-source  printable-ascii  code-golf  board-game  code-golf  geometry  grid  code-golf  word-puzzle  code-golf  matrix  sorting  code-golf  code-golf  string  decision-problem  code-golf  matrix  cellular-automata  code-golf  decision-problem  code-golf  math  number  arithmetic  restricted-source  code-golf  code-golf  number  integer  matrix  code-golf  date  code-golf  matrix  code-golf  sequence  combinatorics  chemistry  code-golf  array-manipulation  popularity-contest  code-golf  code-golf  natural-language  code-golf  number  integer  sorting  substitution  code-golf  string  number  date  encode  code-golf  decision-problem  code-golf  string  subsequence  code-golf  string  alphabet  code-golf 

3
เซลล์ที่ปลายรุ้ง
เราทุกคนรู้หรืออย่างน้อยก็เคยรู้จักbrainfuckหนึ่งในภาษาลึกลับที่มีชื่อเสียงและมีอิทธิพลมากที่สุด ในขณะที่การใช้งานส่วนใหญ่ใช้เทปที่ไม่มีที่สิ้นสุดคอมไพเลอร์ดั้งเดิมโดย Urban Müllerมีเทปเซลล์ 30000 เซลล์ ความจริงที่รู้จักกันน้อย * คือมีคุณค่าพิเศษจริง ๆ ในตอนท้ายของเทปสิ่งที่แทบไม่เคยมีปฏิสัมพันธ์กับในโปรแกรม brainfuck ทั่วไป ในขณะที่คุณสามารถพิมพ์ค่านี้ด้วย 29999 >s และ a ., brainfuck เป็นที่รู้จักสำหรับการแก้ปัญหาที่สั้นและกระชับดังนั้นเป้าหมายของคุณคือการพิมพ์ค่านี้ด้วยจำนวนอักขระขั้นต่ำ * นิยาย กฎ: ทบทวนคำแนะนำ brainfuck: +/ -: เพิ่ม / ลดเซลล์ปัจจุบันล้อมจาก 255 เป็น 0 เมื่อ 255 เพิ่มขึ้นและกลับกัน </ >: เลื่อนตัวชี้ไปทางซ้าย / ขวาบนเทป .: พิมพ์ค่าของเซลล์ปัจจุบัน [: ข้ามไปที่ตรงกัน]หากค่าที่เซลล์เป็น 0 ]: ข้ามไปที่ตรงกัน[หากค่าในเซลล์ไม่ใช่ 0 …

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