本文为本人的学习笔记,若有错误请各位大佬纠正!


程序简介

以下是本程序的大致规划

  • 输入:当前气温、不同服装提供的温度

  • 输出:合适的穿衣搭配

具体内容

输入

气温

该程序需要用户输入目前的气温,具体代码如下:

temperature = int(input('目前气温:'))
cloth_temperature = 26 - temperature

服装提供的温度

我将服装名称与其提供的温度保存为一个Excel表格,表格内容如下所示:

T恤

1

衬衫

2

针织开衫

3

薄毛衫

3

卫衣

3

西装外套

4

厚毛衣

4

风衣

5

棉服

5

轻薄羽绒服

6

双面呢大衣

7

羽绒服

9

皮草

12

并使用pandas库读取表格,代码如下:

import pandas as pd
cloth = pd.read_excel('数据.xlsx', index_col=None, header=None)
cloth_list = [np.array(cloth)[i].flatten()[0] for i in range(0, len(np.array(cloth)))]
temperature_list = [np.array(cloth)[i].flatten()[1] for i in range(0, len(np.array(cloth)))]

建立数学规划模型

我们希望衣服提供的温度之和(程序中的cloth_temperature)加上当前的温度(程序中的temperature)尽可能与26℃接近,因此需要引入松弛变量(程序中的slack),则目标函数就为求松弛变量的最小值。

首先,定义所需要用到的变量。其中,slack为松弛变量,x为不同衣服提供的温度(根据之前的表格内容,此处应有x[0]~x[12]共13个变量),代码如下:

import cvxpy as cp
slack = cp.Variable(1)
x = cp.Variable(len(cloth_list), integer=True)

其次,将温度数据转化为1行x列(x为表格中的总行数)的矩阵

import numpy as np
T = np.array(temperature_list)

在进行规划求解之前,需要明确一下约束条件:

  1. 每种衣服最多穿1件;

  1. 至少穿一件T恤或衬衫,作为打底。

求解

明确约束条件之后,便可以规划求解,代码如下:

import cvxpy as cp
obj = cp.Minimize(cp.abs(slack))
cons = [T @ x + slack == cloth_temperature,x >= 0,x <= 1,  # 每种衣服最多穿1件x[0] + x[1] >= 1  # 至少穿一件T恤或衬衫
]
prob = cp.Problem(obj, cons)
prob.solve()

输出

输出部分的代码如下:

cloth_final = []
a = 0
for cloth_number in x.value:if cloth_number > 0:cloth_final.append(f'{int(cloth_number + 0.5)}件' + cloth_list[a])a += 1
print(f'今天气温为{temperature}℃,应该穿{cloth_final}。')

样例

若当前气温为12℃,则输出结果如下:

今天气温为12℃,应该穿['1件T恤', '1件针织开衫', '1件薄毛衫', '1件卫衣', '1件西装外套']。

若当前气温为26℃,则输出结果如下:

今天气温为26℃,应该穿['1件T恤']。

若当前气温为33℃,则输出结果如下:

今天气温为33℃,应该穿['1件T恤']。

完整代码

import numpy as np
import cvxpy as cp
import pandas as pdtemperature = int(input('目前气温:'))
cloth_temperature = 26 - temperaturecloth = pd.read_excel('数据.xlsx', index_col=None, header=None)
cloth_list = [np.array(cloth)[i].flatten()[0] for i in range(0, len(np.array(cloth)))]
temperature_list = [np.array(cloth)[i].flatten()[1] for i in range(0, len(np.array(cloth)))]slack = cp.Variable(1)
x = cp.Variable(len(cloth_list), integer=True)T = np.array(temperature_list)obj = cp.Minimize(cp.abs(slack))
cons = [T @ x + slack == cloth_temperature,x >= 0,x <= 1,  # 每种衣服最多穿1件x[0] + x[1] >= 1  # 至少穿一件T恤或衬衫
]
prob = cp.Problem(obj, cons)
prob.solve()cloth_final = []
a = 0
for cloth_number in x.value:if cloth_number > 0:cloth_final.append(f'{int(cloth_number + 0.5)}件' + cloth_list[a])a += 1
print(f'今天气温为{temperature}℃,应该穿{cloth_final}。')

