우리 모두 알다시피, 메타가 되어 넘쳐 과 불만 에 대한 득점 코드 골프를 사이에 언어 (예, 각 단어는 별도의 링크입니다, 이들은 빙산의 일각 일 수 있음).
실제로 Pyth 문서를 찾는 데 귀찮은 사람들에게 너무 질투심이 많았으므로 코드 과제를 전문으로하는 웹 사이트에 적합한 건설적인 도전을 조금 더하는 것이 좋을 것이라고 생각했습니다.
도전은 다소 간단합니다. 으로 입력 , 우리는이 언어의 이름 과 바이트 수를 . 함수 입력 stdin
또는 언어 기본 입력 방법으로 사용할 수 있습니다.
으로 출력 , 우리는이 수정 된 바이트 수 즉, 핸디캡과의 점수는 적용했다. 각각 출력은 함수 출력 stdout
이거나 언어 기본 출력 방법 이어야합니다 . 타이 브레이커를 좋아하기 때문에 출력은 정수로 반올림됩니다.
가장 추악하고 해킹 된 쿼리 ( 링크 -자유롭게 정리하십시오)를 사용 하여 코드 골프 질문에 대한 모든 답변 의 스냅 샷이 포함 된 데이터 세트 (.xslx, .ods 및 .csv로 압축) 를 만들었습니다. . 이 파일을 사용하는 (그리고 프로그램에 사용할 수 있도록 가정, 예를 들어,이 같은 폴더에있어) 또는 종래의 다른 형식으로이 파일을 변환 할 수 있습니다 ( , , 등 -하지만 그것은 단지 원래의 데이터를 포함 할 수있다!). 이름은 남아 있어야 로 선택의 확장..xls
.mat
.sav
QueryResults.ext
ext
이제 구체적인 내용입니다. 각 언어마다 보일러 플레이트 B
및 상세 정보 V
매개 변수가 있습니다. 함께 사용하면 언어의 선형 모델을 만들 수 있습니다. 하자 n
실제 바이트 수, 그리고 c
수정 된 점수합니다. 간단한 모델을 사용 n=Vc+B
하면 정확한 점수를 얻습니다.
n-B
c = ---
V
충분히 간단 하죠? 이제에 대한 결정 V
및 B
. 예상 한대로 선형 회귀 또는 최소 제곱 가중치 선형 회귀 분석을 수행합니다. 자세한 내용은 설명하지 않겠습니다. 어떻게해야할지 잘 모르겠다면 Wikipedia가 친구 이거나 운이 좋으면 언어 문서입니다.
데이터는 다음과 같습니다. 각 데이터 포인트는 바이트 수 n
와 질문의 평균 바이트 수 c
입니다. 투표 수를 계산하기 위해 점수에 투표 수에 1을 더한 값 (0 투표 수)으로 가중치를 부여합니다 v
. 반대표가있는 답변은 폐기해야합니다. 간단히 말해서 1 표의 답변은 0 표의 2 답변과 동일하게 계산됩니다.
이 데이터는 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 ++ 사용자도 이길 수 있습니다!
경고 : 쿼리는 'cool'헤더 형식을 사용하는 사람들과 코드 도전 질문에 code-golf 태그를 지정하는 사람들로 인해 유효하지 않은 행이 많은 데이터 세트를 생성합니다 . 내가 제공 한 다운로드는 대부분의 특이 치를 제거했습니다. 쿼리와 함께 제공된 CSV를 사용하지 마십시오.
행복한 코딩!
C++ <s>6 bytes</s>
입니다. 게다가, 나는 오늘 전에 T-SQL을 한 번도 한 적이 없으며 바이트 수를 추출 할 수 있다는 사실에 이미 감동했습니다.