คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

5
เดินเขาวงกต
หรืออาจจะไม่ใช่เขาวงกตจริงๆ แต่ก็ยังอยู่ กฎ: การป้อนข้อมูลเป็นสตริงสองบรรทัดประกอบด้วย*, 1, และx Xสายนั้นเป็นเขาวงกตที่จะเดินผ่าน เส้นมีความยาวเท่ากัน คุณสามารถรับอินพุตเป็นสตริงที่มี,(เครื่องหมายจุลภาค) หรือตัวคั่นใด ๆ ที่สะดวกระหว่างสองบรรทัดนี้ หรือคุณอาจใช้ทั้งสองบรรทัดเป็นอาร์กิวเมนต์แยกกันในการทำงานของคุณ เอาต์พุตคือจำนวนขั้นตอนที่คุณต้องดำเนินการเพื่อออกจากสายอักขระ (ขั้นตอนสุดท้ายคือขั้นตอนที่จะย้ายคุณออกจากสายอักขระ) คุณเริ่มต้นที่มุมซ้ายบน (บรรทัดที่สูงกว่า) หน้าสัญลักษณ์แรก สำหรับแต่ละขั้นตอนคุณก้าวไปข้างหน้าโดยหนึ่งในสัญลักษณ์ (จากที่ n จะ (n + 1) TH ตำแหน่ง ) จากนั้นขึ้นอยู่กับตัวละครที่คุณก้าวเข้ามาผลลัพธ์จะแตกต่างกัน นี่คือสิ่งที่แต่ละถ่านทำ: *- ไม่มีอะไร คุณเพียงแค่เหยียบมันตามปกติ x- เมื่อคุณเหยียบมันแล้วให้สลับสาย แต่ยังคงอยู่ในระยะทางแนวนอนเดียวกันจากจุดเริ่มต้น ตัวอย่างเช่นคุณก้าวไปสู่ตำแหน่งที่สามของบรรทัดที่สูงกว่าและพบตัวพิมพ์เล็กxที่นี่ จากนั้นคุณย้ายไปที่บรรทัดล่างทันที แต่อีกครั้งที่ตำแหน่งที่สาม X- สลับสายและไปที่ตำแหน่งถัดไป ตัวอย่างมีเหมือนกัน แต่คุณย้ายจากตำแหน่งที่สามไปยังตำแหน่งที่สี่ (ดังนั้นคุณจึงอยู่ในบรรทัดที่สองที่ตำแหน่งที่สี่) 1 - เพียงแค่เดินหน้าต่อไปโดยตำแหน่งอื่น เมื่อตัวละครแต่ละตัวทำงานแล้วมันจะถูกแทนที่ด้วยช่องว่างและไม่สามารถใช้งานได้อีกต่อไป ตัวอย่างดังต่อไปนี้ อินพุต …

3
จำลอง 'การต่อสู้' ในเกมไพ่ 'Oorlog'
ลองสร้างแบบจำลองสำหรับแง่มุมในเกมไพ่ซึ่งโดยส่วนตัวแล้วฉันรู้จักชื่อชาวดัตช์ 'Oorlog' (แปลเป็น 'สงคราม') 'Oorlog' ทำงานอย่างไร ไพ่สองสำรับ (รวมถึง Jokers สองอัน) แบ่งเท่า ๆ กันระหว่างจำนวนผู้เล่นที่เล่น ผู้เล่นแต่ละคนจะสับไพ่ของตนเองวางคว่ำหน้าพวกเขาและผู้เล่นทุกคนเปิดไพ่ใบแรกของหุ้นในเวลาเดียวกัน ผู้ชนะของ 'การต่อสู้' นั้นถูกกำหนดโดยค่าของไพ่ตามกฎเหล่านี้: Joker / Ace เอาชนะ King; กษัตริย์เอาชนะราชินี ราชินีเอาชนะแจ็ค; แจ็คเอาชนะ 10; 10 เอาชนะ 9; .... นอกจากนี้ทั้ง 2 และ 3 ยังสามารถเอาชนะ Ace / Joker กฎสุดท้ายอาจนำไปสู่รอบที่ 2 หรือ 3 ชนะ Ace หรือ Joker, Ace หรือ Joker ชนะการ์ดอื่น …

14
เล่นกอล์ฟลำดับที่มีฟังก์ชันสร้างชี้แจงแทนเจนต์
เกือบทุกฟังก์ชั่นสามารถแสดงเป็นพหุนามที่มีเงื่อนไขไม่สิ้นสุด ตัวอย่างเช่น, e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + ... ตัวอย่างเช่น, sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ... สัมประสิทธิ์ของnคำศัพท์ -th สร้างลำดับและฟังก์ชันที่เกี่ยวข้องเรียกว่าฟังก์ชันการสร้างของลำดับ ค่าสัมประสิทธิ์ของnคำศัพท์ -th สร้างลำดับ บ่อยครั้งที่nคำที่ -th จะมีตัวn!ส่วน ดังนั้นเราจึงคูณค่าสัมประสิทธิ์โดยn!การหาลำดับอื่นซึ่งฟังก์ชันการสร้างเลขชี้กำลังจะเป็นฟังก์ชันดั้งเดิม ยกตัวอย่างเช่นลำดับที่มีฟังก์ชั่นเอกฝ่ายคือจะเป็นe^x1,1,1,1,... ยกตัวอย่างเช่นลำดับที่มีฟังก์ชั่นเอกฝ่ายคือจะเป็นsin(x)0,1,0,-1,0,1,0,-1,... งาน งานของคุณคือการหาnระยะ -th ของลำดับที่มีการชี้แจงสร้างฟังก์ชั่นtan(x)คือ Testcases n result 0 0 1 1 …

12
Oneliner เพื่อรวมบรรทัดที่มีเขตข้อมูลแรกเหมือนกัน
นี่คือคำถาม codegolf แรกของฉันดังนั้นฉันจึงขออภัยล่วงหน้าหากไม่เหมาะสมและฉันยินดีรับข้อเสนอแนะ ฉันมีไฟล์ที่มีรูปแบบนี้: a | rest of first line b | rest of second line b | rest of third line c | rest of fourth line d | rest of fifth line d | rest of sixth line เนื้อหาจริงแตกต่างกันไปตามตัวคั่น เนื้อหาเป็นเพียงข้อความ ตัวคั่นจะปรากฏเพียงหนึ่งครั้งต่อบรรทัด สำหรับปริศนานี้คุณสามารถเปลี่ยนตัวคั่นได้เช่นใช้ "%" เป็นตัวคั่น ผลลัพธ์ที่ต้องการ: a | rest …

30
Hofstadter H-sequence
คำนิยาม a(0) = 0 a(n) = n-a(a(a(n-1))) สำหรับจำนวนเต็ม n > 0 งาน ได้รับจำนวนเต็มไม่เป็นลบออกna(n) Testcases n a(n) 0 0 1 1 2 1 3 2 4 3 5 4 6 4 7 5 8 5 9 6 10 7 11 7 12 8 13 9 14 10 15 10 16 11 …

4
เส้นทางที่สั้นที่สุดในกราฟตัวหาร
บทนำ ในความท้าทายนี้เราจะจัดการกับบางกราฟไม่มีทิศทางที่ไม่มีที่สิ้นสุดซึ่งผมเรียกว่ากราฟหารสูง ต่อมน้ำมันเป็นจำนวนเต็มเริ่มตั้งแต่วันที่ 2 มีขอบอยู่ระหว่างสองโหนด<bถ้าแบ่งขและ2 ≥ข กราฟย่อยที่เกิดขึ้นจากช่วง 2 ถึง 18 มีลักษณะดังนี้: 16-8 12 18 \|/ |/| 4 6 9 10 15 14 | |/ |/ | 2 3 5 7 11 13 17 สามารถแสดงให้เห็นว่ากราฟตัวหารสูงที่ไม่มีที่สิ้นสุดเชื่อมต่อกันดังนั้นเราสามารถถามเกี่ยวกับเส้นทางที่สั้นที่สุดระหว่างสองโหนด อินพุตและเอาต์พุต ปัจจัยการผลิตของคุณเป็นจำนวนเต็มสองจำนวนและข คุณสามารถสรุปได้ว่า2 ≤≤ข <1000 เอาต์พุตของคุณคือความยาวของเส้นทางที่สั้นที่สุดระหว่างaและbในกราฟตัวหารสูงที่ไม่มีที่สิ้นสุด นี่หมายถึงจำนวนขอบในเส้นทาง คุณอาจจะพบความจริงต่อไปนี้มีประโยชน์: มีอยู่เสมอเส้นทางที่ดีที่สุดจากเพื่อขที่แรกที่เพิ่มขึ้นและลดลงแล้วและมีเพียงโหนดเข้าชมที่เป็นอย่างเคร่งครัดน้อยกว่า2b 2 โดยเฉพาะอย่างยิ่งตั้งแต่b <1,000คุณจะต้องพิจารณาโหนดที่น้อยกว่า 2 000 000 ตัวอย่าง …

5
เครื่องสร้างบ้านอัตโนมัติ
nanobots สร้างบ้านอัตโนมัติได้ถูกประดิษฐ์ขึ้นและเป็นหน้าที่ของคุณในการกำหนดรหัส นี่คือบ้านที่สร้างขึ้นโดยการป้อนข้อมูล 7 4 2 /-----/| / / | |-----| | | | | | | / |_____|/ อินพุตเป็นสตริงที่มีขนาดของบ้าน 7 คือความกว้าง |_____| ---7--- 4 คือความสูง | | | | 2 คือความลึก / / เมื่อรับข้อมูลนี้คุณสามารถสร้างบ้านได้หรือไม่ รหัสของคุณจะต้องเล็กที่สุดเท่าที่จะเป็นไปได้เพื่อให้สามารถใส่ในโรบอตได้ หมายเหตุ ขนาดเล็กที่สุดคุณจะได้รับเป็น input 3 2 2มี 3 2 2โปรแกรมของคุณสามารถทำอะไรที่มีขนาดที่มีขนาดเล็กกว่า Testcases 3 2 10 /-/| …

10
หน้าต่าง Pangrammatic ที่สั้นที่สุด
pangram เป็นประโยคหรือข้อความที่ตัดตอนมาซึ่งมีตัวอักษรทั้งหมดยี่สิบหกตัวตามที่แสดงในการแข่งขันกอล์ฟรหัสนี้ อย่างไรก็ตามpangrammaticหน้าต่างในรูปแบบของข้อความบางส่วนซึ่งอาจสิ้นสุดหรือเริ่มครึ่งทางผ่านคำซึ่งพบที่ใดที่หนึ่งในงานที่มีขนาดใหญ่กว่า สิ่งเหล่านี้เกิดขึ้นตามธรรมชาติทุกหนทุกแห่งเป็นเซตย่อยที่เหมาะสมของ pangrams จริงดังนั้นเพียงแค่ตรวจสอบว่ามีบางสิ่งที่มีหน้าต่าง pangrammatic จะน่าเบื่อและก็เคยทำมาแล้ว ดังนั้นเราจึงสนใจที่จะค้นหาข้อความที่เล็กที่สุดที่มีอยู่ในข้อความตามความยาวของตัวอักษร! ในรหัสที่สั้นที่สุดที่เป็นไปได้ไบต์เพื่อให้พอดีกับชุดรูปแบบ กฎและแนวทาง รับสตริงเป็นอินพุตและส่งคืนสตริงของหน้าต่าง pangrammatic ที่เล็กที่สุดในอินพุตหากมีหนึ่งรายการ หากไม่มีให้ส่งคืน Boolean False หรือสตริงว่าง ไม่ว่าจะเป็นสตริงเป็นหน้าต่าง pangrammatic หรือไม่เป็นตัวพิมพ์เล็กและตัวใหญ่ขึ้นอยู่กับตัวอักษร 26 ตัวไม่ใช่เครื่องหมายวรรคตอนหรือตัวเลขหรือสัญลักษณ์แปลก ๆ ในทำนองเดียวกันความยาวตัวอักษรของหน้าต่าง pangrammatic คือจำนวนทั้งหมดของจำนวนตัวอักษรที่ปรากฏปรากฏในตัวมันเพียงอย่างเดียวและไม่ใช่เพียงจำนวนของตัวละครทุกตัว ค่าที่ส่งคืนต้องน้อยที่สุดตามจำนวนนี้ พวกเราเป็นนักภาษาศาสตร์ไม่ใช่โปรแกรมเมอร์ อย่างไรก็ตามผลลัพธ์ของหน้าต่าง pangrammatic ต้องเป็นซับสตริงที่แน่นอนของอินพุตที่มีตัวพิมพ์ใหญ่และเครื่องหมายวรรคตอนเดียวกันเป็นต้น หากมีหน้าต่าง pangrammatic ที่สั้นที่สุดหลายตัวที่มีความยาวตัวอักษรเดียวกันให้ส่งคืนหนึ่งในนั้น กรณีทดสอบ 'This isn't a pangram.' ==> False 'Everyone knows about that infamous Quick-Brown-Fox (the one …
15 code-golf  string 

30
แยกตัวอักษรและตัวเลข
ย่อหน้าของข้อความประกอบด้วยตัวเลขและตัวอักษรผสมกัน งานของคุณคือการแยกตัวเลขไปทางด้านซ้ายและตัวอักษรตัวอักษรไปทางด้านขวาในลำดับเดียวกันของแต่ละบรรทัด กฎ: ตัวเลขเป็นจำนวนเต็มธรรมดา ดังนั้นไม่มีจุดทศนิยมและไม่มีสัญญาณลบ / บวก ตัวเลขอาจหรือไม่ต่อเนื่องกัน แต่ไม่ว่ากรณีใดก็ตามพวกเขาจะต้องถูกผลักไปทางซ้ายในลำดับเดียวกัน ตัวเลขอาจเกิดขึ้นระหว่างคำ ข้อความมีเพียงตัวอักษรและตัวเลขตัวอักษร ASCII เท่านั้นพร้อมด้วยช่องว่างเครื่องหมายขีดล่างเครื่องหมายจุลภาคและจุด ผู้ที่ทำสิ่งนี้ด้วยการกดแป้นพิมพ์ขั้นต่ำ (เช่นมาโครมาโคร) หรือจำนวนไบต์น้อยที่สุดในกรณีของการเขียนสคริปต์เป็นผู้ชนะ ข้อความตัวอย่าง: A word can have any number of text like 433884, but all the numb89ers has to be moved left side but alph6abetical va9lues has to be pas46ted on right side. The text might …

1
สร้างอาร์เรย์ลูป
บทนำ อาร์เรย์ชี้เป็นอาร์เรย์Lของจำนวนเต็มภัณฑ์ที่0 ≤ L[i]+i < len(L)ถือสำหรับดัชนีทั้งหมดi(สมมติว่าการจัดทำดัชนี 0-based) เรากล่าวว่าดัชนีi ชี้L[i]+iดัชนี อาร์เรย์ชี้เป็นห่วงlen(L)ถ้าดัชนีรูปแบบรอบเดียวของความยาว นี่คือตัวอย่างบางส่วน: [1,2,-1,3]ไม่ใช่อาร์เรย์ตัวชี้เนื่องจาก3ไม่ได้ชี้ไปที่ดัชนี [1,2,-1,-3]เป็นตัวชี้อาร์เรย์ -1แต่ไม่ห่วงเพราะไม่มีจุดดัชนีไป [2,2,-2,-2] เป็นอาร์เรย์ของตัวชี้ แต่ไม่ใช่การวนซ้ำเนื่องจากดัชนีจะฟอร์มสองรอบ [2,2,-1,-3] เป็นห่วง อินพุต ข้อมูลที่คุณป้อนเป็นรายการที่ไม่ใช่ค่าว่างของจำนวนเต็มไม่ใช่ศูนย์ในรูปแบบที่เหมาะสม มันอาจจะไม่เรียงกันและ / หรือมีรายการที่ซ้ำกัน เอาท์พุต เอาต์พุตของคุณจะเป็นลูปที่มีจำนวนเต็มทั้งหมดในรายการอินพุต (และอาจเป็นจำนวนเต็มอื่น ๆ ด้วย) นับหลายหลาก พวกเขาไม่จำเป็นต้องเกิดขึ้นในลำดับเดียวกันกับในอินพุตและเอาท์พุทไม่จำเป็นต้องน้อยที่สุดในทุกแง่มุม ตัวอย่าง สำหรับการป้อนข้อมูล[2,-4,2], [2,2,-1,1,-4]การส่งออกได้รับการยอมรับจะเป็น กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต การรวมตัวอย่างอินพุตและเอาต์พุตตัวอย่างสองสามคำตอบของคุณนั้นเป็นสิ่งที่น่าชื่นชม กรณีทดสอบ input -> some possible output(s)เหล่านี้จะได้รับในรูปแบบ [1] -> [1,-1] or [1,1,1,-3] [2] …

30
สลับสตริง
ความท้าทายเกี่ยวข้องกับการสลับสตริงภายในสายอื่น คำอธิบาย ถ้าสตริงสลับเป็นย่อยของสตริงหลักเอาทุกกรณีของสตริงสลับจากสตริงหลัก ; มิฉะนั้นผนวกสตริงสลับในตอนท้ายของสตริงหลัก กฎระเบียบ สตริงทั้งหมดประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ ฟังก์ชั่นควรจะใช้เวลาสองพารามิเตอร์สตริงหลักและสตริงสลับ สตริงหลักสามารถเป็นที่ว่างเปล่า สตริงสลับต้องไม่ว่างเปล่า ผลลัพธ์ควรเป็นสตริงซึ่งสามารถว่างได้ คำตอบที่สั้นที่สุดชนะ ตัวอย่าง function toggle(main_string, toggle_string){ ... } toggle('this string has 6 words ', 'now') => 'this string has 6 words now' toggle('this string has 5 words now', ' now') => 'this string has 5 words' กรณีทดสอบ '','a' …
15 code-golf  string 

9
เคล็ดลับสำหรับการเล่นกอล์ฟใน Racket / Scheme
สิ่งใดที่คุณมีเคล็ดลับทั่วไปสำหรับการเล่นกอล์ฟในแร็กเก็ต / โครงการ ? ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหาเกี่ยวกับการเขียนโค้ดกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ Racket / Scheme (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) ฉันทราบSchemeและRacket (เดิมชื่อ PLT Scheme) เป็นภาษาที่แตกต่างกันในทางเทคนิค แต่ค่อนข้างคล้ายกันในหลาย ๆ ทางและรหัสมาก (ฉันสงสัยว่า) จะทำงานส่วนใหญ่ตามที่ตั้งใจไว้ในทั้งสอง หากเคล็ดลับของคุณใช้กับภาษาใดภาษาหนึ่งดังกล่าวข้างต้นให้สังเกตเช่นนั้น
15 code-golf  tips  lisp 

5
รหัสหน้ารหัส
บทนำ โค้ดเพจแม็พค่าจำนวนเต็มกับอักขระเฉพาะ เราสามารถเห็นภาพหน้ารหัสดังนี้: + + --- --- --- + + + --- --- --- + + + --- --- --- + + + --- --- --- + + - - + --- + --- + --- + --- + | | 0 | 1 | 2 | 3 | 4 …

10
กำหนดประเภทของอินพุต
ความท้าทายนั้นง่าย: กำหนดประเภทของอินพุตและเอาท์พุทตัวระบุเพื่อบอกว่ามันคืออะไร "UI" จำนวนเต็มไม่ได้ลงนาม: 0, 1, 34,111111111111111111111111111111111111111111 "SI" ลงนามจำนวนเต็ม: +0, +1, +42, -1, -3,-111111111111111111111111111111111111111111 "UD" ทศนิยมไม่ได้ลงนาม: 0.0, 1.23,1234.1234 "SD" เซ็นทศนิยม: -0.0, +0.0,-1.235 "LE", จดหมาย: a- zและA-Z "SY", สัญลักษณ์: ASCII รหัสจุด: [32-47, 58-64, 91-96, 123-126](เช่นตัวละครทั้งหมดยกเว้นตัวเลขและตัวอักษร) "ST", สตริง: อักขระสองตัวขึ้นไปที่ไม่สามารถแยกวิเคราะห์เป็นรูปแบบตัวเลขใด ๆ ข้างต้น กฎ: อินพุตจะมีความยาว 1-99 ตัวอักษร ข้อมูลที่ป้อนจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้นรหัสคะแนน: 32-126 เอาต์พุตควรเป็นตัวระบุสองตัวตามที่กำหนดไว้ด้านบน (UI, SI …

12
เรนจ์ไฟต์ของหมายเลข Cube ระยะทาง
แรงบันดาลใจจากรายการ Numberphile นี้ พื้นหลัง หมายเลขก้อนระยะของจำนวนเต็มnมีการกำหนดไว้ที่นี่เป็นชุดของจำนวนเต็มที่มีx³ระยะออกไปเพื่อให้x สำหรับตัวอย่างง่ายๆด้วยn=100และx=2ที่หมายเลขก้อนระยะทาง{92,108}เป็น นี้สามารถยื่นออกไปในชุดที่มีขนาดใหญ่ขึ้นได้ง่ายๆโดยการที่แตกต่างกันx ด้วยx ∈ {1,2,3,4}เดียวกันเรามีชุดผลลัพธ์n=100{36,73,92,99,101,108,127,164} ให้กำหนดซีดี (n, x)เป็นชุดของจำนวนเต็มทั้งหมดด้วยn ± z³z ∈ {1,2,3,...,x} ตอนนี้เราสามารถมุ่งเน้นไปที่บางส่วนของคุณสมบัติพิเศษเหล่านี้หมายเลขก้อนระยะ คุณสมบัติพิเศษมากมายว่าตัวเลขสามารถมีสองคุณสมบัติที่เรากำลังสนใจในที่นี่มีprimalityและที่สำคัญตัวหาร สำหรับตัวอย่างซีดีด้านบน(100,4)โปรดทราบว่า73, 101, 127ทั้งหมดนั้นดีเลิศ {36,92,99,108,164}ถ้าเราลบจากชุดที่เราจะเหลือ ทั้งหมด divisors สำคัญของตัวเลขเหล่านี้ (ตามลำดับ) {2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41}ซึ่งหมายความว่าเรามี 5 {2,3,23,11,41}divisors ดังนั้นเราจึงสามารถกำหนดว่าCD (100,4)มีravenity 15ของ ความท้าทายที่นี่คือการเขียนฟังก์ชั่นหรือโปรแกรมในไบต์ที่น้อยที่สุดที่ส่งออกความรุนแรงของอินพุตที่กำหนด อินพุต จำนวนเต็มบวกสองค่าnและxในรูปแบบที่สะดวกใด ๆ เอาท์พุต จำนวนเต็มเดียวอธิบายravenityของทั้งสองใส่ตัวเลขเมื่อคำนวณกับซีดี (n, x) กฎระเบียบ อินพุต / เอาต์พุตสามารถผ่านใด ๆวิธีการที่เหมาะสม มีข้อ จำกัดช่องโหว่มาตรฐาน เพื่อความสะดวกในการคำนวณคุณสามารถสันนิษฐานได้ว่าข้อมูลอินพุตจะเป็นเช่นนั้นว่าซีดี (n, …

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