Powrót do listy plików
generatorkongruentny.c
#include <stdio.h>
#include<math.h>
#define MNOZNIK 100000000.0
//float zaokraglij(float *x);
int main(){
float x=0.26336377;
int a=6;
int b=0;
int c=1;
int i;
for(i=0;i<1000;i++){
x= fmod((a*x+b),c);
// printf("%.20f\n",x);
if(x==0){
printf("\n\nwyzerowalo sie po %i iteracjach\n",i+1);
break;
}
}
printf("x_%i= %.10f\n\n",i+1,x);
printf("poprawiona wersja\n:");
x=0.26336377;
i=0;
for(i=0;i<1000;i++){
// x= zaokraglij(&x);
x= roundf(MNOZNIK*x)/MNOZNIK;
x= fmod((a*x+b),c);
//printf("%i\n",i);
// printf("%.20f\n",x);
if(x==0){
printf("\n\nwyzerowalo sie po %i iteracjach\n",i+1);
break;
}
}
printf("x_%i=%12.10f\n",i,x);
return 0;
}
/*
float zaokraglij(float *x){
float iks = *x;
iks = MNOZNIK * iks;
if( (iks - floor(iks) < 0.5) ) //zaokraglanie w dol
{
printf("\nprzypadek w dol");
iks = floor(iks)/MNOZNIK;
}
else //zaokraglanie w gore
{
printf("\nprzypadek w gore");
iks = (floor(iks) + 1)/MNOZNIK;
}
return iks;
}*/
syntax highlighted by
Code2HTML, v. 0.9.1
kod przerobiony z HTML na XHTML za pomocą HTML Tidy for Linux/x86
Materiały z Metod Numerycznych udostępnione zostały na zasadach licencji GPL w wersji 2.