RSA算法 :首先, 找出三個(gè)數(shù), p, q, r, 其中 p, q 是兩個(gè)相異的質(zhì)數(shù), r 是與 (p-1)(q-1) 互質(zhì)的數(shù)...... p, q, r 這三個(gè)數(shù)便是 person_key,接著, 找出 m, 使得 r^m == 1 mod (p-1)(q-1)..... 這個(gè) m 一定存在, 因?yàn)?r 與 (p-1)(q-1) 互質(zhì), 用輾轉(zhuǎn)相除法就可以得到了..... 再來(lái), 計(jì)算 n = pq....... m, n 這兩個(gè)數(shù)便是 public_key ,編碼過(guò)程是, 若資料為 a, 將其看成是一個(gè)大整數(shù), 假設(shè) a < n.... 如果 a >= n 的話, 就將 a 表成 s 進(jìn)位 (s
標(biāo)簽: person_key RSA 算法
上傳時(shí)間: 2013-12-14
上傳用戶:zhuyibin
C++完美演繹 經(jīng)典算法 如 /* 頭文件:my_Include.h */ #include <stdio.h> /* 展開(kāi)C語(yǔ)言的內(nèi)建函數(shù)指令 */ #define PI 3.1415926 /* 宏常量,在稍后章節(jié)再詳解 */ #define circle(radius) (PI*radius*radius) /* 宏函數(shù),圓的面積 */ /* 將比較數(shù)值大小的函數(shù)寫(xiě)在自編include文件內(nèi) */ int show_big_or_small (int a,int b,int c) { int tmp if (a>b) { tmp = a a = b b = tmp } if (b>c) { tmp = b b = c c = tmp } if (a>b) { tmp = a a = b b = tmp } printf("由小至大排序之后的結(jié)果:%d %d %d\n", a, b, c) } 程序執(zhí)行結(jié)果: 由小至大排序之后的結(jié)果:1 2 3 可將內(nèi)建函數(shù)的include文件展開(kāi)在自編的include文件中 圓圈的面積是=201.0619264
標(biāo)簽: my_Include include define 3.141
上傳時(shí)間: 2014-01-17
上傳用戶:epson850
一元稀疏多項(xiàng)式計(jì)算器[加法和乘法] 問(wèn)題描述: 設(shè)計(jì)一元系數(shù)多項(xiàng)式計(jì)數(shù)器實(shí)現(xiàn)兩個(gè)多項(xiàng)式間的加法、減法。 基本要求: (1) 輸入并建立多項(xiàng)式 (2) 輸出多項(xiàng)式,輸出形式為整數(shù)序列:n,c1,e1,c2,e2……cn,en,其中n是多項(xiàng)式的項(xiàng)數(shù),ci,ei分別為第i項(xiàng)的系數(shù)和指數(shù)。序列按指數(shù)降序排列。 (3) 多項(xiàng)式a和b相加,建立多項(xiàng)式a+b,輸出相加的多項(xiàng)式。 (4) 多項(xiàng)式a和b相減,建立多項(xiàng)式a-b,輸出相減的多項(xiàng)式。 用帶表頭結(jié)點(diǎn)的單鏈表存儲(chǔ)多項(xiàng)式。 測(cè)試數(shù)據(jù): (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3) (x+x2+x3)+0 (4) (x+x3)-(-x-x-3)
標(biāo)簽: 多項(xiàng)式 加法 稀疏 乘法
上傳時(shí)間: 2013-12-03
上傳用戶:561596
數(shù)字運(yùn)算,判斷一個(gè)數(shù)是否接近素?cái)?shù) A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no
上傳時(shí)間: 2015-05-21
上傳用戶:daguda
LCS(最長(zhǎng)公共子序列)問(wèn)題可以簡(jiǎn)單地描述如下: 一個(gè)給定序列的子序列是在該序列中刪去若干元素后得到的序列。給定兩個(gè)序列X和Y,當(dāng)另一序列Z既是X的子序列又是Y的子序列時(shí),稱Z是序列X和Y的公共子序列。例如,若X={A,B,C,B,D,B,A},Y={B,D,C,A,B,A},則序列{B,C,A}是X和Y的一個(gè)公共子序列,但它不是X和Y的一個(gè)最長(zhǎng)公共子序列。序列{B,C,B,A}也是X和Y的一個(gè)公共子序列,它的長(zhǎng)度為4,而且它是X和Y的一個(gè)最長(zhǎng)公共子序列,因?yàn)閄和Y沒(méi)有長(zhǎng)度大于4的公共子序列。 最長(zhǎng)公共子序列問(wèn)題就是給定兩個(gè)序列X={x1,x2,...xm}和Y={y1,y2,...yn},找出X和Y的一個(gè)最長(zhǎng)公共子序列。對(duì)于這個(gè)問(wèn)題比較容易想到的算法是窮舉,對(duì)X的所有子序列,檢查它是否也是Y的子序列,從而確定它是否為X和Y的公共子序列,并且在檢查過(guò)程中記錄最長(zhǎng)的公共子序列。X的所有子序列都檢查過(guò)后即可求出X和Y的最長(zhǎng)公共子序列。X的每個(gè)子序列相應(yīng)于下標(biāo)集{1,2,...,m}的一個(gè)子集。因此,共有2^m個(gè)不同子序列,從而窮舉搜索法需要指數(shù)時(shí)間。
上傳時(shí)間: 2015-06-09
上傳用戶:氣溫達(dá)上千萬(wàn)的
c語(yǔ)言版的多項(xiàng)式曲線擬合。 用最小二乘法進(jìn)行曲線擬合. 用p-1 次多項(xiàng)式進(jìn)行擬合,p<= 10 x,y 的第0個(gè)域x[0],y[0],沒(méi)有用,有效數(shù)據(jù)從x[1],y[1] 開(kāi)始 nNodeNum,有效數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù)。 b,為輸出的多項(xiàng)式系數(shù),b[i] 為b[i-1]次項(xiàng)。b[0],沒(méi)有用。 b,有10個(gè)元素ok。
標(biāo)簽: 多項(xiàng)式 曲線擬合 c語(yǔ)言 最小二乘法
上傳時(shí)間: 2014-01-12
上傳用戶:變形金剛
高精度乘法基本思想和加法一樣。其基本流程如下: ①讀入被乘數(shù)s1,乘數(shù)s2 ②把s1、s2分成4位一段,轉(zhuǎn)成數(shù)值存在數(shù)組a,b中;記下a,b的長(zhǎng)度k1,k2; ③i賦為b中的最低位; ④從b中取出第i位與a相乘,累加到另一數(shù)組c中;(注意:累加時(shí)錯(cuò)開(kāi)的位數(shù)應(yīng)是多少位 ?) ⑤i:=i-1;檢測(cè)i值:小于k2則轉(zhuǎn)⑥,否則轉(zhuǎn)④ ⑥打印結(jié)果
上傳時(shí)間: 2015-08-16
上傳用戶:源弋弋
分?jǐn)?shù)是兩個(gè)整數(shù)的比,通常表示為 (或b/a)的形式,其中b稱為分子,a稱為分母,分母不能為0。分?jǐn)?shù)在計(jì)算機(jī)中以整數(shù)或浮點(diǎn)數(shù)(有限小數(shù))的形式表示,大多數(shù)情況下都是近似表示,具有較大的誤差,例如 ,在計(jì)算機(jī)中用整數(shù)表示為0,用浮點(diǎn)數(shù)表示為0.333333。本實(shí)例就是要設(shè)計(jì)一個(gè)Fraction (分?jǐn)?shù)) 類類型,該類型的對(duì)象可以像基本類型數(shù)據(jù)一樣進(jìn)行運(yùn)算,結(jié)果仍為分?jǐn)?shù),運(yùn)算包括四則運(yùn)算,關(guān)系運(yùn)算,及求一元一次分式方程的解,輸入輸出要求按分?jǐn)?shù)方式進(jìn)行。
標(biāo)簽: 分?jǐn)?shù) 整數(shù)
上傳時(shí)間: 2016-02-18
上傳用戶:zhoujunzhen
編程題(15_01.c) 結(jié)構(gòu) struct student { long num char name[20] int score struct student *next } 鏈表練習(xí): (1).編寫(xiě)函數(shù)struct student * creat(int n),創(chuàng)建一個(gè)按學(xué)號(hào)升序排列的新鏈表,每個(gè)鏈表中的結(jié)點(diǎn)中 的學(xué)號(hào)、成績(jī)由鍵盤(pán)輸入,一共n個(gè)節(jié)點(diǎn)。 (2).編寫(xiě)函數(shù)void print(struct student *head),輸出鏈表,格式每行一個(gè)結(jié)點(diǎn),包括學(xué)號(hào),姓名,分?jǐn)?shù)。 (3).編寫(xiě)函數(shù)struct student * merge(struct student *a,struct student *b), 將已知的a,b兩個(gè)鏈表 按學(xué)號(hào)升序合并,若學(xué)號(hào)相同則保留成績(jī)高的結(jié)點(diǎn)。 (4).編寫(xiě)函數(shù)struct student * del(struct student *a,struct student *b),從a鏈表中刪除b鏈表中有 相同學(xué)號(hào)的那些結(jié)點(diǎn)。 (5).編寫(xiě)main函數(shù),調(diào)用函數(shù)creat建立2個(gè)鏈表a,b,用print輸出倆個(gè)鏈表;調(diào)用函數(shù)merge升序合并2個(gè) 鏈表,并輸出結(jié)果;調(diào)用函數(shù)del實(shí)現(xiàn)a-b,并輸出結(jié)果。 a: 20304,xxxx,75, 20311,yyyy,89 20303,zzzz,62 20307,aaaa,87 20320,bbbb,79 b: 20302,dddd,65 20301,cccc,99 20311,yyyy,87 20323,kkkk,88 20307,aaaa,92 20322,pppp,83
標(biāo)簽: student struct score long
上傳時(shí)間: 2016-04-13
上傳用戶:zxc23456789
正整數(shù)x 的約數(shù)是能整除x 的正整數(shù)。正整數(shù)x 的約數(shù)個(gè)數(shù)記為div(x)。例如,1,2, 5,10 都是正整數(shù)10 的約數(shù),且div(10)=4。設(shè)a 和b 是2 個(gè)正整數(shù),a≤b,找出a 和b 之間約數(shù)個(gè)數(shù)最多的數(shù)x。
上傳時(shí)間: 2014-11-24
上傳用戶:gxmm
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1