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

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

28
สร้างตาราง ASCII ขึ้นมาใหม่เป็นตาราง ASCII
บ่อยครั้งในขณะที่ฉันเล่นกอล์ฟฉันจะต้องการทราบว่าค่า ASCII ของอักขระบางตัวคืออะไร หนึ่งในแหล่งข้อมูลที่ชื่นชอบได้อย่างรวดเร็วมองขึ้นทั้งหมดของตัวอักขระ ASCIIเป็นASCIItable.com นี่เป็นภาพที่ดีมากที่ไม่เพียง แต่แสดงตัวอักษร ASCII ที่พิมพ์ได้และค่าของมัน แต่ยังรวมถึงตัวอักษรที่ไม่สามารถพิมพ์ได้และส่วนขยายและค่าเป็นเลขฐานสิบหกฐานแปดและ HTML: ความท้าทายในวันนี้คือการสร้างตาราง ASCII นั้นใหม่เป็นตาราง ASCII แทนภาพ เพื่อให้สิ่งต่าง ๆ ง่ายขึ้นเราจะไม่ใช้ตัวควบคุม (ตัวละครต่ำกว่า 32) และเราจะแสดงเฉพาะค่าทศนิยมและตัวอักษร ในคำอื่น ๆ ความท้าทายของคุณคือการเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่พิมพ์หรือส่งกลับข้อความต่อไปนี้: Dec Chr | Dec Chr | Dec Chr ---------------------------------- 32 Space | 64 @ | 96 ` 33 ! | 65 A | 97 a …

30
เลือกตัวเลขสุ่มระหว่าง 0 ถึง n โดยใช้แหล่งที่มาของการสุ่ม
งาน กำหนดให้เป็นจำนวนเต็มบวกnน้อยกว่าที่2^30ระบุไว้เป็นอินพุตในวิธีที่คุณเลือกรหัสของคุณควรส่งออกจำนวนเต็มแบบสุ่มระหว่าง0และnรวม หมายเลขที่คุณสร้างควรจะเลือกอย่างสม่ำเสมอโดยการสุ่ม นั่นคือแต่ละค่าจาก0ถึงnต้องเกิดขึ้นกับความน่าจะเป็นที่เท่ากัน (ดูกฎและคำเตือน) กฎและคำเตือน รหัสของคุณสามารถสันนิษฐานได้ว่าตัวสร้างตัวเลขสุ่มใด ๆ ที่สร้างขึ้นในภาษาหรือไลบรารีมาตรฐานของคุณที่อ้างว่าสุ่มอย่างสม่ำเสมอนั้นเป็นชุดเครื่องแบบ นั่นคือคุณไม่ต้องกังวลเกี่ยวกับคุณภาพของแหล่งข้อมูลแบบสุ่มที่คุณใช้ อย่างไรก็ตาม คุณจะต้องกำหนดว่าถ้าแหล่งข้อมูลที่สุ่มคุณกำลังใช้เป็นชุดแล้วรหัสของคุณอย่างถูกต้องออกผลลัพธ์เป็นจำนวนเต็มสุ่มเครื่องแบบจากไป0n อาร์กิวเมนต์ใด ๆ เมื่อเรียกใช้ฟังก์ชันสุ่มในตัวหรือไลบรารีต้องเป็นค่าคงที่ นั่นคือพวกเขาจะต้องเป็นอิสระอย่างสมบูรณ์จากค่าอินพุต รหัสของคุณอาจสิ้นสุดลงด้วยความน่าจะเป็น 1แทนที่จะรับประกันได้ว่าจะยุติ หมายเหตุ randInt(0,n) ไม่ถูกต้องเนื่องจากรับอินพุตเป็นอาร์กิวเมนต์สำหรับฟังก์ชัน builtin หรือ library rand()%nจะไม่ให้หมายเลขสุ่มที่เหมือนกันโดยทั่วไป เป็นตัวอย่างที่กำหนดโดย betseg ถ้าintmax == 15และn = 10แล้วคุณจะมีโอกาสมากขึ้นที่จะได้รับมากกว่า0-56-10 floor(randomfloat()*(n+1)) จะไม่ให้ตัวเลขสุ่มแบบทั่วไปโดยทั่วไปเนื่องจากจำนวน จำกัด ของค่าจุดลอยตัวที่เป็นไปได้ที่แตกต่างกันระหว่าง 0 ถึง 1

8
เห็นภาพอาร์เรย์
กำหนดความลึกใด ๆ ให้วาดเนื้อหาด้วยเส้นขอบ+-|รอบ ๆ แต่ละ subarray สิ่งเหล่านี้คืออักขระ ASCII สำหรับเครื่องหมายบวกลบและแนวตั้ง ตัวอย่างเช่นถ้าอาร์เรย์คือ[1, 2, 3]วาด +-----+ |1 2 3| +-----+ สำหรับอาร์เรย์ที่ซ้อนกันเช่น[[1, 2, 3], [4, 5], [6, 7, 8]]วาด +-----------------+ |+-----+---+-----+| ||1 2 3|4 5|6 7 8|| |+-----+---+-----+| +-----------------+ สำหรับอาเรย์แบบขาด ๆ เช่น[[[1, 2, 3], [4, 5]], [6, 7, 8]]วาด +-------------------+ |+-----------+-----+| ||+-----+---+|6 7 8|| …

10
เครื่องกำเนิดไฟฟ้าสี่แยก
นี่คือ ASCII-art ของสี่แยกสี่ทาง: | | | | | | | | | | | | | -----+-----+----- | | - - -| |- - - | | -----+-----+----- | | | | | | | | | | | | | (โปรดสังเกตว่าถนนในแนวนอนมีความสูง 3 แถวในขณะที่ถนนแนวตั้งมีความกว้าง 5 คอลัมน์เพื่อเหตุผลด้านสุนทรียภาพเนื่องจากตัวอักษรรูปสี่เหลี่ยมผืนผ้า) ความท้าทายของคุณคือการผลิตงานศิลปะ ASCII นี้ อย่างไรก็ตามอย่างที่ฉันแน่ใจว่าทุกคนรู้ว่าไม่ใช่ทุก …

1
คิดออกรูปแบบการล็อค Android
ให้บอกว่าคุณเห็นเพื่อนของคุณป้อนรหัสผ่านของเขาหรือเธอลงในโทรศัพท์ Android ของพวกเขา คุณจำไม่ได้ว่าพวกเขาสร้างรูปแบบอย่างไร แต่คุณจำได้ว่ารูปแบบนั้นเป็นอย่างไร เป็นเพื่อนที่เกี่ยวข้องที่คุณต้องการทราบว่ารหัสผ่านของพวกเขาปลอดภัยเพียงใด งานของคุณคือการคำนวณทุกวิธีที่สามารถทำรูปแบบเฉพาะ รูปแบบ Android ทำงานอย่างไร รูปแบบจะถูกวาดบนตารางของโหนด 3x3 ในรูปแบบหนึ่งเข้าชมชุดของโหนดโดยไม่ต้องยกนิ้วของพวกเขาจากหน้าจอ แต่ละโหนดที่พวกเขาเยี่ยมชมเชื่อมต่อกับโหนดก่อนหน้าโดยขอบ มีกฎสองข้อที่ต้องคำนึงถึง คุณไม่สามารถเยี่ยมชมหนึ่งโหนดมากกว่าหนึ่งครั้ง ขอบอาจไม่ผ่านโหนดที่ไม่ได้เข้าชม โปรดทราบว่าในขณะที่มักจะยากมากที่จะดำเนินการและจึงไม่บ่อยมากในแบบ real รวมกันล็อคหุ่นยนต์ก็เป็นไปได้ที่จะย้ายเหมือนอัศวิน นั่นคือเป็นไปได้ที่จะย้ายจากด้านหนึ่งไปยังมุมที่ไม่ติดกันหรืออีกด้านหนึ่ง นี่คือสองตัวอย่างของรูปแบบที่ใช้การเคลื่อนไหวดังกล่าว: นี่คือGif แบบเคลื่อนไหวของมันที่กำลังแสดงอยู่ การแก้ลวดลาย รูปแบบทั่วไปอาจมีลักษณะดังนี้: ด้วยรูปแบบที่เรียบง่ายเช่นนี้มันมีสองวิธีที่สองวาดรูปแบบ คุณสามารถเริ่มต้นที่ปลายทั้งสองด้านใดด้านหนึ่งหลวมและเดินทางผ่านโหนดที่ถูกเน้นสีไปยังอีกด้านหนึ่ง แม้ว่าสิ่งนี้จะเป็นจริงสำหรับหลาย ๆ รูปแบบโดยเฉพาะอย่างยิ่งสิ่งที่มนุษย์ใช้โดยทั่วไปสิ่งนี้ไม่เป็นความจริงสำหรับทุกรูปแบบ พิจารณารูปแบบต่อไปนี้: มีสองวิธีแก้ไขปัญหาที่รู้จักได้ทันที หนึ่งเริ่มต้นที่ด้านซ้ายบน: และเริ่มต้นที่กึ่งกลางด้านล่าง: อย่างไรก็ตามเนื่องจากบรรทัดได้รับอนุญาตให้ผ่านจุดเมื่อมีการเลือกแล้วมีรูปแบบเพิ่มเติมที่เริ่มต้นที่ตรงกลางด้านบน: รูปแบบนี้โดยเฉพาะมี 3 รูปแบบการแก้ปัญหา แต่จะมีที่ใดก็ได้ระหว่าง 1 และ 4 โซลูชั่น[อ้างจำเป็น] นี่คือตัวอย่างของแต่ละรายการ: 1 2 3 4 I …

18
วาดสตริงที่เป็นหลุมเป็นบ่อ
( ได้รับแรงบันดาลใจจากการท้าทายนี้) ABBCBAสมมติว่าเรามีสตริง เราสามารถพูดได้ว่ามีการเพิ่มขึ้นระหว่างAและBสำหรับBต่อไปนี้A; เราสามารถพูดได้ว่ามีการเรียกใช้ระหว่างBและBสำหรับการเปลี่ยนแปลงอะไร; และในที่สุดเราสามารถพูดได้มีฤดูใบไม้ร่วงระหว่างและC Bเราสามารถวาดกราฟดังนี้: A B B C B A Rising: o o Continuing: o Falling: o o ไม่มีฉลากและลดช่องว่างให้เหลือน้อยที่สุด: o o o oo ABBCBAนี่คือการส่งออกที่คาดว่าสำหรับการป้อนข้อมูล คุณสามารถใช้อักขระที่ไม่ใช่ช่องว่างเพื่อแทนที่oในเอาต์พุต นอกจากนี้แต่ละคอลัมน์อาจมีช่องว่างพิเศษระหว่างคอลัมน์เหล่านั้นเช่น: o o o o o ข้อมูลที่ป้อนจะประกอบด้วยอักขระอย่างน้อยสามตัว สตริงจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด แต่คุณอาจใช้อักษรตัวพิมพ์เล็กแทนได้ กรณีทดสอบ TEST CASE LINE 1 LINE 2 LINE 3 HELLOWORLD o oo o …

14
อัตโนมัติ OEIS
เรามาดูกันเป็นจำนวนมากของความท้าทายที่นี่ขอฟังก์ชั่นเพื่อสร้างลำดับจากที่OEIS แม้ว่าความท้าทายเหล่านี้จะสนุก แต่ในฐานะโปรแกรมเมอร์ฉันเห็นโอกาสสำหรับระบบอัตโนมัติ ความท้าทายของคุณคือการสร้างโปรแกรมที่ใช้ดัชนีของลำดับ (เช่นA172141 ) และจำนวนเต็ม n (เช่น 7) และดึงค่าที่เหมาะสมจากหน้าเว็บที่เหมาะสม I / O ดังที่กล่าวไว้โปรแกรมของคุณควรใช้ดัชนีลำดับและค่าบางค่าเป็นอินพุตและเอาต์พุตคำที่ n ในลำดับนั้น คุณยอมรับดัชนีใด ๆ ในลำดับของB-ไฟล์ หากดัชนีมากกว่าดัชนีที่ใหญ่ที่สุดที่ระบุไว้ในไฟล์ B คุณอาจส่งข้อยกเว้นหรือส่งออกสิ่งที่คุณเลือก (สิ่งเหล่านี้ไม่ได้อยู่ในกรณีทดสอบ) อนุญาตวิธีการอินพุตและเอาต์พุตมาตรฐาน ข้อ จำกัด ในการใช้งานเว็บ คุณไม่ควรเข้าถึงเว็บไซต์ใด ๆ นอกเหนือจากhttps://oeis.orgและhttp://oeis.org ซึ่งรวมถึงตัวย่อ URL เว็บไซต์ส่วนตัวของคุณและคำถามนี้เอง หากคุณต้องการเข้าถึงเว็บไซต์อื่นและคุณเชื่อว่ามันไม่ยุติธรรมที่จะอนุญาตให้คุณทำเช่นนั้นคุณสามารถแสดงความคิดเห็นและฉันจะตัดสิน เกณฑ์การให้คะแนน นี่เป็นความท้าทายของโปรแกรมกอล์ฟดังนั้นโปรแกรมที่มีจำนวนไบต์น้อยที่สุดที่ใช้ในซอร์สโค้ดจะเป็นผู้ชนะ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ สมมติว่าเครื่องของคุณมีการเชื่อมต่ออินเทอร์เน็ตที่เหมาะสมและเซิร์ฟเวอร์ OEIS ทำงานและใช้งานอินพุตและเอาต์พุตต่อไปนี้ควรสอดคล้องกัน A172141, 7 -> 980 A173429, 4 -> 276 …

21
Mirror, Mirror ในรหัส
ภาษาโปรแกรมสองมิติมักจะมีคำสั่งมิรเรอร์เช่น/และ\เปลี่ยนเส้นทางตัวชี้คำสั่งในตาราง: >>>>\ v v <<<</ ในความท้าทายนี้คุณจะได้รับทิศทางขาเข้าและกระจกเงาและคุณต้องกำหนดทิศทางขาออก กฎระเบียบ ทิศทางเข้ามาจะได้รับเป็นหนึ่งในตัวละครNESWและกระจกจะได้รับเป็นอย่างใดอย่างหนึ่งหรือ/ \คุณอาจได้รับสิ่งเหล่านี้ในลำดับใดก็ได้ คุณต้องใช้ตัวอักษรตัวพิมพ์ใหญ่ คุณสามารถป้อนข้อมูลในรูปแบบที่สะดวกรวมถึงสตริงอักขระสองตัวสตริงที่ใช้ตัวคั่นระหว่างอักขระอักขระคู่ในรายการหรือแม้แต่สตริงเดี่ยว หากคุณใช้สตริงที่มีตัวคั่นตัวคั่นจะไม่สามารถใช้อักขระใด ๆNWSE\/ได้ เอาต์พุตควรเป็นอักขระจากNESWหรือสตริงอักขระเดี่ยว คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ มีเพียง 8 อินพุตที่เป็นไปได้ที่คุณต้องจัดการดังนั้นจึงไม่มีข้อแก้ตัวใด ๆ ที่จะไม่ทดสอบโค้ดของคุณกับพวกเขาทั้งหมด: N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ …

22
หมายถึง Interquartile
งาน ที่กำหนด (โดยวิธีใด ๆ ) ที่จัดเรียงลอยชุดข้อมูลที่จุดกลับ (โดยวิธีการใด ๆ และภายใน 1 ‰ของค่าที่ถูกต้อง) เดอะinterquartile เฉลี่ย หนึ่งอัลกอริทึมที่เป็นไปได้ ทิ้งจุดข้อมูลต่ำสุดและสูงสุดของจุดข้อมูล คำนวณค่าเฉลี่ย (ผลรวมหารด้วยจำนวน) ของจุดข้อมูลที่เหลือ หมายเหตุ:หากขนาดชุดข้อมูลไม่สามารถแบ่งออกเป็นสี่ส่วนเท่า ๆ กันคุณจะต้องชั่งน้ำหนักชุดข้อมูลที่ใช้ร่วมกันโดยชุดย่อย ดูตัวอย่างการประเมินผล 2ด้านล่าง ตัวอย่างการประเมินผล 1 รับ {1, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 38} การนับข้อมูลคือ 12 ดังนั้นเราจึงลบดาต้าพอยน์ต่ำสุดและสูงสุด 3 รายการ: { 1, 3, 4, 5, 6, 6, …

21
เก็บค่าที่ไม่ใช่ศูนย์และเพื่อนบ้าน
นำมาจากคำถามนี้ที่ Stack Overflow ขอขอบคุณ @miles และ @Dada สำหรับการแนะนำอินพุตทดสอบที่กล่าวถึงบางกรณี ความท้าทาย รับอาร์เรย์ของค่าจำนวนเต็มลบศูนย์ทั้งหมดที่ไม่ได้ขนาบข้างด้วยค่าที่ไม่ใช่ศูนย์ รายการควรถูกเก็บไว้อย่างใดอย่างหนึ่งหากเป็นค่าที่ไม่ใช่ศูนย์หรือหากเป็นศูนย์ที่อยู่ใกล้กับค่าที่ไม่ใช่ศูนย์ทันที รายการที่เก็บไว้ควรเก็บไว้ในเอาท์พุทตามลำดับที่มีในอินพุต ตัวอย่าง ป.ร. ให้ไว้ [2 0 4 -3 0 0 0 3 0 0 2 0 0] ค่าที่ควรลบจะถูกทำเครื่องหมายด้วยx: [2 0 4 -3 0 x 0 3 0 0 2 0 x] และผลลัพธ์ควรเป็น [2 0 4 -3 0 0 3 …

30
ตัวอักษรเป็นตัวเลขและตัวเลขเป็นตัวอักษร
ท้าทาย ในการท้าทายนี้คุณจะต้องใช้ตัวเลขเป็นตัวอักษรอินพุทและเอาท์พุทที่สอดคล้องกันและในทางกลับกัน (1 <=> A, 2 <=> B) เป็นต้น 1 -> A 2 -> B ... 26 -> Z A -> 1 B -> 2 ... Z -> 26 กฎระเบียบ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ข้อมูลที่ป้อนจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่จากAถึงZหรือจำนวนเต็มตั้งแต่1ถึง26รวมเท่านั้น อนุญาตให้ใช้ช่องว่างต่อท้าย (เว้นวรรคและขึ้นบรรทัดใหม่)

29
ชุดผลรวมย่อย
บทนำ [3, 2, 4, 1, 1, 5, 1, 2]ลองสังเกตอาร์เรย์นี้: แต่ละองค์ประกอบจะแสดงความยาวของสตริงย่อยซึ่งจะต้องสรุปรวม ลองดูที่องค์ประกอบแรกของอาร์เรย์ด้านบน: [3, 2, 4, 1, 1, 5, 1, 2] ^ องค์ประกอบที่ดัชนีแรกคือ3ดังนั้นตอนนี้เรารับสตริงย่อยของความยาวสามด้วยดัชนีเดียวกันกับตำแหน่งเริ่มต้น: [3, 2, 4] เมื่อสรุปผลนี้ใน9ดังนั้นองค์ประกอบแรกของชุดย่อยรวม9เป็น เราทำสิ่งนี้สำหรับองค์ประกอบทั้งหมดในอาร์เรย์: 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, …

6
การต่อเชื่อมช่วงเวลา
ท้าทาย: คุณจะได้รับสตริงที่มีตัวเลขเท่านั้น งานของคุณคือการส่งออกจำนวนขั้นต่ำที่ต้องเชื่อมต่อกันในรูปแบบสตริง ถ้าเรื่องนี้เป็นไปไม่ได้, 0เอาท์พุท กรณีทดสอบ: อินพุต -> เอาต์พุต: 252 -> 3 235 -> 2 92 -> 0 31149 -> 2

30
ถอดรหัส chmod
ท้าทาย กำหนดหมายเลขการอนุญาตเลขฐานแปดสามหลักให้ส่งออกการอนุญาตที่ได้รับ chmod บน UNIX OS การอนุญาตของไฟล์จะเปลี่ยนไปโดยใช้chmodคำสั่ง มีวิธีการใช้ chmod ที่แตกต่างกันเล็กน้อย แต่วิธีที่เราจะเน้นในวันนี้คือการใช้การอนุญาตแบบฐานแปด ตัวเลขสามหลักในหมายเลขสิทธิ์แสดงถึงบุคคลอื่น: ตัวเลขตัวแรกแสดงถึงการอนุญาตสำหรับผู้ใช้ ตัวเลขตัวที่สองหมายถึงการอนุญาตสำหรับกลุ่ม ตัวเลขสุดท้ายแสดงสิทธิ์ของผู้อื่น ถัดไปแต่ละหลักหมายถึงสิทธิ์ที่แสดงด้านล่างใน: Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 …

12
ความแตกต่าง 7 ส่วน
ฉันคิดว่าคนส่วนใหญ่ที่นี่รู้ว่าการแสดงผล 7 หลักสำหรับตัวเลขคืออะไร: _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| เราสามารถกำหนดความแตกต่าง 7 เซกเมนต์ (7SD) ระหว่างสองหลักเป็นจำนวนของเซกเมนต์ที่ต้องสลับเพื่อสลับจากหนึ่งไปยังอีก เช่น 7SD ระหว่าง1และ2เป็น5 (สามส่วนแนวนอนและต่ำกว่าสองส่วนในแนวตั้งจะต้องมีการสลับ) และ 7SD ระหว่าง 6 และ 8 เป็น1 นอกจากนี้เราสามารถกำหนด 7SD …

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