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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Perl] Funcion rand (Random:Numero & Caracteres Aleatoreos)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Perl] Funcion rand (Random:Numero & Caracteres Aleatoreos)  (Leído 12,747 veces)
OzX


Desconectado Desconectado

Mensajes: 406

[NuKe] Team


Ver Perfil WWW
[Perl] Funcion rand (Random:Numero & Caracteres Aleatoreos)
« en: 25 Abril 2008, 21:23 pm »

La Funcion rand Es Ocupada para generar Numeros Aleatoreos, y asi tambien poder generar caracteres aleatoreos previamente declarados.

rand num

Por Default (o Por Defecto) la Funcion Si no es Declarada el valor "num" Entregara Valores entre 0 y 1. (Emplearemos un For Para Repetir el Procedimiento 10 veces para hacer notar la funcion )

Código:
#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= (rand);
print "$rand\n";
}
Resultado:

Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
0.14404296875
0.146453857421875
0.6453857421875
0.147125244140625
0.595123291015625
0.045440673828125
0.850067138671875
0.8536376953125
0.437652587890625
0.86004638671875
0.694091796875
Declarando el Valor Num.

Código:
#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= (rand(10));
print "$rand\n";
}

Resultado:
Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
8.53668212890625
6.02081298828125
3.3087158203125
5.16754150390625
4.58984375
7.8265380859375
9.10797119140625
0.7781982421875
8.75030517578125
2.305908203125
4.96124267578125
Ahora Bien que pasa si no Queremos Numeros Decimales Sino mas Bien Numeros Enteros?

int (rand(10))

Int: Quiere Decir Entero.

Código:
#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= int(rand(10));
print "$rand\n";
}
Resultado:

Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
6
8
9
7
8
5
8
9
0
7
4
Pero Que Pasa si quiero Generar Numeros Aleatoreos Entre Dos Valores?. Por Ejemplos Numeros Entre 15 y 20 ?

Código:
#!/usr/bin/perl <new-bytes.net>
for ($x=0;$x<=10;$x++){
$rand= int(rand(15)) + 5;
print "$rand\n";
}
Resultado:

Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
13
7
11
15
9
18
19
8
14
19
17
Algo que me Gustaria Aclarar, Si tu Quieres un Random Entre por ej 200 y 250.
$rand= int(rand(200)) + 50;
Entre 30 y 40
$rand= int(rand(30)) + 10;
Entre 500 y 1200
$rand= int(rand(500)) + 600;

No Se deve Ingresar el Numero Inicial y el Final, Sino Mas Bien lo que le Falta al Valor de num para llegar al otro parametro.
500+600= 1200.
Por Ende Generara Numeros Entre 500 y 1200.


Generar Caracteres Aleatoreos.

Citar
#!/usr/bin/perl <new-bytes.net>
 @caracteres = qw (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  @ < > ¡ ? ¿ ~);

for ($x=0;$x<=10;$x++){

$rand = int(rand( @caracteres));
$caracter_rand = $caracteres[$rand];
print "$caracter_rand\n";

}
Resultado:

Citar
C:\Documents and Settings\Administrador\Escritorio\Perl Example>rand.pl
w
q
H
?
R
a
z
B
l

G
Ahora Veamos Por Parte:

Citar
@caracteres = qw (a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  @ < > ¡ ? ¿ ~);
Matriz o array llamada Caracteres, en donde puede contener en si multiples datos, con los parametros qw hacemos que los datos sean tomados por separado por espacios, porque si no tuviera esos dos parametros tendria que separar cada dato por una coma. y se hace algo lioso.

Citar
for ($x=0;$x<=10;$x++){
Ciclo For Empieza en 0 y Termina en 10, En Cada Pasada Se va Sumando 1.

Citar
$rand = int(rand( @caracteres));
$caracter_rand = $caracteres[$rand];
la variable $rand recorre todo el array y cuenta cuantos datos tiene el array, luego de eso seleciona entre 0 y el la cantidad total de datos del array un numero al azar. y la guarda.

Luego $caracter_rand , contiene la variable $caracteres que esta relacionada con el array  @caractereres.. Me detendre un Momento para Explicar Algo QUe esta dentro de los Conceptos Basico pero Nunca esta demas Volvera a Explicarlo .

Por Ej Tenemos

Citar
@letras = qw (uno dos tres cuatro cinco seis);
Ahora como Puedo Llamar o imprimir en pantalla el cuarto valor? (Ojo cuarto valor no el valor que dice cuatro¡)

Citar
$letras[4];
Resultado:

Citar
cinco
Porque? Porque los Arrays Empiezan Desde 0.

0=uno
1=dos
3=tres
4=cuatro
5=cinco
6=seis

Ya teniendo ese Concepto Claro, Volvamos con los Random.


$caracter_rand = $caracteres[$rand];

Aqui Tomara el Valor de $rand (valor aleatoreo tomado de 0 y la cantidad total de caracteres del array  @caracteres) y lo ingresara dentro de las casillas,si por ej, $rand tomo el valor de 5.

Citar
$caracter_rand = $caracteres[5];
Citar
}
Cierra el Ciclo.


Con Esta Funcion y con Imaginacion se Puede hacer Muchas Cosas...

Por Ejemplo:

Gracias a La ProxyList.new-bytes.net Podemos Ocupar Nuestras Aplicacion Con Proxy. y Tener en una variable Cada Proxy.


Citar
use LWP::Simple;

system ("cls");

#============================================SUB PROXY============================================================#

syswrite STDOUT, "\n
  • Carganndo Proxy: ";

$url="http://proxylist.new-bytes.net/list.txt";

$fichero = "proxy.txt";
mirror("$url", $fichero);

open(ARCHIVOPROXY,"$fichero");
 @proxy=<ARCHIVOPROXY>;
$x=0;
foreach ( @proxy)
{
# print " Numero : $x : $proxy[$x]";
$x++;
}
close (ARCHIVOPROXY);
$y=$x-2;

#$x cantidad de proxy
print "$x Obtenidos \n ";

#===============================================FIN SUB PROXY====================================================#

$num = int(rand( @proxy));
$proxy_rand = $proxy[$num];

print "Proxy Selecionado Por Rand: $proxy_rand\t <www.new-bytes.net>";




« Última modificación: 28 Febrero 2009, 11:38 am por sirdarckcat » En línea

Undersecurity.net
Spora

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Funcion rand (Random:Numero & Caracteres Aleatoreos) [PERL]
« Respuesta #1 en: 19 Febrero 2009, 05:17 am »

Ok, Pero si quiero hacer esto con numeros decimales?
O sea:

Prtotipo

//Para calcular numeros aleatoreos de numeros reales.
double random(float, float, int);


El int para es para la variable de de lugar decimal, si el usuario quisiese escoger el lugar decimal, a cuantos lugares.

Definicion

//Para calcular numeros aleatoreos para numeros reales.
double random(float num1, float num2, int num3)
{
   //Para darle valor a result.
   double result;

    //Para darle valor entero a num1 y num2.
   int
      num1 = num1 * 100,
      num2 = num2 * 100;

   result = num1 + rand() % (num2 - num1 +1)

      static_cast <float> (result);

      return result;
}

Oye si pongo el int num3 como argumento en la lista de parametros de la definicion, tengo que definirlo adentro de la funcion?

Gracias, espero que "Anyone" contetste!  ;D


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con la función rand.
Programación C/C++
Felipe_Henriquez 5 5,028 Último mensaje 31 Octubre 2011, 20:20 pm
por Queta
cual es la funcion de Random() y Clrscr...
Programación C/C++
Schiffer04 5 4,200 Último mensaje 14 Mayo 2012, 15:39 pm
por Ferno
Sobre la función rand()
PHP
#Aitor 8 3,407 Último mensaje 3 Enero 2015, 18:16 pm
por MinusFour
Función rand sin repeticiones
Programación C/C++
alejandro70 3 2,448 Último mensaje 29 Julio 2015, 09:37 am
por do-while
¿Por qué el número que me genera el rand() siempre es el mismo?
Programación C/C++
Ali Baba 4 4,497 Último mensaje 20 Marzo 2018, 07:09 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines