生成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...