다양한 문제의 규모로 도전 과제를 어떻게 채점 할 수 있습니까?


21

챌린지 작성 질문이 주제에 관한 메타에 대해 상당히 강력하게 지원됩니다 . 그러나 아직 그런 질문이 없으므로 물을 테스트한다고 생각했습니다. 이 질문은 아마도 좋은 주관적이고 나쁜 주관적인 영역으로 들어가고있을 것입니다 . 그러나 저는 이것이 도전적인 글쓰기 질문 일 것입니다. 그들이 여전히 양질의 콘텐츠를 생성 할 수 있도록 답변에 거친 추측 아이디어를 게시하지 마십시오. 이들이 아래 언급 된 문제를 피하는 이유를 설명하거나 과거에 제안 된 기술을 성공적으로 사용한 기존 과제를 이상적으로 지적하십시오.

특정 최적화 챌린지의 경우 챌린지를 설정하는 데있어 자유 매개 변수는 최적화 할 문제의 크기입니다. "최적화 챌린지"라는 말은 대답이 일반적으로 정확 / 최적화되어야하는 장르 와 같은 것을 의미하지 않으며 , 챌린지는 고정 된 문제 크기 또는 처리 할 수있는 가장 큰 문제 크기에서 점수가 매겨집니다. 정해진 시간에. 나는 근본적인 문제에 대한 차선책이 허용되고 가능성이 높은 도전을 의미하며 가능한 목표를 달성하는 것이 목표입니다.

명확성을 위해, 바쁜 비버 챌린지를 고려하십시오 . 원칙적으로 이것은 알려진 최적의 솔루션이없는 다른 챌린지 유형에도 적용됩니다 (아래에서 언급 된 문제를 악화시키기 때문에 여기서는 바쁜 비버를 사용하고 있습니다). 가장 바쁜 Brainfuck 비버를 찾는 것에 도전하고 싶었습니다. 바쁜 비버 문제에서 사용 가능한 매개 변수는 코드 크기입니다. 어떤 식 으로든 코드 크기를 참조하지 않고 도전을 설정할 수 없습니다. 어떤 방식으로, 문제 크기 매개 변수의 각 값은 N별도의 (매우 어려운) 도전을 제공합니다. 내 주요 질문은 문제의 균형을 맞추지 않고 어떻게 도전 과제를 수행 할 수 있는지입니다.

확실한 해결책은 다음과 같이 수정하는 것입니다 N. " N가능한 한 많은 문자를 인쇄하고 가능한 한 많은 틱에 대해 실행하는 바이트 소스 코드 로 종료하는 Brainfuck 프로그램을 찾으십시오 ." 이는 대규모 밸런싱 문제가 있습니다 : 내가 너무 작은 크기를 선택하면, 누군가가 신속하게 찾을 수 있습니다 가장 바쁜 비버와 도전은 끝났습니다. 크기를 너무 크게 선택하면, 최적의 솔루션은 종료하기 전에 천문학적 양의 문자를 인쇄합니다. 즉, 그러한 프로그램을 찾는 것이 사소한 것일 수 있으며 도전이 인내심을 불러 일으키는 과제가됩니다. 바쁜 비버는 프로그래밍 방식으로 찾을 수 있으며, 대신 사람들은 결과를 공식적으로 증명해야합니다. 물론이 문제는 최적의 솔루션의 성장으로 인해 다른 유형보다 바쁜 비버 과제에서 더 두드러 지지만 그럼에도 불구하고 다른 과제에도 적용됩니다.

다음 옵션은 N제약을받지 않고 일부 기능을 통해 점수의 일부로 만드는 것입니다. "정상적인"도전의 경우에도 종합 점수의 균형을 맞추는 것은 매우 어렵지만, 바쁜 비버의 경우 최적의 솔루션이 N계산 가능한 기능보다 빠르게 성장한다는 사실 때문에 실제로 근본적으로 불가능 합니다. 즉, N많은 노력없이 더 나은 점수를 얻을 수 있도록 오랫동안 실행되는 프로그램을 쉽게 찾을 수 있는 충분히 큰 곳으로 가면 항상 기존의 최상의 답변을 이길 수 있습니다.

나는 또한 고정을 설정하고 N사람들이 더 큰 비버를 제출 N하여 연속적인 타이 브레이커로 사용될 수 있도록 고려했습니다 . 이것은 비슷한 문제를 가지고 있는데, 누군가가 "동일하게 바쁜 바쁜 비버를 찾는 일"을 할 수 있다는 점 N에서 동점을 만들고 N큰 점수를 찾는 것이 더 쉬운 다음 단계를 위해 거의 아무것도 제출하지 않는다는 점입니다. 최적의 점수는 더 어려워집니다). 이 경우 동일한 솔루션을 사용하여 여러 사람을 어떻게 처리 하시겠습니까? 그것이 최적의 경우에는 이상 할 수도 있습니다.

아마도 합리적으로 교육적인 추측을 한 N다음 5 바이트 내에서 모든 크기의 바쁜 비버를 요구 하여 중간 방향을 공격 할 수 있습니다 N. 따라서 양방향에 약간의 여유가 있습니다 (그리고 ~ 10 점수 기술별로 하나씩). 나의 초기 추측 N이 여전히 흥미로운 도전에 대한 범위를 벗어 났기 때문에 이것은 꽤 만족스럽지 않습니다 .

TL; DR : 도전 과제가 크기가 가변적 인 문제를 (최적화 해결하고) 최적화하는 경우, 어떻게 도전 과제에 크기를 통합합니까? 이상적으로는 사람들 N이 다루기 쉬운 크기 범위의 상단 근처에 있는 값으로 작업 할 수 있기를 바랍니다 . 그러나 그에 대한 최적의 솔루션이 가능하다는 것이 밝혀진 경우 N약간 더 큰 솔루션 N이 계량되기 시작하면 문제가 더 흥미로운 문제로 계속 될 수 있습니다.


6
PPCG에만 국한되지 않기 때문에 챌린지 작성 질문의 모델로 이것을 좋아합니다. "어떻게해야합니까?"가 아닙니다. "이 작업을 수행하는 좋은 방법은 무엇입니까?" 프로그래밍 애호가 사이트 또는 대면 경쟁에서 그러한 도전이 진행되고 있다고 상상할 수 있습니다.
xnor

tldr을 맨 위에 놓으십시오!
Majora320

1
@ Majora320 ...하지만 dw 로 변경 :-)
Luis Mendo

답변:


3

다음 N 찾기

과제는 N제출이 시작되어야 함을 나타냅니다 .

그런 다음 사람들은 현재에 답변을 제출합니다 N. 주어진 제출물이 최적의 것으로 판명되면 N1 씩 증가하고 프로세스가 반복됩니다.

점수를 매기는 방법에는 여러 가지가 있습니다.

  1. 현재의 최고 제출물 점수 N
  2. 현재 최고 제출에 N대한 포인트와 각 최적 솔루션에 대한 포인트를 제공하십시오.
  3. # 2와 동일하지만 주어진 제출이 최적임을 증명 한 사람을 지적합니다.

1

범위 내에서 솔루션에 대한 포인트 제공

허용 N고정 된 범위 내에서 할 수 있습니다. 하한은 명백한 사소한 대답을 배제해야하며 상한은 하한에서 너무 멀지 않아야합니다.

그런 다음 N경계 내에서 가장 적합한 솔루션을 가진 사람마다 1 점을 부여 하십시오. 높을수록 N해가 더 어렵다는 것을 의미하면 N 점을 지정하십시오. (또는 N을 기반으로 한 일부 수식).

이 방법은 AZsPC의 방법과 유사 하지만 부분적인 점은 제공되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.