달 미스터리의 크기
나는 달의 크기가 변한다고 들었습니다. 당신이 사랑에 있고 운이 좋으면 달의 크기는 정상적인 상황에 비해 거의 두 배입니다. 어떤 사람들은 그 이유가 렌즈 역할을하는 대기라고 말합니다. 다른 사람들은 그것이 근처의 나무와 같은 다른 물체와 비교하는 문제 일 뿐이라고 생각합니다. 어떤 설명을 읽든 그것은 매우 주관적입니다.
달 과학의 크기
좋아, 우리는 프로그래머 야, 그렇지 않니? 우리는 사실에 의존합니다. 실험은 다음과 같습니다.
- 시간과 조리개 설정을 수동으로 지원하는 멋진 카메라를 사용하십시오.
- 카메라를 최대 줌 레벨로 설정하십시오.
- 외출하고 달을 선명하게하고 조명이 잘되도록 최상의 설정을 감지하기 위해 달 사진을 찍습니다.
- 설정 기억
- 달이 크거나 작을 때마다 해당 설정으로 달 사진을 찍습니다.
- 달의 크기를 픽셀 단위로 계산
카메라가 거짓말을하지 않습니까? 밝은 픽셀을 세면 달 크기를 적어도 픽셀 단위로 효과적으로 측정 할 수 있습니다.
크기가 모든 사진에서 동일하다면 우리 뇌의 버그입니다. 크기가 다르면 추측의 여지가 있습니다
- 달은 실제로 자랍니다 (그러나 무엇을 먹습니까?)
- 대기 렌즈 효과가 있습니다
- 달은 타원 곡선을 가지고 있으며 때로는 더 가깝고 때로는 더 멀어집니다.
- ...
그러나 나는 당신의 작업이 완료 될 때까지 그것을 열어 둡니다. 물론 소프트웨어가 달 크기를 정확하게 계산할 수 있는지 미리 알고 싶습니다.
작업
달의 최적화 된 몇 장의 그림이 주어지면 달의 크기를 계산하십시오. 최적화는 다음과 같습니다. 픽셀이 검은 색 또는 흰색입니다. 사이에 아무것도 없습니다. 앤티 앨리어싱이 없습니다. 그것은 쉽지 않습니까?
주의 사항 : 달이 항상 가득 찬 것은 아닙니다. 알다시피 ... 낫입니다! 그러나 낫 모양에서도 달의 크기가 더 큽니다. 따라서 전체 크기를 계산하십시오.
- 프로그램
stdin
대신 함수를 작성하는 경우 프로그램은 PNG를 입력 (예 : 파일 이름 명령 행 인수, 파이프 라인 또는 비트 맵 객체 (표준 프레임 워크 라이브러리)으로)으로 사용합니다. - 프로그램은 반드시 정사각형이 아닌 적절한 입력 비트 맵 크기로 작동합니다. 150 픽셀의 최소 너비와 높이가 보장됩니다.
- 보름달은 그림의 25 % 이상을 차지합니다.
- 프로그램은 보름달처럼 달의 계산 된 크기를 픽셀 단위로 출력합니다.
- 우리는 달이 완벽한 구체라고 가정합니다.
- 정확한 크기는 항상 정수이지만 계산에서 반환하면 10 진수를 출력 할 수 있습니다.
- 정확도는 98 %와 102 % 사이 여야합니다. (이것은 내가 성취 할 수 있다고 보장 할 수있는 것보다 추측입니다. 도달하기가 너무 어렵다고 생각되면 의견을 남겨주세요.)
업데이트 :
- 달의 중심이 그림의 중간에있을 필요는 없습니다.
- 최소 가시 영역은 달의 5 % 또는 총 픽셀 수의 1.25 %입니다.
- 사진은 보름달이 이미지에 맞는 방식으로 촬영됩니다. 즉 총 픽셀 수는 달 크기의 상위 경계입니다.
- 달이 잘 리거나 잘리지 않습니다.
샘플
원하는 경우 블렌드 파일을 사용하여 자체 샘플을 생성 할 수 있습니다 . 나는 당신을 위해 다음 그림을 만들었습니다. WhitePixelCounter.exe (.NET 필요)를 사용하여 PNG 파일의 픽셀 수를 계산 하여 이미지에 흑백 픽셀 만 포함되어 있는지 여부와 그 수를 확인할 수 있습니다.
다음 256x256 픽셀 이미지는 흰색 픽셀의 양이 다르지만 계산 된 달 크기는 16416 픽셀이어야합니다.
이 177x177 픽셀 이미지는 10241 픽셀을 반환해야합니다. 이미지는 기본적으로 동일하지만 이번에는 초점 거리가 다른 카메라가 사용되었습니다.
9988의 결과를 가진 정사각형 및 중심이 아닌 샘플 :
오, 지금은 참조 구현이 없으며 무언가를 구현할 수 있는지조차 알지 못합니다. 그러나 내 두뇌에는 수학적으로 해결할 수 있어야한다는 강한 믿음이 있습니다.
규칙
이것은 코드 골프입니다. 2015-03-30의 가장 짧은 코드가 승인됩니다.