Definieren wir f (n) als die axiale Anzahl von Regionen, die durch Verbinden von n Punkten um einen Kreis durch gerade Linien erhalten werden. Zum Beispiel würden zwei Punkte den Kreis in zwei Teile teilen, drei in vier, wie folgt:
Stellen Sie sicher, dass Sie beim Zeichnen der Linien nicht mehr als zwei Linien schneiden.
Deine Aufgabe
Bei einer Anzahl n , Druck f (n) .
Testfälle:
n | f(n)
---+-----
1 | 1
2 | 2
3 | 4
4 | 8
5 | 16
6 | 31
7 | 57
8 | 99
9 | 163
Die Verwendung eingebauter Sequenzgeneratoren ist nicht zulässig.
Denken Sie daran, dies ist Code-Golf , also gewinnt der Code mit der geringsten Anzahl von Bytes.
Wenn ihr die Formel wollt, hier ist sie:
MATL , 7 Bytes
Probieren Sie es online aus! Oder überprüfen Sie alle Testfälle .
Erläuterung
Verwendet die Formel (aus OEIS): a ( n ) = C ( n - 1, 4) + C ( n - 1, 3) + ... + C ( n - 1, 0)
quelle
Gelee , 6 Bytes
Probieren Sie es online aus! oder überprüfen Sie alle Testfälle .
Wie es funktioniert
quelle
Java 7,
5047 BytesVerwendet die Formel (von OEIS)
quelle
> <> ,
2726 + 3 = 29 Bytes3 Bytes für das Flag -v hinzugefügt
Probieren Sie es online aus!
Ein Byte dank Martin Ender gespeichert .
quelle
R, 25 Bytes
scan()
Nimmt die Eingaben
von stdin, diechoose
zusammen mit übergeben wird0:2*2
. Dieser letztere Term ist0
zu2
(dh[0, 1, 2]
) multipliziert mit 2, was ist[0, 2, 4]
. Dachoose
wird vektorisiert, berechnet darausn choose 0
,n choose 2
,n choose 4
und kehrt sie in einer Liste an . Gibt schließlichsum
überraschenderweise die Summe dieser Zahlen zurück.Ich denke nicht, dass dies weiter gespielt werden kann, aber ich würde mich sehr freuen, wenn ich mich als falsch erweisen würde!
quelle
dc, 21
RPN- basierte Version von @ Neils Antwort .
Testausgabe:
quelle
J, 9 Bytes
Verwendet die Formel
C(n-1, 2) + C(n, 4) + n = C(n, 0) + C(n, 2) + C(n, 4)
.Verwendungszweck
Erläuterung
quelle
05AB1E , 6 Bytes
Probieren Sie es online aus!
Erläuterung
Gerade Implementierung der OEIS-Formel
c(n,4) + c(n,2) + c(n,0)
quelle
Eigentlich 6 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
Scala, 35 Bytes
Verwendet dieselbe Formel wie die Java-Antwort von numberknot .
quelle
Oktave , 27 Bytes
Dies ist eine anonyme Funktion.
Probieren Sie es bei Ideone .
Erläuterung
Dies basiert auf der OEIS-Formel a ( m ) = C ( m - 1, 4) + C ( m - 1, 3) + ... + C ( m - 1, 0), wobei C Binomialkoeffizienten sind. Die Binomialverteilungsfunktion
für k = 4 ergibt n = m - 1 und p = 1/2 2 m - 1 a ( m ).
quelle
@(m)sum(binopdf(0:2:4,m,.5)*2^m)
TI-89 Basic, 57 Bytes
Rückfall in alte Zeiten.
quelle
)
das letzte nicht entfernennCr
?