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

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

15
การถดถอยเชิงเส้นบนสตริง
ความท้าทายนี้เป็นเรื่องยากเล็กน้อย แต่ค่อนข้างง่ายให้สตริงs: meta.codegolf.stackexchange.com ใช้ตำแหน่งของตัวละครในสตริงเป็นxพิกัดและค่า ascii เป็นyพิกัด สำหรับสตริงข้างต้นชุดผลลัพธ์ของพิกัดจะเป็น: 0, 109 1, 101 2, 116 3, 97 4, 46 5, 99 6, 111 7, 100 8, 101 9, 103 10,111 11,108 12,102 13,46 14,115 15,116 16,97 17,99 18,107 19,101 20,120 21,99 22,104 23,97 24,110 25,103 26,101 27,46 28,99 29,111 30,109 ถัดไปคุณต้องคำนวณทั้งความชันและจุดตัดแกน y …
25 code-golf  string  math 


7
ลำดับที่ถอดออกได้ไม่ซ้ำกัน
บทนำ พิจารณาลำดับของจำนวนเต็มและเป็นหนึ่งใน subsequences มันบอกว่าA = [4 2 2 4 4 6 5]และB = [2 4 5] เราต้องการลบองค์ประกอบของBจากAตามลำดับและมีหลายวิธีในการทำเช่นนี้: A = 4 2 2 4 4 6 5 B = 2 4 5 -> 4 2 4 6 A = 4 2 2 4 4 6 5 B = 2 4 5 …

2
สัตว์ที่ก้าวร้าว!
อวาตาร์ Downgoat ของฉันมีคุณสมบัติที่แตกต่างหลากหลาย อย่างไรก็ตามคุณสมบัติเหล่านี้ยังสามารถนำไปใช้กับสัตว์อื่น ๆ ได้อีกด้วย สเปค รับภาพสัตว์ (ในทางเทคนิคสามารถเป็นอะไรก็ได้) คุณต้องใช้คุณสมบัติ Downgoat กับมัน พิกเซลขอบคือพิกเซลส่วนใหญ่ด้านนอกของภาพ สีพื้นหลังถูกกำหนดให้เป็นสีที่พบมากที่สุดในพิกเซลชายแดน เมื่อสีนั้นถูกตีความว่าเป็นสี (r, g, b, a) โดยแต่ละช่องจาก [0, 256) พื้นหลังจะถูกกำหนดเป็นพื้นที่ที่ทุกช่องของพิกเซลที่กำหนด 'อยู่ภายใน 50 ของ " สีพื้นหลัง". กระบวนการ: การตั้งค่าพื้นหลังและพิกเซลโปร่งใสทั้งหมดเพื่อ#232323,RGBA(35, 35, 35, 1.00) ตั้งพิกเซลทั้งหมดที่ไม่ได้เป็นพื้นหลังเพื่อ,#FC0D1BRGBA(252, 13, 27, 1.00) สะท้อนภาพในแนวตั้ง เพิ่มข้อความ-1ในแบบอักษร Arial ตรงกลางของรูปภาพ ความสูงรวมของข้อความควรเป็น 25% ของขนาดที่เล็กที่สุดของภาพ (เช่นmin(width, height) * 0.25) กฎระเบียบ สมมติว่าติดตั้งฟอนต์แล้ว …

2
เขียน Palindrome-Polyglot-Quine
เขียน "palipolyquine": โปรแกรมที่เป็นควินที่พูดได้หลายภาษาและpalindrome กฎ: จำนวนภาษาที่พูดได้หลายภาษาเป็นที่ต้องการมากกว่าขนาดรหัส คำตอบที่สั้นที่สุด (เป็นไบต์) ชนะในกรณีที่เสมอกัน พูดได้หลายภาษาและควินกฎดูที่นี่: เขียน Polyquine ตัวอย่างของฉัน (ฉันมีแหล่งเก็บข้อมูลFreaky-Sourcesพร้อมการทดสอบ): C # / Java (1747 ไบต์): /**///\u000A\u002F\u002A using System;//\u002A\u002F class Program{public static void//\u000A\u002F\u002A Main//\u002A\u002Fmain (String[]z){String s="`**?`@#_^using System;?_#^class Program{public static void?@#_^Main?_#main^(String[]z){String s=!$!,t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{!&!!,!&n!,!&&!,!&@!,!&#!,!&_!,!`!,!?!,s};for(i=0;i<9;i++)t=t.?@#_^Replace?_#replace^(!!+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t?@#_^[i];Console.Write?_#.charAt(i);System.out.printf^(t);}}/",t=s;int i;int[]a=new int[]{33,94,38,64,35,95,96,63,36};String[]b=new String[]{"\"","\n","\\","\\u000A","\\u002F","\\u002A","/","//",s};for(i=0;i<9;i++)t=t.//\u000A\u002F\u002A Replace//\u002A\u002Freplace (""+(char)a[i],b[i]);t+='*';for(i=872;i>=0;i--)t=t+t//\u000A\u002F\u002A [i];Console.Write//\u002A\u002F.charAt(i);System.out.printf (t);}}/*/}};)t( ftnirp.tuo.metsyS;)i(tArahc.F200u\A200u\//etirW.elosnoC;]i[ A200u\F200u\A000u\//t+t=t)--i;0=>i;278=i(rof;'*'=+t;)]i[b,]i[a)rahc(+""( ecalperF200u\A200u\//ecalpeR A200u\F200u\A000u\//.t=t)++i;9<i;0=i(rof;}s,"//","/","A200u\\","F200u\\","A000u\\","\\","n\",""\"{][gnirtS wen=b][gnirtS;}63,36,69,59,53,46,83,49,33{][tni wen=a][tni;i …

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 

14
bROKEN cAPSLOCK kEY fIASCO
พนักงานของคุณบางคนมีกุญแจแตกหักและคุณถูกเกินไปที่จะแทนที่พวกเขา ช่วยพวกเขาด้วยการสร้างโปรแกรมที่สั้นที่สุดที่เป็นไปได้เพื่อแก้ไขงานของพวกเขา! เพียงแปลงตัวละครแต่ละตัวในสตริงที่กำหนดจากตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กและในทางกลับกัน ... แต่มีการบิด! คุณตื่นเต้นกับเทศกาลคริสต์มาสมาก! ดังนั้นคุณจะต้องทิ้ง "บั๊ก" ตัวเล็ก ๆ ที่ไม่ได้แก้ไขตัวอักษรที่อยู่ในลำดับของChristmas(ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) อินพุต สำหรับการป้อนข้อมูลคุณจะใช้หนึ่งสตริงเดียว (หรืออาร์เรย์ของไบต์) ที่อาจมีการขึ้นบรรทัดใหม่และ ascii ระหว่าง0x20 และ 0x7e ( - ~) คุณไม่ต้องกังวลกับการขึ้นบรรทัดใหม่หรือตัวละครอื่น ๆ ที่อยู่ในสายอักขระ เอาท์พุต ผลลัพธ์ควรมีเฉพาะสตริงที่มีให้ซึ่งมีอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็กสลับกัน (และข้อบกพร่องคริสต์มาสแน่นอน!) สามารถมีช่องว่างต่อท้ายได้สูงสุดหนึ่งรายการ แมลงคริสต์มาส เรามาอธิบายเรื่องนี้กับตัวอย่าง: Input: i CAN HARDLY WORK LIKE THIS please GET ME A NEW KEYBOARD FOR cHRISTMAS Output: I Can HaRdly …
25 code-golf  string 

21
การแปลง“ 0xUsernames”
0xUsernames มีคนจำนวนมากที่ใช้บริการส่งข้อความที่พวกเขาไม่มีพื้นที่ในการจัดเก็บชื่อผู้ใช้ทั้งหมด! ในการแก้ไขปัญหานี้พวกเขาจะเริ่มจัดเก็บชื่อผู้ใช้เป็นเลขฐานสิบหกหากเป็นไปได้ หากชื่อผู้ใช้ประกอบด้วยอักขระ0123456789ABCDEF( ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) มันสามารถแปลงเป็นเลขฐานสิบหกและเก็บเป็นจำนวนเต็ม ตัวอย่างเช่นชื่อผู้ใช้ba5eba11สามารถตีความได้ว่า0xBA5EBA11เป็นจำนวนเต็มฐานสิบหก แต่เกี่ยวกับ05AB1Eอะไร นั่นคือศูนย์นำที่จะหายไป ดังนั้นเมื่อใดก็ตามที่เราแปลงชื่อผู้ใช้เราต้องแน่ใจว่าได้เติม a 1ก่อนที่จะอ่านมันเป็นจำนวนเต็ม ความท้าทาย งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้ชื่อผู้ใช้ที่ไม่ว่างเปล่าเป็นสตริงชื่อผู้ใช้ 'hexa-compresses': หากสามารถตีความได้ว่าเป็นเลขจำนวนเต็มฐานสิบหกให้เพิ่ม 1 เป็นการตีความว่าเป็นเลขฐานสิบหกจากนั้นพิมพ์ผลลัพธ์เป็นฐาน 10 มิฉะนั้นเพียงส่งคืนสตริงที่ไม่ได้แก้ไข นี่คือโค้ดกอล์ฟดังนั้นทางออกที่สั้นที่สุด (เป็นไบต์) ชนะ! อนุญาตให้ใช้ฟังก์ชันการแปลงฐานในตัว กรณีทดสอบ คุณสามารถสมมติได้ว่าจำนวนเต็มที่เกิดขึ้นนั้นอยู่ในช่วงจำนวนเต็มมาตรฐานของภาษาของคุณ เช่นเดียวกับชื่อผู้ใช้ในระบบการส่งข้อความส่วนใหญ่สตริงอินพุตจะมีตัวอักษรผสมตัวเลขและเครื่องหมายขีดล่างเท่านั้น จำไว้ว่าคุณจะต้องเพิ่มผู้นำ1ก่อนการแปลง! "ba5eba11" -> 7421737489 "05AB1E" -> 17148702 "dec0de" -> 31375582 "Beef" -> 114415 "da7aba5e" -> 7960443486 "500" -> 5376 "DENNIS" -> "DENNIS" "Garth" …

9
Praming Puzles & Colf: กลั่นตัวเป็นสตริง
การใช้เวลาบนไซต์นี้ฉันได้มาสนุกกับสิ่งต่าง ๆ ที่สั้นที่สุด นั่นอาจเป็นเหตุผลว่าทำไมเมื่อเร็ว ๆ นี้ฉันรู้สึกไม่พอใจกับสตริงที่มีตัวละครเดียวกันมากกว่าหนึ่งครั้ง งานของคุณคือการเขียนฟังก์ชั่นหรือโปรแกรมที่ควบแน่นสตริงที่กำหนดตามกฎต่อไปนี้: เริ่มต้นด้วยการควบแน่น 0ซึ่งจะมองหาคู่แรก (ซ้ายสุด) ของอักขระเดียวกันโดยมี 0 อักขระอื่น ๆ อยู่ระหว่างพวกเขา หากพบคู่ดังกล่าวให้ลบหนึ่งในสองตัวอักษรและเริ่มอัลกอริทึมใหม่โดยดำเนินการควบแน่น 0อีกครั้ง หากไม่พบคู่ดังกล่าวให้ทำตามขั้นตอนต่อไป ตัวอย่าง: programming-C0-> programing aabbcc-C0-> abbcc test-C0->test จากนั้นดำเนินการควบแน่นที่ 1ซึ่งจะค้นหาคู่แรกของอักขระเดียวกันโดยมีอักขระอีก 1 ตัวอยู่ระหว่างกัน หากคู่ดังกล่าวจะพบว่าหนึ่งลบของพวกเขาและทุกตัวอักษรระหว่างพวกเขาและเริ่มต้นใหม่กับ0 การควบแน่น หากไม่พบคู่ดังกล่าวให้ทำตามขั้นตอนต่อไป ตัวอย่าง: abacac-C1-> acac java-C1->ja ดำเนินการต่อด้วยการควบแน่น 2 ครั้งและอื่น ๆ จนถึงการควบแน่นแบบnโดยที่nคือความยาวของสตริงเดิมทุกครั้งที่เริ่มการทำงานใหม่หลังจากการควบแน่นได้นำตัวอักษรบางตัวออก ตัวอย่าง: programing-C2-> praming abcdafg-C3->afg สตริงผลลัพธ์ถูกเรียกย่อและมีอักขระแต่ละตัวมากที่สุด การป้อนข้อมูล: สตริงตัวพิมพ์เล็กของอักขระ ASCII ที่พิมพ์ได้ เอาท์พุท: …
25 code-golf  string 

20
วาด ASCIIrisk
มีคำถามมากมายที่เกี่ยวข้องกับรูปร่างการวาดโดยใช้เครื่องหมายดอกจัน - ดังนั้นฉันจึงคิดว่าถ้ามีเครื่องหมายดอกจันจำนวนมากอยู่ที่นั่นเราควรวาดมันโดยใช้ตาราง ASCII ท้าทาย งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ไม่มีการป้อนข้อมูลและส่งออกข้อความที่แน่นอนนี้: ! "# $% &' () *+ ,- ./ 01 23456789:;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[ \]^_ `a bc de fg hi jk lm no pq rs tu vw xy z{ |} ~ สำหรับการอ้างอิงไซต์นี้แสดงรายการตาราง ASCII ที่สมบูรณ์ กฎระเบียบ ผลลัพธ์ควรเป็นข้อความตรงตามที่แสดงด้านบน อนุญาตช่องว่างนำหน้า / ต่อท้าย มีช่องโหว่ของการเล่นกอล์ฟแบบมาตรฐาน - ไม่ต้องอ่าน ASCIIrisk นี้จากอินเทอร์เน็ต ฯลฯ นี่คือรหัสกอล์ฟดังนั้นการแก้ปัญหาที่สั้นที่สุด (เป็นไบต์) …

16
เครื่องคิดเลขปริศนาคริสต์มาสแครกเกอร์
เปิดของขวัญแล้ว พายสับได้ถูกกินแล้ว The Star Wars ได้รับการชม เทศกาลคริสต์มาสเริ่มจะสงบลงแล้ว ถึงตอนนี้คุณอาจดึงแครกเกอร์คริสต์มาสสองสามตัว ถ้าคุณโชคดีแทนของของเล่นพลาสติกปกติไร้ประโยชน์ที่คุณอาจจะได้รับรางวัลลึกลับคำนวณที่คุณสามารถแปลกใจที่เพื่อนและญาติของคุณ เคล็ดลับนี้ประกอบด้วยไพ่ 6 ใบแต่ละใบที่มีตัวเลข 4x8 ตารางพิมพ์อยู่ [1,63]บัตรแต่ละคนมีส่วนย่อยที่แตกต่างกันของจำนวนเต็ม นักมายากลจะขอให้คุณเลือกหมายเลขจากการ์ดใบเดียวและเก็บเป็นความลับหมายเลข นักมายากลจะถามว่าไพ่ใบไหนมีหมายเลขนั้น ด้วยความรู้ดังกล่าวนักมายากลจะสามารถระบุและเปิดเผยตัวเลขที่เดาได้อย่างน่าอัศจรรย์ แสดงผลการ์ดชุดเครื่องคิดเลขปริศนา 6 ชุดดังนี้: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 …

30
ตัวเลขใหญ่: Ultrafactorials
คำถามนี้ถูกทำใหม่แล้วโปรดอ่านใหม่ Ultrafactorials Ultrafactorials เป็นลำดับของตัวเลขที่สามารถสร้างขึ้นได้โดยใช้ฟังก์ชั่นต่อไปนี้: a(n) = n! ^ n! ค่าที่ได้นั้นเพิ่มขึ้นอย่างรวดเร็วมาก หมายเหตุด้านข้าง: นี่คือรายการA046882ใน OEIS ที่เกี่ยวข้องก็คือไฮเปอร์แฟคเทอเรนส์ซึ่งยังคงมีขนาดใหญ่มาก แต่มีลำดับน้อยกว่าเล็กน้อย: A002109 งานของคุณ งานของคุณคือการใช้ตัวเลขเหล่านี้เป็นภาษาของคุณ โปรแกรมของคุณจะคำนวณผลรวมของ ultrafactorials ทั้งหมดตั้งแต่ 0 ถึงรวม n อินพุต โปรแกรมของคุณอาจรับเพียงหนึ่งอินพุต: ตัวเลขซึ่งมีลักษณะคล้ายกับ (n) ultrafactorial ขั้นสุดท้ายที่จะเพิ่มลงในผลรวม อินพุตมั่นใจได้ว่าจะเป็นค่าบวกหรือ 0 เอาท์พุต ผลลัพธ์ของคุณขึ้นอยู่กับคุณตราบใดที่มีผลรวมของตัวเลขที่ปรากฏ กฎระเบียบ คุณสามารถสมมติว่าจำนวนเต็มทั้งหมดดังนั้นป้อนจำนวนเต็มและใช้การนับลูปนับจำนวนเต็มเพื่อสร้างผลลัพธ์บางอย่าง กรณีทดสอบ Input: -1 Output: Any kind of error (because -1! is undefined), or no …

