Comment générer le nombre aléatoire de 0,5 à 1,0. p>
4 Réponses :
Vous pouvez essayer:
float RandomBetween(float smallNumber, float bigNumber)
{
float diff = bigNumber - smallNumber;
return (((float) rand() / RAND_MAX) * diff) + smallNumber;
}
Vous devriez être capable d'utiliser quelque chose comme: la division par rand_max code> 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). P> P>
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;
}
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
#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);
}