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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA  (Leído 2,720 veces)
peyong3

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA
« en: 15 Julio 2014, 06:37 am »

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <math.h>

int main(int argc, char *argv[])
{
    int i,k;
    float media,varianza,p,q,p1,n1,r,rc,multiplicatoria=1,x;
  printf("\ningrese p:");
  scanf("%f",&p);
  printf("\ningrese  cuantos numeros aleatorios se generaran k:");
  scanf("%d",&k);

  q=(1-p);
  printf("el valor de q es:%f\n",q);
  media=((k*q)/p);
  varianza=((k*q)/(p*p));
  printf("\nla media es:%f\n",media);
  printf("la varianza es:%f\n\n",varianza);
  p1=(media/varianza);
  n1=((media*media)/(varianza-media));

 
  srand((unsigned)time(NULL));
  for(i=1;i<=k;i++){
                    r=sin((float)rand());
                    rc=fabs(r);
                   
                    multiplicatoria=(multiplicatoria*rc);
                    printf("el r%d es:%f\n",i,rc);
                    }

  printf("\nmultiplicatoria de r es:%f",multiplicatoria);
  x=(log(multiplicatoria))/log(q);
  printf("\nnum aleatoria con bin neg. es:%f\n",x);
  system("PAUSE");   
  return 0;
}


« Última modificación: 15 Julio 2014, 06:58 am por peyong3 » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA
« Respuesta #1 en: 15 Julio 2014, 15:37 pm »

La verdad es que ando dándole vueltas a qué tiene que ver el código que propones con una Distribución binomial negativa .

En esencia el cálculo de los pseudo-aleatorios se resume a:

.............................................
  srand((unsigned)time(NULL));
  for(i=1;i<=k;i++){
    r=sin((float)rand());
    rc=fabs(r);
.............................................


Es decir al cálculo de sin y claro así se obtienen salidas como éstas:

Citar
el r1 es:0.988268
el r2 es:0.999706
el r3 es:0.972046
el r4 es:0.901397
el r5 es:0.876692
el r6 es:0.820528
el r7 es:0.994781
el r8 es:0.237657
el r9 es:0.772648
el r10 es:0.566853
el r11 es:0.220925
el r12 es:0.750848
el r13 es:0.743281
el r14 es:0.986598
el r15 es:0.847679

OTRA SALIDA:

 el r1 es:0.358369
 el r2 es:0.453992
 el r3 es:0.882949
 el r4 es:0.891008
 el r5 es:0.766046
 el r6 es:0.965927
 el r7 es:0.587786
 el r8 es:0.754711
 el r9 es:0.939694
 el r10 es:0.544640
 el r11 es:0.906309
 el r12 es:0.207912
 el r13 es:0.809018
 el r14 es:0.882949
 el r15 es:0.945520

Donde se observa la preponderancia de valores superiores a 0.5 respecto a valores inferiores al mismo. Y es que al usar la función "sin" hay que recordar que, en grados sexagesimales para entenderlo mejor, para ángulos de 0-30 el valor del sin es inferior o igual a 0.5 mientras que para ángulos de 30-90 el valor es superior a 0.5. Es decir, y a lo breve, existen el doble de probabilidad de que el sin sea superior a 0.5 a que sea inferior, de ahí los resultados obtenidos.

¿No habrás querido decir otra cosa con eso de "Números aleatorios con una distribución binomial negativa"?.

¡¡¡¡ Saluditos! ..... !!!!




« Última modificación: 15 Julio 2014, 15:39 pm por leosansan » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Numeros aleatorios con una distribución binomial negativa PARA QUIENES LE SIRVA
« Respuesta #2 en: 15 Julio 2014, 15:40 pm »

A parte del code, si te interesa, también la tienes ahora en C++11: CPlusPlus
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines