페리 수열(Farey sequence)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

페리 수열(Farey sequence)

on

  • 4,517 views

페리 수열(farey sequence) 특징을 알아보고 관련된 project euler 문제 71, 72, 73을 풀어본다. ...

페리 수열(farey sequence) 특징을 알아보고 관련된 project euler 문제 71, 72, 73을 풀어본다.

풀이 소스 코드를 제거하고 올림. (project euler에서 풀이를 공유하는 건 권장하지 않기 때문)

Statistics

Views

Total Views
4,517
Views on SlideShare
1,684
Embed Views
2,833

Actions

Likes
4
Downloads
8
Comments
0

6 Embeds 2,833

http://ohyecloudy.com 2733
http://feeds.feedburner.com 51
http://www.hanrss.com 40
http://cloud.feedly.com 5
http://0.0.0.0 3
http://114.111.42.144 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

페리 수열(Farey sequence) Presentation Transcript

  • 1. 페리 수열 / farey sequence𝐹𝑝𝑟𝑒𝑠𝑒𝑛𝑡𝑖𝑜𝑛 =01,12, … ,페리farey,수열sequence, … ,ohyeohyecloudy,cloudy.com, … ,0 + 11 + 2 ohyecloudy / ohyecloudy.com2013-06-08
  • 2. 어쩌다가 이런 주제로…• Project Euler 삽질이 이끌었다.• 힘으로 푼 뒤 알아 보니 페리 수열
  • 3. 페리 수열 특징을 알아본다.• + 관련된 Project Euler 문제 풀이• 물론 Clojure로
  • 4. 페리 수열?
  • 5. 페리 수열 𝐹𝑛은0 ≤ ℎ ≤ 𝑘 ≤ 𝑛 , gcd ℎ, 𝑘 = 1을만족하는ℎ𝑘를 오름차순으로 나열한 수열
  • 6. 페리 수열 𝐹𝑛은0 ≤ ℎ ≤ 𝑘 ≤ 𝑛 , gcd ℎ, 𝑘 = 1을만족하는ℎ𝑘를 오름차순으로 나열한 수열기약분수irreducible fraction진분수proper fraction
  • 7. 𝐹1 =01,11𝐹2 =01,12,11𝐹3 =01,13,12,23,11𝐹4 =01,14,13,12,23,34,11⋯
  • 8. 어떤 특징을 가진 수열일까?• 기본적인 3가지 특징만 소개• 문제 풀면서 추가로~
  • 9. 𝐹𝑞에서𝑎𝑏<𝑝𝑞<𝑐𝑑인𝑝𝑞는𝑎+𝑐𝑏+𝑑로 구할 수 있다1
  • 10. 𝐹𝑞에서𝑎𝑏<𝑝𝑞<𝑐𝑑인𝑝𝑞는𝑎+𝑐𝑏+𝑑로 구할 수 있다1알고 있는 항member
  • 11. 𝐹𝑞에서𝑎𝑏<𝑝𝑞<𝑐𝑑인𝑝𝑞는𝑎+𝑐𝑏+𝑑로 구할 수 있다1새롭게 추가되는 항이상하게 더하고 있어.
  • 12. 13+12=25• 패기 넘치는 분수 더하기• 바보 셈freshman sum• mediant
  • 13. 𝐹1 =01,11𝐹2 =01,12,11𝐹3 =01,13,12,23,11⋯0 + 11 + 1=120 + 11 + 2=131 + 12 + 1=23
  • 14. 𝐹𝑛은 𝐹𝑛−1을 포함한다.2
  • 15. 𝐹1 =01,11𝐹2 =01,12,11𝐹3 =01,13,12,23,11𝐹4 =01,14,13,12,23,34,11⋯
  • 16. 𝐹1 =01,11𝐹2 =01,12,11𝐹3 =01,13,12,23,11𝐹4 =01,14,13,12,23,34,11⋯
  • 17. 𝑎+𝑐𝑏+𝑑는 𝐹𝑏+𝑑에서 처음으로 나타난다.3
  • 18. 𝑎+𝑐𝑏+𝑑는 𝐹𝑏+𝑑에서 처음으로 나타난다.3분모와 같다
  • 19. 𝐹1 =01,11𝐹2 =01,12,11𝐹3 =01,13,12,23,11𝐹4 =01,14,13,12,23,34,11⋯
  • 20. 기본적인 특징들•𝑎𝑏<𝑝𝑞<𝑐𝑑인𝑝𝑞=𝑎+𝑐𝑏+𝑑• 𝐹𝑛은 𝐹𝑛−1을 포함•𝑎+𝑐𝑏+𝑑는 𝐹𝑏+𝑑에서 처음으로 나타남
  • 21. 이제 문제 풀이• + 풀이에 필요한 추가적인 특징 설명
  • 22. Consider the fraction, 𝑛𝑑, where 𝑛 and 𝑑 are positive integers. If 𝑛 < 𝑑 andHCF 𝑛, 𝑑 = 1, it is called a reduced proper fraction.If we list the set of reduced proper fractions for 𝑑 ≤ 8 in ascending order ofsize, we get:18, 17, 16, 15, 14, 27 , 13, 38, 25, 37, 12, 47 , 35, 58, 23, 57, 34, 45 , 56, 67, 78It can be seen that 25 is the fraction immediately to the left of 37.By listing the set of reduced proper fractions for 𝑑 ≤ 1,000,000 in ascendingorder of size, find the numerator of the fraction immediately to the left of 37.http://projecteuler.net/problem=71ProjectEuler#71
  • 23. 𝐹1,000,000에서37보다 작은 수 중 가장 큰 수를 구하라.
  • 24. 𝐹8 = ⋯ , 25 , 37 , ⋯𝐹12 = ⋯ , 25 , 512 , 37 , ⋯𝐹19 = ⋯ , 512 , 819 , 37 , ⋯…𝐹1,000,000 = ⋯ , 𝑥, 37 , ⋯계산필요 없다
  • 25. (defn rhs-farey-pair [[a b c d]](let [mediant-n (+ a c)mediant-d (+ b d)][mediant-n mediant-d c d]))(rhs-farey-pair [2 5 3 7]) [5 12 3 7]25 , 37512 , 37
  • 26. Consider the fraction, 𝑛𝑑, where 𝑛 and 𝑑 are positive integers. If 𝑛 < 𝑑 andHCF 𝑛, 𝑑 = 1, it is called a reduced proper fraction.If we list the set of reduced proper fractions for 𝑑 ≤ 8 in ascending order ofsize, we get:18, 17, 16, 15, 14, 27 , 13, 38, 25, 37, 12, 47 , 35, 58, 23, 57, 34, 45 , 56, 67, 78It can be seen that there are 3 fractions between 13 and 12.How many fractions lie between 13 and 12 in the sorted set of reduced properfractions for 𝑑 ≤ 12,000?http://projecteuler.net/problem=73ProjectEuler#73
  • 27. 𝐹12,000에서13보다 크고12보다 작은 항의 개수를구하라.
  • 28. 𝐹12,000을 구하려면 𝐹11,999을 구해야 한다.뒤에 붙는 형식이 아니라 중간중간 삽입stack overflow 냄새
  • 29. 바로 다음 항을 구할 수 있나?• 𝑛이 주어졌을 때.
  • 30. 𝐹12,000 = 01 , 112,000 , 𝑥, ⋯이 두 항은 알 수 있다.항상 01 , 1𝑛
  • 31. 𝑎𝑏<𝑐𝑑<𝑝𝑞즉, 이 두 항으로 다음 항을 구하는 방법
  • 32. 𝑎𝑏<𝑐𝑑=𝑎 + 𝑞𝑏 + 𝑞<𝑝𝑞𝒌𝑐𝒌𝑑=𝑎+𝑝𝑏+𝑞를 만족하는 𝒌가 존재𝑐𝑑는 기약분수이기 때문
  • 33. 𝑝𝑞=𝑘𝑐 − 𝑎𝑘𝑑 − 𝑏𝒌𝑐𝒌𝑑=𝑎 + 𝑝𝑏 + 𝑞𝑛
  • 34. max(𝑘) =𝑛 + 𝑏𝑑𝑘𝑑 − 𝑏 ≤ 𝑛𝑘 ≤𝑛 + 𝑏𝑑
  • 35. 𝐹𝑛 =…,𝑎𝑏,𝑐𝑑,𝑘𝑐−𝑎𝑘𝑑−𝑏,…𝑘 =𝑛 + 𝑏𝑑
  • 36. 𝐹4 =01,14,13,12, 𝑥, …𝑎𝑏=13,𝑐𝑑=12, 𝑘 =4+32= 3 𝑝𝑞=23
  • 37. (defn next-term [[a b c d n]](let [k (int (/ (+ n b) d))p (- (* k c) a)q (- (* k d) b)][c d p q n]))(next-term [1 3 1 2 4])[1 2 2 3 4]13,1212,23
  • 38. (defn farey-seq [n](take-while#(<= % 1)(map (fn [[a b _ _ _]] (/ a b))(iterate next-term [0 1 1 n n]))))𝐹2 =01,12,11,32,21, ⋯진분수 가분수improper fraction
  • 39. Consider the fraction, 𝑛𝑑, where 𝑛 and 𝑑 are positive integers. If 𝑛 < 𝑑 andHCF 𝑛, 𝑑 = 1, it is called a reduced proper fraction.If we list the set of reduced proper fractions for 𝑑 ≤ 8 in ascending order ofsize, we get:18, 17, 16, 15, 14, 27 , 13, 38, 25, 37, 12, 47 , 35, 58, 23, 57, 34, 45 , 56, 67, 78It can be seen that there are 21 elements in this set.How many elements would be contained in the set of reduced proper fractionsfor 𝑑 ≤ 1,000,000?http://projecteuler.net/problem=72ProjectEuler#72
  • 40. |𝐹1,000,000| − 2를 구하라.
  • 41. 01,11제외|𝐹1,000,000| − 2를 구하라.
  • 42. 𝐹1,000,000을 구해서 개수를 센다면• 세월아 네월아.• 개수만 빠르게 구할 수 있을까?
  • 43. 𝐹𝑛에서는𝐹𝑛−1에 없는 어떤 항이 추가되나?gcd 𝑛, 𝑎 = 1을 만족하는𝑎𝑛가 추가
  • 44. 𝐹𝑛 = 𝐹𝑛−1 + 𝜑(𝑛)Eulers totient function1 ≤ 𝑘 ≤ 𝑛, gcd 𝑛, 𝑘 = 1을 만족하는 정수 𝑘 개수
  • 45. 𝐹𝑛 = 1 + 𝜑(𝑚)𝑛𝑚=1𝐹1 = 2이고 𝜑 1 = 1이기 때문
  • 46. 𝜑 𝑛 = 𝑛 (1 −1𝑝)𝑝|𝑛𝑛을 나머지 없이 나누는 소수prime
  • 47. 𝜑 2 = 𝜑 21= 2 1 −12= 1𝜑 3 = 𝜑 31= 3 1 −13= 2𝜑 4 = 𝜑 22= 4 1 −12= 2𝜑 36 = 𝜑 2232= 36 1 −121 −13= 12
  • 48. (defn euler-totient [n](* n(apply*(map #(- 1 (/ 1 %))(filter#(zero? (mod n %))(take-while #(<= % n) primes))))))
  • 49. (defn farey-seq-length [n](+ 1(apply +(map euler-totient(range 1 (inc n))))))
  • 50. 마무리
  • 51. • 페리 수열 𝐹𝑛은 0 ≤ ℎ ≤ 𝑘 ≤ 𝑛 , gcd ℎ, 𝑘 = 1을 만족하는ℎ𝑘를 오름차순으로 나열한 수열.• 바보 셈으로 다음 항을 구하는 재미있는 특징.• Project Euler 문제는 어떤 수열에 관련된 문제인지 안 가르쳐 줘
  • 52. CC BY-NC-SA 3.0ReferenceFarey sequence – wikipedia페리 수열 – wikipediamediant – wikipedia바보 셈에서 페리수열로 – 네이버캐스트@ohyecloudy