Biorąc pod uwagę regularny N-gon ze wszystkimi narysowanymi przekątnymi, ile regionów tworzą przekątne?
Na przykład regularny trójkąt ma dokładnie 1, kwadrat ma dokładnie 4, pięciokąt ma dokładnie 11, a sześciokąt ma 24.
- wynik jest odwrotnie proporcjonalny do liczby bajtów w roztworze
- małe współczynniki krówki mogą być dodawane do wyników na podstawie ich czasu działania
- region otaczający wielokąt nie ma znaczenia
Odpowiedzi:
Mathematica 118
Chociaż istnieją dobrze zdefiniowane procedury obliczania liczby regionów w regularnym n-gonie ze wszystkimi narysowanymi przekątnymi , są one dość kłopotliwe. Pomyślałem, że fajnie byłoby zastosować podejście do przetwarzania obrazu : jeśli narysujemy n-gon z jego przekątnymi, czy byłoby możliwe policzenie regionów z narysowanego obrazu (a dokładniej z rasteryzowanej i binarnej reprezentacji obrazu jako tablica)?
Poniżej przedstawiono i przetwarza rzeczywisty obraz wielokąta i określa liczbę regionów na podstawie obrazu rasteryzowanego.
Jest to tak zwane rozwiązanie inżynierskie. Wykonuje pracę, ale tylko w pewnych ograniczonych warunkach. (I jest powolny: uruchomienie powyższego kodu zajęło 4,24 s.) Powyższa procedura działa poprawnie aż do 14-kompletnego wykresu , pokazanego poniżej. Zaskoczyło mnie to, biorąc pod uwagę, że niektóre z 952 regionów są bardzo trudne do zobaczenia, nawet gdy obraz jest wyświetlany w rozdzielczości 1200 na 1200 pikseli.
Poniższy obraz jest obrazem przed rasteryzacją i binaryzacją.
źródło
Excel, 341 bajtów
Implementuje formułę podaną w linku Woflram Mathworld w komentarzu @ mob.
Ungolfed dla pewnej jasności:
źródło