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

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

5
ขับไล่ใบหน้าของคิวบ์แบบสมมาตรตามแนว XYZ
Sandbox สำหรับวัตถุประสงค์ของงานปัจจุบันคิวบ์ความยาวของหน่วยจะแสดงในรูปแบบเอียงด้วยสัญลักษณ์ ASCII ดังต่อไปนี้: +-----+ / /| +-----+ | | | + | |/ +-----+ + สำหรับจุดยอด -สำหรับขอบ X ความยาวหน่วยตามแนว X แสดงด้วยห้า-ระหว่างสองจุดยอด |สำหรับขอบ Y ความยาวของหน่วยตาม Y จะถูกแทนด้วยสอง|ระหว่างจุดยอดสองจุด /สำหรับขอบ Z ความยาวหน่วยตามแนว Z จะถูกแทนด้วยหนึ่ง/ระหว่างสองจุดยอด จุดยอดจะวาดเฉพาะเมื่อระนาบทั้งสามตัดกัน ขอบจะวาดเฉพาะเมื่อระนาบสองจุดตัดกัน เมื่อหน้าหน่วยถูกอัดออกมาใบหน้าจะถูกชดเชยด้วยความยาวหน่วยจากตำแหน่งเดิมและสร้างขอบใหม่สี่อันสำหรับแต่ละทิศทาง (บวกและลบ) คุณสามารถนึกถึงการอัดขึ้นรูปเมื่อวาดแกนของระบบพิกัดคาร์ทีเซียน 3D ที่แต่ละแกนถูกแสดงเป็นลูกบาศก์ที่มีส่วนตัดขวาง 1x1 และความยาวnห่างจาก (0,0,0) อัดโดย 1 ตาม X: +-----------------+ / /| +-----------------+ …

19
โบสถ์ Booleans
โบสถ์บูลีน โบสถ์บูลเป็นฟังก์ชันที่ผลตอบแทนxสำหรับความจริงและyเท็จที่xเป็นอาร์กิวเมนต์แรกฟังก์ชั่นและyเป็นอาร์กิวเมนต์ที่สองให้กับฟังก์ชั่น ฟังก์ชั่นเพิ่มเติมสามารถประกอบได้จากฟังก์ชั่นเหล่านี้ซึ่งเป็นตัวแทนของการดำเนินงานand not or xorและimpliesตรรกะ ท้าทาย สร้าง booleans ริสตจักรและand not or xorและimpliesประตูโบสถ์ในภาษาที่คุณเลือก and orและxorควรใช้สองฟังก์ชั่น (แทนบูลีนของโบสถ์) และส่งคืนฟังก์ชัน (แทนบูลีนของโบสถ์อื่น) ในทำนองเดียวกันnotควรกลับฟังก์ชั่นที่ใช้และimpliesประตูควรดำเนินการบูลีนหมายถึงตรรกะที่อาร์กิวเมนต์แรกimpliesที่สอง เกณฑ์การให้คะแนน ความยาวรวมของรหัสทั้งหมดที่จำเป็นในการสร้างคริสตจักรtrueและfalseในภาษาของคุณand not or xorและimpliesประตูคริสตจักรและไม่รวมชื่อฟังก์ชั่น (ตัวอย่างเช่นfalse=lambda x,y:yใน Python จะเป็น 13 ไบต์) คุณสามารถใช้ชื่อเหล่านี้ในภายหลังในรหัสของคุณโดยนับ 1 ไบต์ไปยังผลรวมไบต์ของเกตนั้น ตัวอย่างโค้ดหลอก: ฟังก์ชั่นที่คุณสร้างควรจะสามารถเรียกได้ในภายหลังในรหัสของคุณเช่นนั้น true(x, y) -> x false(x, y) -> y and(true, true)(x, y) -> x and(true, false)(x, …

15
มาเล่นMölkkyกันเถอะ!
Mölkky Mölkkyเป็นเกมการขว้างปาแบบฟินแลนด์ ผู้เล่นใช้ไม้พิน (เรียกอีกอย่างว่า "mölkky") เพื่อพยายามเคาะหมุดไม้ที่มีขนาดใกล้เคียงกับการโยนพินซึ่งมีตัวเลขตั้งแต่ 1 ถึง 12 ตำแหน่งเริ่มต้นของพินมีดังนี้: (07)(09)(08) (05)(11)(12)(06) (03)(10)(04) (01)(02) คำอธิบายนี้และกฎระเบียบดังต่อไปนี้จะขึ้นอยู่กับวิกิพีเดีย กฎMölkkyประยุกต์ การเคาะมากกว่าหนึ่งพินจะทำคะแนนให้ได้ตามจำนวนที่กำหนดไว้บนพิน การเคาะ2 พินขึ้นไปทำคะแนนจำนวนพินที่กระแทก (เช่นการกระแทก 3 พินทำคะแนน 3 คะแนน) เป้าหมายของเกมคือการเข้าถึง50คะแนน การให้คะแนนมากกว่า 50 จะถูกลงโทษโดยกำหนดคะแนนกลับเป็น25คะแนน สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะทำให้สมมติฐานที่ว่าหมุดอยู่เสมอในลำดับที่แน่นอนอธิบายไว้ข้างต้น (ในเกมจริงหมุดจะยืนขึ้นอีกครั้งหลังจากโยนแต่ละครั้งในตำแหน่งที่พวกเขาลงจอด) กฎของMölkkyอื่น ๆ ทั้งหมดจะถูกละเว้นและพิจารณาผู้เล่นเพียงคนเดียวเท่านั้น อินพุต รายการที่ไม่ว่างเปล่าของ 12 บูลีน แต่ละรายการของบูลีนอธิบายผลของการโยน: 1ถ้าพินนั้นล้มลงและ0 เป็นอย่างอื่น booleans จะได้รับในการสั่งซื้อที่แน่นอนของหมุดจากบนซ้ายไปขวาด้านล่าง: 7 , 9 , 8 , 5 , …
33 code-golf  game  binary 

24
จำนวนสามารถแบ่งออกเป็นพลังของ 2?
เมื่อวานขณะที่เล่นกับลูกของฉันฉันสังเกตเห็นตัวเลขในรถไฟของเล่นของเขา: เรามีที่สามารถแบ่งออกเป็นหรือ4281428142814−2−8−14−2−8−14-2-8-122-21-23-2022-21-23-202^2-2^1-2^3-2^0 ความท้าทายง่ายๆ: ให้ค่าที่ไม่ใช่ค่าลบเป็นอินพุตคืนค่าความจริงที่สอดคล้องกันและค่าเท็จที่แสดงว่าสตริงแทนตัวเลขหรือไม่ (ในฐาน 10 และไม่มีเลขศูนย์นำหน้า) สามารถแบ่งออกเป็นตัวเลขที่เป็นพลังของ 2 . ตัวอย่าง: 4281 truthy (4-2-8-1) 164 truthy (16-4 or 1-64) 8192 truthy (the number itself is a power of 2) 81024 truthy (8-1024 or 8-1-02-4) 101 truthy (1-01) 0 falsey (0 cannot be represented as 2^x for any x) 1 truthy …

21
หมายเลขโทรศัพท์เป็นคำพูด
เป้าหมาย เขียนโปรแกรมหรือฟังก์ชั่นที่แปลหมายเลขโทรศัพท์ที่เป็นตัวเลขเป็นข้อความที่ทำให้พูดง่าย เมื่อตัวเลขซ้ำกันพวกเขาควรจะอ่านว่า "double n" หรือ "triple n" ความต้องการ อินพุต สตริงของตัวเลข สมมติว่าตัวละครทุกตัวเป็นตัวเลขตั้งแต่ 0 ถึง 9 สมมติว่าสตริงมีอักขระอย่างน้อยหนึ่งตัว เอาท์พุต คำที่คั่นด้วยช่องว่างทำให้สามารถอ่านตัวเลขเหล่านี้ได้อย่างชัดเจน แปลตัวเลขเป็นคำ: 0 "โอ้" 1 "หนึ่ง" 2 "สอง" 3 "สาม" 4 "สี่" 5 "ห้า" 6 "หก" 7 "เจ็ด" 8 "แปด" 9 "เก้า" เก้า " เมื่อตัวเลขเดิมซ้ำกันสองครั้งติดต่อกันเขียน "double number " เมื่อตัวเลขเดิมซ้ำกันสามครั้งติดต่อกันเขียน " จำนวนสาม" เมื่อตัวเลขเดิมซ้ำกันสี่ครั้งขึ้นไปให้เขียน "double …

30
ส่งคืนหมายเลขนายกรัฐมนตรีที่ใกล้ที่สุด
ท้าทาย นี่คือค่าง่ายๆ: กำหนดจำนวนเต็มบวกได้สูงสุด 1,000,000 ส่งคืนจำนวนเฉพาะที่ใกล้เคียงที่สุด หากตัวเลขนั้นเป็นจำนวนเฉพาะคุณควรส่งคืนหมายเลขนั้น หากมีสองช่วงเวลาใกล้เคียงกับจำนวนที่ระบุให้กลับด้านล่างของทั้งสอง อินพุตอยู่ในรูปแบบของจำนวนเต็มเดียวและเอาต์พุตควรอยู่ในรูปของจำนวนเต็มเช่นกัน ฉันไม่สนใจว่าคุณจะใช้อินพุท (ฟังก์ชั่น, STDIN, ฯลฯ ) หรือแสดงเอาท์พุท (ฟังก์ชั่น, STDOUT, ฯลฯ ) ตราบใดที่มันใช้งานได้ นี่คือรหัสกอล์ฟดังนั้นจึงใช้กฎมาตรฐาน - โปรแกรมที่มีจำนวนไบต์น้อยที่สุดชนะ! กรณีทดสอบ Input => Output ------ ------- 80 => 79 100 => 101 5 => 5 9 => 7 532 => 523 1 => 2
33 code-golf  primes 

30
ครั้งแรกที่ผ่านมาและทุกอย่างระหว่าง
กำหนดจำนวนเต็มสองตัวเอาท์พุทสองจำนวนเต็มแล้วช่วงระหว่างพวกเขา (ไม่รวมทั้งสอง) ลำดับของช่วงจะต้องเหมือนกับอินพุต ตัวอย่าง: Input Output 0, 5 -> [0, 5, 1, 2, 3, 4] -3, 8 -> [-3, 8, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7] 4, 4 -> [4, 4] 4, 5 -> [4, 5] 8, 2 -> [8, 2, 7, 6, 5, 4, 3] …
33 code-golf 

30
ครึ่งครึ่งครึ่งและครึ่ง
พิจารณาลำดับหมายเลขต่อไปนี้: 0 ,12,14,34,18,38,58,78,116,316,516,716,916,1116,1316,1516,132,332,532, ...0,12,14,34,18,38,58,78,116,316,516,716,916,1116,1316,1516,132,332,532,... 0, \frac{1}{2}, \frac{1}{4}, \frac{3}{4}, \frac{1}{8}, \frac{3}{8}, \frac{5}{8}, \frac{7}{8}, \frac{1}{16}, \frac{3}{16}, \frac{5}{16}, \frac{7}{16}, \frac{9}{16}, \frac{11}{16}, \frac{13}{16}, \frac{15}{16}, \frac{1}{32}, \frac{3}{32}, \frac{5}{32}, \dots มันระบุเศษส่วนไบนารีทั้งหมดในช่วงเวลาที่หน่วย1)[ 0 , 1 )[0,1) [0, 1) (เพื่อให้การท้าทายนี้ง่ายขึ้นองค์ประกอบแรกเป็นทางเลือก: คุณอาจข้ามไปและพิจารณาลำดับที่เริ่มต้นด้วย 1/2) งาน เขียนโปรแกรม (โปรแกรมสมบูรณ์หรือฟังก์ชั่น) ซึ่ง ... เลือกหนึ่งในพฤติกรรมเหล่านี้: อินพุต n, องค์ประกอบที่ n เอาท์พุทของลำดับ (ดัชนี 0 หรือดัชนี 1) อินพุต …

