・Javaソースダウンロード(CalcPI1.java)
円周率πを幾何学計算だけで計算するJavaサンプルソースです。これは、単位円の面積がπと同じであることを利用してπを計算するアルゴリズムで、単位円を小さな台形で分割して、その台形の面積の合計をπとするものです。、
このソースについての記事はこちら「円周率πを求める その1」です。
CalcPI1.javaをダウンロード
ダウンロードしたファイルはzip形式です。解凍して使ってください。Windowsの場合、ダウンロードしたzipファイルをマウスの右ボタンでクリックして表示されるポップアップメニューから「すべて展開(T)」で解凍できます。
public class CalcPI1 { // πを計算するメソッド public static double getPI_1( int yn ) { double upperbase; // 台形の上底 double lowerbase; // 台形の下底 double height; // 台形の高さ double lowery; // 台形の下底の座標 double area; // 円の面積 double aread; // 台形の面積 // 台形の高さ(円の半径をynで割る) height = 1.0 / (double)yn; // 上底の初期値 upperbase = 0.0; // 下底のy座標の初期値 lowery = 1.0 - height; // 計算開始 area = 0.0; for ( int i = 0; i < yn; ++ i ) { // 下底の計算 lowerbase = Math.sqrt( 1.0 - lowery * lowery ); // 台形の面積計算 aread = ( upperbase + lowerbase ) * height / 2.0; // 円の面積に台形の面積を足す area += aread; // 下底を上底に代入 upperbase = lowerbase; // 下底のy座標からheightを引く lowery -= height; } // 1/4円の面積を4倍 area = area * 4.0; // 結果を戻す return area; } public static void main( String[] args ) { // yの分割数 int yn; // 1000分割 yn = 1000; System.out.println( "分割数:" + yn+ " π=" + getPI_1( yn ) ); // 10000分割 yn = 10000; System.out.println( "分割数:" + yn+ " π=" + getPI_1( yn ) ); // 100000分割 yn = 100000; System.out.println( "分割数:" + yn+ " π=" + getPI_1( yn ) ); // 1000000分割 yn = 1000000; System.out.println( "分割数:" + yn+ " π=" + getPI_1( yn ) ); // 10000000分割 yn = 10000000; System.out.println( "分割数:" + yn+ " π=" + getPI_1( yn ) ); } }
このソースについての記事はこちら「円周率πを求める その1」です。
■新着情報
2022.07.06 | 完全数 | 6=1+2+3 |
■広告
