RPG2K 최대공약수와 최소공배수 구하기
2006.07.09 09:32
[예제 다운로드]
※주석을 넣는 중 실수로 지워버린 부분을 수정하였습니다. 그리고 100과 10000등 두 수를 곱하여 999999를 넘어가버리는 수는 변수 최대치 때문에 어쩔 수가 없습니다.
일단 이 글을 쓰게 된 경위는, 제가 무언가 게임제작툴 강좌를 해야겠으나, 할 것이 없기에 이거라도...
먼저 최대공약수란 무엇이냐?
두 수가 있을 때 둘이 공통으로 가진 약수 중에 가장 큰 것을 말합니다.
예를 들어서 6의 약수는 1, 2, 3, 6이고 4의 약수는 1, 2, 4 입니다. 공통으로 1, 2를 가졌고 가장 큰 것이 2입니다.
그렇다면 최소공배수는?
두 수가 있을 때 둘이 공통으로 가진 배수 중에 가장 작은 것을 말합니다.
예를 들어서 6의 배수는 6, 12, 18, 24... 이고 4의 배수는 4, 8, 12, 16, 20, 24... 입니다. 공통으로 가진 것 중 가장 작은 것이 24입니다.
최대공약수를 구하는 방법은?
중1 과정에서 소인수분해라는 것을 배웁니다만.. 알만툴로 이거 하려다 미치는줄 알았습니다. 그래서 안했습니다[...-_-]
또 다른 방법으로는 유클리드 호제법이라는게 있는데, 이것이 무엇이냐하면 말입니다.
지식in을 참고하면:
"자연수 a, b에 대하여 a를 b로 나누었을 때, a=bq+r 을 만족하는 적당한 정수 q, r이 존재한다. 이 때, gcd(a, b) = gcd(b, r) 이다."
라고 나와있습니다.
나누기를 했을 때 피제수=제수 × 몫 + 나머지 라는 것은 초등학생도 알 수 있는 것이고..
gcd란 것은 아마 Greatest Common Division이 아닌가하는데 아무튼 한글로는 최대공약수입니다.
즉 피제수와 제수의 최대공약수는 제수와 나머지의 최대공약수와 같다라는 말입니다.
그렇다면 이 원리를 어떻게 쓸 수 있느냐?
52와 36의 최대공약수를 구해보겠습니다.
원래 소인수분해를 하면 2 × 2 × 13, 2 × 2 × 3 × 3 이라는 결과가 나와서 최대공약수는 4입니다마는,
이 방법을 이용하면
52, 36
52-36, 36=16, 36
16, 36-16=16, 20
16, 20-16=16, 4
16-4, 4=12, 4
12-4, 4=8, 4
8-4, 4=4, 4
4-4, 4=0, 4
여기서 둘 중 하나가 0이 되면 남은 다른 하나가 최대공약수가 됩니다. 그래서 최대공약수는 4입니다.
계산법은, 큰수와 작은 수가 있으면 큰수에서 작은 수를 나누고 나머지를 값으로 가집니다. 그리고 그 과정을 반복합니다. 어느 한쪽이 0이 되면 남은 한 수가 최대공약수이고 두 수가 같아지면 둘 다 최대공약수가 됩니다.
최소공배수를 구하는 방법은?
두 수가 있을 때 첫번째 수 × 두번째 수 ÷ 최대공약수
끝입니다.
최대공약수 및 최소공배수는 알만툴에서 어떻게 활용할 수 있겠는가?
알아서 찾아보시길...[-ㅅ-]
※주석을 넣는 중 실수로 지워버린 부분을 수정하였습니다. 그리고 100과 10000등 두 수를 곱하여 999999를 넘어가버리는 수는 변수 최대치 때문에 어쩔 수가 없습니다.
일단 이 글을 쓰게 된 경위는, 제가 무언가 게임제작툴 강좌를 해야겠으나, 할 것이 없기에 이거라도...
먼저 최대공약수란 무엇이냐?
두 수가 있을 때 둘이 공통으로 가진 약수 중에 가장 큰 것을 말합니다.
예를 들어서 6의 약수는 1, 2, 3, 6이고 4의 약수는 1, 2, 4 입니다. 공통으로 1, 2를 가졌고 가장 큰 것이 2입니다.
그렇다면 최소공배수는?
두 수가 있을 때 둘이 공통으로 가진 배수 중에 가장 작은 것을 말합니다.
예를 들어서 6의 배수는 6, 12, 18, 24... 이고 4의 배수는 4, 8, 12, 16, 20, 24... 입니다. 공통으로 가진 것 중 가장 작은 것이 24입니다.
최대공약수를 구하는 방법은?
중1 과정에서 소인수분해라는 것을 배웁니다만.. 알만툴로 이거 하려다 미치는줄 알았습니다. 그래서 안했습니다[...-_-]
또 다른 방법으로는 유클리드 호제법이라는게 있는데, 이것이 무엇이냐하면 말입니다.
지식in을 참고하면:
"자연수 a, b에 대하여 a를 b로 나누었을 때, a=bq+r 을 만족하는 적당한 정수 q, r이 존재한다. 이 때, gcd(a, b) = gcd(b, r) 이다."
라고 나와있습니다.
나누기를 했을 때 피제수=제수 × 몫 + 나머지 라는 것은 초등학생도 알 수 있는 것이고..
gcd란 것은 아마 Greatest Common Division이 아닌가하는데 아무튼 한글로는 최대공약수입니다.
즉 피제수와 제수의 최대공약수는 제수와 나머지의 최대공약수와 같다라는 말입니다.
그렇다면 이 원리를 어떻게 쓸 수 있느냐?
52와 36의 최대공약수를 구해보겠습니다.
원래 소인수분해를 하면 2 × 2 × 13, 2 × 2 × 3 × 3 이라는 결과가 나와서 최대공약수는 4입니다마는,
이 방법을 이용하면
52, 36
52-36, 36=16, 36
16, 36-16=16, 20
16, 20-16=16, 4
16-4, 4=12, 4
12-4, 4=8, 4
8-4, 4=4, 4
4-4, 4=0, 4
여기서 둘 중 하나가 0이 되면 남은 다른 하나가 최대공약수가 됩니다. 그래서 최대공약수는 4입니다.
계산법은, 큰수와 작은 수가 있으면 큰수에서 작은 수를 나누고 나머지를 값으로 가집니다. 그리고 그 과정을 반복합니다. 어느 한쪽이 0이 되면 남은 한 수가 최대공약수이고 두 수가 같아지면 둘 다 최대공약수가 됩니다.
최소공배수를 구하는 방법은?
두 수가 있을 때 첫번째 수 × 두번째 수 ÷ 최대공약수
끝입니다.
최대공약수 및 최소공배수는 알만툴에서 어떻게 활용할 수 있겠는가?
알아서 찾아보시길...[-ㅅ-]
댓글 13
-
다크세이버™
2006.07.09 17:40
옛날에 배운거라 기억도 안나는-_-|+rp2+|2208|+rp3+|bibup -
-H-
2006.07.09 20:01
아아,, 역시 수도권과 지방의 차이가 있어 ㅠ;;
읽어보니 내용은 알겠는데,, 어떻게 이런걸 생각해낼 수 있는지..|+rp2+|2210|+rp3+|bibup -
-H-
2006.07.09 22:03
전에 연립방정식 계산기도 본적이 있는데,
그것도 본인이 만든거? |+rp+|2210|+rp2+|2212|+rp3+|bibup -
마른오징어
2006.07.09 23:19
최대공약수, 최소공배수의 용도는...?|+rp2+|2214|+rp3+|bibup -
『덩키동크』
2006.07.10 00:00
게임에서 이런걸 도입한다는건 조금 억지가 아닐까요-_-; 그리고 100과 10000의 최대공약수는 0, 최소공배수는 99999.. 하하-_-;; 2와 6의 최대공약수도 0.... -ㅁ-; 이거 뭔가..;;|+rp2+|2216|+rp3+|bibup -
Yggdrasil
2006.07.10 07:33
아니 |+rp+|2210|+rp2+|2220|+rp3+|bibup -
Yggdrasil
2006.07.10 07:39
아, 주석 넣다가 실수로 지운 부분이 있었네요. 그리고 99999는 변수 최대치 때문에. |+rp+|2216|+rp2+|2221|+rp3+|bibup -
Yggdrasil
2006.07.10 07:45
근데 그건 사람 편하자고 가감법 쓸 필요 없이 조낸 빠른 컴퓨터를 위해 대입법만 쓰면 바로 해결될 듯? |+rp+|2210|+rp2+|2222|+rp3+|bibup -
Yggdrasil
2006.07.10 07:49
사실 강의감이 없어서 억지로[이봐] |+rp+|2214|+rp2+|2224|+rp3+|bibup -
enkitia
2006.07.21 23:30
저.. 저거! 컴퓨터 올림피아드 배울 때 같이 배운;;|+rp2+|2266|+rp3+|bibup -
Yggdrasil
2006.07.22 00:09
정석에 나옵니닷 |+rp+|2266|+rp2+|2267|+rp3+|bibup -
윈드
2006.07.24 02:05
대략...어떤게임에서 저걸 쓸수있을까나.....-.-|+rp2+|2288|+rp3+|bibup -
[CoWBoy]bebop
2006.10.01 20:14
대항해시대 같은 시세 게임? -_-;;;|+rp2+|2623|+rp3+|bibup
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
411 | <기본강좌> 쉐로의 RPG2000 강좌 1편: 필드에서 책 읽기 [1] | 쉐로, | 2006.07.21 | 89 |
410 | 지우겠습니다. | 에그。 | 2006.07.21 | 22 |
409 | 중수를 위한 맵배치 강좌[1] [17] | Mustart | 2006.07.20 | 543 |
408 | [H.N.1] 투명색 ? 투명색이 뭐지 ? [7] | 혼노 | 2006.07.17 | 235 |
407 | 캐릭터 레이더로 칩셋 맘에드는부분 옮기는 법 | 소미안 | 2006.07.15 | 92 |
406 | 나도 왕초보는 절대적 아니다! (下) | 알피지2천 | 2006.07.12 | 97 |
405 | 맵배치? 마스터! [동굴] [10] | -H- | 2006.07.09 | 673 |
» | 최대공약수와 최소공배수 구하기 [13] | Yggdrasil | 2006.07.09 | 524 |
403 | 맵배치? 마스터! [산] [14] | -H- | 2006.07.09 | 638 |
402 | 난 기본으로 논다! 1강 - 맵 [실내편] | Adast | 2006.07.02 | 154 |
401 | 게임 시나리오의 특성(3) | 카스-오로치 | 2006.07.01 | 135 |
400 | 게임 시나리오의 특성(2) | 카스-오로치 | 2006.07.01 | 38 |
399 | 게임 시나리오의 특성(1) | 카스-오로치 | 2006.07.01 | 82 |
398 | 게임마케팅 및 저작권(4) | 카스-오로치 | 2006.07.01 | 27 |
397 | 게임마케팅 및 저작권(3) | 카스-오로치 | 2006.07.01 | 26 |
396 | 게임마케팅 및 저작권(2) | 카스-오로치 | 2006.07.01 | 91 |
395 | 게임마케팅 및 저작권(1) | 카스-오로치 | 2006.07.01 | 61 |
394 | 장르별 게임 플랫폼(3) | 카스-오로치 | 2006.07.01 | 35 |
393 | 장르별 게임 플랫폼(2) | 카스-오로치 | 2006.07.01 | 49 |
392 | 장르별 게임 플랫폼(1) | 카스-오로치 | 2006.07.01 | 49 |