컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 2차원 배열, 함수 인수(파라미터)로 전달: 2-Dimensional Array, Pass...윈도우 환경변수 복사하여 파일로 저장/만들기: Windows Environment Vari...Java/자바/수학] 다각형 내각 각도 구하기; Regular Polygon AngleC언어] 배열 포인터를 함수의 인수(파라미터)로 전달; Array Pass to a Fun...Vim (Vi)에디터] 구문강조/문법강조 명령어, vimrc 설정법; Syntax High...Vim (Vi)에디터] 파일의 맨 첫 줄/마지막 라인으로 이동 핫키; Go Top Bott...Vim Vi 블록 선택, 복사, 붙이기, 칼럼 영역 선택하기; Select Copy Pas...Linux/리눅스] bash 히스토리(History)기능 강화(검색) 설정; History...C언어] 1차원 배열 선언, 배열 초기화 예제: One-Dimensional Array I...텍스트파일 인코딩/언어 알아내기, 자동 판단; Encoding Auto-Detect Eme...

Java: 무한각형(무한히 많은 각이 있는 다각형) 내각 각도 계산; Infinite Polygon

Monday, November 06, 2006

▶▶ Java/자바/수학] 다각형 내각 각도 구하기; Regular Polygon Angle 게시물에 있는 방식으로, 정다각형의 내각의 각도를 계산하면, 각이 많은 다각형은 180도에 가까워집니다.

그런데 정확히* 180도가 되는 다각형은 무엇인지 궁금했습니다. 어지간히 큰 숫자로도 180도는 되지 않았습니다.

* 물론 계산상으로 그렇다는 얘기고, 실제로는 180도에 무한히 가까워질 뿐, 정말로 180도가 되지는 않겠지요.



18014398509481779
"일경팔천십사조삼천구백팔십오억구백사십팔만천칠백칠십구" 개의 각을 가진 정다각형부터는, 한 내각의 각도가 정확히 180도가 되었습니다. (물론 부동수소점 계산의 오차를 고려한다면 약간 다른 값이 될 수도 있을 것입니다.)

위의 숫자에서 1이 부족한
18014398509481778 각형의 각도는 179.99999999999997 도로 나옵니다.


무한 다각형 내각 계산


파일명: Foo.java
class Foo {
  public static void main(String args[]) {


    // 정확히 180도가 되는 다각형
    System.out.println(
                      ((18014398509481779d - 2) * 180) / 18014398509481779d
                      );
    // 출력 결과: 180.0


    // 위에서 1이 부족한 숫자는
    System.out.println(
                      ((18014398509481778d - 2) * 180) / 18014398509481778d
                      );
    // 출력 결과: 179.99999999999997





    // 일경각형의 하나의 내각: 179.99999999999997
    // 마이너스 일경각형     : 180.00000000000003
    System.out.println(
                      ((10000000000000000d - 2) * 180) / 10000000000000000d
                      );


    // 십경각형의 하나의 내각: 180.0
    // 마이너스 십경각형     : 180.0
    System.out.println(
                      ((100000000000000000d - 2) * 180) / 100000000000000000d
                      );


    // 천無量大數각형의 하나의 내각: 180.0
    // 마이너스 천無量大數각형     : 180.0

    System.out.println(
                      ((100000000000000000000000000000000000000000000000000000000000000000000000d - 2) * 180) /
                        100000000000000000000000000000000000000000000000000000000000000000000000d
                      );


  }
}


마이너스 값을 가진 가상적인 다각형의 내각도 180도가 되는군요.



100000000000000000
이런 식으로 숫자를 직접 표현하면 int 정수로 인식하기에, integer number too large (int 값이 너무 큽니다) 라는 에러가 납니다.

이때는
100000000000000000d
이렇게 끝에 d 또는 D 를 붙이면, 그 숫자를 "double형 실수"로 간주하기에 에러가 나지 않습니다.




참고: ▶▶ Perl] 숫자 한글 발음으로 읽기, 한글 변환; Number To Korean; Spell Out

☞ 자바(Java)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top