Rest bestimmen
Ist es möglich, den Rest von zwei gegebenen Werten nur durch Addition, Subtraktion, Multiplikation und Division zu berechnen? Gibt es einen Algorithmus oder eine Formel, wenn es überhaupt möglich ist?
Nehmen wir zum Beispiel an, wir haben zwei Werte: 100und 30. Dividieren wir 100durch 30, wir bekommen 3.333.... Aber gibt es eine Möglichkeit zu erreichen 0.333...(ohne von Anfang an zu wissen, wie viele Ganzheiten enthalten sind)?
Um weiter zu veranschaulichen, was ich meine, und sich an das obige Beispiel zu halten, wäre eine Möglichkeit, den Rest zu finden, die folgende Formel: 100 / 30 / 10 * 30 = 0.333...ABER dies funktioniert offensichtlich nicht für zwei gegebene Zahlen.
Einige weitere Beispiele (Die Werte in Klammern sind die Werte, nach denen ich suche):
100 / 40 = 2.5 (0.5) 450 / 50 = 9 (0) 11 / 4 = 2.75 (75)
Entschuldigung, wenn diese Frage nicht klar ist. Es basiert auf einer Programmierherausforderung, auf die ich gestoßen bin. Ich möchte nur CSS verwenden, um den Rest der Zeilenhöhe eines Textes bei einem bestimmten vertikalen Versatz des Textes zu berechnen. Zum Beispiel könnte die Höhe des Fensters sein 100, während die Linienhöhe sein würde 30. Aber CSS hat keine Funktion, um den Rest leicht zu bestimmen, und ich kann keine Schleifen oder Rekursionen (dh 100 - 30 - 30 - 30 - 30 < 0) oder bedingten (dh wenn N< 0, tun ...) verwenden.
Meine Mathematik ist schrecklich. Aber ich frage mich, ob es mathematisch möglich ist oder nicht?
Antworten
Ich weiß nicht, ob es möglich ist, den "Rest in integraler Division" in CSS mit "out of the box" zu machen, aber mathematisch kann dies nicht nur durch Addition, Subtraktion, Multiplikation und Division erfolgen .
Nämlich eine Funktion $f(x,y)$Bestehend aus Addition, Subtraktion, Multiplikation und Division ist eine rationale Funktion (ein Quotient aus zwei reellen Polynomen in zwei Variablen$x$ und $y$).
Nehmen wir das an $\text{remainder}(x,y)=\frac{P(x,y)}{Q(x,y)}$ wo $P$ und $Q$sind Polynome. Fix$y=2$ und dann hätten wir $\text{remainder}(x,2)=\frac{P(x,2)}{Q(x,2)}=\frac{p(x)}{q(x)}$ wo $p(x)=P(x,2)$ und $q(x)=Q(x,2)$- Polynome in einer Variablen. Wissend, dass:
$$\frac{p(n)}{q(n)}=0$$
für jeden eben $n$, können wir schließen, dass $p=0$(Nullpolynom). Dies steht dann jedoch nicht im Einklang mit der anderen Anforderung, nämlich:
$$\frac{p(n)}{q(n)}=1$$
für jede ungerade $n$.
Hinweis : Ich kann diese CSS-Spezifikation für sehen$\text{calc}()$sagt, dass letztendlich, wenn das Ergebnis der CSS-Berechnung einem Attribut zugewiesen wird, es gerundet werden kann, wenn dieses Attribut eine Ganzzahl erfordert. Das Runden ähnelt dem Abschneiden ($\text{round}(x)=\text{ceil}(x+0.5)$) und Kürzung können für die integrale Division verwendet werden ($\text{remainder}(x, y)=x-y\times\text{ceil}(x/y)$) Vielleicht kann das alles irgendwie zusammengeschustert werden - aber ich würde selbst nicht wissen, wie das geht, da ich kein CSS-Experte bin ...
Sie suchen den Bruchteil einer Zahl.
Um dies zu nutzen, definieren Sie eine Funktion aus zwei Variablen, die eine Ausgabe ergibt: $$t=f(x,y)=\frac{x}y-\left\lfloor\frac{x}y\right\rfloor.$$
Anhand Ihrer obigen Beispiele haben wir Folgendes: \begin{align} f(100,30)&=\frac{100}{30}-\left\lfloor\frac{100}{30}\right\rfloor=\frac{10}3-3=\frac13\\ f(100,40)&=\frac{100}{40}-\left\lfloor\frac{100}{40}\right\rfloor=\frac52-2=\frac12\\ f(450,50)&=\frac{450}{50}-\left\lfloor\frac{450}{50}\right\rfloor=9-9=0\\ f(11,4)&=\frac{11}{4}-\left\lfloor\frac{11}{4}\right\rfloor=\frac{11}{4}-2=\frac34 \end{align}