es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Haga que ocurra un desbordamiento de índice de matriz dentro de un rango (incluyendo números negativos)

Estoy implementando un intérprete de brainfuck en Javascript. Represento la memoria con un array y me gustaría tener la opción de limitar los índices del array dentro de un rango. Si el índice está fuera de este rango, quiero que vaya por encima o debajo de los límites. Tengo un poco de dificultad para describir el problema correctamente. Aquí hay un ejemplo de lo que estoy pensando:

lbound: 0, ubound: 10, index: 10, resultado: 0
lbound: 0, ubound: 10, index: 11, resultado: 1
lbound: -10, ubound: 0, index: -10, resultado: 0
lbound: -10, ubound: 0, index: -11, resultado: -1
lbound: -5, ubound: 15, index: 16, resultado: -4
lbound: 5, ubound: 15, index: 26, resultado: 6

Podría crear una función como:

si (índice < lbound) {
// desbordamiento
return ubound – índice – índice * Math.round (índice / lbound)
}
si (índice > ubound) {
// sobreflujo
return lbound + índice – índice * Math.round (índice / ubound)
}
retornar índice

Pero eso es demasiado ingenuo y pierde el caso de dividir por cero. Supongo que tengo un enfoque equivocado aquí. Básicamente, busco una fórmula matemática que mapee un número específico dentro de un rango que incluye números negativos. Pero no una simple reasignación. Se debe calcular el número correcto de sobrepasos o subpases. Por lo tanto, se deben restar las partes enteras de lbound o ubound de índice. Y finalmente, la diferencia debe ser sumada o restada a lbound o ubound.

Cualquier ayuda sería genial. 🙂

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que desea implementar una forma de limitar los índices de la matriz dentro de un rango, de modo que si el índice está fuera de este rango, superará los límites. Una forma de lograr esto es utilizando una fórmula matemática que mapea un número específico dentro de un rango que incluye números negativos. Sin embargo, el enfoque actual de usar declaraciones condicionales puede no ser suficiente ya que no tiene en cuenta el caso de dividir entre cero.

    Para calcular el número correcto de excedentes o faltantes, debe restar las partes enteras de lbound o ubound del índice. Luego, la diferencia debe sumarse o restarse a lbound o ubound. Esto asegurará que los índices de la matriz estén limitados dentro del rango especificado.

    Si necesita ayuda para implementar esta fórmula matemática, puede ser útil consultar con un experto en matemáticas o buscar orientación en recursos o foros en línea.

Comments are closed.