"Stern-Brocot tree"是用來產生一組分數 m/n 集合的一種漂亮的型式(其中m, n互質),首先由兩個分數開始:
,並依下列原則重複計算而得:
878 323
1 1
RRLRRLRLLLLRLRRR
______________________________________________________________________________________

在相鄰的兩分數 與
之中插入一分數
例如,一開始我們在 與
之中插入一數,得到一組分數集合,
這三個數中間又可以另外插入兩個分數:
以此類推,得出另一組分數 ,
整個分數集合可以用二元樹(binary tree)來表示:
此結構是有序的,不同位置上的分數皆不會相同。
事實上,我們可以把Stern-Brocot tree當作是一種數值系統,用此系統來表示有理數,因為每一個正的、最簡的分數剛好只出現一次,若我們以字母L與R來表示對右子樹與左子樹的尋訪,則此二元數上的每一個分數都可以用唯一的一組字串來表示。例如,LRRL是指由 開始拜訪右子節點
, 再拜訪左子節點
, 再到左子節點
, 最後到右子節點
,所以我們可以用LRRL來表示
。用這種方式每個分數都可以用一組只包含L, R的字串來表示。
本問題會給你一個正的有理分數,你必須以Stern-Brocot數值系統來表示它。
Input
輸入包含多值測試資料,每組資料一行,共有兩個正整數 m 與 n,且m, n互質,當m=1, n=1時表示輸入結束。
Output
請以Stern-Brocot數值系統來表示每組輸入。
Sample Input
5 7878 323
1 1
Sample Output
LRRLRRLRRLRLLLLRLRRR
沒有留言:
張貼留言