Wednesday, September 13, 2006
[펄/Perl] 분수를 소수로 변환한 목록 만들기 - Fraction to Decimal Table
펄 모듈을 사용하여, 소수를 분수로 바꾸는 스크립트는
여기에 소개되어 있습니다: ▶▶ [Perl/펄] 소수를 분수로 변환 / 분수를 소수로 바꾸기 - Math-Fraction
그런데 위와 같은 스크립트가 없을 때에는, 다음과 같이, 모든 존재 가능한 분수를 소수로 변환한 목록을 만든 후, 특정 소수가 어떤 분수에 근접해 있는지 조사(?)해 보면 될 것입니다.
현재 $max 값이 10 이기에, 십분의십 즉 10/10 까지만 나옵니다. $max 를 100으로 고쳐주면 100분의100까지 나옵니다.
코드:
실행 결과:
여기에 소개되어 있습니다: ▶▶ [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);
}
}
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>
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 | 펄
<< Home