Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Cita:
Empezado por elcigarra
No siempre tienen distribución normal, por lo menos en mi delphi 7 (si mal no recuerdo) hay funciones con algoritmos estadísticos para números aleatorios (o no tan aleatorios) con distribuciones de probabilidad tipo Poisson, "t", rectangulares y otras que a nosotros los pseudo científicos nos sirven de mucho.
podrias comentar como cambiar la distribución de la función random, porque la verdad a mi me resultaria bastante util.

Gracias
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 07-06-2005
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Una sugerencia

personalmente para lograr nros "mas aletorios" realizo lo siguiente:
Código Delphi [-]
Randomize;
X = Random(Random(Dimension))+1;
Siendo Dimensión algún valor demasiado grande.
Espero que pueda serte útil.
Personalmente, esto de cambiar la distribución no se si se pueda... y me enteresa ya que tengo un simulador de tragamonedas que necesita ser más "real"
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 07-06-2005 a las 06:40:19. Razón: Correción en uso de etiquetas
Responder Con Cita
  #3  
Antiguo 07-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Hola Delphius, tu función si modifica la distribución, si no me euquivoco de primera vista parece obtener una distribución exponencial decreciente, lo cual te puede general una gran predominancia de los numeros inferiores.

Esto es facilmente comprobable, simplemente podrias graficar un histograma con 1000 números generados.

Creo que nos fuimos totalmente de la pregunta de gontxalo , pero se puso mas interesante

Despues de escribir el mensaje anterior me acorde que hice un programa para la facultad donde genrabamos valores aleatorios con diferentes distribuciones. Voy a ver si lo encuentro (fue hace bastante) y lo escribo por aca.
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 07-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 25
Crandel Va por buen camino
Aca encontre la forma en que generaba los número con diferentes distribuciones:

Uniforme
Código Delphi [-]
   dato := dstandard*Sqrt(12)*(random - 0.5) + vmedio;
Normal
Código Delphi [-]
   dato := dstandard*Sqrt(-2*ln(random))*cos(2*pi*random) + vmedio;

Exponencial
Código Delphi [-]
   dato := dstandard*ln(random)+(vmedio-dstandard);

donde dstandard es la distribución estandar y vmedio es el valor medio requerido.

Lo puede tomar al que le sirva.
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 07-06-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 22
elcigarra Va por buen camino
Perdón, capaz que estoy equivocado, pero yendo a términos estadísticos una distribución normal de probabilidad referiría a numeros cuya probabilidad de salir aumenta al acercarse al valor medio en forma de campana (para describirlo en palabras simples). Esta sería la famosa campana de Gauss por lo que esta distribución se llama gaussiana. Si se graficaran los numeros aleatorios producidos de esta forma se vería que están más acumulados en el centro y hay unos pocos en los bordes del intervalo. Esto no se obtiene con la función "RandG" de la math unit de delphi. Esta función lleva como parámetros dicho valor medio y la "varianza" que va a dar en cierta forma lo "puntiagudo" de la distribución.

Con la función random no se obtiene esto, sinó números que están ordenados según una distribución de probabilidad "rectangular" (o plana) es decir que cualquier numero en el intervalo tiene la misma probabilidad de salir. Si se grafican éstos van a estar "uniformemente" esparcidos en el intervalo cuando la cantidad es muy grande.
Responder Con Cita
  #6  
Antiguo 07-06-2005
elcigarra elcigarra is offline
Miembro
 
Registrado: may 2005
Posts: 269
Poder: 22
elcigarra Va por buen camino
Perdón... donde dije "esto no se obtiene con la función RandG..."
quise decir "esto SE obtiene con la función RandG..
Responder Con Cita
  #7  
Antiguo 09-06-2005
gontxalo gontxalo is offline
Miembro
 
Registrado: may 2005
Posts: 99
Poder: 22
gontxalo Va por buen camino
conseguido

Hola
gracias
Ya me funciona, hasta ahora al ejecutar siempre se repetían las series, pero no sabía cambiar la semilla.
Ya se ejecuta y no se repiten, ni empiezan con la misma serie.

Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:51:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi