Número Random en C/C++
Número Random en C/C++
lesdejounmanualquehicehaceuntiempo,paraquienesnosepan,conestafuncion
ustedespodranahorraseeltesteodesusaplicacionesoelllenadodevariables,vectores,
matrices,etc,simplementellamandoaestafuncionysealmacenaranlosvaloresquepuedan
predefinir,ysideseasalmacenarasciiescosadeconvertirelnumeroacharconuncasting
(esoesotracosa).
Librerias:
EnC:
stdlib.h
time.h
EnC++:
time
Nota:nosedebenomitirlaslibrerasbsicasdecyc++.
Unavezdeclaradaslaslibreras,lasfuncionesquesedebenimplementardentrodecada
mtodosonlassiguientes:
srand(time(NULL))
Estedebeiralcomienzodecadamtodo,despusdeladeclaracindelasvariableslocales,
sufuncinesinicializarlasemillatimeen0.
Laventajadehacerestoesqueevitamosqueserepitaalgunasecuenciaenlasdistintas
ejecucionesollamadasdenuestroprograma.
Requierelalibreratimeotime.h
Paraasignarelnumeroaleatorioaunavariableoaunvectorseutilizalosiguiente:
rand()
Estasemillaporsisolaretornanmerosentre
0y2.147.483.647.
Sideseamosrestringirlacantidaddenumeroderetorneelranddebemoshacerlosiguiente:
Pararetornarnmerosentre0y100:
rand()%101
Pararetornarnmerosentre10y100:
10+(rand()%91)
Aslasdistintasaplicacionesmatemticasquesepuedencrearpararetornarlosnmeros
necesarios.
Parautilizarelrand()debemosutilizarlodelamismaformacomoasignamosunvalorauna
variable.
SideseamosasignaraY(variable)oaV(vector)unnmeroaleatoriosolodebemoshacer:
Almacenarconnmeroscualquiera
Y=rand()oV=rand()
Numerosde0a100
Y=rand()%101oV=rand()%101
Numerosde10a100
Y=10+(rand()%91)oV=10+(rand()%91)
Lomismoseriaparalasmatrices.
EjemplosenC
EjemploenC++
CualquierdudacomentenoenvienunMP
Esperolesseadeutilidad...
APedidodelPublico,lesdejounosejemplos:
/*Codigoquellenaunvector,unamatrizyasignaunavariableconnumerosaleatoriosenC
//Sololesdejolaslibreriasyfuncionesnecesarias
#include<time.h>//libreriadelrandom
/************matriz**************/
voidllenar_matriz_rand(intenc[][]){
srand(time(NULL))//semilla
for(i=1i<MAXi++){
for(j=1j<=5j++){
enc[j]=rand()%5//rellenaconnumerosentre0y4
}
}
}
/************vector**************/
voidllenar_vector_rand(intv[]){
srand(time(NULL))//semilla
for(i=1i<MAXi++){
v=rand()%10//rellenaconnumerosentre0y9
}
}
/***********numerorandom***********/
intnumero_random(){
intn
srand(time(NULL))//semilla
n=rand()%200//rellenaconnumerosentre0y199
returnn
}
*************************************************
/*Sumade2numerosaleatorios(solofuncion)paraCyC++*/
intsuma(){
inta
a=rand()%20+rand()%30
returna
}