![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机算法设计与分析
绝地反击T
世界那么大,我想去看看。
展开
-
给定正整数n,计算出n个元素的集合{1,2,....,n}可以划分为多少个不同的非空集合
给定正整数n,计算出n个元素的集合{1,2,....,n}可以划分为多少个不同的非空集合原创 2014-10-26 21:34:12 · 9987 阅读 · 0 评论 -
用两个for循环和一个for循环方式为二维数组赋初值并求出正对角线元素之和
//两个for循环和一个for循环为二维数组赋初值并求出正对角线元素之和#include#include#define N 10//两个for循环为二维数组赋值void for2(int a[N][N]){ int sum=0; for(int i=0;i<N;i++) { for(int j=0;j<N;j++) {// a[i][j]=++sum;//适合在一原创 2015-03-23 11:39:39 · 9024 阅读 · 0 评论 -
用3个for和2个for位三位数组赋值
#include#include//三维数组在内存里面也是线性排列void fun3(int a[5][4][3]){ //三个for循环赋值 int num = 0; for(int i=0;i<5;i++) { for(int j=0;j<4;j++) { for(int k=0;k<3;k++) { a[i][j][k]=++num; p原创 2015-04-02 10:36:59 · 1072 阅读 · 0 评论 -
双for、单for初始化二维数组
#include#include#define N 4//void fun2(){ printf("二维数组方式【双重for循环】初始化二维数组\n"); int a[N][N]; for(int i=0;i<N;i++) { for(int j=0;j<N;j++) { a[i][j] = i*N+原创 2015-04-02 10:58:36 · 1507 阅读 · 0 评论 -
哥德巴赫猜想
世界三大数学猜想编辑即费马猜想、四色猜想和哥德巴赫猜想。费马猜想的证明于1994年由英国数学家安德鲁·怀尔斯(Andrew Wiles)完成,遂称费马大定理;四色猜想的证明于1976年由美国数学家阿佩尔(Kenneth Appel)与哈肯(Wolfgang Haken)借助计算机完成,遂称四色定理;哥德巴赫猜想尚未解决,目前最好的成果(陈氏定理)乃于1966年由中国数学家陈景润取得。这三个原创 2015-04-03 09:26:35 · 1491 阅读 · 0 评论 -
MD5算法用途
MD5:保存用户名和密码、校验数据的完整性(比如下载是否完整,是否在下载的过程中中病毒)、校验光盘(光盘会磨损的)的完整性Message Digest Algorithm MD5(消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护原创 2015-04-05 20:34:05 · 815 阅读 · 0 评论 -
计算圆周率pai的公式:pai = 4*(1-1/3+1/5-1/7 ....)
历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)这个公式简单而优美,但美中不足,它收敛的太慢了。如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。。。请你写出它累积了100项的和是多少(四舍五入到小原创 2015-04-09 18:17:43 · 27814 阅读 · 0 评论 -
转:最长公共子串和最长公共子序列的区别
一、什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。 举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5。 一直不明白:最长公共子串和最长公共子序列的区别。转载 2015-04-09 15:48:18 · 1066 阅读 · 0 评论 -
已知直角三角形的斜边是某个整数,求满足这个条件的不同直角三角形的个数。
勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。 已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。 求满足这个条件的不同直角三角形的个数。【数据格式】输入一个整数 n (0要求输出一个整数,表示满足条件的直角三角形个数。例如,输入:5程序应该输出:1再例如,输入:100程序应该输出:原创 2015-04-09 10:29:54 · 5242 阅读 · 3 评论 -
蓝桥杯:求一个5位数的最大循环素数
1193是个素数,对它循环移位后发现:1931,9311,3119也都是素数,这样特征的数叫:循环素数。你能找出具有这样特征的5位数的循环素数吗?当然,这样的数字可能有很多,请写出其中最大的一个。注意:答案是个5位数,不要填写任何多余的内容。#include#include//判断是否是素数int isPrime(int n){ int flag=1; for(原创 2015-04-09 12:17:19 · 5024 阅读 · 0 评论 -
C语言和java实现且面条(均用递归实现)
/* 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢? -------------------------------------------对折0次,得到2根:1*2 = 2对折1次,得到2 * 2 - 1 = 3原创 2015-03-27 16:51:30 · 996 阅读 · 0 评论 -
随机数初始化数组然后用选择法(三种,细微的区别)对数组进行排序
#include#include#include//时间头文件 int main(){ time_t ts;//设置时间变量 unsigned int randdata = time(&ts);//获取时间,转换为无符号int srand(randdata);//设置随机数种子 int a[10]; //用随机数初始化数组 for(int i=0;i<10;i++) {原创 2015-03-27 11:11:33 · 1770 阅读 · 0 评论 -
c语言编程:实现数字的翻转
方法一:(易理解的)#include#includeint main(){ int n; scanf("%d",&n);//输入要翻转的数字 int result = 0;//保存翻转后的结果 while(1)//while(true)也可以 { int i = n%10;//每次都是得到最低位上的数字 result = result*10+i; n = n/原创 2015-03-26 21:24:48 · 30790 阅读 · 2 评论 -
定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j
定义一个由整数组成的数组,然后输入一个整数x,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j;若X在此数组中,则返回数组中这个数的位置。原创 2014-10-26 22:02:38 · 2976 阅读 · 0 评论 -
用for和while循环求e的值[e=1+1/1!+1/2!+1/3!+1/4!+1/5!+...+1/n!]
编写程序,根据以下公式求e的值。要求用两种方法计算:1)for循环,计算前50项2)while循环,直至最后一项的值小于10-4原创 2014-10-27 09:38:53 · 24915 阅读 · 0 评论 -
猴子吃桃子问题
猴子吃桃子问题。猴子第一天摘下若干个桃,当即吃掉一半,又多吃一个。第二天早上又将剩下的一半吃掉一半,又多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃。问第一天摘了几个桃。原创 2014-10-27 09:24:33 · 2428 阅读 · 1 评论 -
0-1 背包问题、背包问题、最优装载问题、哈夫曼编码,这几个问题的思想是什么?
0-1背包问题:给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全原创 2015-01-03 15:56:07 · 2424 阅读 · 0 评论 -
输入某年某月某日,判断这一天是这一年的第几天?
这段代码是自己写的//输入某年某月某日,判断这一天是这一年的第几天?#include//判断输入的年份是闰年还是平年的函数int Year(int year){ if((year%4==0&&year%100!=0)||(year%400)==0) { return 1; } else { return 0; }}//原创 2014-12-09 00:35:17 · 3351 阅读 · 0 评论 -
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
//一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?#include#include//sqrt()#include//包含system()int main(){ int n;// int a,b; for(n=-100;n<10000;n++) { a=(int)sqrt(n+100); b=(int)原创 2014-12-09 00:35:43 · 9886 阅读 · 0 评论 -
什么是P问题?NP问题?NPC问题?三者关系如何?
1、P问题P是一个判定问题类,这些问题可以用一个确定性算法在多项式时间内判定或解出。如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题的集合。NP是一个判定问题类,这些问题可以用一个确定算法在多项式时间内检查或验证出它们的解;P事实上很直观,我们通常在编程中求解的问题大多转载 2014-12-14 20:49:09 · 1116 阅读 · 0 评论 -
动态规划算法和贪心算法的比较
利用动态规划求解最优问题的步骤:(1)证明该问题具有最优子结构性质;(2)根据最优子结构性质,写出最优值的递归表达式;(3)根据递归式,说明该问题具有重叠子结构性质;(4)采用自底向上的方式计算,写出求解最优值的非递归算法,同时构造最优解的解空间树;(5)遍历解空间树,求得最优解。利用贪心算法求解最优问题的步骤:(1)选定合适的贪心选择的标准;(2)证明在此标准下该转载 2014-12-14 21:11:13 · 7016 阅读 · 0 评论 -
算法复习题总结
二分搜索算法是利用分治策略实现的的算法动态规划算法基本步骤:分析最优解的性质,并刻划其结构特征。递归地定义最优值。以自底向上的方式或自顶向下的记忆化方法(备忘录法)计算出最优值。根据计算最优值时得到的信息,构造一个最优解。分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。最大效益优先是分支界限法的一种搜索方式拉斯维加斯算法得到的解一定是正确解,原创 2014-12-13 20:00:58 · 1389 阅读 · 0 评论 -
Java实现快速排序
package com.lstc.sort;/** * 快速排序算法实现: * 时间效率:快速排序算法的运行时间依赖于划分是否平衡,即根据枢轴元素 pivot * 将序列划分为两个子序列中的元素个数,而划分是否平衡又依赖于所使用的枢轴元素。下面我们 在不同的情况下来分析快速排序的渐进时间复杂度。 * * 快速排序的最坏情况是每次进行划分时,在所得到的两个子序列中有一个子序列为空。O原创 2015-09-25 12:29:05 · 833 阅读 · 0 评论