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

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

6
คำนวณเอ็กซ์โปเนนต์ทีละบิต
งานของคุณคือการคำนวณการยกกำลังช้าด้วยขั้นตอนต่อไปนี้: ให้สองอินพุต (ในตัวอย่างนี้ 4 และ 8) คุณต้องคำนวณการยกกำลังโดยคำนวณสมการทีละบิต คุณจะทำได้4^8มีค่าฐานที่มากกว่า (4) และเลขชี้กำลังขนาดเล็ก (8) คุณสามารถทำได้โดยใช้การยกกำลังและการหาร คุณสามารถแบ่งสัญลักษณ์โดยค่าX (ให้Xเป็นตัวหารที่สำคัญของสัญลักษณ์) และทำให้ค่าฐาน ( B ) B^Xลง ตัวอย่างเช่นคุณสามารถ: 4^8 = (4 ^ 2)^(8 / 2) = 16^4 ฉันได้แทนที่Xด้วย 2 ในสมการก่อนหน้า คุณสามารถ 'ลดความซับซ้อน' 16^4เพิ่มเติมอีกครั้งด้วยX = 2: 16^4 = (16 ^ 2)^(4 / 2) = 256^2 จากนั้นในที่สุดก็คำนวณตัวเลข (อีกครั้งX = 2): …

12
พิซซ่าพิซซ่าพิซซ่าจานลึก!
5 เมษายนเป็นวันแห่งชาติ Deep DIsh Pizza Day ธีมของความท้าทายนี้ รับจำนวนเต็มบวกn( nมากกว่า 0) สร้างพิซซ่าจานลึก ASCII แสดงพิซซ่าจานลึกจริง: อย่างที่คุณเห็นมีชั้นของเปลือกโลกอยู่ด้านล่างและล้อมรอบส่วนที่เหลือของพิซซ่า วิธีทำพิซซ่า เปลือกโลกทำจากสองชั้น ชั้นแรกจะnสูงและn*3ยาว ความยาวคือจำนวนอักขระ (รวมช่องว่าง) ในบรรทัดสูงสุด เมื่อได้รับnคือ 1 เลเยอร์แรกจะเป็นดังนี้: \_/ 1 character tall 3 characters long ถ้าnเป็นสอง: \ / 2 characters tall \__/ 6 characters long ทีนี้สำหรับชั้นที่สองของเปลือกโลก มันจะออกไปข้างนอกเปลือกโลกชั้นแรกดังนั้นมันจะn+2สูง(n*3)+6)ตัวอักษรและยาวตัว รับnเป็นหนึ่ง: \ / 3 characters tall \ / …

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

13
ส่งคืนดัชนีเพื่อนบ้านในตาราง 3x3
เอาล่ะความพยายามครั้งที่สองของฉันในการตีกอล์ฟเรามาดูกันว่ามันจะเป็นอย่างไร ทำท่าว่าคุณมีอาร์เรย์ 9 ค่า ทีนี้ลองนึกภาพอาร์เรย์นั้นในตาราง 3x3 คุณต้องคืนค่าเพื่อนบ้านที่มีดัชนีของอาร์เรย์ 0 | 1 | 2 3 | 4 | 5 6 | 7 | 8 กฎ: มันเป็นรหัสกอล์ฟคำตอบที่สั้นที่สุดจึงชนะ ดัชนีของอาร์เรย์ที่ทำเป็นว่าสามารถเริ่มต้นที่ 0 หรือ 1 (ตัวอย่างทั้งหมดใช้ 0 แม้ว่า) เพียงแค่คืนค่าค่า frowned เมื่อ (เช่นif 3: return 046) การส่งสามารถเป็นเพียงขั้นตอน / ฟังก์ชั่น / วิธี แต่ตัวอย่างจะดี ค่าที่ส่งคืนสามารถอยู่ในลำดับใดก็ได้ (เช่นถ้าอินพุทเป็น 0 มันอาจเป็น 13 หรือ …
11 code-golf  grid 

18
จัดเรียงและใช้ Deltas ของ Array อีกครั้ง
มันดูเหมือนว่าใด ๆที่เรียบง่าย การปรับเปลี่ยนของสันดอนโดยใช้ฟังก์ชั่นที่สอดคล้องกันมักจะสามารถทำได้อื่น ๆสั้น ทาง , เดนนิส ดังนั้นทางออกเดียวที่ฉันจินตนาการได้ว่าจะทำให้ยากขึ้นคือการแนะนำฟังก์ชั่นบางอย่างที่ไม่สอดคล้องกัน การเรียงลำดับ งานของคุณคือการใช้อาร์เรย์ของจำนวนเต็มเรียงลำดับเดลตาของพวกเขาและคอมไพล์ใหม่เพื่อให้อาร์เรย์ของจำนวนเต็มใหม่ เช่น. สำหรับอินพุต: 1 5 -3 2 9 รับ Deltas ต่อไปนี้: 4 -8 5 7 จากนั้นจัดเรียงเดลตาเหล่านี้ให้ผล: -8 4 5 7 และนำไปใช้ใหม่ซึ่งให้: 1 -7 -3 2 9 Input / Output คุณจะได้รับรายการ / อาร์เรย์ / ตาราง / tuple / stack / etc จำนวนเต็มที่ลงนามเป็น …

5
เคล็ดลับการเล่นกอล์ฟใน Underload
underloadเป็นกองตาม tarpit กึ่งการทำงานที่สร้างขึ้นโดยais523 เมื่อไม่นานมานี้ฉันพยายามเล่นกอล์ฟเพราะมันเป็นภาษาที่งดงามอย่างน่าประหลาดใจ คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Underload? (หนึ่งเคล็ดลับต่อคำตอบ)

9
คำนวณคะแนน ELO ที่คาดหวังคะแนน
งานของคุณคือการคำนวณโอกาสที่คาดว่าจะชนะสำหรับ 2 ผู้เล่นในบางเกมแต่ละคนมีของตัวเองELO การให้คะแนน ผู้เล่น A มี ELO R aและผู้เล่น B มี ELO R b คะแนนที่คาดหวังสำหรับผู้เล่น A (E a ) คือ: 1 / (1 + 10 (R b - R a ) / 400 ) มีสมการที่คล้ายกันสำหรับผู้เล่น B (E b ): 1 / (1 + 10 (R a - R b …
11 code-golf  math 

8
เคล็ดลับสำหรับการเล่นกอล์ฟใน SmileBASIC
SmileBASICสมควรได้รับความสนใจมากขึ้น ฉันเห็นผู้ใช้ 3 คนที่นี่เท่านั้น (รวมถึงตัวฉันด้วย!) ที่ให้คำตอบ SB และในขณะที่ไม่ได้ทำให้ฉันแปลกใจ แต่ก็ทำให้ฉันผิดหวัง มันเป็นภาษาที่ได้รับค่าตอบแทนรวมทั้งภาษาของภาษาเบสิกจะทำให้ผู้คนแตกต่างออกไปอย่างแน่นอน แต่สำหรับคนที่เป็นเจ้าของแล้วมันมีความยืดหยุ่นและน่าแปลกใจที่สามารถเล่นกอล์ฟได้ ฉันคิดว่าฉันเปิดกระทู้เคล็ดลับสำหรับมันและดูว่าเกิดอะไรขึ้น ฉันคาดว่า 12Me21 จะไปเยี่ยมบ่อย ๆ :)
11 code-golf  tips  basic 

1
ช่วยเบ ธ หนีทะเลทราย
ในขณะที่คล้ายกับปริศนาการถือน้ำอื่น ๆลักษณะเฉพาะของการท้าทายนี้ทำให้แตกต่างอย่างสิ้นเชิง เบ ธ ตั้งอยู่ที่โอเอซิสกลางทะเลทราย มีทะเลสาบมากมายในน้ำ แต่โชคไม่ดีที่มีเพียงถัง X เท่านั้นแต่ละแห่งมีความจุน้ำ Y ลิตร เบ ธ สามารถถือถัง 2 ใบในมือของเธอ แต่เพื่อความอยู่รอดเธอต้องดื่ม 1 ลิตรทุก ๆ กิโลเมตรหลังจากเดินทาง นอกจากนี้เธอยังสามารถทิ้งถังไว้ครึ่งทาง (น้ำไม่ระเหย) ความท้าทาย คิดสูตรและเขียนคำตอบสั้น ๆที่จะทำงานกับค่าจำนวนเต็มบวกของ X และ Y และคำนวณระยะทางสูงสุดที่เบ ธ สามารถเดินทางจากโอเอซิส อนุญาตให้ย้ายน้ำระหว่างถังได้ ตัวอย่าง X = 3, Y = 5 เบ ธ ออกจากถังเต็ม 1 ถังห่างจากโอเอซิส 3 กิโลเมตรกลับมาอีกครั้ง (ดื่มครั้งสุดท้ายจากโอเอซิส) เบ ธ …

1
ทำซูชิให้ฉัน
ถึงเวลาอาหารกลางวันฉันหิวและฉันมาที่ Sushi Bar ของคุณ คุณเป็นพ่อครัวซูชิและคุณต้องจัดทำโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบเพื่อทำให้ฉันได้ทานซูชิ! เครดิต: Wikipedia ข้อสงวนสิทธิ์: รูปภาพนี้ใช้เพื่อเป็นภาพประกอบเท่านั้นและไม่จำเป็นต้องแสดงถึงผลิตภัณฑ์ที่แน่นอน แม้ว่าคุณจะมีส่วนผสม จำกัด (เนื่องจากคนขับรถบรรทุกหยุดงาน) มันก็ดีสำหรับฉัน ส่วนผสมที่คุณมี (ในปริมาณมาก) คือ: สาหร่ายโนริ (ทำด้วย: \/_¯|) ปลาทูน่าดิบ ( T) แซลมอนดิบ ( S) อะโวคาโดดิบ ( A) ข้าวซูชิ ( o) ด้วยส่วนผสมเหล่านี้คุณสามารถทำมากิที่ดีให้กับลูกค้าของคุณ คำสั่งซื้อขั้นต่ำของคุณคือ $ 1 สำหรับ 2 มากิสคุณสร้างมากิสเป็นคู่เท่านั้นและยอมรับเฉพาะจำนวนเต็มเป็นการชำระเงิน คุณยอมรับคำสั่งซื้อมากถึง $ 50 ต่อคน (การป้อนข้อมูลโดยรวม) เพราะคุณอยู่คนเดียวและคุณต้องตอบสนองลูกค้าทุกคน คุณจะต้องรับคำสั่งซื้อของลูกค้าจากอินพุตมาตรฐานในรูปแบบที่เหมาะสมตัวอย่างเช่น: [1,T],[2,S],[3,A]ซึ่งหมายความว่าคุณต้องแสดงผล: ปลาทูน่าสองตัว ปลาแซลมอนสี่ตัว Six Avocado …

11
สปริงสตริง
Sandbox โพสต์ที่นี่ สร้างฟังก์ชั่นหรือโปรแกรมที่ "สตริง" สปริง อินพุตจะเป็นสตริงใน Stdin หรือเป็นทางเลือกที่ใกล้เคียงที่สุด ข้อมูลที่ป้อนจะมีเฉพาะ ASCII ที่พิมพ์ได้และ / หรือช่องว่าง เอาต์พุตจะเป็น Stdout หรือเป็นทางเลือกที่ใกล้เคียงที่สุด ขึ้นบรรทัดใหม่และช่องว่างต่อท้ายเป็นที่ยอมรับ วิธีการทำให้สตริงเป็นสปริง จัดรูปแบบ String ให้เป็นคอยล์สปริง ASCII ได้มากเท่าที่ต้องการ ผัดคอยส์ด้วยช่องว่างจนถึงขดลวดที่ใกล้ที่สุด อ่านตัวอักษรตามสปริงรอบ ๆ ขดลวด นี่คือคอยล์สปริง ASCII: # # #### # # # #### # โดยที่#s เป็นตัวอักษรของ String นี่คือตัวอย่าง: abcdefghijklmnopqrstuvwxyz กลายเป็น a b cdef g h i jklm …
11 code-golf  string 

9
Fizz Buzz .. เสียงแตกป๊อป! (Fizz Buzz ทั่วไป)
เราทุกคนเคยได้ยินปัญหา ol Fizz Buzz แล้ว แต่จะเกิดอะไรขึ้นเมื่อคุณพยายามใช้กับปัจจัยอื่น ๆ Fizz Buzz Crackle Pop! ความท้าทาย เขียนโปรแกรมเต็มรูปแบบที่รับอินพุตจำนวนเต็มnจากนั้น n tuples ที่มีจำนวนเต็มและสตริงจากนั้นเป็นจำนวนเต็มอื่น (> 1) k ดังเช่น: n int1 str1 int2 str2 (...) intn strn k คุณสามารถใช้บรรทัดนี้จากบรรทัดคำสั่งหรือ STDIN แล้วสำหรับจำนวนเต็มทั้งหมด 1 ถึง k ถ้ามันเป็นหารด้วยใด ๆ ของint1 , int2 ... intnผลผลิตทั้งหมดที่สอดคล้องSTR s เพื่อการป้อนข้อมูลตามด้วยการขึ้นบรรทัดใหม่ หากไม่ใช่ให้ส่งออกจำนวนเต็มตามด้วย newline ตัวอย่างเช่นกับอินพุต 3 2 Fizz …
11 code-golf 

6
การแปลงตัวเลขให้เป็น "ระบบค่าที่ไม่คุ้มค่า"
ให้สร้างระบบของตัวเลขที่ตัวเลขที่ใหญ่ที่สุดในค่าที่ n (นับจากขวาไปซ้าย) ของความยาวหมายเลข m เท่ากับ m - n + 1 เสมอเพื่อให้ตัวอย่างตัวเลข 5 หลักที่ใหญ่ที่สุดในระบบนี้ ถูกเขียน 12345 นอกเหนือจากจำนวนหลักที่มีให้ใช้ในบางสถานที่ที่ถูก จำกัด การเพิ่มอื่น ๆ ทั้งหมดเป็นมาตรฐาน คือเมื่อหลักคือเกินขีด จำกัด หลักเราเพิ่มหนึ่งหลักถัดไป นี่คือวิธีการนับจำนวนที่จะแสดงในระบบนี้: 1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ... งานของคุณคือการเขียนฟังก์ชั่นที่ใช้ตัวเลขฐาน 10 และแปลงเป็นระบบเลขของฉัน รหัสที่สั้นกว่าจะดีกว่า Bonne Chance! …

4
เขตการผลิตย่อยของขนาดกระดาษมาตรฐานสากล
ขนาดกระดาษ ISO ที่กำหนด: ขนาดกระดาษ A series ถูกกำหนดโดยข้อกำหนดต่อไปนี้: The length divided by the width is the square root of 2. The A0 size has an area of 1 unit. Each subsequent size A(n) is defined as A(n-1) cut in half parallel to its shorter sides. งาน: กำหนดf[n]เอาท์พุทอินพุตA0 แบ่งออกเป็นnเขตการปกครอง กรณีทดสอบ: f[1]ไปที่f[12]: ที่นี่ …

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

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