2 votos

¿Cómo obtener el número ordinal de un libro en una estantería?

Estoy haciendo un proyecto de programación similar al Biblioteca de Babel y necesito averiguar el número ordinal de un libro en una biblioteca.

  • La biblioteca tiene $10$ habitaciones ( $a$ )
  • Cada habitación tiene $4$ paredes ( $b$ )
  • Cada pared tiene $5$ estantes ( $c$ )
  • Cada estante tiene $32$ libros ( $d$ )

Ahora mi pregunta es: si sé qué habitación ( $a$ ), pared ( $b$ ), la estantería ( $c$ ) y el libro en ese estante ( $d$ ), cómo podría encontrar el número ordinal de ese libro en la biblioteca ( $n$ )?

También quiero saber cómo hacerlo al revés. Si conozco el número ordinal ( $n$ ), ¿cómo podría encontrar ( $a$ ), ( $b$ ),( $c$ ) y ( $d$ ) ?

Podría parecer que multiplicarlos juntos funcionaría, pero debido a las propiedades conmutativas de la multiplicación ( $ab = ba$ ) Me salen algunos conflictos si simplemente cambiamos (por ejemplo) el número ordinal del libro por el número de la habitación.

Se agradece cualquier ayuda.

Editar para aclarar: El primer libro está en la sala 1, pared 1, auto 1 y libro número 1. El ordinal de ese libro es el 1.

2voto

celtschk Puntos 13058

Supongamos que todos los números empiezan por $0$ . Es decir, $a\in\{0,\ldots,9\}$ , $b\in\{0,\ldots,3\}$ , $c\in\{0,\ldots,4\}$ y $d\in\{0,\ldots,31\}$ . Entonces una forma de obtener un número ordinal es: $$n=32(5(4a+b)+c)+d$$ El sentido inverso es entonces:

  • Dividir $n$ por 32. El resto es $d$ .

  • Dividir el cociente del paso anterior por $5$ . El resto es $c$ .

  • Dividir el cociente del paso anterior por $4$ . El resto es $b$ .

  • El cociente del paso anterior es $a$ .

Para obtener la numeración equivalente para los números que comienzan en $1$ , sólo hay que restar $1$ de cada número antes de hacer el cálculo y al final sumar $1$ al resultado.

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