Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
27-03-2017, 09:31 (Lunes)
Inicio Ayuda Reglas Buscar Ingresar Registrarse
Noticias:
Liberada wifislax64-1.0 version final para descargar



+  Seguridad Wireless - Wifi
|-+  General
| |-+  Programación (Moderador: vk496)
| | |-+  Combinaciones de digitos repetidos... ??
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Combinaciones de digitos repetidos... ??  (Leído 10132 veces)
skan
******
Desconectado Desconectado

Mensajes: 284


Ver Perfil
« : 12-12-2014, 22:54 (Viernes) »

Buenas

Estaba leyendo un hilo sobre un generador de passwords... y me ha surgido una duda...

Entre todos los números de 10 digitos ¿Cómo calculas cuantos hay que tengan al menos 3 dígitos iguales consecutivos?
Parece fácil pero algunos se contarían varias veces, por ejemplo cuando tenga un grupo de 3 al principio y otro grupo de 3 en otro lugar.
« Última modificación: 13-12-2014, 01:02 (S?bado) por skan » En línea
vk496
Moderador
*
Desconectado Desconectado

Mensajes: 2106



Ver Perfil WWW
« Respuesta #1 : 12-12-2014, 23:02 (Viernes) »

Explicate mejor por favor, no comprendo la intención/finalidad de la pregunta.

Salu2
En línea
skan
******
Desconectado Desconectado

Mensajes: 284


Ver Perfil
« Respuesta #2 : 13-12-2014, 01:01 (S?bado) »

La finalidad es sólo saber resolver un problemilla probabilistico, hacer ese cálculo,
saber como se calcula la cantidad de números distintos con al menos 3 digitos iguales consecutivos.

por ejemplo
37472345  -> ése no tiene 3 números iguales consecutivos
47772345  -> éste sí, porque tiene tres 7 seguidos.
77777345  -> éste también

Pues eso, contarlos.

En total hay 10^8 números, ¿Cuántos tienen al menos 3 digitos iguales seguidos?
« Última modificación: 13-12-2014, 01:03 (S?bado) por skan » En línea
vk496
Moderador
*
Desconectado Desconectado

Mensajes: 2106



Ver Perfil WWW
« Respuesta #3 : 13-12-2014, 01:10 (S?bado) »

Es decir, de una lista de numeros, quieres saber cuantos de ellos tienen 3 números iguales consecutivos. Cierto?

Salu2
En línea
skan
******
Desconectado Desconectado

Mensajes: 284


Ver Perfil
« Respuesta #4 : 13-12-2014, 01:52 (S?bado) »

3 o más.
Pero no hacerlo mediante un programa (aunque eso ayudaría a comprobarlo) que los cuente sino mediante un cálculo.

Por ejemplo aquí he visto una explicación pero no la entiendo ni sé si es correcta:
http://rinconmatematico.com/foros/index.php?topic=34705.new#new
« Última modificación: 13-12-2014, 01:55 (S?bado) por skan » En línea
Hwagm
Administrador
*
Desconectado Desconectado

Mensajes: 17385



Ver Perfil WWW
« Respuesta #5 : 13-12-2014, 22:13 (S?bado) »

a groso modo

como son 10 digitos, pues metes 10 for (blucles) de o a 9.

el ultimo for, metes la comprobacion, o hay mismo, o llamada a una funcion, para poder salir cuando se cumpla la comprobacion.

tienes los numeros parciales, en las variable de cada bucle.

Si el digito 1 = 2 = 3 sumas 1, y sales de la comprobacion
Si el digito 2 = 3 = 4 sumas 1, y sales de la comprobacion
Si el digito 3 = 4 = 5 sumas 1, y sales de la comprobacion
Si el digito 4 = 5 = 6 sumas 1, y sales de la comprobacion
Si el digito 5 = 6 = 7 sumas 1, y sales de la comprobacion
Si el digito 6 = 7 = 8 sumas 1, y sales de la comprobacion
Si el digito 7 = 8 = 9 sumas 1, y sales de la comprobacion
Si el digito 8 = 9 = 10 sumas 1, y sales de la comprobacion
En línea


Hwagm
Administrador
*
Desconectado Desconectado

Mensajes: 17385



Ver Perfil WWW
« Respuesta #6 : 13-12-2014, 22:33 (S?bado) »

Código:
int i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10, suma;

// si quieres ponlas a cero, aunque no hace falta

for(i0=0;i0<10;i0++){
for(i1=0;i1<10;i1++){
for(i2=0;i2<10;i2++){
for(i3=0;i3<10;i3++){
for(i4=0;i4<10;i4++){   //    cin>>suma, puedes poner visualizaciones por aqui si quieres
for(i5=0;i5<10;i5++){
for(i6=0;i6<10;i6++){
for(i7=0;i7<10;i7++){  //  cin>>suma, puedes poner visualizaciones por aqui si quieres
for(i8=0;i8<10;i8++){
for(i9=0;i9<10;i9++){
for(i10=0;i10<10;i10++){

 cin>>suma; // para ver sumas parciales , si va muy rapido, pues lo pones en los fors

 if (i0==i1 && i1==i2 && i2==i3)  {
                        suma++;
                        break;
                                                      }

 if (i1==i2 && i2==i3 && i3==i4)  {
                        suma++;
                        break;
                                                      }
if (i2==i3 && i3==i4 && i4==i5)  {
                        suma++;
                        break;
                                                      }
if (i3==i4 && i4==i5 && i5==i6)  {
                        suma++;
                        break;
                                                      }
if (i4==i5 && i5==i6 && i6==i7)  {
                        suma++;
                        break;
                                                      }
if (i5==i6 && i6==i7 && i7==i8)  {
                        suma++;
                        break;
                                                      }
if (i6==i7 && i7==i8 && i8==i9)  {
                        suma++;
                        break;
                                                      }
if (i7==i8 && i8==i9 && i9==i10)  {
                        suma++;
                        break;
                                                      }



}
}
}
}
}
}
}
}
}
}
 cin>>suma; // asi veras la suma final
« Última modificación: 13-12-2014, 22:42 (S?bado) por Hwagm » En línea


Hwagm
Administrador
*
Desconectado Desconectado

Mensajes: 17385



Ver Perfil WWW
« Respuesta #7 : 13-12-2014, 22:34 (S?bado) »

asi lo haria yo xd


y no me he leido el link, asi que alo mejor es super disitinto xd, pero yo aprendi a programar a base de ostias xd
« Última modificación: 13-12-2014, 22:43 (S?bado) por Hwagm » En línea


skan
******
Desconectado Desconectado

Mensajes: 284


Ver Perfil
« Respuesta #8 : 13-12-2014, 23:14 (S?bado) »

Muchas gracias pero insisto, lo que preguntaba no era por un código que lo calcule sino por como deducir la ecuación matemática.

De todos modos, ya que habéis puesto el código, ¿no hay una forma más compacta, sin tantos bucles?
En línea
vk496
Moderador
*
Desconectado Desconectado

Mensajes: 2106



Ver Perfil WWW
« Respuesta #9 : 13-12-2014, 23:50 (S?bado) »

yo aprendi a programar a base de ostias xd

Creo que no fueron suficientes  Evil Grin

Si eso lo ve geminis, le da algo xD

Dejo una cosa mal hecha en Bash. Mete 10 numero como parametro y obtendrás una respuesta

Código:
#!/bin/bash

numero="$1"

if [ ! ${#numero} = 10 ]; then
echo este numero no es de 10 cifras
exit 1
fi

contenedor=$(echo "$numero" | cut -c1)
contador=0

for x in $(seq 1 10); do
actual=$(echo "$numero" | cut -c$x)
echo actual: $actual


if [ $contenedor = $actual ]; then
let contador=$contador+1
echo " contenedor: $contenedor"


if [ $contador = 3 ]; then
echo hay 3 numeros
exit
fi

else
contenedor=$actual
contador=1
fi

done

Salu2
En línea
raphik
******
Desconectado Desconectado

Mensajes: 430



Ver Perfil
« Respuesta #10 : 31-01-2015, 13:11 (S?bado) »

La finalidad es sólo saber resolver un problemilla probabilistico, hacer ese cálculo,
saber como se calcula la cantidad de números distintos con al menos 3 digitos iguales consecutivos.

por ejemplo
37472345  -> ése no tiene 3 números iguales consecutivos
47772345  -> éste sí, porque tiene tres 7 seguidos.
77777345  -> éste también

Pues eso, contarlos.

En total hay 10^8 números, ¿Cuántos tienen al menos 3 digitos iguales seguidos?


Para un número de diez cifras
d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

hay ocho posibles casos

d9=d8=d7≠d6≠d5≠d4≠d3≠d2≠d1≠d0

d9≠d8=d7=d6≠d5≠d4≠d3≠d2≠d1≠d0

d9≠d8≠d7=d6=d5≠d4≠d3≠d2≠d1≠d0

d9≠d8≠d7≠d6=d5=d4≠d3≠d2≠d1≠d0

d9≠d8≠d7≠d6≠d5=d4=d3≠d2≠d1≠d0

d9≠d8≠d7≠d6≠d5≠d4=d3=d2≠d1≠d0

d9≠d8≠d7≠d6≠d5≠d4≠d3=d2=d1≠d0

d9≠d8≠d7≠d6≠d5≠d4≠d3≠d2=d1=d0

Si las cifras son decimales habría 8 · 108 combinaciones distintas.
Saludos.
« Última modificación: 31-01-2015, 13:20 (S?bado) por raphik » En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines
SMFAds for Free Forums