ดังที่เราทุกคนทราบกันดีว่าเมตา กำลัง ล้นไป ด้วย ข้อร้องเรียน เกี่ยวกับการ ให้คะแนน รหัสกอล์ฟ ระหว่าง ภาษา (ใช่แต่ละคำนั้นเป็นลิงค์แยกต่างหากและสิ่งเหล่านี้อาจเป็นเพียงส่วนเล็ก ๆ ของภูเขาน้ำแข็ง)
ด้วยความหึงหวงที่มีต่อผู้ที่ใส่ใจในการค้นหาเอกสาร Pyth จริง ๆ ฉันคิดว่ามันคงจะดีถ้ามีความท้าทายที่สร้างสรรค์ขึ้นมาอีกเล็กน้อยซึ่งเหมาะกับเว็บไซต์ที่เชี่ยวชาญเรื่องการเขียนโค้ด
ความท้าทายค่อนข้างตรงไปตรงมา ในฐานะที่เป็นอินพุตเรามีชื่อภาษาและนับไบต์ คุณสามารถใช้สิ่งเหล่านั้นเป็นฟังก์ชั่นอินพุตstdin
หรือวิธีป้อนข้อมูลเริ่มต้นเป็นภาษา
ในฐานะที่เป็นเอาท์พุทเรามีการนับจำนวนไบต์ที่ถูกต้องนั่นคือคะแนนของคุณเมื่อใช้แฮนดิแคป ตามลำดับผลลัพธ์ควรเป็นฟังก์ชันเอาต์พุตstdout
หรือวิธีการแสดงผลภาษาเริ่มต้นของคุณ ผลลัพธ์จะถูกปัดเศษเป็นจำนวนเต็มเพราะเราชอบเน็คไทเกอร์
ด้วยการใช้แบบสอบถามที่น่าเกลียดที่สุดที่ถูกแฮ็กเข้าด้วยกัน ( ลิงก์ - อย่าลังเลที่จะทำความสะอาด) ฉันจัดการสร้างชุดข้อมูล (zip ด้วย. xslx, .ods และ. csv)ที่มีภาพรวมของคำตอบทั้งหมดสำหรับคำถามเกี่ยวกับกอล์ฟ . คุณสามารถใช้ไฟล์นี้ (และสมมติว่ามันจะใช้ได้กับโปรแกรมของคุณเช่นมันอยู่ในโฟลเดอร์เดียวกัน) หรือแปลงไฟล์นี้เป็นรูปแบบเดิมอีก ( .xls
, .mat
, .sav
ฯลฯ - แต่มันอาจมีข้อมูลเดิม!) ชื่อควรจะยังคงอยู่QueryResults.ext
กับ ext
ส่วนขยายของตัวเลือก
ตอนนี้สำหรับเฉพาะ สำหรับแต่ละภาษาจะมีพารามิเตอร์Boilerplate B
และ Verbosity V
สามารถใช้ร่วมกันเพื่อสร้างโมเดลเชิงเส้นของภาษา อนุญาตn
เป็นจำนวนจริงของไบต์และc
เป็นคะแนนที่ถูกต้อง ด้วยการใช้แบบจำลองอย่างง่ายn=Vc+B
เราจะได้รับคะแนนที่ถูกต้อง:
n-B
c = ---
V
ง่ายพอใช่ไหม ตอนนี้สำหรับการกำหนดและV
B
อย่างที่คุณคาดหวังว่าเราจะทำการถดถอยเชิงเส้นหรือแม่นยำกว่าการถดถอยเชิงเส้นอย่างน้อยกำลังสอง ฉันจะไม่อธิบายรายละเอียดเกี่ยวกับสิ่งนั้น - ถ้าคุณไม่แน่ใจว่าจะทำอย่างไร, วิกิพีเดียเป็นเพื่อนของคุณหรือถ้าคุณโชคดี, เอกสารภาษาของคุณ
ข้อมูลจะเป็นดังนี้ แต่ละจุดข้อมูลจะนับไบต์n
และ c
bytecount การบัญชีสำหรับคะแนนโหวตจุดจะได้รับการถ่วงน้ำหนักโดยจำนวนของพวกเขาในการลงมติบวกหนึ่ง (การบัญชีสำหรับ 0 โหวต) v
ให้โทรที่ ควรยกเลิกคำตอบที่มีคะแนนลบ อย่างง่ายคำตอบที่มี 1 คะแนนควรนับเช่นเดียวกับสองคำตอบด้วย 0 คะแนน
ข้อมูลนี้จะถูกติดตั้งเข้ากับตัวแบบข้างต้นn=Vc+B
โดยใช้การถดถอยเชิงเส้นแบบถ่วงน้ำหนัก
ตัวอย่างเช่นให้ข้อมูลสำหรับภาษาที่กำหนด
n1=20, c1=8.2, v1=1
n2=25, c2=10.3, v2=2
n3=15, c3=5.7, v3=5
ตอนนี้เราแต่งการฝึกอบรมที่เกี่ยวข้องและเวกเตอร์A
, y
และW
มีพารามิเตอร์ของเราในเวกเตอร์
[1 c1] [n1] [1 0 0] x=[B]
A=[1 c2] y=[n2] W=[0 2 0], [V]
[1 c3] [n3] [0 0 5]
เราแก้สมการเมทริกซ์ (โดย'
แสดงการไขว้กัน)
A'WAx=A'Wy
สำหรับx
(และดังนั้นเราจะได้รับB
และV
พารามิเตอร์ของเรา)
คะแนนของคุณจะเป็นผลลัพธ์ของโปรแกรมของคุณเมื่อได้รับชื่อภาษาและ bytecount ของคุณ ใช่แล้วคราวนี้แม้แต่ผู้ใช้ Java และ C ++ ก็สามารถชนะได้!
คำเตือน: แบบสอบถามสร้างชุดข้อมูลที่มีจำนวนมากของแถวที่ไม่ถูกต้องเพราะคนที่ใช้ 'เย็น' ส่วนหัวของการจัดรูปแบบและคนที่ติดแท็กของพวกเขารหัสท้าทายคำถามที่มีรหัสกอล์ฟ การดาวน์โหลดที่ฉันให้ไว้มีการลบค่าผิดปกติเกือบทั้งหมด อย่าใช้ CSV ที่มาพร้อมกับแบบสอบถาม
การเข้ารหัสที่มีความสุข!
C++ <s>6 bytes</s>
แต่ตอนนี้มันเป็นการออกระหว่างการขาดหมายเลขรุ่นและภาษาที่เรียกว่า นอกจากนี้ฉันไม่เคยทำ T-SQL ใด ๆ มาก่อนวันนี้และฉันก็ประทับใจในตัวเองที่ฉันสามารถแยกจำนวนไบต์ได้