Hace poco estuve trabajando en uno de los conjuntos de problemas de euler del proyecto y encontré este extraño problema. He resuelto el problema correctamente con la primera solución, pero no sé por qué la otra versión no funciona como se esperaba.Problema de clasificación de PHP, arsort vs asort + array_reverse
Este es el código que funciona:
asort($card_count, SORT_NUMERIC);
$card_count = array_reverse($card_count, true);
Y aquí está el código que no es así:
arsort($card_count, SORT_NUMERIC);
Ésta es la única línea que cambio y hace una gran diferencia en el final resultado. ¿Alguna idea qué pasa con esto?
¿Cómo está leyendo la matriz más adelante? ¿Qué índices está utilizando? – ametren
Ambas son iguales para mí: http://codepad.org/80bWvlTv –
Es una solución de póker, así que básicamente está mapeando el valor de la carta en la llave (como '2' o 'A', o 'J ') a cuántas veces apareció en la entrada, por lo que puede verse así [' A '=> 2,' 8 '=> 2,' 4 '=> 1] para representar dos ases, dos ochos y uno cuatro . Confío en el hecho de que las cantidades más altas deben estar en la parte delantera y las cantidades más bajas en la parte posterior. Si es necesario, puedo publicar una solución de código completo, pero no quiero dar la respuesta porque sé que está en contra de la política de PE. –