生成Farry序列的Prolog程式

2021-04-13 23:19:30 字數 1868 閱讀 6759

生成farry序列的prolog程式

設n為正整數,n階farey序列為[0,1]區間內所有分母小於或等於n的所有有理數遞增排列所構成的序列。記0=0/1,1=1/1,fn為n階farey序列,則1~7階的farey序列為:

farry序列的基本數學性質

關於farey序列的構造規律,我們有如下定理:

定理 (1)若p1/q1和p2/q2為fn中相繼的兩項,則p2q1-p1q2=1且q1+q2>n

(2)若p1/q1, p2/q2 和p3/q3為fn中相繼的3項,則p2/q2=(p1+p3)/(q1+q3)

生成farry序列的prolog程式

// 第乙個arg表示級數的階,第二個表為生成的farry級數表

farry_series(1, [fr(0,1), fr(1,1)]).

farry_series(n, fs):-

n > 1,

farry_series_4(2, n, [fr(0,1), fr(1,1)], fs).

// 第乙個arg值k表示目前已經生成的farry級數的階,第二個n為目標級數的階,第三個為k階farry級數,是乙個部分結果,第四個為目標階的farry級數

farry_series_4(k, n, fs, fs):-

k > n.

farry_series_4(k, n, fs0, fs):-

k <= n,

g(0, k, g),

frlist_merge(fs0, g, fs1),

k1 = k + 1,

farry_series_4(k1, n, fs1, fs).

// 形成所有分母為n的既約分數,例如n=4時,生成表[1/4,3/4] 

g(k, n, ):-k > n, !.

g(k, n, [fr(k, n)|g]):-

***(k, n, 1), !,          // *** is a greatest common divisor predicate

k1 = k + 1,

g(k1, n, g).

g(k, n, g):-

k1 = k + 1,

g(k1, n, g).

// merge two fract lists orderly 

frlist_merge(, fs, fs).

frlist_merge(fs, , fs).

frlist_merge([f1|fs1], [f2|fs2], [f1|fs]):-

fract_ls(f1, f2), !,

frlist_merge(fs1, [f2|fs2], fs).

frlist_merge(fs1, [f2|fs2], [f2|fs]):-

frlist_merge(fs1, fs2, fs).

fract_ls(fr(p1, q1), fr(p2, q2)):-

p1*q2 < p2*q1.

frlist_print():-

write("{}").

frlist_print([f|fs]):-

frlist_print_first_element(f),

frlist_print_rest_elements(fs).

frlist_print_first_element(fr(p, q)):-

write("").

frlist_print_rest_elements([fr(p, q)|fs]):-

write(",", p, "/", q),

frlist_print_rest_elements(fs).

以下是上述程式的生成結果: 

序列生成 RNN對抗序列生成

摘要 證明了文字的對抗樣本可以干擾rnn的分類結果。介紹 兩種方法 the fast gradient sign method the forward derivative method 主要貢獻 形式化對抗樣本優化問題 將對抗擾動加到其他輸入中 評估了文字對抗樣本表現 2.關於迴圈神經網路 機器學...

序列生成 常用的特殊序列號生成公式大全

在excel函式中,有時候我們需要生成特殊的序列號。如果用人工乙個個設定太繁瑣,且容易出錯,我們可以運用excel行 列函式,再搭配相應的函式就能生成特殊的序列號。今天讓我們一起來學習如何生成特殊的序列號。一 row函式 row函式是函式中的一種,作用是返回乙個引用的行號。如果省略 referenc...

序列生成 序列生成 SeqGAN和RankGAN

這篇文章主要介紹兩個序列生成的gan模型,分別是發表在aaai 2017上的seqgan和 nips 2017上的 rankgan seqgan sequence generative adversarial nets with policy gradient arxiv.org adversari...