2 votos

Número real * Entero = Entero

Digamos $r$ es un número real y $I_1, I_2$ son números enteros. Quiero esto, $$r*I_1=I_2$$ Esto no es posible todo el tiempo, así que permito añadir un épsilon $\epsilon$ al número real tal que $$(r+\epsilon)*I_1 = I_2$$ ¿Cuál es el valor más pequeño de $\vert\epsilon\vert$ ? Por ejemplo: $r = 0.31, I_1 = 30 \therefore \epsilon = -0.01, I_2 = 9$

Puedo resolver el problema numéricamente. Es decir, considero sólo dos decimales de precisión y busco el más pequeño $\epsilon$ .

Como en el ejemplo, redondeo digamos $r=0.3111$ a $r=0.31$ y multiplicarlo por $I_1$ si el resultado es un entero paro o $r := r \pm 0.01$ entonces realiza los pasos anteriores.

$ I_1 \in \{24, 25, 30, 48, 50, 60\}$ y $r$ se da. Estamos buscando para los más pequeños $\vert\epsilon\vert$ y $I_2$ es la salida. Cualquier $I_2 \ge 0$ es aceptable.

1voto

Russo Puntos 192

El valor de $|\epsilon|$ puede ser arbitrariamente pequeño si se elige $r$ correctamente, dados los números enteros $I_1,I_2$ . La elección de $r=\frac{I_2}{I_1}-\epsilon$ para cualquier $\epsilon$ dice que $|\epsilon|$ puede ser tan pequeño como queramos.

0voto

Shabaz Puntos 403

Una forma de reducir el ensayo y error es encontrar el fracción continua para $r$ . Terminando la expresión de la fracción continua se obtienen buenas aproximaciones racionales a $r$ que puedes comprobar y ver si el error es lo suficientemente pequeño o el denominador está en el rango que deseas.

0voto

Jaap Scherphuis Puntos 146

Supongamos por ahora que ambos $r$ y $I_1$ se dan.

Considere el valor real $r*I_1$ . Sea $I_2=[r*I_1]$ sea el entero más próximo, es decir, el entero que se obtiene al redondear $r*I_1$ . Entonces $\epsilon=I_2/I_1 - r$ es el cambio más pequeño que hace $(r+\epsilon)*I_1$ un número entero.

Tiene varias opciones para el valor de $I_1$ por lo que basta con calcular $\epsilon = [r*I_1]/I_1 - r$ en cada uno de esos casos y elegir la mejor.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X