21
ฮิสโตแกรมตัวอักษร
ให้ประโยคอินพุตประกอบด้วยหนึ่งคำขึ้นไป[a-z]+และเว้นศูนย์หรือมากกว่านั้นให้ส่งเอาต์พุตฮิสโตแกรม ASCII-art (กราฟแท่ง) ของการกระจายตัวอักษรของประโยคอินพุต ฮิสโตแกรมจะต้องวางในแนวนอนเช่นใช้ปุ่มตัวอักษรที่อยู่ด้านล่างตามลำดับตัวอักษรจากซ้ายไปขวาพร้อมป้าย Y แกน1-และทุก 5 หน่วย แกน Y จะต้องเป็นตัวคูณที่เล็กที่สุดในห้าที่สูงอย่างน้อยเท่ากับแถบที่สูงที่สุดและจะต้องจัดชิดขวา แกน X มีป้ายกำกับพร้อมตัวอักษรอินพุตโดยไม่มีช่องว่างระหว่าง ยกตัวอย่างเช่นการป้อนข้อมูลa bb ddควรจะมีป้ายชื่อabdและไม่ข้ามab d cตัวแท่งเองนั้นสามารถสร้างด้วยตัวอักษร ASCII ที่สอดคล้องกัน - ฉันจะใช้Xที่นี่ในตัวอย่างของฉัน test example 5- X X X 1-XXXXXXXX aelmpstx เนื่องจากมีสามeสองtและหนึ่งในalmsxนั้น ตัวอย่างเพิ่มเติม: the quick brown fox jumped over the lazy dogs 5- X X X X XX X …