数学规划应用|26℃穿衣法则相关推荐

  1. 【转】矮个子女生夏天穿衣法则

    很多矮个子MM不知道如何穿衣搭配,其实娇小也是一种资本哟.韩国MM一般都长的很娇小,但正是因为她们长的娇小才很适合可爱甜美的衣服搭配.小个子的MM们在挑选的时候,最重要的就是要先确定自己的风格.如果你 ...

  2. 《基本穿搭:适用一生的穿衣法则》总结

    一. 成年人的普通时尚穿搭特点:------"普通"最重要,"简洁"很重要 基本款 清新自然 有清爽感 款式简洁 基本款服饰:----无图案.无装饰.纯色 尽量 ...

  3. ​女孩们的男装穿衣法则 用Prada打造时髦男友风穿搭

    ​Prada 2020春夏男士系列以青春色调及拼接细节,打造复古文艺的时尚质感.经典廓形衬衫上,Prada标志性三角形logo被重新诠释,更增添几分个性与酷感.周雨彤选择Prada牛津布拼色衬衫搭配黑 ...

  4. 公式穿搭法则,让你穿搭更简单

    最近有个很火的穿衣公式不知道大家是否听说过,叫做"26℃穿衣法则",就是用26℃-当地天气_℃=穿衣_℃,设定好每一类衣服的温度,根据当天的气温来选择搭配,该说不说,穿衣变得像套公 ...

  5. 程序员穿衣审美很谜?更谜的他们开始自己定义Style了

    不知从什么时候开始,网络段子开始大面积"针对"我国程序员,对其"免于体面"的外形,进行了大肆调侃,并为其"倾情量身定制"了一系列标签,诸如& ...

  6. 【渝粤教育】 国家开放大学2020年春季 1050金融理论前沿课题 参考试题

    试卷代号:1058 2 0 2 0年春季学期期末统一考试 商法试题 2020年7月 一.单项选择题(每题只有一个正确答案,多选或错选均不得分,每小题1分,共10分) 1.商人应具备的基本条件是( ). ...

  7. 面试题(十二)自我介绍

    面试策略 ---踏入社会的第一步 毕业生走出校门,挑选梦想的行业之后,立即面对如何挑选就业应征的职场服装,如何通过握手等肢体语言给人留下好的印象,以及如何在众多人员参加的会议室内找到自己的最佳位置等许 ...

  8. 计算机毕业实习报告范文,大学计算机专业毕业实习报告范文

    <大学计算机专业毕业实习报告范文>由会员分享,可在线阅读,更多相关<大学计算机专业毕业实习报告范文(4页珍藏版)>请在人人文库网上搜索. 1.大学计算机专业毕业实习报告范文计算 ...

  9. 计算机专业毕业实习心得

    计算机将具备更多的智能成分,它将具有多种感知能力.一定 的思考与判断能力及一定的自然语言能力.除了提供自然的输入手段 如语音输入.手写输入 外,让人能产生身临其境感觉的各种交互设 备已经出现,虚拟现实 ...

最新文章

  1. python生成时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例
  2. 解决SQL Server里sp_helptext输出格式错行问题
  3. mysql相关操作_mysql相关操作(2)
  4. vs.net 2005 中自定义模版项
  5. python做数据库界面_python数据库界面设计
  6. 解决win2003不支持FLV播放的方法
  7. [译] 第二天:AngularJS - 认识AngularJS
  8. java-用cmd运行java命令
  9. DevExpress中的自定义报表控件使用
  10. 湖南省第1届职业技能大赛(经历、总结)
  11. Web前端 | HTML | 基础
  12. 猴子选大王[加强版]
  13. python进阶学习--- django框架解析 ---领悟编程语言共性与特性【后续详解】
  14. 什么是SQL触发器?SQL触发器是什么意思?
  15. 领军服务外包 大连软件业加速对接资本市场
  16. 3.23.3 线性回归的从零开始实现|Pytorch简洁实现
  17. 制造企业有可能自行开发ERP系统吗?
  18. 软件开发中“埋雷容易,排雷难”
  19. 4k电视测试软件准确吗,真假4K怎么分辨?告诉你几个买4K电视必看的知识
  20. 学习Excel的使用

热门文章

  1. 手机网站服务器出错怎么办,手机服务器出错
  2. 视频网站试水正版影视剧同步播出 免费大餐能吃多久
  3. 丑陋电影/电视剧搜索引擎出炉
  4. OmniGraffle 中文 - 汉化 6.1版本汉化
  5. 华为是主导,但思科才是母版
  6. DTRO膜在危废处理中的应用
  7. 水晶报表报表条码的处理方法
  8. GPU Skinning 一:骨骼动画原理
  9. 抖音影视类账号涨粉快,影视类账号如何转化变现:国仁楠哥
  10. 【Python】【SimpleITK】医学影像重采样至指定的Spacing