🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.c++
Article #148

Re: Función para Aleatorios.

#148
From: David Carricajo
Date: Tue, 16 Oct 2007 14:23
35 lines
2449 bytes
On 7 oct, 23:09, "R.G.A.M." <rgam1...@gmail.com> wrote:
> Creé una función que devuelva un valor entero aleatorio entre dos
> dados. He aquí el código de la misma:
>
> int Aleatorio_Entre (int num1, int num2)
> {
>     srand((unsigned)time(NULL));
>     int aleatorio = rand() % (num2-num1+1) + num1;
>     return aleatorio;
>
> }
>
> Funciona relativamente bien (efectivamente, obtiene un valor aleatorio
> entre los dos dados), pero siempre devuelve el mismo valor cada vez
> que se la invoca.
>
> ¿Podría ayudarme alguien, por favor? Revisé antes en el foro para
> encontrar alguna ayuda, pero no tuve éxito. Muchas gracias con
> anticipación.


A menos que RAND_MAX + 1 sea múltiplo del intervalo en el que buscas
(num2 - num1 + 1), es decir, de la forma 2^i con i entero, no creo que
la distribución que se cree llamando a tu función sea uniforme.

Quizá llamando a la función:

int uniforme(int n)
{
    static int avanza;
    return (rand() + avanza++) % n;
}

se pueda generar una distribución así para un tiempo largo en el
intervalo [0, n)
Technical Details
Message-ID: <1192544613.918398.189550@e9g2000prf.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!e9g2000prf.googlegroups.com!not-for-mail
References: <1191791399.660205.170130@o80g2000hse.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f53ec,cfee6b0bbd09c49
X-Google-Attributes: gidf53ec,public,usenet
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!e9g2000prf.googlegroups.com!not-for-mail
From:  David Carricajo <david.carricajo@gmail.com>
Newsgroups: es.comp.lenguajes.c++
Subject: Re: Función para Aleatorios.
Date: Tue, 16 Oct 2007 07:23:33 -0700
Organization: http://groups.google.com
Lines: 36
Message-ID: <1192544613.918398.189550@e9g2000prf.googlegroups.com>
References: <1191791399.660205.170130@o80g2000hse.googlegroups.com>
NNTP-Posting-Host: 193.148.96.129
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1192544617 9763 127.0.0.1 (16 Oct 2007 14:23:37 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 16 Oct 2007 14:23:37 +0000 (UTC)
In-Reply-To: <1191791399.660205.170130@o80g2000hse.googlegroups.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe)
X-HTTP-Via: 1.0 SREDMM02A
Complaints-To: groups-abuse@google.com
Injection-Info: e9g2000prf.googlegroups.com; posting-host=193.148.96.129;
   posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0