ชื่อเสียงของคุณจะเป็นอย่างไรถ้าไม่มีตัวแทน


16

ในการท้าทายนี้คุณจะคำนวณว่าชื่อเสียงของคุณจะเป็นอย่างไรถ้าไม่มีชื่อเสียงสูงสุดใน PPCG

ทุกคนสามารถเข้าถึงข้อมูลดิบสำหรับการเปลี่ยนแปลงที่อยู่ในชื่อเสียงนี้: codegolf.stackexchange.com/reputation ข้อมูลดิบตามหลังการตั้งค่าเช่นนี้ (นี่เป็นสองสามบรรทัดแรกของหน้าเว็บในเวอร์ชันของฉัน

total votes: 2955
-- bonuses   (100)
 2     37663 (10)
-- 2014-09-11 rep +110  = 111       
 2     41751 (10)
-- 2014-11-23 rep +10   = 121       
 2     41751 (10)
 2     41751 (10)
-- 2014-11-24 rep +20   = 141       

บรรทัดแรกนั้นไม่เกี่ยวข้องกับความท้าทายนี้ (แสดงจำนวนคะแนนรวมที่คุณได้รับจากคำตอบและคำถามทั้งหมด) บรรทัดที่สองแสดง "โบนัสสมาคม" หากคุณไม่มีโบนัสแล้วบรรทัดนั้นจะไม่อยู่ที่นั่นเลย

หลังจากบรรทัดสอง (หรือหนึ่งถ้าไม่มีโบนัส) คุณจะมีรายการของการเปลี่ยนแปลงชื่อเสียงต่อคำถามพร้อมกับสรุปของตัวแทนที่ได้รับ / หายในแต่ละวัน คุณจะได้รับรายชื่อของชื่อเสียงทั้งหมดที่คุณมีในตอนท้ายของวันนั้น แสดงเฉพาะวันที่ชื่อเสียงของคุณเปลี่ยนไปในรายการนี้

มีตัวระบุในตอนต้นของแต่ละบรรทัด (ยกเว้นบรรทัดสรุปรายวัน) สิ่งเหล่านี้แสดงถึงเหตุผลการเปลี่ยนแปลงชื่อเสียงที่อาจเกิดขึ้นดังต่อไปนี้:

1 : Accept (+2 if you accept, +15 if your answer is accepted)
2 : Upvote (+5 for question, +10 for answer)
3 : Downvote (-1 if you downvote answer, -2 if you get downvoted)
4 : Offensive (-100)
8 : Give bounty
9 : Receive bounty
12: Spam (-100)
16: Approved edit (+2)

ตัวเลขที่หายไป ( 5,6,7,10,11,13,14,15ไม่ส่งผลกระทบต่อชื่อเสียง)


ความท้าทายของคุณคือการคำนวณชื่อเสียงที่คุณมีหากไม่ใช่เพื่อชื่อเสียง


คุณจะทำสิ่งนี้อย่างไร:

บันทึกเนื้อหาcodegolf.stackexchange.com/reputationเป็นข้อความธรรมดาในเครื่องหรือที่อื่น ๆ ที่คุณเลือก (นี่เป็นเพราะคุณต้องเข้าสู่ระบบเพื่อเข้าถึงข้อมูล) คุณสามารถดึงข้อมูลจากเว็บไซต์โดยตรงหากคุณต้องการแม้ว่าฉันคิดว่ามันจะนานกว่ามาก

สรุปการเปลี่ยนแปลงชื่อเสียงในเชิงบวกและลบทั้งหมด การลงคะแนนที่ไม่ส่งผลให้เกิดการเปลี่ยนแปลงชื่อเสียง (เนื่องจากตัวแทนสูงสุด) แสดงเช่นนี้ (สังเกตเครื่องหมายวงเล็บเหลี่ยมแทนวงเล็บทั่วไป):

 2    106125 [0]
 2    106125 [0]
 3    106125 [-2]
 2    106088 [2]
 2    106125 [0]
 2    106088 [0]

คุณต้องรวมตัวแทนที่คุณจะได้รับหากไม่ใช่เพราะหมวก

จำนวนโพสต์106125เป็นคำถามในขณะที่106088เป็นคำตอบ อย่างที่คุณเห็นไม่มีวิธีใดที่จะบอกความแตกต่างระหว่างทั้งสองโดยใช้เฉพาะข้อมูลที่ให้ไว้ในตาราง ดังนั้นคุณต้องเข้าถึงเว็บไซต์ ( codegolf.stackexchange.com) เพื่อตรวจสอบว่าโพสต์เป็นคำถามหรือคำตอบ คุณอาจใช้ API สำหรับสิ่งนี้


กฎ:

  • ทุกคนจะต้องสามารถเรียกใช้สคริปต์ของคุณดังนั้น:
    • คุณต้องรวมประเภทการเปลี่ยนแปลงชื่อเสียงที่แตกต่างกันทั้งหมดแม้ว่าคุณจะไม่ได้พบเจอด้วยตนเอง
    • รหัสจะต้องใช้งานได้แม้ว่าคุณจะไม่ได้รับโบนัสสมาคม (บรรทัดจะไม่อยู่ที่นั่นหากคุณไม่ได้รับ)
    • คุณสามารถใช้ภาษาที่ไม่ใช่ภาษา (Mathematica, MATLAB และอื่น ๆ ) ได้ตราบใดที่คนอื่นที่มีลิขสิทธิ์สามารถใช้รหัสได้
    • คุณไม่จำเป็นต้องให้ข้อมูลดิบเนื่องจากทุกคนสามารถทดสอบรหัสของคุณในหน้าเวอร์ชั่นของตัวเอง (มันจะน่าสนใจถ้าคุณแบ่งปันผลลัพธ์แม้ว่าจะเป็นตัวเลือกก็ตาม)
  • คุณสามารถใช้ API หรือเข้าถึงเว็บไซต์ได้โดยตรง ไม่อนุญาตให้ใช้ตัวย่อ URL
  • หากมีวิธีอื่นในการค้นหาตัวแทนที่คุณจะไม่มีหากคุณไม่ได้ใช้งานตัวแทน คุณต้องใช้ข้อมูลจากหน้าดังกล่าว

โปรดทราบว่าโพสต์ที่เป็นคำตอบจะได้รับส่วนขยายที่แตกต่างจาก URL:

/codegolf/106088        // Answer: Notice the end of the url
/codegolf/106079/detect-ms-windows/106088#106088

/codegolf/106079/       // Question: Notice the end of the url
/codegolf/106079/detect-ms-windows

เอาท์พุท:

ผลลัพธ์ควรเป็น:

Rep w cap: 15440
Rep w/o cap: 16202

รูปแบบเป็นทางเลือก[15440,16202]ยอมรับได้ Rep w capสามารถนำโดยตรงจากบรรทัด: ** total rep 15440 :)ใกล้ด้านล่างของหน้า


