1 votos

Ayuda para crear un índice

Hola a todos los matemáticos, yo tampoco lo soy, así que mis disculpas por adelantado.

Estoy escribiendo un programa que utiliza un índice que debe oscilar entre $0-10$ . Cada iteración obtengo como salida una a th $1,2,3,4$ . Quiero que la salida afecte al índice en una magnitud de su valor, pero asegurándome de que el índice no excede los límites predefinidos (no menos de $0$ y no mayor que $10$ ).

¿Cómo puedo conseguirlo? Le agradecería su ayuda.

0voto

iadvd Puntos 2322

Como se ha dicho en los comentarios, puede utilizar aritmética modular .

Básicamente, llamemos $i$ al índice y $n$ a la salida ( $1,2,3,4$ ) :

  1. Defina cómo $i$ se modifica por $n$ depende de ti. Este es un ejemplo, supongamos que decidimos que $i = i + n$ . Como al final la suma será mayor que $10$ es necesario "reubicar" los resultados sobre $10$ al "dominio" que desea utilizar, que es el conjunto de enteros en el intervalo $[0..10]$ .

  2. Para ello, es posible aplicar la aritmética modular para que los resultados se mantengan en el rango de enteros deseado $[0..10]$ . Normalmente, todos los lenguajes de programación tienen un operador "módulo" capaz de hacer eso. Por ejemplo, Python utiliza "%", así que este es un ejemplo:

$$i = (i+n)\%11$$

p. ej.: si $i+n$ es uno de los siguientes valores:

$\{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22...\}$

... el valor se convertirá finalmente (respectivamente) en el siguiente:

$\{0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,0...\}$

Así que en esencia, aplicando aritmética modular mantenemos el dominio del resultado dentro de los valores enteros discretos deseados en el rango $[0..10]$

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