當前位置:首頁 » 操作系統 » 數數X演算法

數數X演算法

發布時間: 2022-09-04 00:23:30

1. 設計求一個數x的絕對值的演算法

有一個函數叫做符號函數,定義如下:
-------┏ 1,x>0
sgnx=┝ 0,x=0
-------┗ -1,x

2. 數學演算法:

N=6*A+3*B+C
其中,A代表可拆成三個不同自然數(如0 1 2)的種數,B代表可拆成二個不同自然數(如0 0 2)組合的種數,C代表可拆成三個相同自然數的種數;
1.X能被三整除則C等於1,否則等於0;
2.分析B,X=2*b1+b2;b1為[0,X/2]的自然數,共X/2+1個,但是,若X能被三整除則存在一種b1=b2的情況,所以此時B=X/2;
3.分析A,X=a1+a2+a3;假設a1<a2<a3;a2至少比a1大1,a3至少比a1大2,
則a1為[0,X/3-1]的自然數,共X/3個;
若(X-a1)能被2整除,則a2為[a1+1,(X-a1)/2-1]的自然數,共(X-a1)/2-a1-1個;
若(X-a1)不能被2整除,則a2為[a1+1,(X-a1)/2]的自然數,共(X-a1)/2-a1個;
a3為待定數,不需要考慮。

可根據以上分析寫出代碼讓計算機進行計算

3. 求一個演算法:N個數,用其中M個任意組合相加等於一個已知數X。得出這M個數是哪些數。

N有范圍沒
如果范圍比較大的話用深搜,記得排序,注意剪枝
范圍小的話直接窮舉
也就是設一個字元串,裡面有M個1,N-M個0,產生所有全排列
當一位為1時,就表示選擇這個數,為0表示不選擇
初始為a[] = 00...0111...1(M個1)使用next_permutation(a, a+n)產生所有含有M個1、N-M個0的全排列,並判斷和是否為X

4. 任意給一個實數x,設計一個演算法,求x的絕對值,並畫出程序框圖.

S1:輸入一個實數X
S2:判斷X的符號,若X≥0,則輸出X;否則輸出-X
程序:
INPUTX
IFX>=0THEN
PRINTX
ELSE
PRINT-X
ENDIF
END

5. 用自然語言描述求出一個數x的三次方和它的絕對值的演算法

解:對於任意的x∈R
x^3=x*x*x
|x|=x(x≥0)
=-x(x≤0)

如有疑問,可追問!

6. 有10個數字(1,2,3,4,5,6,7,8,9,10) 取出一個 x,判斷取出哪個數字

演算法過程:

1、隨機在10個數字裡面取一個數字x,可利用隨機函數通過取下標的方式取得10個數裡面的任意一個,由此保證隨機性。

2、遍歷十個數的每個數是否與取得的數字相同,如果相同,則那個數就是所取得的未知數x

java代碼:

	publicstaticvoidmain(String[]args){
//由於指定了數字池,所以先存放到一個數組裡面
int[]numPool={1,2,3,4,5,6,7,8,9,10};
Randomrd=newRandom();
intrn=(rd.nextInt(10)); //隨機生成0-9的數字作為下標
System.out.println("隨機取一個數字x...");
intx=numPool[rn]; //取出隨機取出的未知數x,存至resultNum變數內
for(inti=0;i<10;i++){ //利用簡單for循環遍歷數組
if(resultNum==numPool[i]){ //比較數組中的每個數與未知數x,如果相同,則輸出
System.out.println("所取得的數字是:"+numPool[i]);
System.out.println("隨機取得的數字x為:"+resultNum);
}
}
}

其他語言代碼大同小異

熱點內容
linux訪問localhost 發布:2024-05-02 17:04:11 瀏覽:880
劍三自動任務腳本 發布:2024-05-02 16:59:42 瀏覽:525
哪裡有java視頻教程 發布:2024-05-02 16:59:31 瀏覽:346
零食盒子密碼多少 發布:2024-05-02 16:52:24 瀏覽:354
win10怎麼訪問區域網 發布:2024-05-02 16:51:37 瀏覽:471
功能點估演算法是 發布:2024-05-02 16:24:38 瀏覽:166
b站非法訪問 發布:2024-05-02 16:09:59 瀏覽:456
寶馬523壓縮機 發布:2024-05-02 16:00:40 瀏覽:611
冒險島m韓服安卓漢化包哪裡搞 發布:2024-05-02 16:00:24 瀏覽:955
雲伺服器託管平台 發布:2024-05-02 15:55:16 瀏覽:860