Déterminer le reste
Est-il possible de calculer le reste de deux valeurs données avec simplement l'addition, la soustraction, la multiplication et la division? Existe-t-il un algorithme ou une formule si c'est même possible?
Par exemple, disons que nous avons deux valeurs: 100et 30. Si nous divisons 100par 30, nous obtenons 3.333.... Mais y a-t-il moyen d'atteindre 0.333...(sans savoir dès le départ combien de blocs sont inclus)?
Pour illustrer davantage ce que je veux dire, et en respectant l'exemple ci-dessus, une façon de trouver le reste serait la formule suivante: 100 / 30 / 10 * 30 = 0.333...MAIS cela ne fonctionne évidemment pas pour deux nombres donnés.
Quelques exemples supplémentaires (les valeurs entre parenthèses sont les valeurs que je recherche):
100 / 40 = 2.5 (0.5) 450 / 50 = 9 (0) 11 / 4 = 2.75 (75)
Désolé, si cette question n'est pas claire. Il est basé sur un défi de programmation que j'ai rencontré. Je veux utiliser uniquement CSS pour calculer le reste de la hauteur de ligne d'un texte, étant donné un décalage vertical spécifique du texte. Par exemple, la hauteur de la fenêtre pourrait être 100, alors que la hauteur de la ligne le serait 30. Mais CSS n'a pas de fonction pour déterminer facilement le reste, et je ne peux pas utiliser de boucles ou de récursivité (ie 100 - 30 - 30 - 30 - 30 < 0), ni conditionnelles (ie if N< 0, do ...).
Mes calculs sont affreux. Mais je me demande si cela est mathématiquement possible?
Réponses
Je ne sais pas s'il est possible de faire le "reste en division intégrale" en CSS en utilisant "penser hors de la boîte" d'une manière ou d'une autre, mais mathématiquement, cela ne peut pas être fait en utilisant simplement l'addition, la soustraction, la multiplication et la division .
À savoir, une fonction $f(x,y)$composée d'addition, de soustraction, de multiplication et de division est une fonction rationnelle (un quotient de deux polynômes réels en deux variables$x$ et $y$).
Supposons maintenant que $\text{remainder}(x,y)=\frac{P(x,y)}{Q(x,y)}$ où $P$ et $Q$sont des polynômes. Réparer$y=2$ et alors nous aurions $\text{remainder}(x,2)=\frac{P(x,2)}{Q(x,2)}=\frac{p(x)}{q(x)}$ où $p(x)=P(x,2)$ et $q(x)=Q(x,2)$- polynômes en une variable. Sachant que:
$$\frac{p(n)}{q(n)}=0$$
pour chaque même $n$, nous pouvons conclure que $p=0$(zéro polynôme). Cependant, cela est alors incompatible avec l'autre exigence, à savoir:
$$\frac{p(n)}{q(n)}=1$$
pour chaque impaire $n$.
Remarque : je peux voir cette spécification CSS pour$\text{calc}()$dit qu'en fin de compte, lorsque le résultat du calcul CSS est attribué à un attribut, il peut être arrondi si cet attribut nécessite un entier. L'arrondi est similaire à la troncature ($\text{round}(x)=\text{ceil}(x+0.5)$) et la troncature peut être utilisée pour la division intégrale ($\text{remainder}(x, y)=x-y\times\text{ceil}(x/y)$) alors peut-être que tout cela peut être bricolé d'une manière ou d'une autre - mais je ne saurais pas moi-même comment faire cela, car je ne suis pas un expert CSS ...
Vous recherchez la partie fractionnaire d'un nombre.
Pour utiliser cela, définissez une fonction de deux variables qui donne une sortie: $$t=f(x,y)=\frac{x}y-\left\lfloor\frac{x}y\right\rfloor.$$
En utilisant vos exemples ci-dessus, nous avons les éléments suivants: \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}