담당자 모자없이 당신의 명성은 어떻습니까?


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       

첫 번째 줄은이 도전과 관련이 없습니다 (모든 답변과 질문에 대해받은 총 투표 수를 보여줍니다). 두 번째 줄에는 "Association bonus"가 표시됩니다. 보너스가 없으면 해당 라인이 전혀 없습니다.

이 두 줄 (또는 보너스가없는 경우 한 줄) 후에는 질문 당 평판 변경 목록과 함께 매일 얻거나 잃어버린 모든 담당자의 요약이 표시됩니다. 또한 해당 날짜가 끝났을 때의 총 평판 목록을 얻을 수 있습니다. 평판이 변경된 요일 만이 목록에 표시됩니다.

각 줄의 시작 부분에는 식별자가 있습니다 (일별 요약 행 제외). 이는 다음과 같은 잠재적 평판 변경 이유를 나타냅니다.

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]

상한이 아닌 경우받을 담당자를 포함해야합니다.

포스트 수는 106125A는 질문 반면 106088입니다 답변 . 보시다시피, 표에 주어진 데이터 만 사용하여 둘 사이의 차이점을 알 수있는 방법이 없습니다. 따라서 codegolf.stackexchange.com게시물이 질문인지 답변인지 확인 하려면 웹 사이트 ( )에 액세스해야합니다 . 이를 위해 API를 사용할 수도 있습니다.


규칙 :

  • 모든 사람이 스크립트를 실행할 수 있어야합니다.
    • 다른 평판 변경 유형을 직접 경험하지 않아도 포함해야합니다.
    • 협회 보너스를받지 못한 경우에도 코드가 작동해야합니다 (없는 경우 해당 라인은 존재하지 않음).
    • 라이센스가있는 다른 사람들이 코드를 실행할 수있는 한, 무료 언어 (Mathematica, MATLAB 등)를 사용할 수 있습니다.
    • 모든 사람이 자신의 페이지 버전에서 코드를 테스트 할 수 있으므로 원시 데이터를 제공 할 필요는 없습니다 (결과를 공유하면 흥미로울 수 있지만 선택 사항 임).
  • API를 사용하거나 웹 사이트에 직접 액세스 할 수 있습니다. url-shortener는 허용되지 않습니다.
  • 담당자를 찾을 수없는 다른 방법이 있다면 담당자를 사용할 수 없습니다. 언급 된 페이지의 데이터를 사용해야합니다.

답변이있는 게시물은 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. 나와 내 인생을 찢어 라
Christopher

2
lol 나는 한번도 repcap을 한 번도 본 적이 없다.
HyperNeutrino

명확히하기 위해, 모자에 대한 평판은 총 담당자 수이며 대괄호 안의 평판은 변합니까?
Graviton

답변:


3

펄 5 (컬), 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에 포함되어 있다는 사실을 남용합니다 #. stderr가 진행률 막대로 넘치지 않는 경우 -s플래그를 추가 할 수 있습니다 curl. 더 다양한 평판 페이지를 테스트 한 사람에게 감사 드리며, 나는 아무것도 놓치지 않았다는 것을 확신 할 수 없습니다.

그런데 광산은 421이고 451입니다.


나는 전에 Perl을 사용해 본 적이 없으며 원시 데이터를 어디서 얻었는지 알 수 없습니다. 이것을 테스트하려면 원시 데이터를 어디에 두어야합니까? 참고 : Windows 10에서 Strawberry를 사용하고 있습니다. Unix 또는 OS X이 없습니다. 어떻게 호출합니까?
Stewie Griffin

@Stewie Griffin stdin에서 원시 데이터를 읽습니다. 코드는 하나의 라이너이며 다음과 같이 실행되어야합니다 perl -nE 'code' < filename. Windows에서 다른 인용 및 이스케이프 처리를 수행해야 할 수도 있습니다. 저는 환경에 익숙하지 않습니다.
Chris

작은 최적화 : 당신은 제거 할 수 있습니다 https://당신이 전달하는 경우 -L는 301 리디렉션 수행 할 수 있도록 컬에 플래그
markasoftware

@Markasoftware 그래도 실제 페이지로 여러 번 리디렉션 될 것입니까? 그대로 내 코드는 /codegolf//a/$2페이지 자체가 아닌 301 리디렉션을 구문 분석합니다 .
Chris

나는 Search pattern not terminated at -e line 1.이것을 시도 할 때 얻는다 . perl -nE ..파일을 현재 작업 디렉토리에 저장하면서 주석 ( )에 작성한 것을 사용하여 전체 코드를 붙여 넣습니다 . 왜 그런지 아십니까?
Stewie Griffin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.