8
votes

Comment générer un nombre aléatoire de 0,5 à 1,0

Comment générer le nombre aléatoire de 0,5 à 1,0.

c

0 commentaires

4 Réponses :


17
votes

Vous pouvez essayer:

float RandomBetween(float smallNumber, float bigNumber)
{
    float diff = bigNumber - smallNumber;
    return (((float) rand() / RAND_MAX) * diff) + smallNumber;
}


0 commentaires

5
votes

Vous devriez être capable d'utiliser quelque chose comme: xxx

la division par rand_max vous donne une valeur de 0 à 1, divisant cela par deux gouttes de la plage à 0 à 0,5, l'ajout de 0,5 vous donne 0,5 à 1. (inclus à l'extrémité basse et exclusif à l'extrémité supérieure).


0 commentaires

1
votes

Certaines choses comme ci-dessous vous aideront.

#include <stdio.h>
#define RAND_NUMBER 14
#define INT_FLAG 10
int main (int argc, const char * argv[]) {
    // insert code here...
    double start = .5;
    double end = 1.0;

    double moduleValue = ((end - start) * INT_FLAG);

    int randum = (RAND_NUMBER / moduleValue);

    double result = ((double)randum/INT_FLAG) + start;
    printf("%f",result);
    printf("Hello, World!\n");
    return 0;
}


2 commentaires

N'est-ce pas le limitation artificiellement aux étapes de 0,1? Pourquoi feriez-vous cela plutôt que d'utiliser la double gamme complète?


Vérifiez le code de clarification --- Lorsque vous essayez de diviser le .5, il agit comme 1/2 en mathématiques en raison de laquelle le nombre généré ne sera pas dans votre plage



0
votes
#include<stdio.h>
#include<stdlib.h>
main()
{
int i;
double b,n;
srand(getpid());

n=rand()%51+50;
b=n/100;

printf("%f\n",b);
}

0 commentaires