Określenie reszty
Czy można obliczyć pozostałą część dwóch podanych wartości za pomocą tylko dodawania, odejmowania, mnożenia i dzielenia? Czy istnieje algorytm lub formuła, jeśli jest to w ogóle możliwe?
Na przykład, powiedzmy, że mamy dwie wartości: 100i 30. Jeśli podzielimy 100się 30, otrzymamy 3.333.... Ale czy jest jakiś sposób, aby dotrzeć 0.333...(nie wiedząc od samego początku, ile całości jest uwzględnionych)?
Aby dokładniej zilustrować, o co mi chodzi, i trzymając się powyższego przykładu, jednym ze sposobów znalezienia reszty byłby następujący wzór: 100 / 30 / 10 * 30 = 0.333...ALE to oczywiście nie działa dla dowolnych dwóch podanych liczb.
Jeszcze kilka przykładów (wartości w nawiasach to wartości, których szukam):
100 / 40 = 2.5 (0.5) 450 / 50 = 9 (0) 11 / 4 = 2.75 (75)
Przepraszamy, jeśli to pytanie nie jest jasne. Opiera się na wyzwaniu programistycznym, z którym się spotkałem. Chcę używać tylko CSS do obliczenia pozostałej części wysokości wiersza tekstu, biorąc pod uwagę określone pionowe przesunięcie tekstu. Na przykład wysokość okna może być 100, podczas gdy wysokość linii byłaby 30. Ale CSS nie ma funkcji do łatwego określenia reszty i nie mogę używać pętli, rekursji (tj. 100 - 30 - 30 - 30 - 30 < 0) Ani warunkowej (tj. If N< 0, do ...).
Moja matematyka jest okropna. Ale zastanawiam się, czy jest to matematycznie możliwe?
Odpowiedzi
Nie wiem, czy da się jakoś zrobić „resztę z dzielenia całkowego” w CSS używając „nieszablonowego myślenia”, ale matematycznie nie da się tego zrobić za pomocą tylko dodawania, odejmowania, mnożenia i dzielenia .
Mianowicie funkcja $f(x,y)$składająca się z dodawania, odejmowania, mnożenia i dzielenia jest funkcją wymierną (iloraz dwóch rzeczywistych wielomianów w dwóch zmiennych$x$ i $y$).
Teraz przypuśćmy, że $\text{remainder}(x,y)=\frac{P(x,y)}{Q(x,y)}$ gdzie $P$ i $Q$są wielomianami. Naprawić$y=2$ a wtedy byśmy to zrobili $\text{remainder}(x,2)=\frac{P(x,2)}{Q(x,2)}=\frac{p(x)}{q(x)}$ gdzie $p(x)=P(x,2)$ i $q(x)=Q(x,2)$- wielomiany w jednej zmiennej. Wiedząc to:
$$\frac{p(n)}{q(n)}=0$$
dla każdego nawet $n$, możemy stwierdzić, że $p=0$(wielomian zerowy). Jest to jednak niezgodne z innym wymaganiem, którym jest:
$$\frac{p(n)}{q(n)}=1$$
za każdy kurs $n$.
Uwaga : widzę specyfikację CSS dla$\text{calc}()$Mówi, że ostatecznie, gdy wynik obliczeń CSS jest przypisany do atrybutu, może zostać zaokrąglony, jeśli ten atrybut wymaga liczby całkowitej. Zaokrąglanie jest podobne do obcięcia ($\text{round}(x)=\text{ceil}(x+0.5)$) i obcinanie może służyć do dzielenia całkowego ($\text{remainder}(x, y)=x-y\times\text{ceil}(x/y)$), więc może to wszystko da się jakoś poskładać - ale sam nie wiedziałbym, jak to zrobić, ponieważ nie jestem ekspertem od CSS ...
Szukasz ułamkowej części liczby.
Aby z tego skorzystać, zdefiniuj funkcję dwóch zmiennych, która daje jedno wyjście: $$t=f(x,y)=\frac{x}y-\left\lfloor\frac{x}y\right\rfloor.$$
Korzystając z powyższych przykładów, mamy: \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}