Determinando el resto

Oct 28 2020

¿Es posible calcular el resto de dos valores dados simplemente con suma, resta, multiplicación y división? ¿Existe un algoritmo o fórmula si es posible?

Por ejemplo, digamos que tenemos dos valores: 100y 30. Si dividimos 100por 30, obtenemos 3.333.... Pero, ¿hay alguna forma de llegar 0.333...(sin saber desde el principio cuántos totales se incluyen)?

Para ilustrar mejor lo que quiero decir, y siguiendo con el ejemplo anterior, una forma de encontrar el resto sería la siguiente fórmula: 100 / 30 / 10 * 30 = 0.333...PERO, obviamente, esto no funciona para dos números dados.

Algunos ejemplos más (los valores entre paréntesis son los valores que busco):

100 / 40 = 2.5 (0.5) 450 / 50 = 9 (0) 11 / 4 = 2.75 (75)

Lo siento, si esta pregunta no está clara. Se basa en un desafío de programación que he encontrado. Quiero usar solo CSS para calcular el resto de la altura de la línea de un texto, dado un desplazamiento vertical específico del texto. Por ejemplo, la altura de la ventana podría ser 100, mientras que la altura de la línea sería 30. Pero CSS no tiene ninguna función para determinar fácilmente el resto, y no puedo usar bucles o recursividad (es decir 100 - 30 - 30 - 30 - 30 < 0), ni condicional (es decir, si N< 0, hacer ...).

Mis matemáticas son horribles. Pero me pregunto si es matemáticamente posible o no.

Respuestas

1 StinkingBishop Oct 28 2020 at 21:56

No sé si es posible hacer el "resto en la división integral" en CSS usando "pensar fuera de la caja" de alguna manera, pero matemáticamente no se puede hacer usando solo suma, resta, multiplicación y división .

Es decir, una función $f(x,y)$compuesta de suma, resta, multiplicación y división es una función racional (un cociente de dos polinomios reales en dos variables$x$ y $y$).

Ahora suponga que $\text{remainder}(x,y)=\frac{P(x,y)}{Q(x,y)}$ dónde $P$ y $Q$son polinomios. Reparar$y=2$ y luego tendríamos $\text{remainder}(x,2)=\frac{P(x,2)}{Q(x,2)}=\frac{p(x)}{q(x)}$ dónde $p(x)=P(x,2)$ y $q(x)=Q(x,2)$- polinomios en una variable. Sabiendo que:

$$\frac{p(n)}{q(n)}=0$$

para cada par $n$, podemos concluir que $p=0$(polinomio cero). Sin embargo, esto es entonces inconsistente con el otro requisito, que es que:

$$\frac{p(n)}{q(n)}=1$$

por cada impar $n$.

Nota : puedo ver esa especificación CSS para$\text{calc}()$dice que, en última instancia, cuando el resultado del cálculo de CSS se asigna a un atributo, se puede redondear si ese atributo requiere un número entero. El redondeo es similar al truncamiento ($\text{round}(x)=\text{ceil}(x+0.5)$) y el truncamiento se pueden utilizar para la división integral ($\text{remainder}(x, y)=x-y\times\text{ceil}(x/y)$) así que tal vez todo esto se pueda improvisar de alguna manera, pero no sabría cómo hacerlo, ya que no soy un experto en CSS ...

1 AndrewChin Oct 28 2020 at 20:28

Buscas la parte fraccionaria de un número.

Para hacer uso de esto, defina una función de dos variables que dé una salida: $$t=f(x,y)=\frac{x}y-\left\lfloor\frac{x}y\right\rfloor.$$

Usando sus ejemplos anteriores, tenemos lo siguiente: \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}