Un repartidor tiene 1000 monedas y 10 bolsas. Tiene que dividir las monedas entre las diez bolsas para que pueda hacer cualquier número de monedas simplemente entregando algunas bolsas. ¿Cómo debe dividir su dinero en las diez bolsas?
Solución:
La idea de llenar monedas en potencias de 2 se puede sacar de la condición que se le dio a la pregunta de que se puede dar o no dar cada bolsa, es decir no se nos permite abrir la bolsa y dar algunas monedas. Entonces podemos representar cada bolsa como cada valor posicional que toma el valor de 0 o 1. Por ejemplo, si tenemos que dar 7 monedas, entonces no es más que 0000000111, los últimos 3 dígitos de 1 representan esas 3 bolsas cuyos valores posicionales son Se van a dar 1,2,4 para dar 7 monedas. Recuerde que cada bolsa se debe dar o no, lo que significa que solo hay 2 opciones para nosotros, lo que tiene similitud con los números en base 2, donde cada dígito tiene solo 2 valores, ya sea 1 o 0.
Podemos llenar las 10 bolsas con monedas. en orden creciente de 2^n donde n varía de 0 a 8, llenando la última bolsa con todas las monedas restantes de la siguiente manera:
1 = 2^0 = 1
2 = 2^1 = 2
3 = 2^2 = 4
4 = 2^3 = 8
5 = 2^4 = 16
6 = 2^5 = 32
7 = 2^6 = 64
8 = 2^7 = 128
9 = 2^8 = 256
10 = monedas restantes = 489
Ahora, el crupier puede hacer cualquier cantidad de monedas simplemente entregando las bolsas.
As,
cantidad de monedas necesarias = alguna bolsa 1 + alguna bolsa 2 + ….. + alguna bolsa n
ejemplo:
519 monedas = bolsa 2 + bolsa 4 + bolsa 8 + bolsa 16 + bolsa 489
Los algoritmos de factorización que no sean potencias de 2 son costosos en los sistemas informáticos. Por favor comparta cualquier otra información. Cualquier persona que trabaje en criptografía puede compartir más detalles.
Fuente: https://www.geeksforgeeks.org/forums/topic/1000-coins-and-10-bags/
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA