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

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

3
ทำลายพวกเขาด้วย Lazers
บทนำ ที่เกิดเหตุเป็นที่ราบที่มีตึกระฟ้าสูงซึ่งศัตรูของคุณใช้เป็นที่กำบัง คุณและศัตรูของคุณยิงกันด้วยเลเซอร์ พวกคุณทุกคนพกชุดเจ็ทเพื่อให้สามารถบินได้ ศัตรูตัวไหนที่คุณสามารถยิงด้วยเลเซอร์และที่ซ่อนอยู่? ปัญหา ก่อนขนาดของเวทีที่ได้รับจากจำนวนเต็มnในบรรทัดเดียว nบรรทัดต่อไปนี้มีnจำนวนเต็มต่อบรรทัดคั่นด้วยช่องว่าง จำนวนเต็มแต่ละตัวแทนความสูงของสิ่งปลูกสร้างในตำแหน่งนั้น อาคารแต่ละหลังเป็นรูปสี่เหลี่ยมผืนผ้าที่เป็นของแข็ง 1 หน่วยต่อ 1 หน่วยโดยหน่วยความสูง ถัดไปสถานที่ของคุณจะได้รับในบรรทัดเดียวสามตัวเลขทศนิยมx, ,yz ในที่สุดจำนวนศัตรูจะได้รับจากจำนวนเต็มmในบรรทัดเดียว mบรรทัดต่อไปนี้มีหมายเลขทศนิยมสามตัวต่อบรรทัดคั่นด้วยช่องว่าง เหล่านี้เป็นตัวแทน x, yและzพิกัดของศัตรู ระบบพิกัดถูกกำหนดไว้ดังนี้: x วัดจากซ้ายไปขวาในอินพุตของเมือง y วัดจากบนลงล่าง z วัดจากพื้นดินขึ้น สำหรับศัตรูแต่ละตัวหากสามารถลากเส้นที่ไม่มีสิ่งกีดขวางจากคุณไปยังศัตรูนั้นให้ส่งออกจำนวนเต็มบวก มิฉะนั้นส่งออกจำนวนเต็มลบ แยกเอาต์พุตด้วยบรรทัดใหม่ ตัวอย่างอินพุต มีการแสดงความคิดเห็นซึ่งแสดงโดย '#' เพื่อช่วยให้คุณเห็นได้อย่างรวดเร็วว่าแต่ละบรรทัดทำอะไร พวกเขาจะไม่ปรากฏในการป้อนข้อมูลจริง 5 # Size of the map 0 0 0 0 0 # Buildings 0 …
21 code-golf 

6
ค้นหานายกที่บอบบางที่สุด
พิจารณาฟังก์ชั่นRemove(n, startIndex, count)ที่เอาcountตัวเลขจากหมายเลขที่เริ่มต้นจากหลักที่ตำแหน่งn startIndexตัวอย่าง: Remove(1234, 1, 1) = 234 Remove(123456, 2, 3) = 156 Remove(1507, 1, 2) = 07 = 7 Remove(1234, 1, 4) = 0 เราจะเรียกหมายเลขเฉพาะ X ที่เปราะบางหากRemoveการดำเนินการที่เป็นไปได้ทั้งหมดทำให้ไม่สำคัญ ตัวอย่างเช่น 80651 เป็นช่วงเวลาที่บอบบางเพราะตัวเลขทั้งหมดต่อไปนี้ไม่ได้เป็นจำนวนเฉพาะ: 651, 51, 1, 0, 8651, 851, 81, 8, 8051, 801, 80, 8061, 806, 8065 เป้าหมาย เขียนโปรแกรมที่ค้นหานายกที่บอบบางที่สุด แก้ไข:นำการ จำกัด …

3
การท้าทายรหัส Star-Spangled
ธงของสหรัฐอเมริกาประกอบด้วยใน 50 ดาวของมันเป็นตัวแทนของ 50 รัฐ ในอดีตเมื่อมีรัฐน้อยกว่ามีดาวน้อยกว่าแน่นอนและมีการจัดเรียงต่างกัน ตัวอย่างเช่นตั้งแต่ปี 1912-2502 (หลังเข้านิวเม็กซิโกและแอริโซนา แต่ก่อนถึงอลาสก้า) มีดาว 48 ดวงในรูปสี่เหลี่ยมผืนผ้า 6 × 8 สี่เหลี่ยม ธง 37 ดาวที่ใช้จาก 1867-1877 (หลังจากเข้าเนบราสก้า แต่ก่อนโคโลราโด) มีรูปแบบดาวไม่สมมาตร ในกรณีที่มีการเพิ่มรัฐที่ 51ในอนาคตสถาบันทหารบกได้พัฒนารูปแบบเบื้องต้นสำหรับธงใหม่แล้ว แต่ไม่มีอัลกอริทึมทั่วไปสำหรับการจัดเรียงดาวดังนั้นลองมาสร้างมันกัน! ความท้าทาย เขียนโปรแกรมที่จะกำหนดจำนวนดาวที่ต้องการในแคนตัน (ส่วนสีน้ำเงิน) ของธงสหรัฐอเมริกาออกพิกัดที่เหมาะสมที่สุดเพื่อวางดาวเหล่านั้น ระบบพิกัดถูกกำหนดด้วยตำบล [ ไม่ใช่ธงทั้งหมด] ด้วย0≤x≤Wและ0≤y≤H สำหรับจุดประสงค์ของการท้าทายนี้การจัดเรียง "ดีที่สุด" ถูกกำหนดให้เป็นหนึ่งเดียวที่ช่วยลดระยะห่างเฉลี่ย (Euclidean) ระหว่างจุดหนึ่งในมณฑลและศูนย์กลางของดาวที่ใกล้ที่สุด อัลกอริทึมที่ตรงไปตรงมา (ถ้าอาจจะไม่ดี) เพื่อประมาณค่านี้คือ: def mean_distance_to_nearest_star(stars, width, height, point_density=100): """ Approximate …

10
เคล็ดลับการเล่นกอล์ฟในลัวะ
คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Lua ฉันกำลังมองหาความคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะ Lua (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
21 code-golf  tips  lua 

18
ค้นหาตัวเลขที่ใกล้ที่สุดในอาร์เรย์ที่กำหนด
นี่คือแรงบันดาลใจจากปัญหาโลกแห่งความจริงที่ฉันมี ฉันอยากรู้ว่ามีวิธีที่ฉลาดที่จะไปเกี่ยวกับเรื่องนี้ คุณจะได้รับอาร์เรย์สองอันที่ไม่เรียงลำดับคือ A และ B แต่ละอันมีจำนวนลอยโดยพลการ A และ B ไม่จำเป็นต้องมีความยาวเท่ากัน เขียนฟังก์ชันที่ใช้องค์ประกอบของ A ตามลำดับและค้นหาค่าที่ใกล้ที่สุดในอาร์เรย์ B ผลลัพธ์จะต้องมีอยู่ในอาร์เรย์ใหม่ เงื่อนไขการชนะ รหัสที่สั้นที่สุดชนะ (ตามปกติ)

16
โทรศัพท์การสะกดคำแบบหลายแทป
แรงบันดาลใจจากGoogle Code Challenge : ตัวอักษรละตินมี 26 ตัวอักษรและโทรศัพท์มีเพียงสิบหลักบนปุ่มกด เราต้องการทำให้การเขียนข้อความถึงเพื่อนของคุณง่ายขึ้นโดยใช้ปุ่มกดลำดับเพื่อระบุอักขระที่ต้องการ ตัวอักษรจะถูกแมปไปยังตัวเลขที่แสดงด้านล่าง ในการแทรกตัวอักษร B เช่นโปรแกรมจะกด 22 เพื่อที่จะแทรกอักขระสองตัวตามลำดับจากคีย์เดียวกันผู้ใช้จะต้องหยุดก่อนที่จะกดปุ่มครั้งที่สอง ควรพิมพ์อักขระเว้นวรรค '' เพื่อระบุการหยุดชั่วคราว ตัวอย่างเช่น 2 2 หมายถึง AA ในขณะที่ 22 หมายถึง B แต่ละข้อความจะประกอบด้วยอักขระตัวพิมพ์เล็กเท่านั้น az และอักขระเว้นวรรค '' การกดศูนย์จะปล่อยช่องว่าง ความท้าทายของคุณคือการเขียนฟังก์ชั่นที่เล็กที่สุดซึ่งรับสตริงป้อนเข้าและส่งกลับลำดับของการกดปุ่มที่จำเป็นในการสร้างอินพุตเป็นสตริงหรือส่งออกไปยัง stdout ฟังก์ชั่นซึ่งเป็นจำนวนน้อยที่สุดของไบต์ชนะ ตัวอย่างอินพุต / เอาท์พุต phone("hi") 44 444 phone("hello world") 4433555 555666096667775553 คำชี้แจงอื่น ๆ ต้องเพิ่มหยุดชั่วคราวเมื่อจำเป็นเท่านั้นและต้องเว้นวรรค '' แต่ละข้อความจะประกอบด้วยอักขระตัวพิมพ์เล็กเท่านั้นaz และอักขระเว้นวรรค …
21 code-golf 

30
สลับลำดับบิตของจำนวนเต็ม 32 บิต
เขียนรหัสที่สั้นที่สุดเพื่อกลับลำดับบิตของจำนวนเต็ม 32 บิต กฎ: การป้อนข้อมูลจะถือว่าเป็นจำนวนเต็มหรือสตริงที่ถูกต้องหากภาษาของคุณไม่รองรับค่าตัวเลข (เช่น Windows Batch) ผลลัพธ์จะต้องเป็นจำนวนเต็มหรือสตริงที่ถูกต้องหากภาษาของคุณไม่รองรับค่าตัวเลข (เช่น Windows Batch) ไลบรารีมาตรฐานเท่านั้น มันอาจจะเป็นฟังก์ชั่นหรือโปรแกรมที่สมบูรณ์ อินพุตอาจมาจากstdinหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน เอาต์พุตต้องเป็นอย่างใดอย่างหนึ่งstdoutหรือเป็นค่าที่ส่งคืน หากภาษาของคุณมีฟังก์ชันไลบรารีในตัวหรือมาตรฐานที่ทำสิ่งนี้ในขั้นตอนเดียว (เช่นrbitในชุดประกอบ ARM) จะไม่สามารถใช้งานได้ ตัวอย่าง: สำคัญ: ทศนิยม เลขฐานสอง (ย้อนกลับ) ย้อนกลับไบนารี เอาต์พุตทศนิยม ตัวอย่าง: -90 (ตัวอย่าง 8 บิตสำหรับการสาธิต) 10100110b (ย้อนกลับ) 01100101b 101 486 00000000000000000000000111100110b (ย้อนกลับ) 01100111100000000000000000000000b 1736441856 -984802906 11000101010011010001100110100110b (ย้อนกลับ) 01100101100110001011001010100011b 1704506019 หมายเหตุ: การละเว้นเป็นเกมฟรี ถ้าฉันไม่ได้บอกว่ามันไม่ใช่ช่องโหว่มาตรฐานมันก็อนุญาตอย่างสมบูรณ์

25
วาดรูปหลายเหลี่ยมปกติ
เป้าหมายของการเล่นกอล์ฟรหัสนี้คือการวาดรูปหลายเหลี่ยมปกติ (หนึ่งที่มีความยาวด้านเท่ากัน) กำหนดจำนวนของด้านและรัศมี (ระยะทางจากศูนย์ถึงจุดสุดยอด) จำนวนของด้านและรัศมีสามารถป้อนผ่านไฟล์, STDIN หรือเพียงแค่ตัวแปรเก่าธรรมดา ใช้สิ่งที่สั้นกว่าในภาษาของคุณ -25% ของจำนวนอักขระ / ไบต์ทั้งหมดหากวาดภาพจริง ๆ แล้วแทนที่จะเป็น ASCII art

5
ที่นั่นเธอพัด!
Arrr ... Ahoy ฉัน maties! คลายท่อระบายน้ำของท่า! เต็มไปทางกราบขวา! อา, รู้สึกถึงลมในเส้นผมของคุณ! ใช่ฉันได้ยิน ... ฉันต้องการทักษะเล็ก ๆ น้อย ๆ ของผู้เล่นโค! ลูกเรือของฉันเป็นคนทันสมัยกว่าตัวเอง ... ฉันยังคงเป็นเข็มทิศของจุดที่ 'ชอบ' (ดูที่นี่สำหรับข้อมูลเพิ่มเติม Arrr ... ) ในขณะที่ทีมงานของฉันมักจะเป็นหัวหน้าของ .. ฉันอยากจะเป็นวิธีที่ง่ายในการแปลงร่างเป็น twaddle พวกเขาเรียก headin ว่าเป็นสิ่งที่ฉันเข้าใจได้ Arrr! สิ่งที่ฉันต้องการคือ 'code tha' be takin 'การป้อนตัวเลข (ทศนิยมไม่เป็นไร) tha เช่นนั้น' 0 <= the headin' < 360และมันจะ spittin 'out th' …
21 code-golf  math 

11
นิพจน์ทั่วไปที่จับคู่ข้ามกัน
งานของคุณที่นี่คือการเขียนนิพจน์ทั่วไปสองนิพจน์ซึ่งแต่ละรายการจะตรงกับอีกนิพจน์ แต่ไม่ตรงกับตัวเอง ทั้งนิพจน์ทั่วไปควรมีแบบฟอร์มนี้: /pattern/optional-flags นี่เป็นรูปแบบที่ควรจับคู่ ทางออกที่สั้นที่สุดชนะ ความยาวโซลูชันจะนับเป็นผลรวมของอักขระในนิพจน์ทั่วไปรวมทั้งเครื่องหมายทับและแฟล็ก ใช้มาตรฐานไวยากรณ์ regex ที่คุณเลือกหรือระบุภาษาการเขียนโปรแกรมเมื่อสร้างความแตกต่าง มีความสุข!

21
สวัสดีชาวโลก!!! การกระจาย Fibonacci
โปรแกรมของคุณควรแสดงผลอย่างถูกต้อง: Hello world!!!มีหรือไม่มี linefeed หลังจาก โปรแกรมของคุณไม่ควรป้อนข้อมูลใด ๆ การแจกจ่ายอักขระซอร์สโค้ดต้องถูกต้องตาม: จำนวนอักขระที่เป็นตัวเลข (0-9) จะต้องเป็นลำดับหมายเลขฟีโบนักชีอย่างแน่นอน จำนวนของอักขระที่ไม่ใช่ตัวเลขอื่น ๆ ! (0-9) ในซอร์สโค้ดจะต้องตรงกับหมายเลขลำดับฟีโบนักชีก่อนหมายเลขลำดับฟีโบนักชีข้างต้นทั้งหมด สี่ตัวอย่างของการกระจายตัวอักขระที่ถูกต้องในซอร์สโค้ด: 13 ตัวเลข, 8 อักขระที่ไม่ใช่ตัวเลข 34 ตัวเลข, 21 อักขระที่ไม่ใช่ตัวเลข ตัวเลข 55 ตัว, อักขระที่ไม่ใช่ตัวเลข 34 ตัว ตัวเลข 89 ตัวอักขระที่ไม่ใช่ตัวเลข 55 ตัว นี่คือ code-golf รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! โชคดี! แก้ไข: เนื่องจากคำถามนี้มีข้อ จำกัด เกี่ยวกับขนาดซอร์สโค้ดประกอบกับการเป็น code-golf คำตอบที่ยอมรับได้ (หากมีมากกว่าหนึ่งตัวอักษรที่มีความยาวอักขระที่ชนะเท่ากัน) จะเป็นคำตอบที่ได้รับคะแนนโหวตมากที่สุด 03-01

6
ทำให้ Matrix Digital Rain ใช้รหัสที่สั้นที่สุด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา กฎ: ภาษาใด ๆ ที่คุณเลือก (ไลบรารีมาตรฐาน) เอาต์พุตที่แสดงในTerminalหรือWindows Command Processorหรือวิธีอื่นใดที่คุณต้องการ (ความกว้างบัฟเฟอร์ = 80) อักขระ ASCIIนั้นเพียงพอ (อาจเพิ่ม Unicode) ไม่ควรเติมเต็มทั้งหน้าจอเมื่อเริ่มต้นใช้งาน (ควรมีลักษณะเหมือนสายฝน! สีจะได้รับคะแนนโบนัส (+5) ผลกระทบ : ตัวอักษรสุ่มขนาดตกแตกต่างกันสร้างเป็นระยะ คะแนน: (อัปเดต) +32คะแนนที่จะเริ่มต้นด้วย -1จุดสำหรับทุกไบต์(ไม่ใช่ตัวอักษร)ในรหัสหลัง ** 1024 *** th * ไบต์ คะแนนอาจถึงศูนย์และลบ หมายเหตุ:ภาษาที่ใช้อักขระหลายไบต์ควรนับไบต์ไม่ใช่ตัวอักษร +5สำหรับเอฟเฟกต์ใหม่ทุกครั้ง (ไม่โพสต์โดยคนอื่น) +15สำหรับเอฟเฟกต์เหล่านี้: ลม (พัดอักขระไปด้านข้าง) …

13
เคล็ดลับการตีกอล์ฟใน F #
คุณมีเคล็ดลับทั่วไปเกี่ยวกับการเล่นกอล์ฟใน F # อย่างไร ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ F # (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
21 code-golf  tips  f# 

3
สี่ปริศนาสี่
The Four fours puzzleเป็นเกมปริศนาทางคณิตศาสตร์ที่ได้รับความนิยมซึ่งเกี่ยวข้องกับการใช้ 4s 4 ตัว (และไม่มีหมายเลขอื่น) และชุดการดำเนินการที่กำหนดไว้เพื่อเข้าถึงทุกหมายเลขตั้งแต่ 0 ถึงสูงสุดที่กำหนด ในรุ่นนี้อนุญาตให้ดำเนินการต่อไปนี้เท่านั้น: สัญลักษณ์การจัดกลุ่มใด ๆ อาจถูกนำมาใช้ การบวก ( +), การลบ ( -), การคูณ ( *), ส่วน ( /) แฟกทอเรียล ( !) ฟังก์ชันแกมมา ( Γ) การยกกำลัง ( ^), รากที่สอง ( √) การต่อข้อมูล (เช่น. 44คือสองวิ4) จุดทศนิยม (เช่น. 4.4คือสอง4s), Overbar (เช่น. .4~ = 4/9) …

4
ทำให้ฉันเป็นแซนวิช
ถาม: เขียนไฟล์ซึ่งจะนำไปสู่พฤติกรรมนี้: % make me a sandwich What? Make it yourself % sudo make me a sandwich Okay กฎ: ควรจะทำงานบนเครื่อง Linux ที่ผู้ใช้ไม่ได้เป็นราก sudoแต่ได้รับอนุญาตให้ใช้งาน ต้องไม่พูดOkayกับคำสั่ง make ที่สั้นกว่า (เช่นsudo make sandwich) คำสั่งที่สองควรทำงานเนื่องจาก sudoได้เนื่องจากไม่ใช่เป็นที่สอง แนวทาง: ทำให้สั้น (หลังจากทั้งหมดเป็นเว็บไซต์ Code Golf) มันคงจะดีถ้ามันทำแซนด์วิชจริงๆ พยายามซ่อนอย่างชาญฉลาดว่าทำไมsudoสร้างความแตกต่าง ผู้ชนะจะได้รับการตัดสินด้วยคะแนนเสียง

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