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

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

14
เรากระโดดหอคอย
งาน กำหนดอาเรย์ของจำนวนเต็มแบบไม่ลบaกำหนดจำนวนต่ำสุดของการกระโดดทางขวาที่จำเป็นในการข้าม "นอก" อาเรย์เริ่มต้นที่ตำแหน่ง 0 หรือคืนค่าศูนย์ / โมฆะถ้าไม่สามารถทำได้ กระโดดจากดัชนีถูกกำหนดให้เป็นการเพิ่มขึ้นของดัชนีอาร์เรย์โดยที่มากที่สุดia[i] กระโดดนอกเป็นกระโดดที่ดัชนีที่เกิดจากการกระโดดที่iจะออกนอกสนามสำหรับอาร์เรย์เพื่อให้การจัดทำดัชนี 1-based i>length(a)และสำหรับการจัดทำดัชนี i>=length(a)0-based ตัวอย่างที่ 1 พิจารณาArray = [4,0,2,0,2,0]: Array[0] = 4 -> You can jump 4 field Array[1] = 0 -> You can jump 0 field Array[2] = 2 -> You can jump 2 field Array[3] = 0 -> You …

8
ผันคำกริยา
การเปลี่ยนขนาดnเป็นการเรียงลำดับของจำนวนเต็มบวกn ตัวแรก (หมายถึงแต่ละจำนวนเต็มปรากฏขึ้นหนึ่งครั้งและทุกครั้ง) พีชคณิตสามารถรักษาได้เช่นฟังก์ชั่นที่มีการเปลี่ยนแปลงคำสั่งของรายชื่อของรายการที่มีขนาดที่n ตัวอย่างเช่น (4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"] ดังนั้นการเรียงสับเปลี่ยนสามารถประกอบด้วยฟังก์ชั่น (4 1 2 3)(2 1 3 4) = (4 2 1 3) สิ่งนี้นำมาซึ่งคุณสมบัติที่น่าสนใจมากมาย วันนี้เราจะมุ่งเน้นไปconjugacy การเรียงสับเปลี่ยนyและx (ทั้งสองขนาดn ) เป็นคอนจูเกตถ้ามีการเปลี่ยนลำดับgและg -1 (เช่นขนาดn ) x = gyg-1 และgg -1เท่ากับการเปลี่ยนรูปแบบตัวตน ( ตัวเลขn ตัวแรกตามลำดับที่เหมาะสม) งานของคุณคือการเปลี่ยนขนาดเท่ากันสองขนาดผ่านวิธีการป้อนข้อมูลมาตรฐานและตัดสินใจว่าจะเชื่อมต่อกันหรือไม่ คุณควรส่งออกหนึ่งในสองค่าที่สอดคล้องกันหนึ่งถ้าพวกเขาเป็นคอนจูเกตและอื่น …

27
จัดกลุ่มรายการใหม่อย่างรวดเร็ว
การจัดกลุ่มใช้รายการและแยกเป็นรายการใหม่ขององค์ประกอบที่อยู่ติดกันเท่ากัน ตัวอย่างเช่น [1,1,2,1,1] -> [[1,1],[2],[1,1]] หากคุณใช้ความยาวของกลุ่มเหล่านี้คุณจะได้รับรายการจำนวนเต็มใหม่ [1,1,2,1,1] -> [2,1,2] งานของคุณคือการเขียนโปรแกรมที่ใช้รายการจำนวนเต็มบวกและหาจำนวนครั้งที่คุณสามารถจัดกลุ่มและขยายได้ก่อนที่รายการผลลัพธ์จะมีองค์ประกอบเดียว ตัวอย่างเช่นรายการ[1,2,3,3,2,1]สามารถจัดกลุ่มใหม่ได้ 4 ครั้ง [1,2,3,3,2,1] [1,1,2,1,1] [2,1,2] [1,1,1] [3] นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์น้อยกว่าจะดีกว่า กรณีทดสอบ [1,2,3,3,2,1] -> 4 [1,2,3,4,5,6,7] -> 2 [1,1,1,1,1,1] -> 1 [2] -> 0 [1,2,4] -> 2 [1,2,2,1,1,2] -> 4 [1,2,2,1,1,2,1,2,2] -> 5 [1] -> 0

9
เคล็ดลับการตีกอล์ฟในคลีน
คุณมีเคล็ดลับทั่วไปอะไรสำหรับการเล่นกอล์ฟใน Clean โปรดโพสต์แนวคิดที่สามารถนำไปใช้กับปัญหาการเขียนโค้ดกอล์ฟโดยทั่วไปและอย่างน้อยก็ค่อนข้างเฉพาะเจาะจงกับ Clean ถ้าคุณไม่เคยได้ยินสะอาดคุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่ หรือคุณสามารถเข้าร่วมห้องสนทนา
17 code-golf  tips 

23
ลบรายการที่ซ้ำออกจากสตริง
ได้รับแรงบันดาลใจจากคำถาม StackOverflow ที่ยังไม่เกิดขึ้น ความคิดนั้นง่าย กำหนด String และอาร์เรย์ของ Strings ให้ลบอินสแตนซ์ของคำใด ๆ ในอาร์เรย์ (ไม่สนใจขนาดตัวพิมพ์) จากอินพุตสตริงอื่นที่ไม่ใช่แถวแรกพร้อมกับช่องว่างเพิ่มเติมที่อาจทำให้เกิด คำต้องตรงกับคำทั้งหมดในสตริงป้อนเข้าไม่ใช่ส่วนของคำ เช่น"A cat called matt sat on a mat and wore a hat A cat called matt sat on a mat and wore a hat", ["cat", "mat"]ควรส่งออก"A cat called matt sat on a mat and wore a …
17 code-golf  string 

1
การนับลูป Moufang
การวนซ้ำเป็นโครงสร้างพีชคณิตที่ค่อนข้างง่าย มันเป็น tuple (G +)ที่Gเป็นชุดและ+เป็นผู้ประกอบการไบนารีG × G → G นั่นคือ+ใช้สององค์ประกอบจากGและส่งคืนองค์ประกอบใหม่ ผู้ประกอบการยังต้องปฏิบัติตามคุณสมบัติสองประการ การยกเลิก: สำหรับทุกaและbในGจะมีxและy ที่ไม่ซ้ำกันในGเช่นนั้น a + x = b y + a = b รหัสประจำตัว: มีเป็นอีในGดังกล่าวว่าสำหรับทุกในG e + a = a a + e = a หากคุณคุ้นเคยกับแนวคิดของกลุ่มคุณอาจสังเกตเห็นว่าการวนซ้ำเป็นเพียงกลุ่มที่ไม่มีคุณสมบัติการเชื่อมโยง ลูปนั้นค่อนข้างเรียบง่ายดังนั้นผู้คนจึงชอบเพิ่มกฎเพื่อสร้างโครงสร้างใหม่ที่น่าสนใจยิ่งขึ้น หนึ่งในโครงสร้างดังกล่าวคือห่วง Moufangซึ่งเป็นวงที่สอดคล้องกับสี่ตัวตนต่อไปนี้สำหรับx , yและzในG z + (x + (z + y)) = …

23
สารตั้งต้นไบนารี
แรงบันดาลใจจากปัญหาที่สี่จากBMO2 2009 ป.ร. ให้ไว้เป็นจำนวนเต็มบวกnเป็น input หรือพารามิเตอร์กลับจำนวนของจำนวนเต็มบวกที่มีการแสดงไบนารีเกิดขึ้นเป็นบล็อกในการขยายตัวไบนารีของn ยกตัวอย่างเช่น 13 -> 6 เพราะ 13 ในไบนารี 1101 1101, 110, 101, 11, 10, 1และมีสตริง เราจะไม่นับเลขฐานสองที่ขึ้นต้นด้วยศูนย์และเราจะไม่นับศูนย์เอง กรณีทดสอบ 13 -> 6 2008 -> 39 63 -> 6 65 -> 7 850 -> 24 459 -> 23 716 -> 22 425 -> 20 327 -> 16 คุณอาจใช้nเป็นดังต่อไปนี้: …
17 code-golf  binary 

15
ช่วยลูกชายของฉันค้นหาจดหมายของเขา
พื้นหลัง ขึ้นอยู่กับเกมสี่ปีของฉันได้รับจากอาจารย์ของเขา ว่า "เป้าหมาย" คือการ "ค้นหา" aecdbตัวอักษรในการสั่งซื้อที่ได้รับเช่น dacebคุณจะได้รับบัตรสแต็คของตัวอักษรเช่น คุณสามารถค้นหาได้จากสแต็กตามลำดับที่กำหนดแม้ว่าจะเป็นแบบวนรอบเท่านั้น เมื่อคุณพบจดหมายที่คุณต้องการคุณจะนำมันออกมาจากกอง วัตถุประสงค์ เมื่อได้รับคำสั่งและสแต็ค (การเรียงสับเปลี่ยนที่ไม่ซ้ำกัน) ให้ค้นหาลำดับของตัวอักษรบนสุด (เป็น ASCII ที่พิมพ์ได้ทั้งหมด) ที่คุณเห็นขณะเล่นเกม ตัวอย่างทีละขั้นตอน เราจำเป็นต้องค้นหาคำสั่งที่aecdbได้รับกองdaceb: ด้านบนของสแต็คd: ไม่ได้สิ่งที่เรากำลังมองหา ( a) เพื่อให้เราเพิ่มเข้าไปในลำดับ: และหมุนที่จะได้รับสแต็ค:dacebd ด้านบนของสแต็คa: ใช่! เพื่อให้เราเพิ่มเข้าไปในลำดับ: และนำออกจากสแต็ค:dacebd ด้านบนของสแต็คc: ไม่ได้สิ่งที่เรากำลังมองหา ( e) เพื่อให้เราเพิ่มเข้าไปในลำดับ: และหมุนที่จะได้รับสแต็ค:dacebdc ด้านบนของสแต็คe: ใช่! เพื่อให้เราเพิ่มเข้าไปในลำดับ: และนำออกจากสแต็ค:dacebdc ด้านบนของสแต็คb: ไม่ได้สิ่งที่เรากำลังมองหา ( c) เพื่อให้เราเพิ่มเข้าไปในลำดับ: และหมุนที่จะได้รับสแต็ค:dacebdcb ด้านบนของสแต็คd: ไม่ได้สิ่งที่เรากำลังมองหา ( c) …

6
ลบตัวเลขหลักแรก
เราทุกคนรู้ว่าเมื่อใดก็ตามที่จำนวนตรรกยะเขียนเป็นทศนิยมผลลัพธ์จะสิ้นสุดลงหรือ (เป็นระยะ) ในที่สุด ตัวอย่างเช่นเมื่อเขียน 41/42 เป็นทศนิยมผลลัพธ์จะเป็น 0.9 761904 761904 761904 761904 761904 761904 761904 ... ด้วยลำดับเริ่มต้นของตัวเลข0.9ตามด้วยลำดับ761904ซ้ำแล้วซ้ำอีก (สัญลักษณ์ที่สะดวกสำหรับสิ่งนี้คือ0.9(761904)ที่วงเล็บล้อมรอบบล็อกของตัวเลขที่ซ้ำกัน) เป้าหมายของคุณในการท้าทายนี้คือการใช้จำนวนตรรกยะเป็นบวกลบตัวเลขแรกที่เป็นส่วนหนึ่งของลำดับการทำซ้ำและส่งกลับจำนวนตรรกยะที่เกิดขึ้น ตัวอย่างเช่นถ้าเราทำสิ่งนี้กับ 41/42 เราจะได้ 0.9 61904 761904 761904 761904 761904 761904 761904 ... หรือ0.9(619047)สั้น ๆ ซึ่งก็คือ 101/105 หากจำนวนตรรกยะมีการขยายทศนิยมที่สิ้นสุดเช่น 1/4 = 0.25จะไม่มีอะไรเกิดขึ้น คุณสามารถนึกได้ว่า 1/4 ไม่ว่าจะเป็น0.250000000...หรือ0.249999999...ในกรณีใดกรณีหนึ่งการลบตัวเลขแรกของส่วนที่ทำซ้ำจะทำให้หมายเลขนั้นไม่เปลี่ยนแปลง รายละเอียด อินพุตเป็นจำนวนตรรกยะเป็นบวกไม่ว่าจะเป็นคู่ของจำนวนเต็มบวกที่เป็นตัวแทนตัวเศษและส่วนหรือ (หากภาษาที่คุณเลือกอนุญาตให้ใช้และคุณต้องการ) เป็นวัตถุเชิงเหตุผลจำนวนหนึ่ง ผลลัพธ์ยังเป็นจำนวนตรรกยะเช่นกันในรูปแบบใดรูปแบบหนึ่ง หากผลลัพธ์เป็นจำนวนเต็มคุณอาจส่งคืนจำนวนเต็มแทนที่จะเป็นจำนวนตรรกยะ หากใช้ตัวเลขเป็นคู่คุณอาจคิดว่ามันค่อนข้างดี หากผลิตตัวเลขเป็นคู่คุณจะต้องทำให้มันค่อนข้างสำคัญ ระวังว่าคุณพบตัวเลขแรกที่เริ่มบล็อกการทำซ้ำ …

7
การกำหนดค่าอิเล็กตรอน
ในฟิสิกส์อะตอมและเคมีควอนตัมที่อิเล็กตรอนคือการกระจายของอิเล็กตรอนของอะตอมในปรมาณู orbitals ยกตัวอย่างเช่นการกำหนดค่าอิเล็กตรอนของอะตอมนีออนเป็น1s 2 2s 2 2p 6 (จากWikipedia ) ท้าทาย ความท้าทายของคุณคือการใช้ตัวเลขแทนเลขอะตอมของธาตุและเอาท์พุทอิเล็กตรอนขององค์ประกอบที่ตามที่กำหนดโดยหลักการ Aufbau เหล็ก (26) มีการกำหนดค่าอิเล็กตรอน อย่างไรก็ตามตัวยกนั้นไม่จำเป็น เอาท์พุท 26 ควรจะเป็นตามสายของ1s2 2s2 2p6 3s2 3p6 3d6 4s21s2 2s2 2p6 3s2 3p6 3d6 4s2 สเปค คุณไม่ได้มีการจัดการปัจจัยการผลิตใด ๆ 1 <= n <= 118นอกช่วง การส่งออกของคุณควรมีลักษณะบางอย่างเช่นกรณีทดสอบ แต่คุณอาจจะใช้ที่ไม่ใช่หลักตัวอักษรใด ๆ / ตัวอักษร (นอกเหนือจากs, p, dและf) เพื่อกำหนดเขต orbitals …

11
ลำดับห้าThirtyEightทั่วไป
ดัดแปลงมาจากปริศนาห้าสิบสามสิบแปด พื้นหลัง ตรวจสอบลำดับอนันต์ต่อไปนี้: 3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ... สมมติว่ามีการเรียงลำดับดัชนี 1 iจำนวนวันในลำดับกำหนดจำนวน3s มีก่อนiวัน2และต่อไปนี้ก่อน ๆ2s ดังนั้นเมื่อลำดับเริ่มต้นด้วย3ลำดับจะต้องเริ่มต้น3 3 3 2และเนื่องจากมีสาม3s ที่จุดเริ่มต้นของลำดับที่ลำดับ3 3 3 2จะต้องทำซ้ำตัวเองสามครั้ง หลังจากนั้นคุณก็มาถึง3 3 22เนื่องจากจำนวนที่สี่ในลำดับคือ FiveThirtyEight ปริศนาขอวงเงินอัตราส่วนของสามเพื่อ twos (ซึ่งผมจะไม่เสียนี่) iแต่คุณยังสามารถขอให้สิ่งที่อัตราส่วนสะสมคือหลังจากที่ดัชนี ตัวอย่างเช่นอัตราส่วนที่i=4เป็น3/1 = 3และที่มันเป็นi=1511/4 = 2.75 รับทั่วไป …

30
เอาท์พุทชื่อภาษาคูณจำนวนตัวอักษร [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ท้าทาย: งานของคุณคือการใช้ภาษาใด ๆ ในการแสดงผลชื่อภาษานั้นคูณด้วยจำนวนตัวอักษรในชื่อ ใช้ชื่อสามัญหรือตัวย่อของภาษา หากมีหลายภาษาคุณไม่จำเป็นต้องใส่หมายเลขเวอร์ชั่น ตัวพิมพ์ใหญ่มีความสำคัญ ตัวอย่าง: PHP -> PHPPHPPHP Java -> JavaJavaJavaJava C++ -> C++C++C++ Python 3 -> PythonPythonPythonPythonPythonPython JavaScript -> JavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScript

10
ค่า HSL เป็น RGB
วัตถุประสงค์หลักของโมเดลสี RGB (แดงเขียวน้ำเงิน) สำหรับการตรวจจับการแสดงและการแสดงภาพในระบบอิเล็กทรอนิกส์เช่นโทรทัศน์และคอมพิวเตอร์ HSL (Hue Saturation Lightness) เป็นรูปแบบสีทางเลือกที่ออกแบบในปี 1970 โดยนักวิจัยคอมพิวเตอร์กราฟิกเพื่อให้สอดคล้องกับวิธีการมองเห็นของมนุษย์ในการรับรู้คุณลักษณะการทำสี นี่คือบทความวิกิพีเดียสำหรับเป็นRGBและHSL เป็นเรื่องปกติที่โปรแกรมกราฟิกจะทำการคำนวณใน HSL และแปลงเป็นรูปแบบที่ต้องการสำหรับหน้าจอส่วนใหญ่: RGB ภารกิจคือการเขียนฟังก์ชั่น / โปรแกรมที่ใช้ HSL เป็นอินพุตและเอาต์พุต RGB คุณสามารถเลือกการแสดงที่คุณต้องการสำหรับ I / O ตราบใดที่มันยังสอดคล้องกัน ตัวอย่างเช่นพวกเขาสามารถเป็นอาร์เรย์ / tuple มี 3 องค์ประกอบหรือวัตถุที่มี 3 คุณสมบัติการตั้งชื่อh, sและlแต่ฉันจะยอมรับการเปลี่ยนแปลงที่ฉลาดอื่น ๆ เช่นรับ HSL เป็นจำนวนเต็ม (แพ้ความแม่นยำ) และการแสดงผลเป็นจำนวนเต็ม RGB อินพุตสามารถสันนิษฐานได้ว่าปลอดภัยในช่วงและรูปแบบซึ่งคุณสามารถเลือกได้ทั้งสองแบบ ฉันขอแนะนำช่วง0-1 0-1 0-1หรือ0-360 0-100 0-100สำหรับ hsl …

10
ระบุกริดที่เป็นไปได้ทั้งหมดของจำนวนเต็มด้วยข้อ จำกัด
ปัญหา พิจารณาสแควร์ 3 คูณ 3 ตารางของจำนวนเต็มไม่เป็นลบ สำหรับแต่ละแถวผลรวมของจำนวนเต็มจะถูกกำหนดให้เป็นi r_iในทำนองเดียวกันสำหรับแต่ละคอลัมน์ผลรวมของจำนวนเต็มในคอลัมน์นั้นจะถูกกำหนดให้เป็น jc_j งานคือการเขียนรหัสเพื่อระบุการมอบหมายที่แตกต่างกันทั้งหมดที่เป็นไปได้ของจำนวนเต็มไปยังตารางที่กำหนดข้อ จำกัด ผลรวมแถวและคอลัมน์ รหัสของคุณควรส่งออกหนึ่งครั้ง อินพุต รหัสของคุณควรใช้จำนวนเต็ม 3 จำนวนที่ไม่เป็นลบซึ่งระบุข้อ จำกัด ของแถวและ 3 จำนวนเต็มที่ไม่เป็นลบระบุข้อ จำกัด ของคอลัมน์ คุณสามารถสันนิษฐานได้ว่าสิ่งเหล่านี้ถูกต้องกล่าวคือข้อ จำกัด ของผลรวมหรือแถวเท่ากับผลรวมของข้อ จำกัด ของคอลัมน์ รหัสของคุณสามารถทำได้ทุกวิธีที่สะดวก เอาท์พุต รหัสของคุณควรแสดงกริด 2d ที่แตกต่างกันซึ่งคำนวณในรูปแบบที่มนุษย์สามารถอ่านได้ที่คุณเลือก แน่นอนยิ่งดี เอาต์พุตต้องไม่มีกริดที่ซ้ำกัน ตัวอย่าง หากข้อ จำกัด ของแถวและคอลัมน์ทั้งหมด1นั้นมี6ความเป็นไปได้ที่แตกต่างกันเท่านั้น สำหรับแถวแรกคุณสามารถใส่หนึ่ง1ในสามคอลัมน์แรกสำหรับแถวที่สองขณะนี้มี2ทางเลือกและตอนนี้แถวสุดท้ายจะถูกกำหนดโดยทั้งสองก่อนหน้าอย่างสมบูรณ์ 0ทุกสิ่งทุกอย่างในตารางควรจะกำหนดให้ สมมติว่าอินพุต2 1 0สำหรับแถวและ1 1 1สำหรับคอลัมน์ ด้วยรูปแบบผลลัพธ์ที่น่ารักของ APL กริดจำนวนเต็มที่เป็นไปได้คือ: ┌─────┬─────┬─────┐ …

9
ขนาดกระดาษและซองจดหมาย
งาน ให้ตัวอักษร (A, B, C) และตัวเลข (0-10) เอาท์พุทขนาดของขนาดกระดาษมาตรฐานที่ตรงกัน (Series A และ B) หรือขนาดซองจดหมายมาตรฐานที่ตรงกัน (ชุด C) ในหน่วยมิลลิเมตรaaaa x bbbbที่ไหนaaaaและbbbbมีการวัดความกว้างและความสูงเป็นมิลลิเมตรตามมาตรฐาน ISO216 (Series A & B) หรือ ISO296 (Series C) เพื่อให้ง่ายขึ้นฉันจะอ้างอิงจากตารางขนาดกระดาษของ Wikipedia ISO paper sizes in portrait view Format A series B series C series Size mm × mm mm × mm mm …
17 code-golf 

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