Determinando o Restante
É possível calcular o restante de dois valores dados apenas com adição, subtração, multiplicação e divisão? Existe um algoritmo ou fórmula, se for possível?
Por exemplo, digamos que temos dois valores: 100e 30. Se dividirmos 100por 30, obtemos 3.333.... Mas existe alguma maneira de alcançar 0.333...(sem saber desde o início quantos todos estão incluídos)?
Para ilustrar melhor o que quero dizer, e continuando com o exemplo acima, uma maneira de encontrar o resto seria a seguinte fórmula: 100 / 30 / 10 * 30 = 0.333...MAS isso obviamente não funciona para quaisquer dois números dados.
Mais alguns exemplos (os valores entre colchetes são os valores que procuro):
100 / 40 = 2.5 (0.5) 450 / 50 = 9 (0) 11 / 4 = 2.75 (75)
Desculpe, se esta questão não estiver clara. É baseado em um desafio de programação que encontrei. Desejo usar apenas CSS para calcular o restante da altura da linha de um texto, dado um deslocamento vertical específico do texto. Por exemplo, a altura da janela pode ser 100, enquanto a altura da linha seria 30. Mas CSS não tem função para determinar facilmente o resto, e não posso usar loops ou recursão (ou seja 100 - 30 - 30 - 30 - 30 < 0), nem condicional (ou seja, if N< 0, do ...).
Minha matemática é horrível. Mas estou me perguntando se isso é ou não matematicamente possível.
Respostas
Não sei se é possível fazer o "resto na divisão integral" no CSS usando "pensando fora da caixa" de alguma forma, mas matematicamente isso não pode ser feito usando apenas adição, subtração, multiplicação e divisão .
Ou seja, uma função $f(x,y)$composta de adição, subtração, multiplicação e divisão é uma função racional (um quociente de dois polinômios reais em duas variáveis$x$ e $y$)
Agora suponha que $\text{remainder}(x,y)=\frac{P(x,y)}{Q(x,y)}$ Onde $P$ e $Q$são polinômios. Consertar$y=2$ e então teríamos $\text{remainder}(x,2)=\frac{P(x,2)}{Q(x,2)}=\frac{p(x)}{q(x)}$ Onde $p(x)=P(x,2)$ e $q(x)=Q(x,2)$- polinômios em uma variável. Sabendo que:
$$\frac{p(n)}{q(n)}=0$$
para cada evento $n$, nos podemos concluir que $p=0$(polinômio zero). No entanto, isso é inconsistente com o outro requisito, que é:
$$\frac{p(n)}{q(n)}=1$$
para cada ímpar $n$.
Nota : posso ver que a especificação CSS para$\text{calc}()$diz que, em última instância, quando o resultado do cálculo CSS é atribuído a um atributo, ele pode ser arredondado se esse atributo exigir um número inteiro. O arredondamento é semelhante ao truncamento ($\text{round}(x)=\text{ceil}(x+0.5)$) e o truncamento pode ser usado para divisão integral ($\text{remainder}(x, y)=x-y\times\text{ceil}(x/y)$) então talvez tudo isso possa ser remendado de alguma forma - mas eu não saberia como fazer isso, pois não sou um especialista em CSS ...
Você está procurando a parte fracionária de um número.
Para fazer uso disso, defina uma função de duas variáveis que forneça uma saída: $$t=f(x,y)=\frac{x}y-\left\lfloor\frac{x}y\right\rfloor.$$
Usando seus exemplos acima, temos o seguinte: \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}