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

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

5
จำนวนที่ไม่ได้ใช้น้อยที่สุดเป็นการแบ่งปันปัจจัย
นี่เป็นคำถามที่น่าสนใจ ฉันจะกำหนดลำดับและคุณกอล์ฟรหัสบางอย่างเพื่อส่งออกรายการที่ได้รับดัชนี รายการแรกในลำดับคือ 2 รายการที่ n ในลำดับนั้นเป็นจำนวนเต็มบวกที่เล็กที่สุดที่ไม่ใช่ n และ 1 ที่ใช้ร่วมกันอย่างน้อยหนึ่งปัจจัยที่มี n (นอกเหนือจาก 1) ที่ยังไม่ปรากฏในรายการ กรณีทดสอบ นี่คือ 25 รายการแรกในลำดับ: 1 2 2 4 3 6 4 8 5 10 6 3 7 14 8 12 9 15 10 5 11 22 12 9 13 26 14 7 15 18 16 …

4
ระดับของความไม่พอใจ
ระดับของความไม่พอใจ นี่ไม่ใช่ปริศนาโค้ดยากโดยเฉพาะ - แต่ฉันสนใจที่จะเห็นวิธีแก้ปัญหาของคุณหลายวิธี ระดับความไม่อิ่มตัวคือจำนวนพันธะเคมีสองชั้นระหว่างอะตอมและ / หรือจำนวนวงแหวนในสารประกอบทางเคมี คุณจะได้รับสูตรโมเลกุลของสารประกอบทางเคมีในรูปแบบ XaYbZc (โดยที่ a, b และ c คือจำนวนอะตอมของ X, Y หรือ Z ในสารประกอบ) - สูตรอาจมีความยาวเท่าใดก็ได้และมีองค์ประกอบทางเคมีใด ๆ ในตารางธาตุ (แม้ว่าองค์ประกอบอื่นที่ไม่ใช่ C, H, N, F, Cl, Br, ฉันอาจถูกเพิกเฉยเนื่องจากไม่มีคุณสมบัติในสูตร) สารประกอบนี้จะประกอบด้วยคาร์บอนอย่างน้อยหนึ่งอะตอม คุณต้องคำนวณและแสดงระดับของความไม่พอใจ ตัวอย่างเช่นสารประกอบเบนซีน (ในภาพด้านล่าง) มี DoU เป็น 4 เนื่องจากมีพันธะสองเท่า (แสดงโดยเส้นสองเส้นระหว่างอะตอม) และวงแหวนเดี่ยว (จำนวนอะตอมที่เชื่อมต่อในวง): ตามที่กำหนดโดยLibreTexts : DoU = (2C + …

3
การแยกตัวของคำ Lyndon
พื้นหลัง คำลินดอนเป็นสตริงที่ไม่ว่างเปล่าซึ่งเป็นอย่างเคร่งครัด lexicographically ขนาดเล็กกว่าทุกหมุนเวียนอื่น ๆ มันเป็นไปได้ที่จะแยกแยะสตริงใด ๆ ที่ไม่ซ้ำกันในขณะที่การเรียงคำของลินดอนเช่นว่าคำย่อยเหล่านี้ไม่ได้เพิ่มคำในพจนานุกรม ความท้าทายของคุณคือทำสิ่งนี้ให้รัดกุมที่สุด รายละเอียด คุณควรใช้ฟังก์ชั่นหรือโปรแกรมที่ระบุการแยกตัวประกอบคำของ Lyndon ของสตริง ASCII ที่พิมพ์ได้ตามลำดับเพื่อส่งออกสตริงย่อยผลลัพธ์เป็นอาร์เรย์หรือสตรีมบางชนิด ควรเปรียบเทียบอักขระด้วยจุดรหัสและอนุญาตวิธีการอินพุตและเอาต์พุตมาตรฐานทั้งหมด ตามปกติสำหรับcode-golfโปรแกรมที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ '' [] 'C' ['C'] 'aaaaa' ['a', 'a', 'a', 'a', 'a'] 'K| ' ['K|', ' '] 'abaca' ['abac', 'a'] '9_-$' ['9_', '-', '$'] 'P&O(;' ['P', '&O(;'] 'xhya{Wd$' ['x', 'hy', 'a{', 'Wd', '$'] 'j`M?LO!!Y' …

15
ซ้ำซึ่งกันและกัน
สิ่งที่คุณต้องทำคือสร้างฟังก์ชั่น / โปรแกรมที่รับทศนิยมเป็นอินพุทและเอาท์พุทผลลัพธ์ของการรับส่วนกลับของส่วนที่เป็นเศษส่วนของตัวเลขซ้ำ ๆ จนกระทั่งจำนวนกลายเป็นจำนวนเต็ม โดยเฉพาะอย่างยิ่งกระบวนการดังต่อไปนี้: ให้ x เป็นอินพุต ถ้า x เป็นจำนวนเต็มให้เอาท์พุท มิฉะนั้น:(x)} กลับไปที่ 2x←1fr a c (x)x←1frac(x)x \leftarrow \frac{1}{\mathrm{frac}(x)} ฉr a c (x)frac(x)\mathrm{frac}(x)เป็นองค์ประกอบที่เศษส่วนของและเท่ากับ\ เป็นพื้นของ x, ซึ่งเป็นเลขยิ่งน้อยกว่าxxxxx - ⌊ x ⌋x−⌊x⌋x - \left\lfloor x \right\rfloor⌊ x ⌋⌊x⌋\left\lfloor x \right\rfloorxxx กรณีทดสอบ: 0 = 0 0.1 = 1/10 -> 10 0.2 = …

19
วิธีการแปลง HEX2 เป็น RGBA?
โลกแห่งศิลปะเต็มไปด้วยสีสัน แต่โลกของเครือข่ายนั้นยิ่งใหญ่กว่าโลกแห่งศิลปะที่มีสีต่างกันและการเรนเดอร์ นั่นเป็นเหตุผลที่เราจำเป็นต้องรู้วิธีแปลงรูปแบบสีหนึ่งประเภทเป็นรูปแบบอื่น ความท้าทายปรากฏชัดในตัวเอง: เขียนโปรแกรม / ฟังก์ชั่นกว่าแปลงรหัสHEX ( #00ff0080เช่น) เป็นRGBA (เช่นrgba(0, 255, 0, 0.5)) กฎ: ไลบรารี่ / บิวด์อินภายนอกสำหรับการแปลง HEX เป็น RGBA ไม่ได้รับอนุญาต อย่างไรก็ตามผู้ทำซ้ำ jQuery และไวยากรณ์เช่นนั้นเป็นที่ยอมรับ ใช้กฎอินพุต / เอาท์พุตมาตรฐาน รูปแบบของอัลฟาสามารถอยู่ระหว่าง (1 == 100%) หรือรูปแบบอื่น ๆ (100 == 100%) ที่ไม่สำคัญจริงๆ เอาท์พุทมีความยืดหยุ่นตราบใดที่มันคืนค่าที่แปลง 4 (เป็น String, Array, List, ตัวเลือกของคุณ) คุณอาจเลือกที่จะรับอินพุตโดยไม่ต้อง#เริ่มต้น ดังนั้นคุณสามารถใช้การป้อนข้อมูลเป็นอย่างใดอย่างหนึ่งหรือ#RRGGBBAA RRGGBBAAคุณสามารถสมมติว่ารหัสฐานสิบหก (ไม่รวม#) จะมีความยาว …

30
"สวัสดีชาวโลก!" (ด้ายของโจร)
นี่คือเธรดของโจร ด้ายตำรวจเป็นที่นี่ ความท้าทายของคุณคือนำการส่งที่ไม่ได้ติดตามจากเธรดของตำรวจและค้นหาสิ่งที่อินพุตหรืออินพุตโปรแกรมจะพิมพ์Hello, World!และขึ้นบรรทัดใหม่ การใช้ตัวพิมพ์ใหญ่เว้นวรรคและเครื่องหมายวรรคตอนต้องเป็นตัวพิมพ์ใหญ่ โปรดแสดงความคิดเห็นในการส่งของตำรวจเมื่อคุณถอดรหัสรหัสของพวกเขา

9
วาดโครงเรื่องรูปร่าง ASCII
พิจารณาบล็อก 3x3 ต่อไปนี้ซึ่งอัลกอริทึมกำลังสองยกกำลังจะระบุสำหรับทุกเซลล์ (ด้วย ID ที่มีป้ายกำกับ 0 รายการ): 0: ... ... ... 1: ... ... \.. 2: ... ... ../ 3: ... --- ... 4: ..\ ... ... 5: /.. ... ../ 6: .|. .|. .|. 7: /.. ... ... 8: /.. ... ... 9: .|. .|. .|. 10: ..\ …

1
ฉัน <3 เงื่อนไข
คุณมีเงื่อนไขที่ยาวและน่าเบื่อในโค้ดของคุณ: if flag == 1: while have != needed: if type == 7: สิ่งเหล่านี้สามารถเปลี่ยนเป็น&lt;3สภาพที่น่ารักยิ่งกว่า if abs(flag - 1) + 2 &lt;3: while 3 - abs(have - needed) &lt;3: if 2 + abs(type - 7) &lt;3: งาน &lt;3งานของคุณคือการใช้เงื่อนไขและทำให้มันในแง่ของ ระยะห่างเพียงเรื่องที่เป็นว่าไม่มีผู้ใดระหว่างและ&lt;3 Conditionals จะมีสองสำนวนที่แยกออกจากกันโดยทั้ง==, !=, &gt;, &lt;, หรือ&gt;= นิพจน์จะมีเฉพาะการเพิ่มการลบการปฏิเสธแบบเอกภาพ ( ) ซึ่งมีหนึ่งหรือก่อนแต่ละตัวแปรหรือตัวเลข (ยกเว้นตัวแรกที่ไม่มีอะไรหรือก่อนหน้า) ตัวเลขจะเป็นและตัวแปรจะเป็น …

10
ฉันเป็นหมายเลข N-bonacci พิเศษหรือไม่
ลำดับ N-bonacci ที่คิดค้นโดย @DJMcMayhem ในคำถามนี้เป็นลำดับที่สร้างโดยเริ่มต้นด้วยจำนวนเต็ม 0 และ 1 แล้วเพิ่มหมายเลข N ก่อนหน้าเพื่อสร้างหมายเลขถัดไป ลำดับ N-bonacci พิเศษคือลำดับ N-bonacci ที่เริ่มต้นด้วยตัวเลขอื่นที่ไม่ใช่ 0 และ 1 ซึ่งจะมีชื่อว่า X และ Y หาก N มากกว่าจำนวนคำที่มีอยู่ในลำดับเพียงเพิ่มทั้งหมดที่มีอยู่ เงื่อนไข ตัวอย่างเช่นลำดับฟีโบนักชีปกติมี N ของ 2 (รับสองรายการก่อนหน้า) และ X และ Y ของ 0 และ 1 หรือ 1 และ 1 ขึ้นอยู่กับผู้ที่คุณถาม งานของคุณ: คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ตรวจสอบว่าจำนวนเต็ม (A) เป็นส่วนหนึ่งของลำดับ N-bonacci …

7
ตัวเลขสองตัวมีแฟคทอเรียลที่ไม่ซ้ำกันหรือไม่?
แบ่งตัวเลขสองตัวเป็นแฟคทอเรียล หากพวกเขาแบ่งปันใด ๆ ส่งคืนค่าความเท็จ มิฉะนั้นส่งคืนค่าความจริง (ได้รับแรงบันดาลใจจากคำถามล่าสุดนี้ ) กล่าวอีกนัยหนึ่งให้เขียนหมายเลขอินพุตแต่ละตัวเป็นผลรวมของแฟคทอเรียล (ของจำนวนเต็มบวก) ด้วยวิธีที่เป็นไปได้ที่เป็นไปได้มากที่สุด ส่งกลับค่าความจริงหากไม่มีแฟคทอเรียลปรากฏขึ้นในการแทนทั้งคู่ ตัวอย่าง ให้ 20 และ 49: 20 = 3! + 3! + 3! + 2! 49 = 4! + 4! + 1! ไม่มีแฟคทอเรียลปรากฏขึ้นในการเป็นตัวแทนทั้งสองดังนั้นโปรดส่งคืนค่าความจริง รับ 32 และ 132: 132 = 5! + 3! + 3! 32 = 4! + 3! + …

7
Verbose IP Range Generator
งานง่าย ๆ โดยกำหนดที่อยู่ IP สองอันaและbเอาท์พุทที่อยู่ทั้งหมดภายในช่วงนั้น ตัวอย่าง ตัวอย่าง # 1: f(a = 192.168.0.1, b = 192.168.0.4) 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 ตัวอย่าง # 2 (TIO จะตัดทอนสิ่งนี้ใช้ช่วงที่เล็กลงเมื่อทำการทดสอบ): f (a = 123.0.200.0, b = 124.0.0.0) 123.0.200.0 123.0.200.1 ... # Omitted pattern 123.0.200.255 123.0.201.0 ... # Omitted pattern 123.0.201.255 ... # Omitted pattern 123.0.255.255 123.1.0.0 …

27
คู่ที่ไม่ได้สั่งซื้อทั้งหมดระหว่างองค์ประกอบของอาร์เรย์
งาน: ส่งคืนอาร์เรย์ที่มีคู่ที่เป็นไปได้ทั้งหมดระหว่างองค์ประกอบของอาร์เรย์ ตัวอย่าง จากผลตอบแทนa=["a", "b", "c", "d"];b=[["a","b"],["a","c"],["a","d"],["b","c"],["b","d"],["c","d"]] คู่สามารถจะอยู่ในลำดับใด ๆ ตราบเท่าที่อยู่รวมกันเป็นไปได้ทั้งหมดจะถูกรวมและเห็นได้ชัดว่าเป็นเหมือนกัน["b","d"]["d","b"] อินพุต [a-z]อาร์เรย์ขององค์ประกอบที่ไม่ซ้ำกันสตริงประกอบด้วยตัวอักษรจากชั้นเรียน เอาท์พุต อาร์เรย์ 2d ที่มีองค์ประกอบของอินพุตอาร์เรย์ที่เป็นไปได้ทั้งหมด กรณีทดสอบ input=["a","b","c"]; //output=[["a","b"],["a","c"],["b","c"]] input=["a","b","c","d","e"]; //output=[["a","b"],["a","c"],["a","d"],["a","e"],["b","c"],["b","d"],["b","e"],["c","d"],["c","e"],["d","e"]] หมายเหตุ:ฉันไม่พบสิ่งที่เหมือนกันสำหรับความท้าทายนี้ หากมีอยู่แจ้งเตือนฉันด้วยความคิดเห็นเพื่อวางคำถาม

4
ลบคำทักทาย
ท้าทาย สวัสดีให้สตริงเป็นอินพุตลบคำทักทายใด ๆ ที่พบในตอนเริ่มต้นของสตริง โปรแกรมที่จะทำการแทนที่ที่ถูกต้องที่สุดในเวลาไม่ถึง 50 ไบต์จะชนะ Memorial ~ เฮ้คำทักทายถูกกำหนดเป็นหนึ่งในคำต่อไปนี้: สวัสดี เฮ้ สวัสดี ที่รัก ทักทาย ไห่ ผู้ชาย Hii หมอตำแย Hiya หญ้าแห้ง Heya hola hihi คำขึ้นต้นจดหมาย อักษรตัวแรกอาจเป็นตัวพิมพ์ใหญ่ จะมีเครื่องหมายจุลภาคและ / หรือเว้นวรรคเดียวตามหลังคำทักทายซึ่งจะต้องถูกลบด้วย เครื่องหมายจุลภาคและพื้นที่อาจอยู่ในลำดับใด ๆ ( ,&lt;space&gt;หรือ&lt;space&gt;,) และควรลบทั้งสอง คำทักทายและคำต่อไปนี้จะคั่นด้วยเครื่องหมายจุลภาคและ / หรือเว้นวรรคเดียว จากนั้นคุณจะต้องใช้อักษรตัวแรกของคำที่จะตามหลังคำทักทาย แม้ว่าจะไม่มีการแทนที่เกิดขึ้นคุณก็ควรใช้ประโยชน์จากคำแรกของผลลัพธ์ การใช้อักษรตัวพิมพ์ใหญ่ใช้กับตัวอักษรตัวพิมพ์เล็กเท่านั้น ( abcdefghijklmnopqrstuvwxyz) คุณควรปล่อยให้ตัวละครอื่น ๆ เหมือนเดิม คำทักทายจะอยู่ที่จุดเริ่มต้นของสตริงเสมอ คุณไม่ควรแทนที่คำทักทายที่ไม่ได้อยู่ในช่วงเริ่มต้น อาจมีการทักทายไม่ได้เสมอไป รหัสของคุณต้องน้อยกว่า 50 …

13
เกมถั่วที่แปลกและดุร้าย
บางทีพวกคุณบางคนอาจรู้จักเกมนี้แล้ว: คุณมีคอลเลกชันของ Jelly Bean ที่มีสีต่างกัน สำหรับทุกสีถั่วอาจมีรสนิยมแตกต่างกันบางอย่างดีและไม่ดีและคุณไม่สามารถแยกแยะได้ คุณต้องเลือกถั่วที่มีสีที่กำหนดและอธิษฐานให้คุณเลือกถั่วที่ดี ดังนั้นเขียนโปรแกรมที่สั้นที่สุดที่ได้รับสีที่คุณเลือก (จากรายการที่กำหนด) และสุ่มส่งกลับรสชาติที่เลือก ต้องเลือกรสชาติจากรายการในตัว รายการอินพุตและเอาต์พุตที่เป็นไปได้คือ: Input Output choices [only one from the list] -------------------------------------------------- green lawn clippings, lime, mucus, pear yellow rotten eggs, buttered popcorn blue toothpaste, blue berry orange vomit, peach brown canned dog food, chocolate white stinky socks, tutti-frutti, baby diapers, …

14
ตรวจสอบไวยากรณ์ 2Col!
ในฐานะที่เป็นคนสองคนอาจสังเกตเห็นเมื่อเร็ว ๆ นี้ฉันได้ละทิ้งการพัฒนาBraingolfเป็นส่วนใหญ่เพราะมันน่าเบื่อและไม่มีใครสนใจและย้ายไปที่2Colซึ่งน่าสนใจกว่านี้เล็กน้อยและไม่ได้ออกแบบมาเพื่อเป็นภาษากอล์ฟ คุณสมบัติการกำหนดของ 2Col คือทุกบรรทัดของรหัสต้องมีความยาว 2 ตัวอักษรโดยไม่รวมบรรทัดใหม่ ซึ่งหมายความว่าสามารถคำนวณความยาวของโปรแกรม 2Col ได้ตลอดเวลาโดย3n-1ที่nจำนวนบรรทัดในโปรแกรมอยู่เสมอ นี่คือความท้าทายของฉัน: รับรหัส 2Col เป็นสตริงเอาท์พุทจริงถ้ามันเป็นรหัส 2Col ที่ถูกต้อง (ทุกบรรทัดมี 2 ตัวอักษรและสอดคล้องกับ3n-1สูตร) ​​และเท็จอย่างอื่น อินพุต ควรป้อนข้อมูลเป็นสตริงเดี่ยวหรืออาเรย์ของอักขระ เอาท์พุต ค่าความจริงหากสตริงอินพุตเป็นเลย์เอาต์ที่ถูกต้องและค่าความผิดพลาดเป็นอย่างอื่น รหัสของคุณควรสอดคล้องในความจริง / ค่าเท็จที่ใช้ Testcases ====== F! $^ ---- truthy ====== ====== *8 +1 Sq ---- truthy ====== ====== nop xt ---- falsey ====== ====== +1 …

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