mwultong Blog ... 프로그래밍 / 계산기

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

 
Wednesday, September 13, 2006

[펄/Perl] 분수를 소수로 변환한 목록 만들기 - Fraction to Decimal Table


펄 모듈을 사용하여, 소수를 분수로 바꾸는 스크립트는
여기에 소개되어 있습니다: ▶▶ [Perl/펄] 소수를 분수로 변환 / 분수를 소수로 바꾸기 - Math-Fraction

그런데 위와 같은 스크립트가 없을 때에는, 다음과 같이, 모든 존재 가능한 분수를 소수로 변환한 목록을 만든 후, 특정 소수가 어떤 분수에 근접해 있는지 조사(?)해 보면 될 것입니다.

현재 $max 값이 10 이기에, 십분의십 즉 10/10 까지만 나옵니다. $max 를 100으로 고쳐주면 100분의100까지 나옵니다.



코드:
#!/usr/bin/perl
use strict; use warnings;


my $numerator;   # 분자
my $denominator; # 분모

my $max = 10; # 분자와 분모의 최대값




  for ($numerator = 1; $numerator <= $max; $numerator++) {
    for ($denominator = 1; $denominator <= $max; $denominator++) {
      printf("%2d /%2d =  %19.16f\n", $numerator, $denominator, $numerator / $denominator);
    }
  }




실행 결과:
D:\Z>foo.pl
 1 / 1 =   1.0000000000000000
 1 / 2 =   0.5000000000000000
 1 / 3 =   0.3333333333333333
 1 / 4 =   0.2500000000000000
 1 / 5 =   0.2000000000000000
 1 / 6 =   0.1666666666666667
 1 / 7 =   0.1428571428571429
 1 / 8 =   0.1250000000000000
 1 / 9 =   0.1111111111111111
 1 /10 =   0.1000000000000000
 2 / 1 =   2.0000000000000000
 2 / 2 =   1.0000000000000000
 2 / 3 =   0.6666666666666666
 2 / 4 =   0.5000000000000000
 2 / 5 =   0.4000000000000000
 2 / 6 =   0.3333333333333333
 2 / 7 =   0.2857142857142857
 2 / 8 =   0.2500000000000000
 2 / 9 =   0.2222222222222222
 2 /10 =   0.2000000000000000
 3 / 1 =   3.0000000000000000
 3 / 2 =   1.5000000000000000
 3 / 3 =   1.0000000000000000
 3 / 4 =   0.7500000000000000
 3 / 5 =   0.6000000000000000
 3 / 6 =   0.5000000000000000
 3 / 7 =   0.4285714285714286
 3 / 8 =   0.3750000000000000
 3 / 9 =   0.3333333333333333
 3 /10 =   0.3000000000000000
 4 / 1 =   4.0000000000000000
 4 / 2 =   2.0000000000000000
 4 / 3 =   1.3333333333333333
 4 / 4 =   1.0000000000000000
 4 / 5 =   0.8000000000000000
 4 / 6 =   0.6666666666666666
 4 / 7 =   0.5714285714285714
 4 / 8 =   0.5000000000000000
 4 / 9 =   0.4444444444444444
 4 /10 =   0.4000000000000000
 5 / 1 =   5.0000000000000000
 5 / 2 =   2.5000000000000000
 5 / 3 =   1.6666666666666667
 5 / 4 =   1.2500000000000000
 5 / 5 =   1.0000000000000000
 5 / 6 =   0.8333333333333334
 5 / 7 =   0.7142857142857143
 5 / 8 =   0.6250000000000000
 5 / 9 =   0.5555555555555556
 5 /10 =   0.5000000000000000
 6 / 1 =   6.0000000000000000
 6 / 2 =   3.0000000000000000
 6 / 3 =   2.0000000000000000
 6 / 4 =   1.5000000000000000
 6 / 5 =   1.2000000000000000
 6 / 6 =   1.0000000000000000
 6 / 7 =   0.8571428571428571
 6 / 8 =   0.7500000000000000
 6 / 9 =   0.6666666666666666
 6 /10 =   0.6000000000000000
 7 / 1 =   7.0000000000000000
 7 / 2 =   3.5000000000000000
 7 / 3 =   2.3333333333333335
 7 / 4 =   1.7500000000000000
 7 / 5 =   1.3999999999999999
 7 / 6 =   1.1666666666666667
 7 / 7 =   1.0000000000000000
 7 / 8 =   0.8750000000000000
 7 / 9 =   0.7777777777777778
 7 /10 =   0.7000000000000000
 8 / 1 =   8.0000000000000000
 8 / 2 =   4.0000000000000000
 8 / 3 =   2.6666666666666665
 8 / 4 =   2.0000000000000000
 8 / 5 =   1.6000000000000001
 8 / 6 =   1.3333333333333333
 8 / 7 =   1.1428571428571428
 8 / 8 =   1.0000000000000000
 8 / 9 =   0.8888888888888888
 8 /10 =   0.8000000000000000
 9 / 1 =   9.0000000000000000
 9 / 2 =   4.5000000000000000
 9 / 3 =   3.0000000000000000
 9 / 4 =   2.2500000000000000
 9 / 5 =   1.8000000000000000
 9 / 6 =   1.5000000000000000
 9 / 7 =   1.2857142857142858
 9 / 8 =   1.1250000000000000
 9 / 9 =   1.0000000000000000
 9 /10 =   0.9000000000000000
10 / 1 =  10.0000000000000000
10 / 2 =   5.0000000000000000
10 / 3 =   3.3333333333333335
10 / 4 =   2.5000000000000000
10 / 5 =   2.0000000000000000
10 / 6 =   1.6666666666666667
10 / 7 =   1.4285714285714286
10 / 8 =   1.2500000000000000
10 / 9 =   1.1111111111111112
10 /10 =   1.0000000000000000

D:\Z>





tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

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