文章目录

  • 前言
  • 一、实验步骤及结果

前言

解决以下问题:
1、背包问题的蛮力解决法
【问题描述】有n个重量分别为{w1,w2,…,wn}的物品,它们的价值分别为{v1,v2,…,vn},给定一个容量为W的背包。设计从这些物品中选取一部分物品放入该背包的方案,每个物品要么选中要么不选中,要求选中的物品不仅能够放到背包中,而且具有最大的价值。
  对下表所示的4个物品求出W=6时的所有解和最佳解。

一、实验步骤及结果

#include<stdio.h>
int V[100][100];
int max(int a,int b)
{if(a>=b)return a;else return b;
}int foolish(int n,int w[],int v[],int x[],int C)
{int i,j;for(i=0;i<=n;i++)V[i][0]=0;for(j=0;j<=C;j++)V[0][j]=0;printf("序号 质量 价值  \n",i,w[i-1],v[i-1]);for(i=1;i<=n;i++){printf("  %d    %d    %d  ",i,w[i-1],v[i-1]);for(j=1;j<=C;j++){if(j<w[i-1]){V[i][j]=V[i-1][j];printf("[%d][%d]=%2d  ",i,j,V[i][j]);}else{V[i][j]=max(V[i-1][j],V[i-1][j-w[i-1]]+v[i-1]);printf("[%d][%d]=%2d  ",i,j,V[i][j]);}}printf("\n");}j=C;for(i=n;i>=1;i--){if(V[i][j]>V[i-1][j]){x[i]=1;j=j-w[i-1];}elsex[i]=0;}printf("选中的物品是:\n");for(i=1;i<=n;i++){if(x[i]==1){printf("第%d个被选择\n",i);}else{printf("第%d个不被选择\n",i);}}   return V[n][C];}void main()
{int s;int w[100];int v[100];int x[100];int n,i;int C;n=5;printf("请输入背包的最大容量:\n");scanf("%d",&C);printf("输入物品数:\n");scanf("%d",&n);printf("请分别输入物品的重量:\n");for(i=0;i<n;i++){printf("\n请输入第%d个物品重量: ",i+1);scanf("%d",&w[i]);}printf("\n请分别输入物品的价值:\n");for(i=0;i<n;i++){printf("\n请输入第%d个物品价值: ",i+1);scanf("%d",&v[i]);}s=foolish(n,w,v,x,C);printf("此时最大物品价值为:\n");printf("%d\n",s);}

实验结果:

emmm蛮力有时候很好解决问题,但是这一定是你时间急的情况下,否则其实可以选择更好的方法进行解决。

蛮力算法解决问题(c语言)相关推荐

  1. 最大子段和——用蛮力算法,分治策略,动态规划算法三种求法(C语言)

    目录 一.题目 二.算法求解 1.蛮力算法 伪代码 算法分析 程序 2.分治策略 伪代码 算法分析 程序 3.动态规划算法 伪代码 算法分析 程序 一.题目 设A=<a1,a2,...,an&g ...

  2. 蛮力写算法_蛮力算法解释

    蛮力写算法 Brute Force Algorithms are exactly what they sound like – straightforward methods of solving a ...

  3. 【蛮力算法】数据结构与算法

    蛮力算法也称为穷举法或暴力法,它是算法设计中最常见的方法之一.蛮力算法的基本思路是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试为止. 蛮力算法的概述 蛮力法是一种简单.直接地解决问题 ...

  4. 《数据结构与算法:Python语言描述》一1.3算法和算法分析

    本节书摘来自华章出版社<数据结构与算法:Python语言描述>一书中的第1章,第1.3节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.3算法 ...

  5. 数据结构与算法(C语言)

    第一章: 数据结构绪论 1.什么是程序:程序 = 数据结构 + 算法 2.逻辑结构&物理结构的区别用法 基本的目标就是将数据及其逻辑关系存储到计算机的内存中 一:逻辑结构: 逻辑结构是指数据对 ...

  6. 数据结构和算法(C语言)

    数据结构是计算机存储.组织数据的方式,是相互之间存在一种或多种特定关系的数据元素集合 目录 算法 算法和数据结构的区别 数据结构分类 动态数组 单向链表 栈 算法 算法是特定问题求解步骤的描述,在计算 ...

  7. c语言背包问题贪心算法,C/C++语言算法篇(一):贪心算法

    贪心算法 正所谓人人都有贪心,C语言算法上的贪心可不是实际意义上的贪心,C语言结构上的贪 心可以说满足两个条件:贪心选择性质和最优子结构性质.满足这两个条件的话就可以尝试用贪心算法解决问题. 贪心选择 ...

  8. 十种经典排序算法精粹(c语言版本)

    下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序.整理出来以作备 ...

  9. 迪杰斯特拉算法(C语言实现)

    迪杰斯特拉算法(C语言实现) 如上图,求以a为源点到个顶点的最短路劲. #include "stdio.h" #include "stdlib.h" //用一个 ...

最新文章

  1. 从面试官角度观察到的程序员工资瓶颈,同时给出突破瓶颈的建议
  2. Spring Cloud Alibaba 高级特性 应用性能监控:通过 SkyWalking 实施链路追踪
  3. ExtJS 表单 submit时错误处理
  4. ThreadLocal可以解决并发问题吗
  5. 使用Thread类来创建线程
  6. VMware vCloud与Zend Server实现PHP应用程序自动化交付
  7. es6 数组去重_《前端算法系列》数组去重
  8. python 反爬机制_python3爬虫--反爬虫应对机制
  9. org.n3r.idworker idworker-client生成唯一id
  10. 操作系统课设 Nachos 实验四、五:Nachos 的文件系统、扩展 Nachos 的文件系统
  11. python怎么排名次_2019:python第3次获得TIOBE最佳年度语言排名
  12. matlab实现双线性插值,使用双线性插值法放大图像(matlab实现)
  13. git拉取代码提示:本地分支 has no tracked branch
  14. c语言打印100以内质数,C语言 · 打印1~100间的质数(素数)
  15. 新概念英语精讲 钟平 pdf_新概念英语三()
  16. 控制台模拟鼠标、键盘操作
  17. 搭建腾讯云通用文字识别General OCR项目及代码部署图文教程
  18. 使用Eclipse Memory Analyzer对Tomcat进行内存分析
  19. 常用的MATLAB网络资源
  20. 多线程04:网图下载

热门文章

  1. 10分钟了解何为ECharts
  2. 晶振并联 1_10M电阻 稳定
  3. 【观察】打造智能决策“新引擎”,杉数科技勇闯“无人区”
  4. 英语语法构词篇-派生(Derivation)
  5. Derivation of Linear Regression with Multiple Variables
  6. 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome主页会被hao123劫持的故障原因及解决方法...
  7. SI522A/SI523带低功耗自动寻卡功能的13.56MHz非接触式读写器芯片
  8. 交流异步电机的Modelica模型
  9. google s2 java开发文档
  10. 【055】工信部领导莅临翼辉参观指导工作