用SQL實現Farey數列
如果指定一個分母的上限,再把最簡分數按從小到大的順序排列,比如說,當分母不大於7時,我們可以得到以下17個分數:1/7,1/6,1/5,1/4,2/7,1/3,2/5,3/7,1/2,4/7,3/5,2/3,5/7,3/4,4/5,5/6,6/7。這就是所謂的“法萊數列”(Farey序列)。
var n number exec :n:=7 with t as(select level l from dual connect by level<=:n), t2 as(select a.l/b.l v,a.l||'/'||b.l s, row_number()over(partition by a.l/b.l order by a.l) rn from t a,t b where a.l<b.l) select listagg(s,',')within group(order by v)s from t2 where rn=1; ------------------------------------------------------------------- 1/7,1/6,1/5,1/4,2/7,1/3,2/5,3/7,1/2,4/7,3/5,2/3,5/7,3/4,4/5,5/6,6/7
SQL因為內建排序功能,很容易把相等的分數值分組在一起
相關文章
- 用陣列實現大數加法陣列
- sql實現行轉列SQL
- 用 Rust 實現佇列Rust佇列
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- DELPHI也可以實現控制元件陣列,用定義陣列變數實現控制元件陣列 (轉)控制元件陣列變數
- 用pandas實現SQL功能SQL
- 用閉包替換遞迴實現斐波拉契數列遞迴
- C#中實現列舉數C#
- 用sql實現的n王后SQL
- POJ2487Farey Sequence(尤拉函式&&法雷級數)函式
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- 用棧實現佇列,實現Enqueue和Dequeue方法佇列ENQ
- [php]運用變數引用實現一維陣列轉多維樹狀陣列PHP變數陣列
- 用JavaScript實現棧與佇列JavaScript佇列
- 用2個棧實現佇列佇列
- 用兩個棧實現佇列佇列
- mybatis實現變數定義,實現sql業務程式碼MyBatis變數SQL
- js實現斐波那契數列JS
- 斐波那契數列js 實現JS
- 裴波那契數列(javascript實現)JavaScript
- 用SQL實現撲克牌排序SQL排序
- 用SQL實現99乘法表SQL
- leedcode-用佇列實現棧佇列
- leedcode-用棧實現佇列佇列
- 用 Redis 實現分散式鎖與實現任務佇列Redis分散式佇列
- 鏈式佇列—用連結串列來實現佇列佇列
- 用margin實現兩列布局中的自適應列
- oracle行轉列、列轉行、連續日期數字實現方式及mybatis下實現方式OracleMyBatis
- 資料結構實驗之連結串列八:Farey序列資料結構
- 使用Python實現斐波那契數列Python
- JavaScript 實現:輸出斐波那契數列JavaScript
- js迭代器實現斐波那契數列JS
- 斐波那契數列的python實現Python
- 用連結串列實現佇列的功能佇列
- 教你如何運用golang實現陣列分割Golang陣列
- 用ImageMagick實現數字盲水印