นี่คือดังนั้นรหัสที่สั้นที่สุดในไบต์ชนะ



4
751. ทำให้ฉันกับชีวิตของฉันแย่ลง
คริสโตเฟอร์

2
ฮ่า ๆ ฉันไม่เคยกด repcap มาก่อน
HyperNeutrino

เพียงเพื่อชี้แจงชื่อเสียงของคุณด้วยหมวกคือผลรวมตัวแทนของคุณทั้งหมดและการเปลี่ยนแปลงชื่อเสียงภายในวงเล็บเหลี่ยม?
Graviton

คำตอบ:


3

Perl 5 (with curl), 209 + 1 (แฟล็ก -n) = 210 ไบต์

if(/([0-9]+)\s*([0-9]+) \[([0-9]*)/){$_=`curl /codegolf//a/$2`;@p=(2,5,-1);$p[15]=2;@s=(13,5,-1);$x=$1;$r+=($p[--$x]//-100)-$3;$r+=$s[$x]if/#/;};$t=$1 if/([0-9]+) :/;END{say$t,$",$r+$t}

ละเมิดข้อเท็จจริงที่ว่า URL สำหรับคำตอบมี#อยู่ในนั้น สามารถเพิ่มการ-sตั้งค่าสถานะหลังจากcurlถ้าคุณไม่ชอบ stderr ถูกน้ำท่วมด้วยแถบความคืบหน้า ฉันจะขอบคุณคนที่มีหน้าชื่อเสียงที่หลากหลายมากขึ้นในการทดสอบ - ฉันไม่แน่ใจว่าฉันจะไม่พลาดอะไร

ฉันเป็น 421 และจะเป็น 451 โดยวิธีการ


ฉันไม่เคยใช้ Perl มาก่อนและฉันไม่สามารถดูตำแหน่งที่คุณรับ rawdata ได้ ฉันจะใส่ rawdata ที่ไหนถ้าฉันต้องการทดสอบสิ่งนี้ หมายเหตุ: ฉันใช้ Strawberry บน Windows 10. ฉันไม่มี Unix หรือ OS X และฉันจะเรียกมันว่าอะไร
Stewie Griffin

@Stewie Griffin มันอ่านข้อมูลดิบจาก stdin perl -nE 'code' < filenameรหัสหนึ่งซับและควรจะดำเนินการบางอย่างเช่น คุณอาจต้องทำสิ่งที่แตกต่างออกไปเพื่อหลบเลี่ยงสิ่งต่าง ๆ บน Windows ฉันไม่คุ้นเคยกับสภาพแวดล้อมที่นั่น
คริส

การเพิ่มประสิทธิภาพขนาดเล็ก: คุณสามารถลบhttps://หากคุณส่ง-Lแฟ
ล็ก

@ Markasoftware นั่นจะเป็นไปตามการเปลี่ยนเส้นทางหลายครั้งไปยังหน้าจริงใช่ไหม? ตามที่เป็นอยู่รหัสของฉันจะแยกวิเคราะห์การเปลี่ยนเส้นทาง 301 จาก/codegolf//a/$2หน้าเว็บมากกว่า
คริส

ฉันได้รับSearch pattern not terminated at -e line 1.เมื่อฉันลองทำสิ่งนี้ ฉันเพียงวางรหัสทั้งหมดโดยใช้สิ่งที่คุณเขียนในความคิดเห็น ( perl -nE ..) ในขณะที่มีการบันทึกไฟล์ไว้ในไดเรกทอรีการทำงานปัจจุบัน ความคิดใด ๆ ที่อาจเป็นเพราะอะไร
Stewie Griffin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.