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

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

16
หมายเลขนารายานา - ไซเดค - คาเปลล์
สร้างn TH นารายณ์-Zidek-Capellจำนวนที่กำหนดอินพุตn ไบต์ที่น้อยที่สุดจะชนะ f (1) = 1, f (n) คือผลรวมของชั้นก่อนหน้า (n / 2) ข้อกำหนดของ Narayana-Zidek-Capell กรณีทดสอบ: f(1)=1 f(9)=42 f(14)=1308 f(15)=2605 f(23)=664299

12
การแบ่งปันความลับของ Shamir
ป.ร. ให้ไว้n(จำนวนของผู้เล่น) t(ค่าเกณฑ์) และs(ความลับ) เอาท์พุทnลับที่สร้างขึ้นโดยอัลกอริทึมที่ใช้ร่วมกันความลับของมิร์ อัลกอริทึม สำหรับจุดประสงค์ของการท้าทายนี้การคำนวณจะกระทำในGF (251) (เขตข้อมูลขนาด จำกัด251หรือที่รู้จักกันในชื่อจำนวนเต็มmod 251 ) ตามปกติแล้วฟิลด์จะถูกเลือกเพื่อให้ขนาดของมันใหญ่กว่าnมาก เพื่อลดความท้าทายขนาดของสนามจะคงที่ 251ได้รับเลือกเนื่องจากเป็นจำนวนที่ใหญ่ที่สุดที่สามารถแทนได้โดยเลขจำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ สร้างt-1จำนวนเต็มสุ่มใน (รวม) [0, 250]ช่วง ป้ายเหล่านี้1ผ่านT-1 สร้างt-1พหุนามระดับปริญญาที่ใช้sเป็นค่าคงที่และจำนวนเต็มแบบสุ่มจากขั้นตอนที่ 1 เป็นค่าสัมประสิทธิ์ของพลังของx: f (x) = s + x * a 1 + x 2 * a 2 + ... + x t- 1 * a T-1 เอาท์พุท(f(z) …
17 code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

3
คำนวณ 3BV ของ Minesweeper Board
3BVของเรือกวาดทุ่นระเบิดคณะกรรมการหมายถึงจำนวนขั้นต่ำของการคลิกซ้ายจำเป็นในการแก้กระดานถ้าคุณรู้อยู่แล้วว่าการแก้ปัญหา มันย่อมาจาก "เกณฑ์มาตรฐานของคณะกรรมการของเบคเทล" นี่คือเว็บไซต์ของเขาอธิบาย ด้านล่างเป็นบอร์ด Minesweeper ที่แก้ไขแล้ว ธงระบุว่าเหมือง; ไทล์ที่ไม่มีทุ่นระเบิดระบุจำนวนของทุ่นระเบิดที่อยู่ติดกันรวมถึงแนวทแยงมุมยกเว้นไทล์ที่ควรมี "0" จะถูกปล่อยว่างไว้แทน ภาพแสดงกระเบื้องที่จะต้องคลิกเพื่อแก้ปัญหากระดาน จำนวนคลิกต่อ 3BV คือ: หนึ่งรายการสำหรับแต่ละพื้นที่ที่เต็มไปด้วยน้ำท่วมของกระเบื้องว่างเปล่า (ติดกับศูนย์เหมือง) และเพื่อนบ้านที่ไม่ว่าง หนึ่งรายการสำหรับกระเบื้องที่ไม่ใช่ของฉัน ตัวอย่างอื่น (3BV = 39) กำหนดอาร์เรย์ 2 มิติของค่า0สำหรับความชัดเจนและ1การเหมืองแร่ (หรือบูล) กลับ 3BV ขนาดของคณะกรรมการจะต้องมีอย่างน้อย 8x8 และไม่เกิน 24x30 รวม โปรแกรมของคุณควรจัดการบอร์ดที่เป็นไปได้ทั้งหมดไม่ใช่แค่ตัวอย่างเท่านั้น หมายเหตุ: บอร์ดจะไม่มีเหมืองเท่านั้น ตัวอย่าง I / O: [[0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0], [0,0,0,1,0,0,1,0], [0,1,0,0,1,0,0,0], [0,0,1,0,0,0,0,1], [0,0,0,1,0,0,0,0], [0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,1]] 23 …

20
ย้อนกลับวิ่งคี่
แรงบันดาลใจ งาน ย้อนกลับการทำงานของตัวเลขคี่ในรายการที่กำหนดของ 2 ถึง 2 15จำนวนเต็มไม่เป็นลบ ตัวอย่าง 0 1 →การ 0 1 1 3 →การ 3 1 1 2 3 →การ 1 2 3 1 3 2 →การ 3 1 2 10 7 9 6 8 9 →การ 10 9 7 6 8 9 23 12 32 23 25 …

11
อิโมจิของฉันแห้งหรือไม่
นี่คืออีโมจิสัตว์เลี้ยงของฉันบิลลี่: -_- อิโมจิไม่ชอบอยู่กลางสายฝนดังนั้นบิลลี่จึงเศร้า ... มาวาดร่มกันเพื่อทำให้เขารู้สึกดีขึ้น! /\ / \ / \ -_- นี่เป็นสิ่งที่ดีเขาได้รับร่มของเขาทั้งหมด! นี่คือตัวอย่างที่ครอบคลุมเพียงบางส่วนของเขา: /\ / \ / \ -_- ในกรณีนี้ส่วนที่ 2 และ 3 ของร่างกายของเขาถูกฝน ร่มมาในหลายรูปร่างและขนาด แต่พวกเขากำลังทำเสมอขึ้นมาจากชุดของทับน้อยไปหามาก/ตามมาด้วยชุดของ \backslashes ตัวอย่างเช่นสิ่งเหล่านี้เป็นร่มที่ถูกต้องทั้งหมด: /\ / \ / \ /\ /\ / \ / \ / \ / \ และนี่ไม่ใช่: / \ \/ \ / \ …

7
การพลิกกลับสตริงปกติและสตริงที่มองเห็น
เขียนโค้ดที่ทำหน้าที่เป็นโปรแกรม cat นั่นคือเพื่อป้อนสตริงและส่งออกตามที่เป็นอยู่ แต่การพลิกกลับปกติของรหัสของคุณจะต้องส่งกลับการพลิกกลับปกติของสายอักขระอินพุต และการพลิกกลับที่มองเห็นได้ของรหัสของคุณจะต้องส่งออกการพลิกกลับที่มองเห็นได้ของสายป้อน การกลับรายการปกติคือลำดับอักขระที่ตรงกันข้ามของสตริง การพลิกกลับทางภาพคือการพลิกกลับตามปกติ()[]{}<>โดยแทนที่อักขระ)(][}{><ตามลำดับ คุณสามารถใช้เพจรหัสใด ๆ ที่มีอักขระ()[]{}<>และมีการเผยแพร่ก่อนการท้าทายนี้เพื่อกำหนดอักขระ คุณต้องใช้เพจรหัสเดียวกันสำหรับรหัสทั้งหมดของคุณ รหัสต้นฉบับของคุณต้องถูกต้องในเพจรหัสนี้และใช้รหัสที่กลับรายการของคุณอย่างใดอย่างหนึ่งเพื่อที่จะให้ผลตอบแทนเอง นี่คือcode-golfรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่าง สำหรับสตริงAB(XY), reversions ปกติและภาพที่มี)YX(BAและ(YX)BAตามลำดับ หากรหัสของคุณ (ในภาษาสมมุติ) คือAB(XY)รหัส)YX(BAและ(YX)BAควรส่งออกการย้อนกลับปกติและภาพของสายป้อนตามลำดับ และAB(XY)ควรทำตัวเป็นโปรแกรมแมว

1
วิธีที่ดีกว่าในการอ่านหลาย int ใน C กว่า scanf
ฉันกำลังพยายามอ่าน ints 4 ตัวใน C ในการแข่งขันกอล์ฟและฉันก็กังวลกับความยาวของรหัสที่ฉันต้องแก้ไข: scanf("%d%d%d%d",&w,&x,&y,&z) นั่นคือ 29 ตัวอักษรซึ่งมีขนาดใหญ่มากเมื่อพิจารณาว่าขนาดรหัสทั้งหมดของฉันคือ 101 ตัวอักษร ฉันสามารถกำจัด int แรกได้เนื่องจากฉันไม่ต้องการมันดังนั้นฉันจึงได้รหัสนี้: scanf("%*d%d%d%d",&x,&y,&z) อันไหนคือ 27 ตัวอักษร แต่มันก็ยังคงยาว ดังนั้นคำถามของฉันคือมีวิธีอื่น (เทคนิคฟังก์ชั่นสิ่งของ K&R) เพื่ออ่าน ints ที่ฉันไม่ทราบว่าสามารถช่วยลดรหัสบิตนี้ได้หรือไม่ ขอบคุณมาก. แก้ไข: ผู้ใช้บางคนรายงานว่าคำถามของฉันคล้ายกับเคล็ดลับสำหรับการเล่นกอล์ฟใน C ในขณะที่หัวข้อนี้มีข้อมูลที่เป็นประโยชน์มากมายในการย่อรหัส C แต่ก็ไม่เกี่ยวข้องกับกรณีการใช้งานจริงของฉันเนื่องจากไม่มีวิธีที่ดีกว่าในการอ่านอินพุต ฉันไม่รู้ว่าจริง ๆ แล้วมีวิธีที่ดีกว่า scanf ในการอ่านจำนวนเต็ม (นั่นเป็นเหตุผลที่ฉันถามคำถามตั้งแต่แรก) แต่ถ้ามีฉันคิดว่าคำถามของฉันเกี่ยวข้องและแตกต่างจากทั่วโลกอย่างเพียงพอ เคล็ดลับและลูกเล่น หากไม่มีวิธีที่ดีกว่าคำถามของฉันยังคงมีประโยชน์ในอนาคตอันใกล้หากมีคนหาทางออกที่ดีกว่า EDIT2: ฉันกำลังมองหาโปรแกรมเต็มรูปแบบ (จึงไม่มีฟังก์ชั่นเคล็ดลับ) และ librairies ทั้งหมดที่เป็นไปได้ มันต้องเป็น C …
17 code-golf  tips 

19
จำนวนมากที่สุดในช่วงเมื่อผลรวมของสแควร์สของปัจจัยสำคัญถูกลบออก
สูตรสำเร็จ ยกตัวอย่างเช่นหมายเลข 300 ปัจจัยสำคัญของ 300 คือ[2, 3, 5](ตัวเลขเฉพาะที่เป็นปัจจัยของ 300 และนายกรัฐมนตรี) กำลังสองจำนวนเหล่านั้นจะให้คุณ [4, 9, 25] การรวมรายการนั้นจะทำให้คุณ 4 + 9 + 25 = 38 สุดท้ายลบผลรวมนั้น (38) จากหมายเลขเดิมของคุณ300-38 = 262(นี่คือผลลัพธ์) อินพุต ข้อมูลที่คุณป้อนจะเป็นจำนวนเต็มบวกมากกว่า 2 คุณต้องตรวจสอบตัวเลขทั้งหมดตั้งแต่ 2 ถึงค่าอินพุต (รวม) และค้นหาหมายเลขที่ให้ผลลัพธ์มากที่สุดด้วยสูตรด้านบน เอาท์พุต ผลลัพธ์ของคุณจะเป็นตัวเลขสองตัวคั่นด้วยช่องว่างเครื่องหมายจุลภาคขึ้นบรรทัดใหม่หรืออะไรก็ตามที่คุณอนุญาตให้ใช้ภาษา สิ่งเหล่านี้สามารถส่งออกไปยังไฟล์ stdout หรือสิ่งที่ภาษาของคุณใช้ เป้าหมายของคุณคือค้นหาตัวเลขในช่วงที่สร้างเอาต์พุตสูงสุดเมื่อเรียกใช้ผ่านสูตรด้านบน หมายเลขแรกที่แสดงควรเป็นหมายเลขเริ่มต้น (เช่น 300) และหมายเลขที่สองควรเป็นผลลัพธ์ที่สูตรที่สร้าง (เช่น 262) กรณีทดสอบ Input: 3 …

10
บีบอัดรหัสของคุณในภาพ
นี่คือรูปแบบควิน บทนำ เราทุกคนเขียนโค้ดสั้น ๆ เพราะเหตุผลบางอย่างที่คลุมเครือแต่ไม่ว่าเราจะทำอะไรจะใช้เวลาอย่างน้อย 144 พิกเซล / ไบต์ (ด้วยตัวอักษร 12px) แต่จะเกิดอะไรขึ้นถ้าเราจะเข้ารหัสรหัสของเราในภาพ? นี่คืองานของคุณวันนี้ ท้าทาย งานของคุณคือการอ่านในซอร์สโค้ดของคุณเอง (อนุญาตให้ใช้ควินส์ที่ไม่เหมาะสมเช่นการอ่านไฟล์ต้นฉบับ) และสร้างภาพออกมาโดยการตั้งค่าส่วนประกอบสีแดงสีเขียวและสีน้ำเงินของพิกเซลตาม ASCII ค่าของตัวละคร ตัวอย่าง: เรามีสตริง "Hello world!" Hello world! มาแปลงค่านี้เป็นค่า ASCII: 72 101 108 108 111 32 119 111 114 108 100 33 จับคู่ค่า RGB กับมัน (หากความยาวของซอร์สโค้ดไม่สามารถหารด้วย 3 ให้ใช้ 0 เป็นตัวอักษรที่เหลือ): __________________________________________________ | R …

10
สี่เหลี่ยมที่ปนเปื้อน
บทนำ ลองสังเกตจตุรัสต่อไปนี้ซึ่งประกอบไปด้วยตัวเลขเท่านั้น0 - 9: 1034 4167 8414 3542 เปลือกนอกของตารางนี้คือ: 1034 4 7 8 4 3542 มันมีค่าศูนย์ดังนั้นเราจำเป็นต้องลอกเปลือกนอกออกจาก: 16 41 เปลือกนอกของตารางนี้คือ: 16 41 มันไม่ได้มีศูนย์ใด ๆ และดังนั้นจึงเป็นตารางที่ไม่ปนเปื้อน โดยทั่วไปคำจำกัดความของสี่เหลี่ยมจัตุรัสที่ไม่มีการปนเปื้อนคือเมื่อเปลือกด้านนอกของสี่เหลี่ยมไม่มีศูนย์ งาน ให้สี่เหลี่ยมสองหลัก (มีเฉพาะจำนวนเต็มไม่เป็นลบ) ในรูปแบบที่เหมาะสมส่งออกสี่เหลี่ยมที่ไม่ปนเปื้อนที่ใหญ่ที่สุดโดยปอกเปลือกนอกออกอย่างต่อเนื่องในรูปแบบที่เหมาะสม กรณีทดสอบ กรณีทดสอบ 1: Input Output 1234 1234 2345 2345 3456 3456 4567 4567 กรณีทดสอบ 2: Input Output 123 123 204 204 …
17 code-golf  number 

1
ลองใช้สามเหลี่ยมทดลองนี้
สตริงที่มีความยาวคือตัวเลขสามเหลี่ยมบวก(1, 3, 6, 10, 15 ... ) สามารถจัดเรียงเป็น "สามเหลี่ยมข้อความรูปสามเหลี่ยมด้านเท่า" โดยการเพิ่มช่องว่างและบรรทัดใหม่ (และเก็บไว้ในลำดับการอ่านเดียวกัน) ตัวอย่างเช่นความยาว 10 สตริงABCDEFGHIJกลายเป็น: A B C D E F G H I J เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสตริงเช่นยกเว้นจะมีเพียงตัวละครและ0 1(คุณอาจสมมติว่าอินพุตถูกต้อง) สำหรับผลลัพธ์ "สามเหลี่ยมข้อความด้านเท่ากันหมด" ผลลัพธ์ (พิมพ์หรือส่งคืน) หนึ่งในสี่หมายเลขที่แสดงถึงประเภทของสมมาตรที่จัดแสดง: เอาท์พุท2ถ้าสามเหลี่ยมมีสมมาตรทวิภาคี นั่นคือมันมีเส้นสมมาตรจากมุมหนึ่งไปยังจุดกึ่งกลางของฝั่งตรงข้าม ตัวอย่าง: 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 …

7
ช่วงเวลาในฐานที่แตกต่างกัน
ท้าทาย: คุณจะได้รับหมายเลขฐาน 10 สำหรับแต่ละฐานตั้งแต่ 10 นับถึงฐาน 2: ใช้หมายเลขอินพุตดั้งเดิมเป็นสตริงฐาน 10 และลบตัวเลขใด ๆ ของตัวเลขที่ไม่ถูกต้องสำหรับฐาน ตีความสตริงตัวเลขผลลัพธ์ในฐานนั้น หากสิ่งนี้ให้ 1 หรือ 0 ให้ยุติกระบวนการทั้งหมด เอาท์พุทหรือพิมพ์ตัวประกอบนายกที่ใหญ่ที่สุดเป็นเลขทศนิยม การส่งออกสามารถอาร์เรย์ของปัจจัยสำคัญที่ใหญ่ที่สุด กรณีตัวอย่าง: การป้อนข้อมูล: 987654321 เอาท์พุท: 379721 10593529 1091 179 1493 293 19 7 อีกวิธีหนึ่งคือ: [379721,10593529,1091,179,1493,293,19,7] สิ่งนี้พิมพ์ปัจจัยที่สำคัญที่สุดของ 987654321, 87654321 9 = 42374116 10 , 7654321 8 = 2054353 10และต่อไปเรื่อย ๆ จนกว่าจะถึง 1 …

5
ไปที่มุมตรงข้ามของรูปสี่เหลี่ยมผืนผ้าในทุกทิศทาง - ยากขึ้น
นี่เป็นสิ่งเดียวกับคำถามนี้ยกเว้นยากกว่า คุณเป็นอีกครั้งที่จะเขียนโปรแกรมที่ได้รับจากมุมซ้ายล่างของรูปสี่เหลี่ยมผืนผ้าไปที่มุมบนขวา อย่างไรก็ตามในครั้งนี้อนุญาตให้มีการเคลื่อนไหวในแนวทแยง โปรแกรมจะยอมรับคู่ที่สั่งซื้อ(width, height)และใช้สิ่งเหล่านี้เป็นส่วนข้อมูลสำหรับสี่เหลี่ยมผืนผ้า โปรแกรมของคุณจะสร้าง ASCII-art ของโซลูชัน (ใช้.สำหรับช่องว่างเปล่า#สำหรับส่วนหนึ่งของโซลูชันและXสำหรับสี่เหลี่ยมเริ่มต้น) และนับจำนวนการเคลื่อนไหวที่ใช้เพื่อไปยังจุดสิ้นสุด ตัวอย่าง การป้อนข้อมูล: (5, 6) เอาท์พุท: ....# ....# ...#. ..#.. .#... X.... Move count: 5 คำตอบที่สั้นที่สุดในการชนะไบต์!


11
สร้างเมือง ABACABA
นี่คือเมืองที่ 3 ของ ABACABA: _ A|_| B|__| A|_|_ C|___| A|_| B|__| A|_| มันทำมาจากลำดับABACABAซึ่งโดยพื้นฐานแล้ว: A (การทำซ้ำครั้งที่ 1) วาง B - AB ทำซ้ำ A - ABA (การวนซ้ำครั้งที่ 2) เพลส C - ABAC ทำซ้ำ ABA - ABACABA (การทำซ้ำครั้งที่ 3) และคุณจะได้รับความคิด อาคารมีความสูง (ติดต่อกันโดยไม่ขีดเส้นใต้) เท่ากับตัวอักษรที่แปลงเป็นตัวเลขเป็น A = 1, B = 2 เป็นต้น อินพุต หมายเลขซ้ำ 1 …

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