Ver Mensaje Individual
  #15 (permalink)  
Antiguo 05/03/2015, 12:04
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: crear este tipo de algoritmo en php

Cita:
Iniciado por dashtrash Ver Mensaje
Nah, no me sentia ofendido.
Pero si que querias que entendieras la respuesta.Pero eso me ha llevado a ver tu solución, la cual es tan dependiente del nímero de elementos, como otra.No funciona igual de bien con 100 que con 20mil millones.Tu solución confía en 2 cosas:
-1) El espacio de soluciones es muy grande
-2) El número de combinaciones a dar es un número muy inferior al tamaño del espacio de soluciones
Vamos, que de 2 mil millones, vas a sacar 100 cartones.
Y si presupones 1 y 2, puedes hacer cosas como guardar las soluciones anteriores, etc.

Pero si fueras a hacer 99.999.999 extracciones de 100.000.000 de elementos,
cuanto costaría todo eso?

Lee mi respuesta que dí antes.Hay que mapear el espacio de soluciones, en un espacio de indices, como una aplicación a <-> b . Data una solución, solo puede tener un indice.Dado 1 indice, solo puede haber 1 solución.Luego, encontrar un medio de recubrir el espacio de índices, que es mucho más fácil que intentar recubrir el espacio de soluciones.Y esto es muy dependiente de las soluciones, del coste de calcularlas, etc
Puede ser, pero 99.999.999 extracciones de 100.000.000 no es mi problema ni el de este hilo

En el caso del problema de este tema el espacio de soluciones es muy pequeño (100 valores) y funciona perfectamente:
Código PHP:
Ver original
  1. $items = range(0, 99);
  2.  $random = [];
  3.  for($i=1; $i<=100; $i++)
  4.      $random[] = carton($items, 1, $i)[0];
  5.  
  6.  var_dump($random);
  7.  var_dump(count($random));

Si quieres seguir charlando sobre como mejorar el algoritmo para que funcione para cualquier caso (incluido el que tu propones) te invito a que lo sigamos en el otro hilo ya que aca poco tiene que ver con el problema original.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios