演算法趣題(Java隨筆) 數學系列

2021-08-28 17:46:36 字數 3052 閱讀 8160

目錄

一、判斷閏年

二、矩陣乘積

三、哥德**猜想

四、完全數

五、親密數

六、數轉陣列

七、分解質因數

八、待續......

四年一閏,百年不閏,四百年再閏;

//1、判斷閏年

static boolean isleapyear(int year)

return false;

}

執行測試:

// 1、判斷閏年(main方法中執行)

system.out.println(isleapyear(2008) ? "2008是閏年" : "2008不是閏年");

system.out.println(isleapyear(2018) ? "2018是閏年" : "2018不是閏年");

執行結果:

2008是閏年

2018不是閏年

矩陣a和b的乘積c滿足c=a*b!=b*a;且要求a的行數必須等於b的列數,如:

//2、求矩陣積

/* * 二維陣列data1的行數必須等於data2的列數

*/static int matrixmul(int data1,int data2)

, , };

int data2 =

, ,

, };

int data = matrixmul(data1, data2);

for (int i : data)

system.out.println();

}執行結果:

30 53 52

64 118 112

64 118 112

——任意乙個大於二的偶數都可以寫為兩個素數之和

//哥德**猜想

//1、判斷是否為素數

static boolean issushu(int n)

執行結果:

true true true true true true true true...

——乙個自然數的所有真因子的和等於這個自然數,即完全數。

// 完全數——在某一範圍內查詢完全數

static void iswqshu(int data, int size)

}// 輸出完全數

if (sum == 0)

system.out.println();

}} }

執行測試:

// 4、完全數(在main方法中執行)

iswqshu(10000, 100);//查詢10000以內的所有完全數

執行結果:

6是乙個完全數 因子為:1 2 3

28是乙個完全數 因子為:1 2 4 7 14

496是乙個完全數 因子為:1 2 4 8 16 31 62 124 248

8128是乙個完全數 因子為:1 2 4 8 16 32 64 127 254 508 1016 2032 4064

——a的真因子和等於b,b的真因子和等於a,即a與b為親密數對。

// 親密數——判斷乙個數有無親密數

static void isqmshu(int data, int size)

} int temp = 0;

// 獲取親密數因子

for (int j = 1; j < sum / 2 + 1; j++)

} // 輸出原資料因子

system.out.print("原資料:" + data + " 因子:");

for (int i = 0; i < k1; i++)

// 存在親密數,輸出親密數和因子

if (temp == data)

} else

}

執行測試:

// 5、親密數(在main方法中執行)

isqmshu(220, 100);//判斷220有無親密數

執行結果:

原資料:220 因子:1 2 4 5 10 11 20 22 44 55 110

親密數:284 因子:1 2 4 71 142

// 核心演算法

int k = 0;

int temp;

while (data != 0)

——如:18=2x3x3    180=2x2x3x3x5 即要求每乙個因數都是不可再分的素數

// 7、分解質因數(判斷是否是素數,進行分解)

// 7—1 判斷是否是素數

static boolean isprime(int n)

for (int i = 2; i <= n / 2; i++)

} return true;

} // 7—2 分解

static void fenjie(int n) else else

break;//因數查詢結束,退出迴圈}}

} }

執行測試:

// 7、分解質因數(main方法中執行)

for(int i=990;i<1000;i+=2)

執行結果:

990的分解因數為:->2->3->3->5->11

992的分解因數為:->2->2->2->2->2->31

994的分解因數為:->2->7->71

996的分解因數為:->2->2->3->83

998的分解因數為:->2->499

數學系列目錄

初等數學 漫談傅利葉1 從無窮級數到傅利葉 漫談傅利葉2 公式推導 三角函式正交性 漫談傅利葉3 收斂性 非週期函式的推廣應用 漫談傅利葉4 全時傅利葉的缺點與短時傅利葉 漫談傅利葉5 卷積與短時傅利葉的缺點 漫談傅利葉6 取樣與1d初步實現 漫談傅利葉7 帶有相位與幅值的1d實現 漫談傅利葉8 傅...

學習數學系列《一》

內容摘自 微積分摘要 高等數學ppt 由於標題寫高數有圈粉嫌疑,所以還是寫一些比較樸素的名字。實際上這個算是高等數學的學習。前幾天被一位神犇虐數學虐到哭所以自己還是默默地拿起了書。進入正題 第一節 1.1集合的對映 如果有一種規律f使得a中每乙個元素 x 都能與b中的唯一確定的元素f x 對應,那麼...

Python解釋數學系列 分位數Quantile

跳轉到我的部落格 ex1 given a data 6,47,49,15,42,41,7,39,43,40,36 求q1,q2,q3,iqr solving 步驟 1.排序,從小到大排列data,data 6,7,15,36,39,40,41,42,43,47,49 2.計算分位數的位置 3.給出分...