Estamos un poco aburridos. Agarramos un cuaderno y escribimos todos los números entre el 1 y 1000000 ambos inclusive.
- ¿Cuántos ceros escribimos?
- ¿Cuántos dígitos escribimos en total?
- ¿Cuánto suman todos los dígitos escritos?
Y ya que estamos: ¿Cuántas páginas tiene el cuaderno? (Hagan las suposiciones que crean convenientes)
La tercer pregunta fue formulada hace muchos años por Juan Pablo. La solución no requiere cálculos tediosos ni el uso de una computadora. Solo hace falta una idea feliz
Suscribirse a:
Enviar comentarios (Atom)
30 comentarios:
Contestaré a la segunda pregunta. Tenemos 9 números de un solo dÃgito, 90 números de dos dÃgitos, 900 números de tres dÃgitos, etc... AsÃ:
1*9 + 2*90 + 3*900 + 4*9000 + 5*90000 + 6*900000 + 7*1 = 5.888.896 dÃgitos
Siguiendo el mismo razonamiento, la primera pregunta:
1*9 + 2*9 + 3*9 + 4*9 + 5*9 + 6*1 = 141 ceros
Que, lógicamente está incompleto, porque solo hemos contado los ceros que están 'pegados' a la derecha, del tipo 30000, pero no hemos contado los que están entre medias, del tipo 8051.
De tres cifras (tipo X0X): 9*9
De cuatro cifras:
- tipo XX0X: 9*9*9
- tipo X0XX: 9*9*9
- tipo X00X: 9*9
De cinco cifras:
- un cero (3 formas diferentes de colocar el cero): 3*9*9*9*9
- dos ceros (3 formas): 3*9*9*9
- tres ceros: 9*9
De seis cifras:
- un cero (4 formas): 4*9*9*9*9*9
- dos ceros (6 formas): 6*9*9*9*9
- tres ceros (4 formas): 4*9*9*9
- cuatro ceros: 9*9
Sumando todo esto, quedan 302271 ceros, aunque probablemente me haya equivocado con las cuentas ;)
Para calcular el sumatorio de los dÃgitos voy a sumar unidades con unidades, decenas con decenas, etc... y luego los sumaré todo junto.
El razonamiento para sumar todas las unidades es el siguiente: siempre se repetirá la misma secuencia: 1, 2, 3, ..., 8, 9, 0, 1, 2... Es claro que la suma de las unidades será un múltiplo de 1+2+3+...+8+9+0 = 45 Y esta secuencia de diez dÃgitos, como tenemos 1.000.000 de números, se repetirá 1.000.000/10 = 100.000 veces. AsÃ, la suma de las unidades será 45*100.000 = 4.500.000
Las decenas y siguientes es un poco más complicado, pero sigue la misma lógica. En este caso la secuencia será: diez ceros, diez unos, diez doses, ... , diez ochos, diez nueves. Esta secuencia de 100 números, se repetirá 1.000.000/100 = 10.000 veces. La suma de está secuencia será: 10*1 + 10*2 + 10*3 + ... + 10*9 = 10 * (1 + 2 + 3 + ... + 9 ) = 10 * 45 = 450 Multiplicando el total, queda 10.000 * 450 = 4.500.000
Como vemos para las centenas, unidades de millar, decenas de millar y centenas de millar, se repetirán las mismas cuentas, ya que el razonamiento es análogo.
Por tanto, la suma de todos los dÃgitos será:
6 * 4.500.000 + 1 (el uno es el de un millón) = 27.000.001
Jeje, lo de las páginas ya no hago la cuenta, pero serÃa calcular cuántos números caben en una página...
Por cierto, Markelo, ¿por qué tienes una licencia Copyright?
Los términos que especificas en la parte inferior de la página son los mismos que una licencia Creative Commons by. El enlace a la licencia, son 5 lÃneas para leer.
Para calcular la suma de los digitos tengo una forma más simple...
1+1000000 suman 1000001
2+ 999999 suman 1000001
3+ 999998 suman 1000001
y asà podrÃa escribir 500000 sumas... (cuántas páginas de sumas tendrÃa?? Markelo publicarÃa un post tan largo??)
Resumiendo, tenemos 500000*1000001=500000500000
RealHomero, esa no es la suma de los dÃgitos, es la suma de los números...
Ésta es la forma corta que se me ocurrió para calcular la pregunta 3:
Escribimos los números del 0 al 999999, rellenando con ceros a la izquierda para que todos los números tengan seis cifras, de la siguiente manera:
000000, 000001, 000002, ... , 999998, 999999.
Si sumamos los dÃgitos de esta sucesión podemos observar que cada dÃgito aparece la misma cantidad de veces en la suma. De esta forma, de los 6*1.000.000 = 6.000.000 dÃgitos, un décimo (600.000) de ellos serán ceros, un décimo unos, y asÃ. Por lo tanto, la suma de los dÃgitos será:
1*600.000 + 2*600.000 + ... + 9*600.000
Que es igual a:
600.000*(1+2+...+9) = 600.000*45 = 27000000
Si a esta suma se le agrega la suma de los digitos de 1.000.000, que es 1, se obtiene la suma que se pide (ya que el cero inicial y los ceros a la izquierda no alteran el resultado), por lo tanto:
Suma de los dÃgitos: 27000001
Es posible que haya algún errorcillo de cálculo por ahÃ, pero me parece que el razonamiento sirve. Claro que también es probable que haya alguna forma aún más fácil de obtener esta suma...
La respuesta a la tercer pregunta ya la dieron Cumic (¡Bien vuelto!) y Homero (¿El irreal?), pero la idea luminosa que yo conocÃa es la que dió Homero (¿el real?)
Agrupamos los números en pares de la siguiente manera:
0 999999
1 999998
2 999997
...
...
499999 500000
Cada pareja suma 54.
Tenemos 500000 parejas... etc, etc.
Está bueno. ¿no?
¿Solamente Cumic se animó con las dos primeras preguntas?
Por lo menos uno más que confirme los resultados.
¿Y el tamaño del cuaderno?
Les propongo las siguentes suposiciones:
Tomen un procesador de texto (como el word)
Configuren la página tamaño A4 con 2 cm de margen para cada lado
Seleccionen la letra Courier New (u otra de paso fijo) en tamaño 10.
Ahora si. ¿Cuantas páginas ocupan los números entre el 1 y el 1000000?
Recuerden que hay que dejar un espacio entre número y número.
Con esas suposiciones, cada página contiene 5280 caracteres (dÃgitos y espacios).
Según c_u_m_i_c... se escriben 5888896 caracteres, que sumados a los 999999 espacios en blanco entre números, hacen 6888895 caracteres. Esto requiere más de 1304 páginas.
En cada página pueden quedar libres algunos espacios, por no poder éscribir todas las cifras del número correspondiente. En el peor de los casos se desperdician en promedio 5 espacios en cada hoja, que serian en total 6520 espacios, que es un poquito mas de una página.
Entonces, cuando esté aburrida me compro 1305 hojas A4 y me pongo a escribir.
ya estoy por dar con la respuesta escribi todos los numeros en cuaderno y ya nadamas estoy contando espren dos dias mas
no se crean no soy tan bruto pero concuredo con cumic
Para ver la cantidad de ceros escritos del 1 al 1.000.000 se me ocurrió atacarlo de la siguiente forma:
1 al 10 = 1 cero
1 al 100 = 11 ceros (9 de cada décima + 2 del cien)
1 al 1000 = 111 ceros (11*10, 10 centenas, + 1 cero del mil)
Y asà sucesivamente
1 al 1.000.000 = 111.111 ceros
Será correcto eso?
Me temo que no.
Fijate cuantos ceros hay del 1 al 100 que es fácil contarlos a mano.
Manuel:
De tu frase me llamó la atención lo siguiente:
"espren dos dias mas"
¿Dos dÃas?
Esta serÃa una buena pregunta:
¿Cuantos dÃas demorarÃamos en escribir los números entre el 1 y 1000000?
Supongamos... 3 dÃgitos por segundo por ejemplo (a menos que haya un dactilógrafo en la sala)
O podemos hacer la pregunta al revés.
¿A que velocidad hay que escribir para demorar dos dÃas?
Se me ocurre otra forma de responder a la tercera pregunta:
Observemos la serie (n,s) donde n es cada numero desde el 1, y s es lo que suman los numeros de 1 a n:
(1,1) (2,3) (3,6) (4,10) (5,15) (6,21)(7,28) (8,36) (9,45) (10,55)...
Por inducción se extrae la siguiente regla: s= (n*n/2) + n/2
Aplicanola para 1000000
s=1000000*500000 + 500000 =500000500000
Un saludo!
(por cierto, llevo tiempo leyéndoos pero es la primera vez que escribo aquÃ. Enhorabuena por el site, Markelo)
Jejejeje sin darme cuenta he llegado a la vieja fórmula del sumatorio de n que nos enseñaron en la facultad:
S= n*(n+1)/2
Ciertamente esta mal el razonamiento que hice, la respuesta correcta es que de 1 a 1.000.000 hay 488.895, no lo hice con ningún razonamiento lógico sino con un programita en Basic, ya se que no es la idea de resolver los problemas pero me quedo la curiosidad
ceros = 0
For i = 1 To 1000000
texto = CStr(i)
If InStr(texto, "0") Then
For j = 1 To Len(texto)
letra = Mid(texto, j, 1)
If letra = "0" Then
ceros = ceros + 1
End If
Next
End If
Next
Exactamente... pero exactamente...
Son necesarias 1397 páginas
(Tamaño A4 con márgenes de 2 cm (arriba, abajo, izquierda y derecha), con una fuente Courier New de tamaño 10)
La última página sólo contiene 9 lÃneas.
Bueno, también se puede agregar que cada página contiene 64 lÃneas.
Cada lÃnea puede tener 80 caracteres (esto es los dÃgitos más los espacios en blanco)
Pero los números no se pueden cortar, por lo tanto, si no entran en la lÃnea pasan a la siguiente.
Entonces entran los primeros 30 números en la primera fila (51 dÃgitos + 29 espacios = 80 caracteres)
En la segunda lÃnea entran del 31 al 57 (27 números x 2 dÃgitos = 54 dÃgitos... 54 dÃgitos + 26 espacios = 80 caracteres)
Bueno, asÃ... y asÃ... y asÃ...
Al final queda más o menos asÃ:
64 x 1396 = 89344 lÃneas. (Sin contar la página incompleta)
89344 + 9 = 89353 lÃneas (Sumando las nueve lÃneas de la última página)
Una forma sencilla es la siguiente:
80 columnas x 64 lÃneas = 5120 caracteres
Sabemos que hay 5888896 dÃgitos, y 999999 espacios en blanco. Por lo que hay 6888895 caracteres.
6888895 / 5120 = 1345,4873 páginas
Este método es más sencillo, pero no considera que los números no deben cortarse cuando hay un salto de lÃnea...
Estoy viendo que las respuestas de cantidad de ceros, cantidad de digitos y la suma de los mismos es, matematicamente, medible.
Pero, lamento decir que cuntas hojas ocuparian en un cuaderno, no.
Cuaderno: Conjunto de algunos pliegos de papel, doblados y cosidos (engrampados o pegados) en forma de libro...
Partiendo de la base que el cuaderno, para ser tal debe estar confeccionado con anterioridad, dificilmente podriamos escribirlo con "Courier New de tamaño 10" o cualquier otro formato computarizado. Pero suponiendo que la tecnologia o nuestro ingenio lo permitieran, todo dependeria del escribiente. Yo no escribo nada con una tipografÃa menor a 12. Y seguro encontrariamos quienes no posean computadora y lo quisieran hacer manuscrito (todavia existe esa forma de escibir), por lo que dependeria del tamaño de sus numeros y espacios. Y si el escribiente (con computadora o no) decidiera escribir los numeros con letra?... uno, dos, tres, cuatro, etc. seguramente ocuparÃa mayor espacio... quien dijo que escribiendo asà los ceros y los digitos no son contables?
y sumables? yo se si sumo "uno mas uno me da como resultado dos" y podrÃa seguir...
Bueno, despues de este humilde aporte (solo para demostrar que no todo es matemático y medible), me despido. Muy contento de haber encontrado este lugar gracias al post siete pecados capitales...
leà la respuesta de manuel y su razonamiento es erroneo... bien
del 1 al 100 hay 11 ceros
al 900 hay 99 ceros
al 1000 hay 99+1 (que es el 1000)
y asà sucesivamente
hasta que al 1.000.000 hay 72991 ceros
En este problema dieron varias respuestas, todas distintas.
Me resisto a poner cuál es la respuesta correcta; más en este tipo de acertijos donde no hay equÃvocos y es solo cuestión de hacer las cuentas.
Les comento otro método más con el que pueden intentar resolverlo:
Dejemos para el final al 1000000. Con el resto, completemos con ceros a la izquierda para tener todos los números de la siguiente manera:
000000
000001
000002
...
...
999998
999999
Tenemos asà un millón de números con un total de 6 millones de dÃgitos, de los cuales, el diez por ciento (600000) son ceros.
Ahora solo nos queda restar los ceros a la izquierda.
Tenemos un número de seis ceros (6x1), más nueve con cinco ceros (9x5) más 90 con cuatro ceros (90x4) etc. etc.
De esta manera, pueden responder las dos primeras preguntas.
Y las respuestas son...
Siguiendo los pasos de Markelo, que son correctos:
del 1 al 9 hay 9 números con 5 ceros
del 10 al 99 hay 90 números con 4 ceros
del 100 al 999 hay 900 números con 3 ceros
del 1000 al 9999 hay 9000 números con 2 ceros
del 10000 al 99999 hay 90000 números con 1 cero
(5x9) + (4x90) + (3x900) + (2x9000) + (1x90000) = 111105
600000 - 111105 = 488895 ceros (total)
Después se puede deducir que habrá 600000 nueves, ochos, sietes, seis, cincos, cuatros, tres y dos... y habrá 600001 unos...
Entonces:
(600000 x 8) + 600001 + 488895 = 5888896 dÃgitos
Me olvidaba... con respecto a la otra pregunta que formuló Markelo sobre el tiempo empleado para escribir todos esos dÃgitos...
Para hacerlo en 2 dÃas, deberÃamos poder escribir 34,0792... dÃgitos por segundo...
Si pudiésemos escribir a razón de 3 dÃgitos por segundo tardarÃamos 1363 dÃas, 4 horas, 5 minutos y 20 segundos.
Ufff... me equivoqué... lo hice con 3 dÃgitos por minuto
A razón de 3 dÃgitos por segundo se tardarÃa 22 dÃas, 17 horas, 16 minutos, 5 1/3 segundos.
Ok AgustÃn.
Un solo detalle (que no varÃa la solución, pero lo digo solo para que quede más claro)
Para tener 6000000 de dÃgitos, debemos contar entre 000000 y 999999. Por eso, para restar la cantidad de ceros a la izquierda hay que contar los seis ceros de 000000 y restarlos.
De todos modos, como después hay que sumar los seis ceros de 1000000, el resultado es el mismo.
con respecto al tiempo, tu resultado es correcto... si escribimos manuscrito (donde los espacios no insumen tiempo) pero si los escribimos en la compu, hay que agregar 999999 teclasos a la barra espaciadora. (un poquito más de tiempo :-)
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro < 10 Then GoTo linea1
MsgBox "hecho!"
End Sub
este programa en visual basic nos muestra cuantos numeros que contienen al cero hay de 1 a un millon, pero tambien cuantas veces esta el 1,2,3,...,9, (de curiosos nada mas) la tabla que arroja es:
0-402131
1-111112
2-111111
3-111111
4-111111
5-111111
6-111111
7-111111
8-111111
9-111111
por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro por si les interesa, el programa es este, el anterior lo pegue mal....
Private Sub Command1_Click()
Dim cuenta As Double
Dim i As Double
Dim nro As Integer
Dim cadena As String
If cadena = "" Then cadena = "0"
linea1:
For i = 0 To 1000000
If InStr(Str(i), cadena) > 0 Then
cuenta = cuenta + 1
Else
End If
Next i
Print nro & "-" & cuenta
cuenta = 0
nro = nro + 1
cadena = Str(nro)
If nro <= 10 Then GoTo linea1
MsgBox "hecho!"
End Sub
oiga en fin con ese poco de comentarios no supe cual de todos tiene la razon para la primera pregunta. la verdad es qe la primera pregunta me la dejaron de tarea en la U y les agradecerian qe me dieran realmente la respuesta
Publicar un comentario