8
สามารถสร้างวงต้นไม้แบบสี่เหลี่ยมจากช่วงเวลาได้หรือไม่?
เห็นได้ชัดว่าใช่! ในสามขั้นตอนง่าย ๆ ขั้นตอนที่ 1 ให้f ( n ) แสดงถึงฟังก์ชั่นการนับจำนวนเฉพาะ (จำนวนของจำนวนเฉพาะน้อยกว่าหรือเท่ากับn ) กำหนดลำดับ จำนวนเต็มs ( n ) ดังต่อไปนี้ สำหรับแต่ละจำนวนเต็มบวกn , Initiallize เสื้อเพื่อn ตราบใดที่tไม่ใช่ไพร์มหรือ 1 ให้แทนที่tด้วยf ( t ) และวนซ้ำ จำนวนการวนซ้ำคือs ( n ) กระบวนการซ้ำรับประกันได้ว่าจะสิ้นสุดเพราะฉ ( n ) < nสำหรับทุกn ลองพิจารณาตัวอย่างn = 25 เรา initiallize T = 25 ตั้งแต่นี้ไม่ได้เป็นนายกมิได้ 1 เราคำนวณฉ …

24
ผลรวมของห้าลูกบาศก์
ได้รับจำนวนเต็มส่งออกห้าก้อนที่สมบูรณ์แบบซึ่งผลรวมคือจำนวนเต็มนั้น โปรดทราบว่าคิวบ์อาจเป็นค่าบวกลบหรือศูนย์ ตัวอย่างเช่น, -10 == -64 - 64 + 64 + 27 + 27 ดังนั้นสำหรับอินพุต-10คุณสามารถเอาต์พุต[-64, -64, 64, 27, 27]ได้แม้ว่าจะมีวิธีแก้ไขปัญหาอื่น ๆ โปรดทราบว่าคุณควรส่งออกก้อนไม่ใช่ตัวเลขที่ถูกลูกบาศก์ มีวิธีแก้ไขอยู่เสมอ - คุณอาจสนุกกับมันด้วยตัวเอง มันเพิ่มเติมคาดเดาว่าสี่ก้อนพอเพียง

