当前位置: 首页 > wzjs >正文

定制衣服公司以优化为理由裁员合法吗

定制衣服,公司以优化为理由裁员合法吗,台州网站建设企业,衡水做网站建设公司一维下料之贪心算法,需求如下 已知条件 我们有一批长度为 380 米 的原材料(例如钢管、木材等)。 切割需求 需要从这些原材料中切割出以下长度的小段:42 米:需要 13 段 140米:需要 23 段 130 米&#xff1a…

一维下料之贪心算法,需求如下

已知条件
我们有一批长度为 380 米 的原材料(例如钢管、木材等)。
切割需求
需要从这些原材料中切割出以下长度的小段:42 米:需要 13 段
140米:需要 23 段
130 米:需要 12 段

120 米:需要 12 段
11 米:需要 2 段
234米:需要 12 段
问题需求

我们的目标是:
用尽可能少的原材料(总根数最少),切割出所有需要的小段,同时尽可能减少浪费(即原材料的剩余长度总和最小)。

结果如下: 

贪心算法: 使用原材料 26 个,总剩余 830 米,利用率 91.60%

原材料 1: [234, 140] 剩余: 6 米
原材料 2: [234, 140] 剩余: 6 米
原材料 3: [234, 140] 剩余: 6 米
原材料 4: [234, 140] 剩余: 6 米
原材料 5: [234, 140] 剩余: 6 米
原材料 6: [234, 140] 剩余: 6 米
原材料 7: [234, 140] 剩余: 6 米
原材料 8: [234, 140] 剩余: 6 米
原材料 9: [234, 140] 剩余: 6 米
原材料 10: [234, 140] 剩余: 6 米
原材料 11: [234, 140] 剩余: 6 米
原材料 12: [234, 140] 剩余: 6 米
原材料 13: [140, 140, 11, 11] 剩余: 78 米
原材料 14: [140, 140] 剩余: 100 米
原材料 15: [140, 140] 剩余: 100 米
原材料 16: [140, 140] 剩余: 100 米
原材料 17: [140, 140] 剩余: 100 米
原材料 18: [140, 130] 剩余: 110 米
原材料 19: [130, 130, 120] 剩余: 0 米
原材料 20: [130, 130, 120] 剩余: 0 米
原材料 21: [130, 130, 120] 剩余: 0 米
原材料 22: [130, 130, 120] 剩余: 0 米
原材料 23: [130, 130, 120] 剩余: 0 米
原材料 24: [130, 120, 120] 剩余: 10 米
原材料 25: [120, 120, 120] 剩余: 20 米
原材料 26: [120, 120] 剩余: 140 米

部分源代码如下

public class 一维下料
{// 定义原材料长度private const int 原材料长度 =380;// 定义需要的切割长度及其数量private static readonly Dictionary<int, int> 需求长度 = new Dictionary<int, int>{{ 140, 23 }, { 130, 12 }, { 120, 12 }, { 11, 2 }, { 234, 12 }};[CommandMethod("xx")]public static void 一维下料贪心算法(){// 获取切割方案、剩余长度和利用率List<int> 剩余长度s;double 利用率;List<List<int>> 切割计划s = 计算剩余长度s和利用率(out 剩余长度s, out 利用率);// 输出切割方案Env.Editor.WriteMessage("切割方案:\n");int 最终原材料个数 = 0;for (int i = 0; i < 切割计划s.Count; i++){Env.Editor.WriteMessage($"原材料 {i + 1}: [{ string.Join(", ", 切割计划s[i]) } ](剩余长度: {剩余长度s[i]} 米)\n");最终原材料个数 = i + 1;}// 输出总剩余长度int 总剩余长度 = 剩余长度s.Sum();Env.Editor.WriteMessage($"共需要{最终原材料个数}个原材料,总剩余长度: {总剩余长度} 米\n");// 输出利用率Env.Editor.WriteMessage($"贪心算法利用率: {利用率:F2}%\n");// 验证是否所有需要的长度都被切割bool allCut = true;foreach (var length in 需求长度.Keys){if (需求长度[length] > 0){allCut = false;break;}}Env.Editor.WriteMessage(allCut ? "所有长度都已切割完毕。" : "部分长度未切割完毕。\n");}// 贪心算法实现public static List<List<int>> 计算剩余长度s和利用率(out List<int> 剩余长度s, out double 利用率){// 存储最终的切割方案List<List<int>> 切割计划s = new List<List<int>>();// 存储每根原材料的剩余长度剩余长度s = new List<int>();// 复制需要的切割长度及其数量,避免修改原始数据Dictionary<int, int> requiredLengthsCopy = new Dictionary<int, int>(需求长度);// 总使用的材料长度int 总使用长度 = 0;// 循环直到所有需要的长度都被切割while (true){// 当前原材料的剩余长度int 当前材料剩余长度 = 原材料长度;// 当前原材料的切割方案List<int> 最终方案 = new List<int>();// 从最长的长度开始尝试切割foreach (var length in requiredLengthsCopy.Keys.ToList()){/*****************省略部分源代码***********************/}// 如果当前原材料没有切割任何长度,则退出循环if (最终方案.Count == 0)break;// 将当前切割方案添加到最终方案中切割计划s.Add(最终方案);// 记录当前原材料的剩余长度剩余长度s.Add(当前材料剩余长度);}// 计算利用率int total原材料长度 = 切割计划s.Count * 原材料长度; // 总原材料长度利用率 = (double)总使用长度 / total原材料长度 * 100; // 利用率百分比return 切割计划s;}}

http://www.dtcms.com/wzjs/338566.html

相关文章:

  • 做美工的网站广西网络优化seo
  • 十堰网站制作公司电话网络营销郑州优化推广公司
  • 公司转让费用网站seo案例
  • 安徽亳州建设厅网站百度企业官网认证
  • 网站广告投放百度排行榜
  • 网站建设报价单比较靠谱的推广平台
  • 网站建设中如何使用字体网站服务器一年的费用
  • 手机可做兼职的网站搜索推广营销
  • 做外贸翻译用哪个网站网络营销方案范文
  • 制作网站不给源代码合肥网络推广软件系统
  • 广州网站建设骏域趣丁号友情链接
  • 做网站什么系统简单seo网站快速整站优化技术
  • wordpress范例seo这个行业怎么样
  • 网站开发培训学院一键优化清理
  • 深圳有哪些做网站公司郑州seo优化
  • 网上学做网站每日舆情信息报送
  • 门户网站是指提供什么的网站百度一下你就知道首页官网
  • 什么网站做唱歌主播运营推广的方式和渠道
  • 淘宝毕业设计网站代做百度视频排名优化
  • 建设网站需要虚拟空间嘛网店推广运营
  • 常德政务网站网站开发的一般流程
  • 自己建网站的优势百度一下你就知道官网网页
  • 北京市海淀区网站建设小视频关键词汇总
  • 如何用织梦猫做网站和后台外贸平台有哪些比较好
  • 网站关闭模板品牌营销和市场营销的区别
  • 北京制作公司网站广州信息流推广公司
  • 那些网站专门做棋牌推广的湖南关键词排名推广
  • 公司网站建设价格标准关键词排名推广公司
  • 住房和城乡建设部网站下载近期时政热点新闻20条
  • myeclipse网站开发不受国内限制的浏览器