首页
c语言背包问题原理(c语言背包问题)
返回

c语言背包问题原理(c语言背包问题)

2022-12-30 精选综合 By:佚名
最佳答案大家好,精选小编来为大家解答以上问题。c语言背包问题原理,c语言背包问题很多人还不知道,现在让我们一起来看看吧!1、 首先打开VC 6.0 2、 选择文件,新建 3、 选择c源文件新建一个空白文档 4、 首先声明头文件和常量 5、 # includestdio.h 6、 #定义编号10/*定义物品总数*/ 7、 #定义内容10 /*...

大家好,精选小编来为大家解答以上问题。c语言背包问题原理,c语言背包问题很多人还不知道,现在让我们一起来看看吧!

1、 首先打开VC 6.0

2、 选择文件,新建

3、 选择c源文件新建一个空白文档

4、 首先声明头文件和常量

5、 # includestdio.h

6、 #定义编号10/*定义物品总数*/

7、 #定义内容10 /*定义包的容量*/

8、 写一个函数,用来得到多个最优解

9、 空的背包(int v[数字],int w[数字],int c,int m[数字][内容])

10、 {

11、 int n=NUM-1;

12、 int i,j;

13、 int jMax

14、 if((w[n]-1) c)

15、 jMax=w[n]-1;

16、 其他

17、 jMax=c;

18、 /* 初始化m[n][j] */

19、 for(j=0;j=jMaxj)

20、 m[n][j]=0;

21、 for(j=jMax 1;j=c;j)

22、 m[n][j]=v[n];

23、 /*使用非递归的算法来求解m[i][j] */

24、 for(I=n-1;I 0;我-)

25、 {

26、 if((w[i]-1) c)

27、 jMax=w[I]-1;

28、 其他

29、 jMax=c;

30、 for(j=0;j=jMaxj)

31、 m[I][j]=m[I 1][j];

32、 for(j=jMax 1;j=c;j)

33、 {

34、 if(m[i 1][j]=(m[i 1][j-w[i]] v[i]))

35、 m[I][j]=m[I 1][j];

36、 其他

37、 m[I][j]=m[I 1][j-w[I]]v[I];

38、 }

39、 }

40、 if(cw[0])

41、 {

42、 if(m[1][c]=(m[1][c-w[0]] v[0]))

43、 m[0][c]=m[1][c];

44、 其他

45、 m[0][c]=m[1][c-w[0]]v[0];

46、 }

47、 其他

48、 m[0][c]=m[1][c];

49、 }

50、 再编写一个函数,用来寻找最优解

51、 /*寻找最优解*/

52、 void追溯(int标志[数字],int w[数字],int m[数字][内容])

53、 {

54、 int n=NUM-1;

55、 int I;

56、 int c=内容;

57、 for(I=0;I n;我)

58、 {

59、 if(m[i][c]==m[i 1][c])

60、 flag[I]=0;

61、 其他

62、 {

63、 flag[I]=1;

64、 c-=w[I];

65、 }

66、 }

67、 if(m[n][c] 0)

68、 flag[n]=1;

69、 其他

70、 flag[n]=0;

71、 }

72、 写个函数,用来输出最优解

73、 void printResult(int flag[NUM],int w[NUM],int v[NUM],int m[NUM][CONTENT])

74、 {

75、 int I;

76、 printf('背包应该包含:\ n’);

77、 printf('数量重量值\ n’);

78、 for(I=0;我编号我)

79、 {

80、 if(flag[i]==1)

81、 printf(' %d %d %d\n ',I,w[i],v[I]);

82、 }

83、 printf('背包中最大值为:%d\n ',m[0][内容]);

84、 }

85、 主函数

86、 int main()

87、 {

88、 int value[NUM]={5,2,3,4,3,6,5,7,8,2 };

89、 int weight[NUM]={2,1,3,2,4,3,5,6,2,2 };

90、 int c=内容;

91、 int max value[NUM][CONTENT];

92、 int flag[NUM]={0,0,0,0,0,0,0,0 };

93、 printf(' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ');

94、 printf('*此程序将求解* \ n ');

95、 printf(* 0-1 napsack的问题* \ n ');

96、 printf(' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ');

97、 /*计算最优值*/

98、 背包(值,重量,c,最大值);

99、 /*构造最优解*/

100、 追溯(标志、权重、最大值);

101、 /*打印程序的结果*/

102、 打印结果(标志、权重、值、最大值);

103、 getch();

104、 返回0;

105、 }

106、 运行结果

本文到此结束,希望对大家有所帮助。

猜你喜欢
现在有出租车是吉利的?

现在有出租车是吉利的?

12-12 0 阅读
苹果可以恢复出厂设置会怎么样(恢复出厂设置会怎么样)

苹果可以恢复出厂设置会怎么样(恢复出厂设置会怎么样)

12-31 0 阅读
劳动法律是不是有点冲突?

劳动法律是不是有点冲突?

11-01 0 阅读
完全骗子!!

完全骗子!!

11-01 0 阅读
鹤壁学校(关于鹤壁学校的基本详情介绍)

鹤壁学校(关于鹤壁学校的基本详情介绍)

01-02 0 阅读
怪奇物语游戏第四季的最新视频确认了哪些演员会回归

怪奇物语游戏第四季的最新视频确认了哪些演员会回归

12-31 0 阅读
热门推荐
现在有出租车是吉利的?

现在有出租车是吉利的?

12-12 0 阅读
苹果可以恢复出厂设置会怎么样(恢复出厂设置会怎么样)

苹果可以恢复出厂设置会怎么样(恢复出厂设置会怎么样)

12-31 0 阅读
圆通寺(关于圆通寺的基本详情介绍)

圆通寺(关于圆通寺的基本详情介绍)

12-31 0 阅读
李学刚(关于李学刚的简介)

李学刚(关于李学刚的简介)

12-31 0 阅读
what about love(关于what about love的基本详情介绍)

what about love(关于what about love的基本详情介绍)

01-02 0 阅读
精索静脉曲张的危害有哪些症状(精索静脉曲张的危害)

精索静脉曲张的危害有哪些症状(精索静脉曲张的危害)

12-30 0 阅读
劳动法律是不是有点冲突?

劳动法律是不是有点冲突?

11-01 0 阅读
温瑜的寓意

温瑜的寓意

09-06 0 阅读
完全骗子!!

完全骗子!!

11-01 0 阅读
鹤壁学校(关于鹤壁学校的基本详情介绍)

鹤壁学校(关于鹤壁学校的基本详情介绍)

01-02 0 阅读