30
จำนวนหลักแฟคทอเรียล
ความท้าทายคือการคำนวณผลรวมหลักของแฟคทอเรียลของตัวเลข ตัวอย่าง Input: 10 Output: 27 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 และผลรวมของตัวเลขในหมายเลข 10! คือ 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 คุณสามารถคาดหวังว่าอินพุตเป็นจำนวนเต็มมากกว่า 0 เอาต์พุตสามารถเป็นประเภทใดก็ได้ แต่คำตอบควรอยู่ในฐานมาตรฐานของภาษาการเข้ารหัส กรณีทดสอบ: 10 27 19 45 469 4140 …

9
HexaGolf: Wordagons
ดูเพิ่มเติม: Rotatagons ท้าทาย รับสตริงเป็นอินพุตเอาต์พุต wordagon Wordagons รูปหกเหลี่ยมเป็นวิธีการแสดงสตริงในรูปหกเหลี่ยม ตอนนี้เรามาสร้าง wordagon จาก string hexa: ประการแรกคุณเริ่มต้นด้วยอักขระตัวแรกในสตริงที่วางไว้ตรงกลาง: h จากนั้นคุณใช้อักขระตัวถัดไปในสตริงและเพิ่มเลเยอร์หกเหลี่ยม: e e e h e e e จากนั้นเพิ่มเลเยอร์ถัดไป: x x x x e e x x e h e x x e e x x x x ในที่สุดเพิ่มเลเยอร์สุดท้าย: a a a a a x x …

30
ได้เวลาท้าทายนาฬิกาแล้ว!
ฉันต้องการให้คุณสร้างนาฬิกาที่แสดงเวลาในรูปแบบนี้: 18 ---------- 19 -------------------------------------------------- แสดง '18: 10 ' ชั่วโมงปัจจุบันและชั่วโมงถัดไปจะปรากฏขึ้นที่ด้านหน้าของบรรทัดตามด้วยช่องว่างและจำนวนขีดกลาง: ในบรรทัดแรกจำนวนนาทีที่ผ่านไปในชั่วโมงนี้และบรรทัดที่สองแสดงจำนวนนาทีที่มากขึ้น ที่จะไปในชั่วโมงนี้ เพื่อชี้แจง นาฬิกาควรแสดงเวลาของระบบ หากการดึงเวลาจากแหล่งอื่นสะดวกกว่าก็ทำได้เช่นกัน มันอาจจะไม่ได้จะมาเป็น input ที่18:00บรรทัดบนสุดเป็นเพียง18(อนุญาตให้ใช้ช่องว่างต่อท้าย แต่ไม่จำเป็น) ที่18:59บรรทัดล่างคือ19 - ชั่วโมง <10 มีการบุด้วยล่วงหน้า0( 01 -----) หรือจัดชิดขวา ( 1 -----) ไม่อนุญาตให้ใช้ตัวเลขหลักเดียวชิดซ้ายแม้ว่าเครื่องหมายขีดกลางจะเริ่มต้นที่ถูกต้อง ( 1 -----ไม่ถูกต้อง) นาฬิกาควรแสดงชั่วโมงในรูปแบบ 24 ชั่วโมง แม้ว่ามันจะเรียกว่ารูปแบบ 24 ชั่วโมง แต่จริงๆแล้ว24มันไม่ได้อยู่ในนั้น ในช่วงชั่วโมง 23 บรรทัดที่สองเริ่มต้นด้วยหรือ00 0 จอแสดงผลจำเป็นต้องได้รับการอัพเดตอย่างน้อยหนึ่งครั้งต่อนาที แต่ไม่จำเป็นต้องเกิดขึ้นใน00เวลาไม่กี่วินาที คุณสามารถอัปเดตบ่อยครั้ง / อย่างต่อเนื่องหากสะดวกกว่า …

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