當前位置:首頁 » 操作系統 » 序列與演算法

序列與演算法

發布時間: 2023-03-10 08:13:24

① 求序列號生成演算法

隨機序列的演算法
作者:unknown 更新時間:2005-03-17

找到了兩個演算法, 第一個很簡單, 但可惜不是隨機的, 第二個是典型的偽隨機數演算法, 可惜要用到2的幾百萬次方這樣巨大的整數, 真痛苦
要是有UNIX上計算密碼的源代碼就好了

第一種做法:
f(k) = (k*F(N-1)) mod F(N)
其中,
k是一個序列號, 就是要取的那個數的順序號
F(N)是這樣一個序列 F(0) = 0, F(1) = 1, F(N+2) = F(N+1)+F(N) (for N>=0)

第二種做法

V = ( ( V * 2 ) + B .xor. B ... )(Mod 2^n)
N+1 N 0 2
V是要取的隨機數, B是個種子, n是隨機數的最大個數

原來這個問題, 很高難, 不少數學高手都為解決這個問題寫了論文, 咳咳, 偶真是個白痴

呵呵, 效果肯定是不錯啦, 因為用不到很大的表.
至於應用是這樣的, 比如, 你要給每個用戶在注冊的時候一個ID但有不希望用戶在看到自己的ID的時候能知道其他用戶的ID, 如果用SEQUENCE來生成ID的話, 一個用戶只要把自己的ID減1就能得到其它用戶的ID了. 所以要用隨機數來做ID, 這樣用戶很難猜到其他用戶的ID了.

當然主要的問題是, 隨機數可能重復. 因此希望使用一個隨機數做種子用它來確定一組"無規律"的自然數序列, 並且在這個序列中不會出現重復的自然數. 在這里使用的方法生成的序列並不是沒有規律的, 只不過這個軌律很難被發現就是了.
Xn+1 = (aXn + b) mod c (其中, abc通常是質數)是一種被廣泛使用的最簡單的隨機數發生演算法, 有研究表表明這個演算法生成的隨機數基本上符合統計規律, JAVA, BORLAND C等用的都是這個方法, 一般只要保證第一個種子是真正的隨機數就行了,

下面來說一下重復的問題,
上述方法會有可能出現重復, 因為當(aXn + b)有可能是同樣的數或者說余數相同的數, 因此要想不重復就得變形
偶想到的方法是
Xn=(a*n + b) mod c n是一個在1到c之間的整數, a*n + b就是一個線性公式了, 且若n不同則a*n + b也不同, 它們除上質數c得到的余數也肯定不同, 因為 若不考慮a和b而只有n的時候, 每次的結果都是n,而線性公式, 只不過移動了這條直線的位置和斜率而已, 每個結果仍然不會相同的,
為了增加不可預計性, 偶又為上面那個公式設計了, 隨機數種子, 於是就變成了這個樣子
F(N)=(隨機數*(N+隨機數))MOD 一個質數
這樣就能夠產生 1到選定質數之間的一個"無規律"的自然數序列了, 只要改變隨機數就能改變序列的次序

在應用的時候, 要把隨機數種子和最後用到的序列號保存到一個表裡, 每此使用的時候取出來算好, 再把序列號更新一下就可以了
具體地說, 就是可以建一個表來保存每個序列的隨機數種子, 然後再為這個序列建一個SEQUENCE就行了
然後就
SELECT MOD(序列控製表.隨機數*(SEQ.NEXTVAL+序列控製表.隨機數)),序列控製表.質數)
FROM 序列控製表
WHERE 序列控製表.序列ID=XX
就OK了
注意 序列控製表.質數 決定了序列的范圍

http://www.ddvip.net/database/mssql/index2/81.htm /* CopyRight */

當然,我以前也見過那種類型的,就是「真隨機」,大概是根據隨機按鍵的鍵位和滑鼠在CRT上任意的「隨機」位置以及當時的系統時間(或相對間隔,一般至少毫秒級)來適應某種較復雜的演算法來產生的。...其實,可以產生隨機效應的自變數的確是很多的,就看你怎麼用好了。

去看看系統論和混沌學吧,還有高等數學中的分形理論和物理熱學中的耗散結構理論,可能會有所幫助,呵呵。
最後,倒有興趣問問你要的隨機數是做什麼用呢,是個子問題嗎?

② 基因組序列比對演算法介紹(一)

基因組重測序中序列比對介紹

重測序基因組數據比對,是指將測序儀下機fastq數據(NGS read序列,通常100-150bp),與人類參考基因組(reference)進行匹配,允許錯配(mismatch),插入缺失(indel),目的是在參考基因組找到序列最相似的位置,通常是基因組分析(包括 variation calling,ChIP-seq,RNA-seq,BS-seq)流程的第一步。

常用演算法

圖一

漢明距離(Hamming distance)表示兩個(相同長度)字對應位置不同的數量,我們以d(x,y)表示兩個字x,y之間的漢明距離。對兩個字元串進行異或運算,並統計結果為1的個數,那麼這個數就是漢明距離。圖中read1最佳位置的方法,就是通過查找最小漢明距離的實現的。

編輯距離(Edit distance)是針對二個字元串(例如英文字)的差異程度的量化量測,量測方式是看至少需要多少次的處理才能將一個字元串變成另一個字元串。圖中read3最佳位置,通過查找最我輯距離的方法實現。

圖二

全局比對(Global alignment):全局比對是指將參與比對的兩條序列裡面的所有字元進行比對。全局比對在全局范圍內對兩條序列進行比對打分,找出最佳比對,主要被用來尋找關系密切的序列。其可以用來鑒別或證明新序列與已知序列家族的同源性,是進行分子進化分析的重要前提。其代表是Needleman-Wunsch演算法。圖一中,read3使用全部比對。

局部比對(Local alignment):與全局比對不同,局部比對不必對兩個完整的序列進行比對,而是在每個序列中使用某些局部區域片段進行比對。其產生的需求在於、人們發現有的蛋白序列雖然在序列整體上表現出較大的差異性,但是在某些局部區域能獨立的發揮相同的功能,序列相當保守。這時候依靠全局比對明顯不能得到這些局部相似序列的。其次,在真核生物的基因中,內含子片段表現出了極大變異性,外顯子區域卻較為保守,這時候全局比對表現出了其局限性,無法找出這些局部相似性序列。其代表是Smith-Waterman局部比對演算法。圖一中,read2使用局部比對。

圖三

Smith-Waterman演算法介紹

Smith-Waterman是由Temple F. Smith和Michael S. Waterman於1981年提出的一種進行局部序列比對(相對於全局比對)的演算法,用於找出兩個核苷酸序列或蛋白質序列之間的相似區域。該演算法的目的不是進行全序列的比對,而是找出兩個序列中具有高相似度的片段。S-W演算法基於動態規劃,它接受任意長度、任意位置、任意序列的對齊,並確定是否能找到最優的比對。

簡單地說就是,動態規劃找到問題中較小部分的解,然後把它們放在一起,形成整個問題的一個完整的最優最終解。

它優於BLAST和FASTA演算法,因為它搜索了更大的可能性,具有更高的敏感性。

S-W演算法不是一次查看整個序列,而是對多個長度的片段進行比較,尋找能夠最大化得分的片段。演算法本身本質上是遞歸的:

圖四

演算法步驟如下:

基因組分析***** 微信 公眾號推出 《50篇文章深入理解NGS》系列文章, 第三篇文章 《基因組序列比對演算法介紹(一)》,爭取每周更新一篇高質量生信干貨帖子。

關注 "基因組分析" 微信公眾號,了解最新最全生信分析知識。

③ 序列比對的演算法過程

實際操作中利用計算機程序實現序列比對的基本演算法。序列比對不僅需要考慮子序列之間的匹配,而且需要對整個序列進行比較。也就是說,必須考慮兩個序列中所有殘基的匹配。這就意味著,不可能使所有殘基都能嚴格匹配。在這種情況下,序列比對中確定空位的過程變得十分復雜。
在進行序列兩兩比對時,有兩方面問題直接影響相似性分值:取代矩陣和空位罰分。 空位罰分是為了補償插入和缺失對序列相似性的影響,由於沒有什麼合適的理論模型能很好地描述空位 問題,因此空位罰分缺乏理論依據而更多的帶有主觀特色。一般的處理方法是用兩個罰分值,一個對插入的第一個空位罰分,如10-15;另一個對空位的延伸罰分,如1-2。對於具體的比對問題,採用不同的罰分方法會取得不同的效果。
對於比對計算產生的分值,到底多大才能說明兩個序列是同源的,對此有統計學方法加以說明,主要的思想是把具有相同長度的隨機序列進行比對,把分值與最初的比對分值相比,看看比對結果是否具有顯著性。相關的參數E代表隨機比對分值不低於實際比對分值的概率。對於嚴格的比對,必須E值低於一定閾值才能說明比對的結果具有足夠的統計學顯著性,這樣就排除了由於偶然的因素產生高比對得分的可能。

④ 優必傑最近推出了不插電編程課,什麼叫不插電編程課

不插電編程課是用不插電形式學習編程,學生自己用筆在白板紙設計。如需學習少兒編程推薦選擇童程童美,該機構提供更高標準的科技素質教育,更利於編程底層邏輯和思維的養成,更能激發孩子自主學習的熱情。學少兒編程可以提高孩子邏輯思維、專注力!

童程童美不插電編程課步驟如下:
1、序列與演算法:序列,就是做事的順序。而演算法,就是一種特殊的,專門用於解決某個問題的序列。
2、認識模式:孩子們將學習如何尋找模式,用物品分類的方式強化對模式的認識。
3、邏輯判斷:一些復雜的情況是這些基礎結構無法描述的,這個時候就要引入一個新的概念,判斷。
4、流程圖:如果判斷的條件很多,判斷的順序又分先後的話,就很容易讓人混亂,為了便於表達演算法邏輯,會在這里引入一個新的概念,流程圖。
5、處理錯誤:出了錯誤不可怕,如何分析,解決,改良這些錯誤,才最重要。童程童美少兒編程體驗課,點擊可免費報名試聽

想了解更多關於不插電編程的相關內容,推薦咨詢童程童美。童程童美專注於中國6-18歲青少兒編程教育,經過多年,研發出針對中國兒童的編程教育體系,在140多所中小學院校開展了編程課程。實行「嚴選拔、強實力、常培訓」的教師管理標准,真人老師全部全職,堅持為學生提供高品質編程素質教育。

⑤ 實序列的FFT演算法

在以上討論FFT演算法中,均假定序列x(l)為復的,但實際問題中的序列大多為實的。當然,我們可以把實序列處理成虛部為零的復序列。因此,就要引進許多零參加運算。這樣一來,在機器運算時間和存儲單元方面都將造成很大的浪費。在本段中,我們介紹對實序列x(l)應用FFT演算法的一個有效方法。

1.同時計算兩個實序列的FFT演算法

設有N=4的兩個實序列x1(l)與x2(l)。為了求得它們的譜X1(m)與X2(m),我們用此二實序列構造成如下復序列

物探數字信號分析與處理技術

利用上一段的方法,可以求得復序列x(l)的譜X(m)。根據(7-3-1)得到

物探數字信號分析與處理技術

上式中的m用N-m代替,則得

物探數字信號分析與處理技術

將上式兩端取共軛,根據對稱性有

物探數字信號分析與處理技術

根據DFT的復共軛性質,對於實序列x1(l)與x2(l),有

物探數字信號分析與處理技術

於是從(7-3-4)得到

物探數字信號分析與處理技術

聯立求解(7-3-2)和(7-3-6)便得到

物探數字信號分析與處理技術

例如設有兩個N=4點的實序列,

物探數字信號分析與處理技術

我們用它們構造一個N=4點的復序列

物探數字信號分析與處理技術

利用FFT演算法求X(m),m=0,1,2,3(圖7-3-1),

圖7-3-1 N=4點的FFT演算法流程圖

於是得到

物探數字信號分析與處理技術

因此從式(7-3-7)得到

物探數字信號分析與處理技術

物探數字信號分析與處理技術

2.實序列的FFT演算法

設有N點的實序列x(l),l=0,1,2,…,N-1。按照點的奇偶編號,將它們分成N/2個點的兩個子序列

物探數字信號分析與處理技術

設x1(l)的譜與x2(l)的譜分別為X1(m)與X2(m)

物探數字信號分析與處理技術

其中

於是可以將實序列x(l)的譜X(m),用兩個子序列x1(l),x2(l)的譜X1(m),X2(m)來表示

物探數字信號分析與處理技術

其中

物探數字信號分析與處理技術

注意,x1(l),x2(l)與X1(m),X2(m)均以N/2為周期,

利用x1(l)、x2(l)構成如下復序列

物探數字信號分析與處理技術

利用FFT演算法可以求得復序列 的譜 。根據(7-3-7)就求得兩個實子序列的譜X1(m)與X2(m)

物探數字信號分析與處理技術

有了X1(m),X2(m),根據(7-3-10)就可求得X(m)。以上就是用FFT演算法求實序列x(l)的譜X(m)的方法。必須指出,用公式(7-3-10)求X(m)時,第一,兩個實子序列的譜X1(m),X2(m)及復序列x珓(l)的譜珘X(m)均是以N/2為周期的周期序列;第二,由於x

(l)是實序列,根據DFT的復共軛性質有X(m)=X*(N-m),m=0,1,…,N/2,故只需求得前(N/2)+1個點的X(m),就得到全部N個點的X(m)了

例如,有N=8點的實序列,

物探數字信號分析與處理技術

首先,按點的奇偶編號分成兩個實子序列,

物探數字信號分析與處理技術

其次用它們構造如下復序列,

物探數字信號分析與處理技術

用FFT演算法求此復序列的譜 (圖7-3-2)

圖7-3-2 N=4點的FFT演算法流程圖

於是得到:

根據周期性,有

物探數字信號分析與處理技術

根據(7-3-12)式,

物探數字信號分析與處理技術

根據周期性,有

物探數字信號分析與處理技術

故最終由(7-3-10)得到

物探數字信號分析與處理技術

⑥ 序列比對及演算法模式的選擇

選擇序列比對的方法:Muscle或者ClustalW。 ClustalW 的基本原理是首先做序列的兩兩比對,根據該兩兩比對計算兩兩距離矩陣,是一種經典的比對方法,使用范圍也比較廣泛。 Muscle 的功能僅限於多序列比對,它的最大優勢是速度,比ClustalW的速度快幾個數量級,而且序列數越多速度的差別越大。方法可以通過點擊圖中上方Alignment或者下方的圖標「W」和「Muscle」來選擇。如果你的序列是 DNA編碼序列 ,就一定要選擇 Align Codons ,因為序列通過密碼子比對比DNA序列的比對會更加真實,避免間隙對比對結果產生的影響。
(但是該選項會因為序列中含有終止密碼而報錯。)
比對之後要去檢查一下比對的情況,有的差異很大的或許是因為序列方向反了,這個時候要把它反轉回來,右擊這條序列,點擊Reverse Complement,反轉後一定要再次點擊比對,檢查是否大部分都對齊了。

分析後返回主頁面,接下來我們要選擇一個最優的模型,提高建樹的精確度。點擊 MODELS 中的 Find Best DNA/Protein Models(ML) 軟體就會根據你的數據幫你計算尋找最適合的模型。
分析計算結果。具有 最低BIC分數 (BayesianInformation Criterion)的模型被認為 是最好地描述替代模式 。對於每個模型,還給出了AICc值(Akaike Information Criterion, corrected,值越低擬合程度越好),以及用來計算上述兩個分值的最大似然值(lnL)和參數數量(包括分支長度)。在這里就可以看到,BIC分數最低的模型是K2+G+I,K2+G+I在這里就是最好的模型。
但因為實際在後面的模型選擇中, 軟體有時沒有提供組合的模型來選擇 ,所以我們繼續看下面的BIC分數,可以找到 單個模型 中得分 最小的 ,就是我們在這里要選擇的最優模型。

熱點內容
編程掙錢嗎 發布:2025-08-22 06:31:21 瀏覽:1000
敬請存儲 發布:2025-08-22 06:25:42 瀏覽:609
linuxphp7配置 發布:2025-08-22 06:17:01 瀏覽:414
shellftp腳本 發布:2025-08-22 06:11:57 瀏覽:796
sql資料庫打開 發布:2025-08-22 05:58:36 瀏覽:888
伺服器IP怎麼找回 發布:2025-08-22 05:41:28 瀏覽:606
手機百度怎樣上傳視頻 發布:2025-08-22 05:28:08 瀏覽:832
亂碼源碼 發布:2025-08-22 05:26:41 瀏覽:204
c語言中基本的數據類型 發布:2025-08-22 05:24:25 瀏覽:809
Android資料庫開源 發布:2025-08-22 05:18:02 瀏覽:631