Se me ha encomendado la tarea de crear una lista de todas las posibilidades utilizando datos en 8 bloques.Múltiples foreach con más de 37 millones de posibilidades
Los 8 bloques tienen el siguiente número de posibilidades:
*Block 1: 12 possibilities
*Block 2: 8 possibilities
*Block 3: 8 possibilities
*Block 4: 11 possibilities
*Block 5: 16 possibilities
*Block 6: 11 possibilities
*Block 7: 5 possibilities
*Block 8: 5 possibilities
Esto da un número potencial de 37,171,200 posibilidades.
He intentado simplemente haciendo y que limita únicamente a la visualización de los valores devueltos con la longitud de cadena correcta de este modo:
foreach($block1 AS $b1){
foreach($block2 AS $b2){
foreach($block3 AS $b3){
foreach($block4 AS $b4){
foreach($block5 AS $b5){
foreach($block6 AS $b6){
foreach($block7 AS $b7){
foreach($block8 AS $b8){
if (strlen($b1.$b2.$b3.$b4.$b5.$b6.$b7.$b8) == 16)
{
echo $b1.$b2.$b3.$b4.$b5.$b6.$b7.$b8.'<br/>';
}
}
}
}
}
}
}
}
}
Sin embargo, el tiempo de ejecución era demasiado tiempo para calcular. Me preguntaba si alguien sabía de una forma más simple de hacer esto.
No es tan lejos como sé. Pero si ejecuta esto en la CLI debería completarse bastante rápido: 'php generate.php> out.txt'. – halfer
CONSEJO: Hazlo en C, el cálculo será mucho más rápido. A menos que tenga que hacerlo en PHP .... – Flukey
@Flukey o ensamblador ...: | – mraaroncruz