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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda 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 1,500 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.706


WOS & Khan & Calero LDN


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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
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 691 Último mensaje 17 Julio 2007, 20:12 pm
por Malagueño
atrancado!
Dudas Generales
NewOver 0 516 Último mensaje 16 Junio 2013, 12:42 pm
por NewOver
ARP AntiSpoofer - Me he quedado fuera del castillo!
Dudas Generales
Ori-chan 4 2,040 Último mensaje 23 Diciembre 2014, 13:14 pm
por patilanz
Me e quedado ..? « 1 2 3 4 5 »
Foro Libre
WIитX 41 4,865 Último mensaje 6 Febrero 2015, 04:10 am
por dimitrix
Netflix ha quedado excluida del Festival de Cine de Cannes
Noticias
wolfbcn 0 374 Último mensaje 26 Marzo 2018, 19:20 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines