Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/11/2015, 12:27
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 3 meses
Puntos: 977
Respuesta: Script complicado en PHP

Para crear un array con 10 valores aleatorios comprendidos en el rango del 1 al 10, puedes utilizar la función mt_rand() con la cual puedes generar un valor comprendido en el rango que especifiques como argumentos para dicha función. Tan solo bastaría utilizar un bucle que compruebe que la cantidad de elementos del array (valor que puedes obtener mediante la función count()) es menor que 10, con lo cual procedes a insertar un nuevo elemento en el array hasta que se complete. Te sugiero utilizar una función para que puedas reutilizar el script.

Código PHP:
Ver original
  1. function rango($inicio, $fin, $total){
  2.     $arr = [];
  3.     while (count($arr) < $total){
  4.         $arr[] = mt_rand($inicio, $fin);
  5.     }
  6.     return $arr;
  7. }
  8.  
  9. //Llamada a la función
  10. rango(1, 10, 10);

Con respecto a la cuenta de repeticiones de un valor dado en el array generado, puedes utilizar una estructura repetitiva para recorrer el array y comparar cada valor contenido con el valor a encontrar. También puedes utilizar la función array_intersect() con la cual obtendrás un array que contiene los valores que se repiten en todos los arrays que se le pasen como argumentos. Para esto, el valor a buscar tendrá que ser colocado dentro de un array. El total de elementos del array resultante será igual a la cantidad de repeticiones que hay del valor a buscar en el array generado al inicio.

Código PHP:
Ver original
  1. function contar($array, $valor){
  2.     return count(array_intersect($array, [$valor]));
  3. }
  4.  
  5. //Llamada a la función (con valores de ejemplo)
  6. contar(rango(1, 10, 10), 2);

Todo junto:
Código PHP:
Ver original
  1. function contar($array, $valor){
  2.     return count(array_intersect($array, [$valor]));
  3. }
  4.  
  5. function rango($inicio, $fin, $total){
  6.     $arr = [];
  7.     while (count($arr) < $total){
  8.         $arr[] = mt_rand($inicio, $fin);
  9.     }
  10.     return $arr;
  11. }
  12.  
  13. echo contar(rango(1, 10, 10), 2);

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand