Die Summe von f (i) für alle ganzen Zahlen i = k, k + 1, .., nur so lange fortführend wie die Bedingung p (i) gilt.Wie würde man diesen mathematischen Ausdruck programmatisch aufschreiben?
Ich werde für:
for (i = 0; i <= V_COUNT; i++) {
sum += sine_coeff[i] * pow(E, e_factor[i]) * sin(
(solar_coeff[i] * solar_anomaly)
+ (lunar_coeff[i] * lunar_anomaly)
+ (moon_coeff[i] * moon_argument)
);
}
basiert auf der folgenden Common Lisp Code:
(sigma ((v sine-coeff)
(w E-factor)
(x solar-coeff)
(y lunar-coeff)
(z moon-coeff))
(* v (expt cap-E w)
(sin-degrees
(+ (* x solar-anomaly)
(* y lunar-anomaly)
(* z moon-argument)))))))
wo Sigma ist:
(defmacro sigma (list body)
;; TYPE (list-of-pairs (list-of-reals->real))
;; TYPE -> real
;; $list$ is of the form ((i1 l1)..(in ln)).
;; Sum of $body$ for indices i1..in
;; running simultaneously thru lists l1..ln.
`(apply '+ (mapcar (function (lambda
,(mapcar 'car list)
,body))
,@(mapcar 'cadr list))))
(für Source Code siehe Calendrical calculations source code
Bearbeiten Vielen Dank für Ihre Antworten. Bei der Untersuchung der Codebeispiele bin ich zu dem Schluss gekommen, dass der Autor programmtechnisch meint, dass man eine bestimmte Menge von Werten durchlaufen muss. Daraus war leicht zu folgern, dass False
zurückgeben musste, wenn es keine Werte mehr hatte, d. H. Die Steuerung hat das Ende der Liste erreicht.
Was meinen Sie, "wie würde ich das programmatisch schreiben", wenn Sie bereits den Common Lisp Code vor Ihren Augen haben? Beleidigend :) –
Lol, ja in der Tat ist die Frage ein linguistischer Fehler, da ich es bereits programmatisch habe;) Der Grund warum ich nicht gefragt habe "wie man das in Sprache x übersetzt" ist, weil ich versuche zu verstehen was tatsächlich passiert Hier. –