Autor
|
Tema: Me he quedado atrancado (Leído 2,420 veces)
|
ismaelmagno
Desconectado
Mensajes: 4
|
Buenas estoy haciendo un ejercicio de la univesidad,y lo cierto es que me he quedado atrancado,no se como seguir espero que me podais ayudar,ahi va: Lo que hay que hacer es un script en php que rellene un vector de50 numeros aleatorios entre -10 y 30. y que encuentre el numero y la posicion del vector mas cercano a la media de todos los numeros introducidos. <?php $media=0; $suma=0; for($i=1;$i<=50;$i++){ $array[$i]=rand(-10,30); $suma=$suma+$array[$i]; }
$media=$suma/50; for($i=1;$i<=50;$i++){ $resta=$media-$array[$i];
} ?> No se como seguir a partir del ultimo for,mi intencion era comparar todas las restas y que me devuelva la mas pequeña(es decir la mas cercana al 0) con el $array[$i] correspondiente de la resta,pero no se como plasmarlo en la pantalla y llevo un buen rato mirandola como un tonto jaja Si pudieseis ayudarme os lo agradeceria,un saludo
|
|
« Última modificación: 25 Enero 2013, 09:45 am por ismaelmagno »
|
En línea
|
|
|
|
RevangelyonX
|
Hola, No ibas tan mal. La idea es: De cada valor, restale la media, el resultado de la resta más cercano a 0 es el valor que más se acerca a la media. Hay varias formas de hacerlo, yo he utilizado dos arrays (el original relleno de valores aleatorios, y otro con los resultados de la resta). Esta comentado, si algo no entiendes comentalo. <?php
$media = 0; $suma = 0; $array = array();
$max = 10;
function diferencias($media, $array){
$array_de_restas = array();
foreach($array as $pos=>$valor){
if ($valor > $media){ //el valor es superior a la media $array_de_restas[$pos] = ($valor - $media);
} else if ( $valor < $media ){
//la media es más grande que el valor $array_de_restas[$pos] = ( $media - $valor);
} else {
// son iguales. Podrias salir aqui con el resultado // pero lo haremos bien $array_de_restas[$pos] = 0;
} }
return $array_de_restas;
}
// Rellenamos el array for($i=1;$i<=$max;$i++){ $array[$i] = rand(-10,30); $suma = $suma+$array[$i]; }
$media = $suma / 50;
echo "[*] Valores: ";
foreach ($array as $a){ echo $a." "; } echo "\n";
echo "[*] Media = $media\n";
$arrRestas = diferencias($media, $array);
// ordenamos el resultados de las restas de menor a mayor // el primero es el resultado de la resta, es decir, el más cerca de 0 // es decir, es el resultado que buscamos asort($arrRestas);
// en la funcion diferencias guardo la posicion del array original como indice // y como valor el resultado de la resta. // extraemos la posicion $posicion = array_slice(array_keys($arrRestas), 0, 1); $p = $posicion[0];
echo "[*] Valor mas cercano => $array[$p]\n";
?>
Resultado: [*] Valores: -9 3 28 7 20 29 24 7 -2 30 [*] Media = 2.74 [*] Valor mas cercano => 3 PD: modifica la variable $max para tus 50 valores. Salu2
|
|
|
En línea
|
Just Linux OSCP certified
|
|
|
Shell Root
|
Supongo que apenas está empezando y ya vos metiendole funciones y foreach ajajhahajajajjajajajaja
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
RevangelyonX
|
Hola Shell Root, Esta comentado, si algo no entiendes comentalo. Salu2
|
|
|
En línea
|
Just Linux OSCP certified
|
|
|
alister
Desconectado
Mensajes: 513
|
Supongo que apenas está empezando y ya vos metiendole funciones y foreach ajajhahajajajjajajajaja
no hay que tener piedad con los noveles! es la manera mas tonta de realentizar su aprendizaje. está bien que le peguen caña! y como bien dicen, si no comprende algo, debe preguntarlo. salu2
|
|
|
En línea
|
Back 2 business!
|
|
|
ismaelmagno
Desconectado
Mensajes: 4
|
Gracias RevangelyonX,he entendido todo el codigo (se agradecen los comentarios) lo unico ha sido las funciones del array_slice y array_keys pero bueno para eso esta el manual de PHP . PD:si,estoy empezando jaja.
|
|
|
En línea
|
|
|
|
alister
Desconectado
Mensajes: 513
|
Gracias RevangelyonX,he entendido todo el codigo (se agradecen los comentarios) lo unico ha sido las funciones del array_slice y array_keys pero bueno para eso esta el manual de PHP . PD:si,estoy empezando jaja. ESA es la actitud, muchacho! eso es lo que diferencia a un constructor, a un resolvedor de problemas... de un quejica. mas como tú, necesitamos! que te lo pases bien aprendiendo
|
|
|
En línea
|
Back 2 business!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Atrancado con el juego transformers
Juegos y Consolas
|
Malagueño
|
0
|
1,470
|
17 Julio 2007, 20:12 pm
por Malagueño
|
|
|
atrancado!
Dudas Generales
|
NewOver
|
0
|
1,285
|
16 Junio 2013, 12:42 pm
por NewOver
|
|
|
ARP AntiSpoofer - Me he quedado fuera del castillo!
Dudas Generales
|
Ori-chan
|
4
|
3,192
|
23 Diciembre 2014, 13:14 pm
por patilanz
|
|
|
Me e quedado ..?
« 1 2 3 4 5 »
Foro Libre
|
WIитX
|
41
|
10,960
|
6 Febrero 2015, 04:10 am
por dimitrix
|
|
|
Netflix ha quedado excluida del Festival de Cine de Cannes
Noticias
|
wolfbcn
|
0
|
1,128
|
26 Marzo 2018, 19:20 pm
por wolfbcn
|
|