일반 다각형의 영역


10

모든 대각선이 그려진 규칙적인 N-gon이 주어지면 얼마나 많은 영역이 대각선을 형성합니까?

예를 들어, 정삼각형은 정확히 1, 정사각형은 정확히 4, 오각형은 정확히 11, 육각형은 24입니다.

  • 점수는 솔루션의 바이트 수에 반비례합니다
  • 작은 퍼지 요인은 런타임에 따라 점수에 추가 될 수 있습니다
  • 다각형을 둘러싼 영역은 계산되지 않습니다

1
그래서 ... 이것을
mob

답변:


11

매스 매 티카 118

모든 대각선이 그려진 일반 n- 곤의 영역 수 를 계산하기 위해 잘 정의 된 루틴이 있지만 상당히 번거 롭습니다. 이미지 처리 방식 을 취하는 것이 재미있을 것이라고 생각했습니다 . 대각선으로 n-gon을 그리면 그려진 이미지에서 영역을 계산할 수 있습니까 (보다 정확하게는 이미지의 래스터 화 및 이진화 된 표현에서) 배열)?

다음은 다각형의 실제 이미지를 생성하고 처리하며 래스터 화 된 이미지에서 영역 수를 결정합니다.

Table[MorphologicalEulerNumber@Binarize@Rasterize@CompleteGraph[k, ImageSize->1200,EdgeStyle->Thickness[Large]],{k,3,14}]

{1, 3, 11, 24, 50, 80, 154, 220, 375, 444, 781, 952}

이것이 엔지니어 솔루션이라고 할 수 있습니다. 작업이 완료되지만 일부 제한된 조건 내에서만 가능합니다. (그리고 느리다 : 위의 코드를 실행하는 데 4.24 초가 걸렸다.) 위의 루틴은 아래에 표시된 14-Complete 그래프를 포함하여 올바르게 작동합니다 . 이미지가 1200 x 1200 픽셀로 표시되는 경우에도 952 영역 중 일부를보기가 매우 어렵다는 점을 감안할 때이 놀라운 사실을 발견했습니다.

아래 그림 은 래스터 화 및 이진화 전의 이미지 입니다.

14 완성 그래프


3

엑셀, 341 바이트

@mob의 코멘트에서 Woflram Mathworld 링크에 제공된 공식을 구현합니다.

=A1*(A1^3-6*A1^2+23*A1-42)/24+1+(MOD(A1,2)=0)*(A1*(42*A1-5*A1^2-40)/48-1)-(MOD(A1,4)=0)*3*A1/4+(MOD(A1,6)=0)*A1*(310-53*A1)/12+(MOD(A1,12)=0)*49/2*A1+(MOD(A1,18)=0)*32*A1+(MOD(A1,24)=0)*19*A1-(MOD(A1,30)=0)*36*A1-(MOD(A1,42)=0)*50*A1-(MOD(A1,60)=0)*190*A1-(MOD(A1,84)=0)*78*A1-(MOD(A1,90)=0)*48*A1-(MOD(A1,120)=0)*78*A1-(MOD(A1,210)=0)*48*A1

명확성을 위해 Ungolfed :

=A1*(A1^3-6*A1^2+23*A1-42)/24+1
+(MOD(A1,2)=0)  *(A1*(42*A1-5*A1^2-40)/48-1)
-(MOD(A1,4)=0)  *3*A1/4
+(MOD(A1,6)=0)  *A1*(310-53*A1)/12
+(MOD(A1,12)=0) *49/2*A1
+(MOD(A1,18)=0) *32*A1
+(MOD(A1,24)=0) *19*A1
-(MOD(A1,30)=0) *36*A1
-(MOD(A1,42)=0) *50*A1
-(MOD(A1,60)=0) *190*A1
-(MOD(A1,84)=0) *78*A1
-(MOD(A1,90)=0) *48*A1
-(MOD(A1,120)=0)*78*A1
-(MOD(A1,210)=0)*48*A1 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.