Pochodzący z tego postu w piaskownicy
Jest to inspirowane testem matematycznym 8 klas
Wprowadzenie
Mamy sześcian z następującymi narożnikami
A(0, 0, 0)
B(1, 0, 0)
C(1, 1, 0)
D(0, 1, 0)
E(0, 0, 1)
F(1, 0, 1)
G(1, 1, 1)
H(0, 1, 1)
Ten sześcian ma wyraźnie 8 rogów, 12 krawędzi i 6 ścian. Jeśli odetniemy teraz narożnik G, tak że nasza płaszczyzna cięcia przechodzi dokładnie przez środek każdej sąsiedniej oryginalnej krawędzi, dodajemy 2 nowe rogi, 3 nowe krawędzie i jedną nową ścianę. Proszę cieszyć się tym ręcznie rysowanym dziełem sztuki dla lepszego wyjaśnienia
Wejście
Biorąc pod uwagę listę narożników (w tym przykładzie oznaczoną przez AH), które zostaną obcięte, oblicz nową liczbę narożników, krawędzi i ścian.
Wprowadzasz dane wejściowe w dowolnej formie, pod warunkiem, że odpowiadają one tym samym rogom (np. Zamiast AH możesz użyć 1-8 lub 0-7, możesz założyć, że jest to lista, csv, cokolwiek)
Możesz założyć, że lista jest odrębna (każdy róg pojawi się najwyżej raz), ale może być pusta. Lista nigdy nie będzie zawierać nieistniejących narożników.
Wynik
Wyprowadź trzy liczby odpowiadające liczbie narożników, krawędzi i ścian. Wyjście jako lista jest wyraźnie dozwolone. Końcowe białe znaki są dozwolone
Przykłady
{} -> 8, 12, 6 (empty list)
{A} -> 10, 15, 7
{A,C} -> 12, 18, 8
{A,C,F} -> 14, 21, 9
{A,B,C} -> 12, 19, 9
{A,B,C,D} -> 12, 20, 10
Wreszcie jest to codegolf, więc wygrywa najkrótsza odpowiedź w bajtach. Powstrzymaj się od standardowych luk.
Odpowiedzi:
Galaretka , 23 bajty
Monadyczny link. Dane wejściowe to lista narożników sześcianu jako współrzędnych kartezjańskich (sześcian wyrównany z układem współrzędnych). Wyjście jest lista liczb całkowitych
[faces, corners, edges]
.Wypróbuj online!
W jaki sposób?
Jeśli rogi muszą być „uporządkowane”, tak jak są w pytaniu, działa to z liczbami całkowitymi 0–7 jako AH dla 25 bajtów:
3R×L+“©®€‘ɓŒc^/€ḟ2<5S;`Żạ
(zmniejsza za pomocą XOR, odfiltrowuje dwa, a następnie zlicza mniej niż pięć).źródło
Węgiel drzewny ,
4845 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Wykorzystuje cyfry
0-7
do reprezentowania literABDCEFHG
na schemacie. Dane wyjściowe w kolejności ścian, narożników, krawędzi. Wyjaśnienie:Weź kod ASCII każdego znaku i przekonwertuj go na bazę 2.
Weź ze sobą kartezjański produkt z listy liczb podstawowych 2.
XOR pary liczb podstawowych 2 razem i zsumuj liczbę 1 bitów. Policz, ile par ma sumę 1 i podziel ją przez 2. Daje to liczbę przypadkowych narożników.
Oblicz i wydrukuj liczbę ścian, narożników i krawędzi.
źródło
JavaScript (Node.js) , 84 bajtów
Wypróbuj online!
źródło
Perl 6 ,
5958 bajtówWypróbuj online!
Wykorzystuje numery
0
do7
reprezentowania rogach. Prawdopodobnie powinienem był dopasować je do tej samej kolejności, co w pytaniu ... Ups? Wyświetla listę w kolejnościfaces, corners, edges
.źródło