Hiya essayant d'écrire un code pour l'intégration 1D Monte-Carlo de base. Pour ce faire, j'ai besoin d'une liste de nombres pseudo-aléatoires que je peux ensuite saisir dans une fonction (stockée dans un autre sous-programme). J'ai donné un pointeur à la liste des nombres aléatoires mais quand j'essaie de le déréférencer dans le fichier principal, j'obtiens "error: types incompatibles lors de l'assignation au type 'double [11]' du type 'double'". Quelqu'un pourrait-il me dire où je vais mal? Mon code peut être trouvé ici:Obtention d'un sous-programme pour renvoyer un pointeur référençant un tableau puis le déréférencé dans main (en C)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#ifndef RAND_MAX
#define RAND_MAX 2147483648
#endif
#define N 10
double function(double x);
double* rdm(void);
void main(void)
{
double* Random_number_list;
int i;
double sum = 0.0, sum2 = 0.0, X[N+1],S, Random_number_list2[N + 1];
double F[N+1], lower, upper, avg, avg2;
printf("Lower Bound: ");
scanf("%lf", &lower);
printf("Upper Bound: ");
scanf("%lf", &upper);
Random_number_list2 = *Random_number_list;
for (i = 0; i <= N; i++) {
X[i] = ((upper - lower)*Random_number_list2[i]) + lower;
F[i] = function(X[i]);
sum = sum + F[i];
sum2 = sum2 + (F[i] * F[i]);
}
avg = sum/N;
avg2 = sum2/N;
S = (upper - lower) * (avg + sqrt((avg2 - (avg * avg))/N));
printf("The Monte Carlo approximation is %lf\n", S);
}
double function(double x)
{
double y;
y = sin (x);
return y;
}
double* rdm(void)
{
double* Random_number_list = calloc(N + 1, sizeof(double));
int i;
srand(time(NULL));
for (i = 1; i <= N; i++) {
Random_number_list[i] = (float) rand()/(float) RAND_MAX;
}
return Random_number_list;
}
Merci beaucoup. Jack Medley
Jack, il est une bonne idée de mettre votre code ici et supposons que tous les autres sites sur Internet disparaîtra. De cette façon, lorsque pastebin disparaît ou commence à essayer de monétiser son site, SO sera toujours utile. C'est pourquoi, même si je fais référence à Wikipedia (par exemple) dans mes réponses, je vais quand même faire un bref résumé. J'ai déplacé votre code à travers. – paxdiablo