Eine arithmetisch-geometrische Folge ist das elementweise Produkt einer arithmetischen Folge und einer geometrischen Folge. Zum Beispiel 1 -4 12 -32
ist das Produkt der arithmetischen Folge 1 2 3 4
und der geometrischen Folge 1 -2 4 -8
. Der n-te Term einer ganzzahligen arithmetisch-geometrischen Folge kann ausgedrückt werden als
für eine reelle Zahl , ein ungleich Null reelles und eine ganze Zahl . Beachten Sie, dass und nicht unbedingt ganze Zahlen sind.
Zum Beispiel kann die Sequenz 2 11 36 100 256 624 1472 3392
hat , und .
Eingang
Eine geordnete Liste von Ganzzahlen als Eingabe in einem beliebigen vernünftigen Format. Da einige Definitionen der geometrischen Folge erlauben und , hängt es nicht davon ab, ob eine 0 sein darf , ob eine Eingabe eine arithmetisch-geometrische Folge ist. Beispielsweise tritt sie nicht als Eingabe auf.123 0 0 0 0
Ausgabe
Ob es sich um eine arithmetisch-geometrische Folge handelt. Geben Sie einen Wahrheits- / Falschwert oder zwei verschiedene konsistente Werte aus.
Testfälle
Wahr:
1 -4 12 -32
0 0 0
-192 0 432 -1296 2916 -5832 10935 -19683
2 11 36 100 256 624 1472 3392
-4374 729 972 567 270 117 48 19
24601 1337 42
0 -2718
-1 -1 0 4 16
2 4 8 16 32 64
2 3 4 5 6 7
0 2 8 24
Falsch:
4 8 15 16 23 42
3 1 4 1
24601 42 1337
0 0 0 1
0 0 1 0 0
1 -1 0 4 16
quelle
\$
, um Dinge wie zu schreiben .1 -1 0 4 16
wäre ein nützlicher False-Fall, da er vier aufeinanderfolgende Elemente mit jedem der True-Fälle1 -1 0 4 -16
und teilt-1 -1 0 4 16
.Antworten:
Perl 6 ,
184128135 BytesProbieren Sie es online aus!
Berechnet und aus den ersten drei Elementen und prüft, ob die resultierende Sequenz mit der Eingabe übereinstimmt. Leider löst Rakudo beim Teilen durch Null eine Ausnahme aus, selbst wenn Gleitkommazahlen verwendet werden, die ~ 9 Bytes kosten.r d
Zählt die Sequenz mit .an=r⋅an−1+rn⋅d
Einige Verbesserungen sind von Arnauld's JavaScript-Antwort inspiriert.
Erläuterung
quelle
JavaScript (ES7),
135 bis127 ByteProbieren Sie es online aus!
Wie?
Wir verwenden zwei vorläufige Tests, um einige Sonderfälle loszuwerden. Für den Hauptfall versuchen wir drei verschiedene mögliche Werte von (und die entsprechenden Werte von , die leicht abgeleitet werden können) und testen, ob alle Terme der Eingabesequenz mit den erratenen übereinstimmen. Aufgrund möglicher Rundungsfehler testen wir tatsächlich, ob alle quadratischen Differenzen .r d <10−9
Sonderfall Nr. 1: weniger als 3 Begriffe
Wenn weniger als 3 Begriffe vorhanden sind, ist es immer möglich, eine passende Sequenz zu finden. Also erzwingen wir einen wahrheitsgemäßen Wert.
Sonderfall Nr. 2: nur Nullen
Wenn alle Terme gleich , können wir , und jedes . Also erzwingen wir einen wahrheitsgemäßen Wert.0 a0=0 d=0 r≠0
mita0=0
Wenn , kann die Sequenz vereinfacht werden zu:a0=0
Welches gibt:
Wir wissen, dass nicht gleich (sonst wären wir im Sonderfall # 2). Wir haben also und:d 0 a1≠0
mita0≠0
Wir haben die folgende Beziehung zwischen und :an+1 an
Für haben wir:an+2
Wir haben insbesondere:
Dies führt zu folgendem Quadrat:
Wessen Wurzeln sind:
quelle
Wolfram Language (Mathematica) , 55 Bytes
Probieren Sie es online aus!
Solve
Alle Lösungsformulare zurückgeben. Das Ergebnis wird mit verglichen, um{}
zu überprüfen, ob es eine Lösung gibt.quelle