Viernes 15 de Noviembre de 2024, 04:40
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Combinacion de un arreglo
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Combinacion de un arreglo (Leído 1050 veces)
Minamimoto
Nuevo Miembro
Mensajes: 4
Combinacion de un arreglo
«
en:
Lunes 30 de Noviembre de 2009, 04:24 »
0
He pasado toda la tarde intentado hacer un algoritmo que dado un arreglo cualquiera, por ejemplo
[0 1 1 1 0] calcule todos los arreglos que se pueden hacer con la combinacion del numero 1 asi:
[0 0 0 0 0]
[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 1 1 0 0]
[0 1 0 1 0]
[0 0 1 1 0]
[0 1 1 1 0]
El numero total de arreglos tendría que ser 2^n, en donde n es e numero total de unos en el arreglo original (3)
Existe un algoritmo que haga esto?
Editado para exponer mejor el problema
Tweet
«
última modificación: Lunes 30 de Noviembre de 2009, 05:26 por Minamimoto
»
Epa
Miembro MUY activo
Mensajes: 242
Nacionalidad:
Re: Combinacion de un arreglo
«
Respuesta #1 en:
Lunes 30 de Noviembre de 2009, 05:13 »
0
buenas
fijate en eso, no se que tan eficiente sera, pero anda..
seguro si buscas por ahi encontras algo mejor
Código: C++
int
mat
[
5
]
=
{
0
,
1
,
1
,
1
,
0
}
;
for
(
int
a
=
0
;
a
<=
mat
[
0
]
;
a
++
)
for
(
int
b
=
0
;
b
<=
mat
[
1
]
;
b
++
)
for
(
int
c
=
0
;
c
<=
mat
[
2
]
;
c
++
)
for
(
int
d
=
0
;
d
<=
mat
[
3
]
;
d
++
)
for
(
int
e
=
0
;
e
<=
mat
[
4
]
;
e
++
)
{
if
(
a
&&
mat
[
a
]
)
cout
<<
1
;
else
cout
<<
0
;
if
(
b
&&
mat
[
b
]
)
cout
<<
1
;
else
cout
<<
0
;
if
(
c
&&
mat
[
c
]
)
cout
<<
1
;
else
cout
<<
0
;
if
(
d
&&
mat
[
d
]
)
cout
<<
1
;
else
cout
<<
0
;
if
(
e
&&
mat
[
e
]
)
cout
<<
1
;
else
cout
<<
0
;
cout
<<
endl
;
}
;
The sweet smell of a great sorrow lies over the land.
Minamimoto
Nuevo Miembro
Mensajes: 4
Re: Combinacion de un arreglo
«
Respuesta #2 en:
Lunes 30 de Noviembre de 2009, 05:21 »
0
Gracias por tu respuesta, pero quiza no me explique bien, el algortimo tendria que trabajar para cualquier arreglo, si importar la longitud, estaba investigando y se supone que es un algortimos de variacion, pero no he podido solucionar el problema
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Combinacion de un arreglo