想用C#编写个算法来简化程序

wbs0910 2016-09-07 11:26:00
现在有这样的一个需求,“有9种不同种类的设备(A1、A2、...、A9),这9中设备均可以放置在同一种柜内(柜内可以装入的设备数量为定值),现在要根据输入这9种设备的数量来统计需要多少个柜子?并且每个柜内含的设备种类及数量?”,用C#编程,有什么样的编程思路可以借鉴啊?用if一直判断觉得很繁琐。

...全文
351 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbs0910 2016-09-07
  • 打赏
  • 举报
回复
, 谢谢你给我写了这么多建设性意见;你分析的非常正确,我没有学过编程,只是根据自己的想法来尝试写个我目前需要的工具软件。
  • 打赏
  • 举报
回复
引用 楼主 wbs0910 的回复:
用C#编程,有什么样的编程思路可以借鉴啊?
我可以告诉你,面对你现在的需求,它跟编程语句、某种编程语言无关。
  • 打赏
  • 举报
回复
“用if一直判断觉得很繁琐”这个说法,说明你在“if语句、for循环语句”等基本的软件“语句”上就存在着滥用、不会用的问题。你需要在编程入门课程上尽量重学一遍。你一定要找个懂行的人,重新学编程设计。你可能被一些社会上的培训机构给“害了”。 假设一个人会用水彩笔画画,假设他真的已经可以把注意力放到表现力上,那么他就反而不会在研究一个需要专业一点点的问题时说“我好像已经会用水彩笔了”。相反,一个不会画画的人,在研究专业一点的美术问题时,才会希望把别人的注意力都引到“看我的水彩笔”这种话题上,这就暴露出他其实不会用水彩笔。
  • 打赏
  • 举报
回复
我基本上判断你所谓的“用if一直判断”根本不解决任何问题,你没有做过哪怕是最简单测试数据上的测试,只是随便拿一点无关的名词儿来说说而已。这个习惯暴露了你可能不太能理解相关知识,因为那需要真的去学习,而不是简单猜测模仿。 我还是提示你一下:任何一个学过有关管理学、经济学、统计学、计算数学、计算机信息系统(我是说系统设计,不是说操作电脑)等等辅助课程的人都学过相关知识,那叫做“整数规划”或者叫做“系统工程学”,通常会有一个课程专门用这个简单工具来研究几十种经济和管理问题。
wbs0910 2016-09-07
  • 打赏
  • 举报
回复
其实我的想法: 根据输入的A1的数量与柜内定值H比较: 1、若A1>H,则进行B1=(A1 - H)运算,其值(B1)再与H比较,若B1<H,则进行B1+A2的值与H比较(类似的循环,分别记录次数及每次内部含有的设备种类及数量); 2、若A1<H,进行A1+A2与H的比较,往下类推。
software_artisan 2016-09-07
  • 打赏
  • 举报
回复
麻烦的是相邻空间还可以合并,所以,除非你的9种规格拥有倍数关系,就是每种较大的设备的尺寸都是最小的设备的尺寸的整数倍,否则这个问题是无最优解的。
software_artisan 2016-09-07
  • 打赏
  • 举报
回复
这是个空间分割问题,和背包问题还有点不太一样。简单地说,就是把一个东西放进一个箱子后,原来一个完整的空间就会被分割为5个大小不同的空间。然后,这些空间会被继续分割,直到剩余的空间再也放不下东西为止。
wanghui0380 2016-09-07
  • 打赏
  • 举报
回复
http://baike.baidu.com/link?url=HoN_hGFd1A2vpcD7HDEKKDuwqarFDN0N5IdsjNBHy2b-wj8on0SaJ3euZR4VQzF5eyeoC3v4U-cpsxMqK1Iiw_
wanghui0380 2016-09-07
  • 打赏
  • 举报
回复
当然就你这个东西,可以不用NP去解,可以采用边际去做 A和箱子是一个线性关系 B和箱子也是一个线性关系 A和B的交点就是边际 你9条线的交点组成的多边形也是边际 同样你也可以采用,等效替换,比如1箱子只能装3个A,1箱子只能装2B,则3A=2B,这样你就可以组成一组方程式,加上条件限制,则成线性代数中的“线性规划“,其实我上面描述的边际,其实就是线性规划的几何意义
wanghui0380 2016-09-07
  • 打赏
  • 举报
回复
来吧,科普一下“NP背包”,P,NP,NP完全 话说现在那个数学家真能解决NP问题,那也是下次诺贝尔奖的有力人选 http://baike.baidu.com/link?url=Rz3Iu3nZdHullHRN0mBX-h7XtG8Ofhi1z-RoVLk9cI1W5T0P9AgYb-pJMdaQ286WMx5erGPzUySssVkRoxls3a

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