elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Me he quedado atrancado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Me he quedado atrancado  (Leído 2,427 veces)
ismaelmagno

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Me he quedado atrancado
« en: 25 Enero 2013, 09:40 am »

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.

Código:
<?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

Desconectado Desconectado

Mensajes: 245


Ver Perfil WWW
Re: Me he quedado atrancado
« Respuesta #1 en: 25 Enero 2013, 15:08 pm »

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.

Código:
<?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:


Código:
[*] 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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Me he quedado atrancado
« Respuesta #2 en: 25 Enero 2013, 15:13 pm »

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

Desconectado Desconectado

Mensajes: 245


Ver Perfil WWW
Re: Me he quedado atrancado
« Respuesta #3 en: 25 Enero 2013, 15:25 pm »

Hola Shell Root,

Citar
Esta comentado, si algo no entiendes comentalo.

Salu2
En línea

Just Linux
OSCP certified
alister


Desconectado Desconectado

Mensajes: 513


Ver Perfil
Re: Me he quedado atrancado
« Respuesta #4 en: 25 Enero 2013, 17:24 pm »

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 Desconectado

Mensajes: 4


Ver Perfil
Re: Me he quedado atrancado
« Respuesta #5 en: 25 Enero 2013, 18:01 pm »

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 Desconectado

Mensajes: 513


Ver Perfil
Re: Me he quedado atrancado
« Respuesta #6 en: 25 Enero 2013, 18:03 pm »

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!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Atrancado con el juego transformers
Juegos y Consolas
Malagueño 0 1,472 Último mensaje 17 Julio 2007, 20:12 pm
por Malagueño
atrancado!
Dudas Generales
NewOver 0 1,289 Último mensaje 16 Junio 2013, 12:42 pm
por NewOver
ARP AntiSpoofer - Me he quedado fuera del castillo!
Dudas Generales
Ori-chan 4 3,194 Último mensaje 23 Diciembre 2014, 13:14 pm
por patilanz
Me e quedado ..? « 1 2 3 4 5 »
Foro Libre
WIитX 41 10,984 Último mensaje 6 Febrero 2015, 04:10 am
por dimitrix
Netflix ha quedado excluida del Festival de Cine de Cannes
Noticias
wolfbcn 0 1,147 Último mensaje 26 Marzo 2018, 19:20 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines