半數集問題 問題描述: 給定一個自然數n,由n開始可以依次產生半數集set(n)中的數如下。 (1) n∈set(n); (2) 在n的左邊加上一個自然數,但該自然數不能超過最近添加的數的一半; (3) 按此規則進行處理,直到不能再添加自然數為止。 例如,set(6)={6,16,26,126,36,136}。半數集set(6)中有6個元素。 編程任務: 對于給定的自然數n,編程計算半數集set(n)中的元素個數。
標簽: 61611
上傳時間: 2015-06-01
上傳用戶:netwolf
實現阿克曼函數并統計遞歸調用次數 Counting times of recursion calling 1. 問題描述 定義阿克曼遞歸函數: ACK(0,n)=n+1 n>=0 ACK(m,0)=ACK(m-1,1) m>=1 ACK(m,n)=ACK(m-1,ACK(m,n-1)) m,n>0 2. 基本要求 讀入m、n,輸出ACK(m,n)的值,并統計遞歸調用次數。
標簽: recursion Counting calling times
上傳時間: 2015-06-11
上傳用戶:hgy9473
對于給定的整數$n$,生成$[n]$的所有排。采用Jonhson-Trotter算法。
標簽: 整數
上傳時間: 2015-11-03
上傳用戶:獨孤求源
算法實現題1-5 最大間隙問題 « 問題描述: 最大間隙問題:給定n 個實數x , , xn 1 2 ,求這n 個數在實軸上相鄰2 個數之間的最 大差值。假設對任何實數的下取整函數耗時O(1),設計解最大間隙問題的線性時間算法。 « 編程任務: 對于給定的n 個實數n x , x , , x 1 2 ,編程計算它們的最大間隙。 « 數據輸入: 輸入數據由文件名為input.txt的文本文件提供。文件的第1 行有1 個正整數n。接下來 的1 行中有n個實數n x , x , , x 1 2 。 « 結果輸出: 程序運行結束時,將找到的最大間隙輸出到文件output.txt中。 輸入文件示例 輸出文件示例 input.txt 5 2.3 3.1 7.5 1.5 6.3 output.txt 3.2
上傳時間: 2016-05-28
上傳用戶:咔樂塢
給定一個自然數n,由n開始可以依次產生半數集set(n)中的數如下。 (1) n∈set(n); (2) 在n的左邊加上一個自然數,但該自然數不能超過最近添加的數的一半; (3) 按此規則進行處理,直到不能再添加自然數為止。 例如,set(6)={6,16,26,126,36,136}。半數集set(6)中有6個元素。
標簽:
上傳時間: 2014-01-17
上傳用戶:rishian
采用逆序法生成排列 從n個空位開始,從左到右吧這些位置標為1,2,……n。 1:由于在排列中要有 個整數在1的前面,因為必須把1放在位置號為 +1的位置上。 2:由于在排列中要有 個比2大的整數在2的前面,而且這些整數還沒有被插進來,因此必須給這些數留出 個空位置,于是,把2放在第 +1的空位置上。 • • • K:(一般的一步)由于在排列中要有 個整數在k的前面,而且這些整數還沒有被插進來,因此必須給這些數留出 個空位置。在本步驟開始時空位置的個數是n-(k-1)=n-k+1。我們把k放在從左邊數的第( +1)的空位置上。既然 ≤n-k,因此就有 +1≤n-k+1,從而這樣一個空位置就被確定下來。 • • • N:把n放在剩下的一個空位置上
標簽:
上傳時間: 2013-12-15
上傳用戶:獨孤求源
Euler函數: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函數: 定義:phi(m) 表示小于等于m并且與m互質的正整數的個數。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 則有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在實際代碼中可以用類似素數篩法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定義phi(p) 為比p小的與p互素的數的個數 設n的素因子有p1, p2, p3, … pk 包含p1, p2…的個數為n/p1, n/p2… 包含p1*p2, p2*p3…的個數為n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
上傳時間: 2014-01-10
上傳用戶:wkchong
編寫具有如下原型的函數:int f(unsigned long x, int n, int& Lxn) 它負責將整數x的第n位(從左邊數第n位,n>0)的數值放到引用Lxn之中(將作為結果返回到主調函數的對應實參變量中),并將倒數第n位(從右邊數第n位,n>0)的數值作為函數結果返回去。并編制主函數對它進行調用以驗證其正確性。 例如,當x=123456789,n=7時,執行語句“Rxn=f(x, n, Lxn) ”將使返回的Lxn為7,并使Rxn變為3;而執行語句“Rxn=f(12345, 6, Lxn) ”將使Lxn與Rxn都變為為0(超出數的“長度”即總位數時返回0)。
上傳時間: 2017-01-02
上傳用戶:s363994250
//建立按鈕上標簽的字符串 label = XmStringCreateSimple["Hello World!"] n = 0 XtSetArg[args[n], XmNlabelString, label] n++ button = XmCreatePushButton[toplevel, "pushbutton", args, n] XtManageChild[button] XmStringFree[label] //設置回調函數 XtAddCallback[button, XmNactivateCallback, callback, NULL]
標簽: XmStringCreateSimple XtSetArg XmNlab label
上傳時間: 2017-03-21
上傳用戶:fredguo
//建立頂級窗口 toplevel = XtVaAppInitialize[&app, "Form", NULL, 0, &argc, argv, NULL, NULL] n = 0 XtSetArg[args[n], XmNwidth, 500] n++ XtSetArg[args[n], XmNheight, 500] n++ XtSetValues[toplevel, args, n] //建立主窗口 form = XmCreateForm[toplevel, "form", NULL, 0] XtManageChild[form] //建立菜單條 n = 0 XtSetArg[args[n], XmNtopAttachment, XmATTACH_FORM] n++ XtSetArg[args[n], XmNleftAttachment, XmATTACH_FORM] n++ XtSetArg[args[n], XmNrightAttachment, XmATTACH_FORM] n++ menubar = XmCreateMenuBar[form, "menubar", args, n] XtManageChild[menubar] create_menu[menubar]
標簽: NULL XtVaAppInitialize toplevel Form
上傳時間: 2013-12-19
上傳用戶:亞亞娟娟123