int main (int argc, const char * argv[]) {
double x, y;
int cnt = 0;
int i;
for (i = 0; i <= COUNT; i++) {
/* 乱数を発生させて(0〜1) の(x,y)座標を得る */
x =rndm();
y = rndm();
/* 座標が円内に存在すればカウント */
if (x * x + y * y <= 1.0)
cnt++;
/* 結果出力 */
if (i != 0 && i % 1000000 == 0)
printf("%d - %f/n", i, (double)cnt / i * 4.0);
}
return 0;
}
double rndm() {
double ret;
xn = ((xn * A) + B) % C; /* 線形合同法の式 */
ret = (double)xn / (double)C; /* 0〜1の値を出力 */
return ret;
}
/*******************************************************************************/
/* 機能詳細:CALENDER [YEAR MONTH] */
/* YEARとMONTHが省略された場合は、現在の年月を表示する。 */
/*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define OK 0
#define NG 1
#define ON 1
#define OFF 0
int Mon_Tbl[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int Year;
int Mon;
int Day;
int Week;
int SetDate (char **);
int DispData (void);
int main(int argc,char *argv[]) {
int wrk_int;
if (argc == 3) {
wrk_int = atoi(argv[1]);
if ((wrk_int < 1) || (wrk_int > 9999)) {
printf("年の指定に誤りがあります。[%s]\n",argv[1]); return(NG);
}
wrk_int = atoi(argv[2]);
if ((wrk_int < 1) || (wrk_int > 12)) {
printf("月の指定に誤りがあります。[%s]\n",argv[2]); return(NG);
}
SetDate(argv);