30
มีการโต้แย้งกี่ครั้ง?
ใช้ภาษาที่คุณเลือกเขียนฟังก์ชันที่รับจำนวนตัวแปรที่มีข้อโต้แย้งและส่งกลับจำนวนอาร์กิวเมนต์ที่ถูกเรียกด้วย ข้อมูลจำเพาะ: ภาษาของคุณจำเป็นต้องรองรับฟังก์ชั่นการโต้แย้งแบบแปรปรวน: สิ่งที่เรียกได้ซึ่งรับจำนวนอาร์กิวเมนต์โดยพลการและส่งคืนค่า พารามิเตอร์จะต้องสามารถส่งผ่านเป็นรายบุคคล ซึ่งหมายความว่าการส่งผ่านอาร์เรย์จะนับสำหรับพารามิเตอร์เดียวเท่านั้น คุณสามารถใช้อาร์เรย์ "อาร์กิวเมนต์ที่ผ่านทั้งหมด" หากภาษาของคุณรองรับ ข้อ จำกัด คือวิธีการเรียกใช้ฟังก์ชัน รหัสที่เรียกฟังก์ชันนี้จะต้องไม่ถูกต้องผ่านการจำนวนของการขัดแย้งในแหล่งที่มาของ หากคอมไพเลอร์แทรกจำนวนของอาร์กิวเมนต์เป็นส่วนหนึ่งของการประชุมที่เรียกว่าได้รับอนุญาต อาร์กิวเมนต์สามารถเป็นประเภทใดก็ได้ที่คุณต้องการ คุณสามารถรองรับได้เพียงประเภทเดียว (เช่นการสนับสนุนเท่านั้นที่intยังคงใช้ได้) ประเภทโดยพลการ (ประเภทของอาร์กิวเมนต์ที่ได้รับอนุญาต) หรือการรวมกันของประเภทอาร์กิวเมนต์ (เช่นอาร์กิวเมนต์แรกคือintส่วนที่เหลือเป็นสตริง) ฟังก์ชันของคุณอาจมีจำนวนอาร์กิวเมนต์สูงสุด (โดยเฉพาะอย่างยิ่งเนื่องจากทรัพยากรมี จำกัด ) แต่ต้องสนับสนุนอาร์กิวเมนต์อย่างน้อย 2รายการ ตัวอย่าง: f() ผลตอบแทน 0 f(1)หรือf("a")ผลตอบแทน1 f([1, 2, 3])ส่งคืน1เนื่องจากส่งผ่านอาร์เรย์ไม่ใช่อาร์กิวเมนต์ 3 ข้อ f(1, 10)หรือf(1, "a")ผลตอบแทน2 เช่นนี้คือ code-golf ทางออกที่ชนะคือทางเลือกที่ใช้จำนวนไบต์น้อยที่สุด

30
ค้นหาจำนวนเต็มบวกที่เล็กที่สุดซึ่งลงท้ายด้วย n หารด้วย n และมีตัวเลขรวมเป็น n
มันอยู่ในชื่อ ... รับข้อมูลเป็นจำนวนเต็มบวกn>=12และ ... ทำในสิ่งที่ชื่อกล่าว ใช่นี้อยู่ใน OEIS A187924 บางกรณีทดสอบ 12 -> 912 13 -> 11713 14 -> 6314 15 -> 915 16 -> 3616 17 -> 15317 18 -> 918 19 -> 17119 20 -> 9920 40 -> 1999840 100-> 99999999999100 นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดเป็นไบต์ชนะ!

30
มีความยุติธรรมที่สุด
บทนำ ในการท้าทายนี้คุณควรแบ่งจำนวนเต็มเป็นสองส่วน เนื่องจากไม่มีใครชอบที่จะได้ชิ้นเค้กเล็ก ๆ เป้าหมายของคุณคือยุติธรรมเท่าที่จะทำได้ ตัวอย่างเช่นถ้าคุณต้องการที่จะแยกจำนวนเต็ม7129เป็นสองส่วนมีวิธีที่เป็นไปได้ 3 วิธี 7,129, 71,29และ712,9ความเป็นไปได้ทั้งหมด แต่71,29เป็นวิธีที่สังขารของการแยกออกเป็นสองชิ้นเพราะมันช่วยลดความแตกต่างระหว่างสอง: 7 129 -> |7-129| = 122 71 29 -> |71-29| = 42 712 9 -> |712-9| = 703 ท้าทาย กำหนดจำนวนเต็มกำหนดวิธีที่ดีที่สุดที่เป็นไปได้ของการแบ่งตามที่อธิบายไว้ข้างต้นและรายงานผลต่าง กฎระเบียบ การแยกจะทำให้รู้สึกถึงความยาวของเลขจำนวนเต็มอย่างน้อยสองค่าอินพุตจะเป็น≥ 10 เสมอ ข้อมูลที่ป้อนสามารถเป็นได้ทั้งจำนวนเต็มรายการตัวเลขหรือสตริง คุณไม่ต้องจัดการกับอินพุตที่ไม่ถูกต้อง Testcases คุณจะต้องรายงานความแตกต่างที่เกิดขึ้นเท่านั้นการแบ่งพาร์ติชันเป็นเพียงภาพประกอบเท่านั้น: 10 -> 1,0 -> 1 11 -> 1,1 -> 0 12 …

30
Flippign Lettesr Aroudn
ในการแชทที่เรามักจะรวดเร็ว typers และไม่ได้จริงๆมองไปที่คำสั่งของตัวอักษรก่อนโพสต์ข้อความ เนื่องจากเราขี้เกียจเราจำเป็นต้องมีโปรแกรมที่แลกเปลี่ยนตัวอักษรสองตัวสุดท้ายในคำของเราโดยอัตโนมัติ แต่เนื่องจากเราไม่ต้องการตอบช้าเกินไปรหัสต้องสั้น งานของคุณถ้าคุณต้องการที่จะยอมรับมันคือการเขียนโปรแกรมที่พลิกตัวอักษรสองตัวสุดท้ายของแต่ละคำในสตริงที่กำหนด (ดังนั้นคำThanskจะเปลี่ยนเป็นThanks) คำเป็นลำดับของสองคนหรือมากกว่าตัวอักษรในตัวอักษรภาษาอังกฤษที่คั่นด้วยเดี่ยวพื้นที่ สตริง / รายการตัวละครที่คุณได้รับจากการป้อนข้อมูลนั้นรับประกันว่าจะมีตัวอักษรและช่องว่างเท่านั้น (ASCII [97 - 122], [65 - 90] และ 32) คุณสามารถรับอินพุตและให้เอาต์พุตผ่านวิธีมาตรฐานใด ๆในภาษาการเขียนโปรแกรมใด ๆในขณะที่รับทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น เอาต์พุตอาจมีหนึ่งช่องว่างต่อท้ายและ / หรือขึ้นบรรทัดใหม่หนึ่งบรรทัด ข้อมูลที่ป้อนจะมีคำศัพท์อยู่เสมอ (และช่องว่างที่เกี่ยวข้อง) และจะประกอบด้วยคำอย่างน้อยหนึ่งคำ นี่คือรหัสกอล์ฟดังนั้นการส่งสั้นที่สุด (คะแนนเป็นไบต์) ในแต่ละภาษาชนะ! กรณีทดสอบ โปรดทราบว่าสตริงนั้นล้อมรอบด้วยเครื่องหมายคำพูดเพื่อให้สามารถอ่านได้ อินพุต -> เอาท์พุท "Thansk" -> "ขอบคุณ" "Youer welcoem" -> "ยินดีต้อนรับคุณ" "นี่คือแอปเปิ้ล" -> "Thsi si na appel" …
33 code-golf  string 

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