![“寻找关联次数最多的商品”问题之算法实现项目汇报_第1页](http://file4.renrendoc.com/view/eca6d5adef0d358135cae5642f9e910e/eca6d5adef0d358135cae5642f9e910e1.gif)
![“寻找关联次数最多的商品”问题之算法实现项目汇报_第2页](http://file4.renrendoc.com/view/eca6d5adef0d358135cae5642f9e910e/eca6d5adef0d358135cae5642f9e910e2.gif)
![“寻找关联次数最多的商品”问题之算法实现项目汇报_第3页](http://file4.renrendoc.com/view/eca6d5adef0d358135cae5642f9e910e/eca6d5adef0d358135cae5642f9e910e3.gif)
![“寻找关联次数最多的商品”问题之算法实现项目汇报_第4页](http://file4.renrendoc.com/view/eca6d5adef0d358135cae5642f9e910e/eca6d5adef0d358135cae5642f9e910e4.gif)
![“寻找关联次数最多的商品”问题之算法实现项目汇报_第5页](http://file4.renrendoc.com/view/eca6d5adef0d358135cae5642f9e910e/eca6d5adef0d358135cae5642f9e910e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录01项目任务02研究步骤03研究成果04小组总结01项目任务通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。1.项目背景2.项目任务根据第二章“项目挑战”中设计的算法,采集超市某个时期内的流水账记录,将已有的算法进行程序实现,找出超市内关联次数最多的一对商品(“关联次数”的具体叙述详见第二章的“项目挑战”)。具体要求如下:1.采集商品交易数据,采用合适的文件格式进行存储。2.根据算法特点,预处理数据并能采用合理的数据结构进行组织。3.编写计算机程序,找出关联次数最多的商品。3.项目分析本项目围绕研究“寻找关联次数最多的商品”问题之算法实现这一主题,在采集数据和程序设计的过程中,初步掌握数据采集、数据整理和数据预处理的方法,领悟数据的价值、数据计算的意义;学会使用Python语言编写程序,解决实际问题,掌握程序调试与运行的方法;通过小组合作完成项目活动,整理分析完成一篇程序设计分析报告。最后,以小组为单位,通过一定的形式将分析报告向全班同学作介绍。02研究步骤通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。研究步骤1.组建团队2.任务分工3.采集和预处理数据4.程序实现5.项目展示1.组建团队组长:张三组员:李四、王五、赵六、陈七2.任务分工组内分工组员姓名主要职责联系方式组长XXX总体协调,最后汇总QQ:YYY组员AXXX数据采集,数据预处理QQ:YYY组员BXXX程序设计和调试QQ:YYY组员CXXX程序设计和调试QQ:YYY组员DXXX程序设计和调试QQ:YYY3.采集和预处理数据4.程序实现4.1读取超市流水账我们使用语句fromopenpyxlimportload_workbook引入库,然后打开"超市流水账.xlsx"文件,读取“流水账”工作表,并把货号和流水号提取出来,分别存储到列表a和b中。wb=load_workbook("超市流水账.xlsx")ws=wb['流水账']a=list(map(lambdax:x.value,ws['A']))#提取货号b=list(map(lambdax:x.value,ws['F']))#提取流水号4.程序实现4.2初始化商品关联次数我们设货号的最大值为n,则货号取值范围[1,n],因为后面的计算是以货号值为下标,舍弃了下标为0的元素,故需要设置大小为(n+1)*(n+1)的二维数组incidence_times,并初始化所有数组元素均为0。n=max(a[1:])#各商品的货号取值范围[1,n]#存储各商品关联次数的二维数组incidence_times=[[0foriinrange(n+1)]forjinrange(n+1)]4.程序实现4.3存储流水号相同的商品我们建立一个字典serial_number,该字典以流水号为键,以流水号相同的商品列表为值。serial_number={}#以流水号为键,存储相同流水号的商品#将流水号相同的商品存储到同一列表中fori,numinenumerate(a[1:]):ifb[i]inserial_number:serial_number[b[i]].append(num)else:serial_number[b[i]]=[num]4.程序实现4.4统计各商品关联次数遍历所有购物篮,为每个购物篮内的商品建立关联,并使其关联次数增1,这样就可以统计出所有商品之间的关联次数。forkey,vinserial_number.items():print(f'{key}:{v}')foriinrange(len(v)-1):forjinrange(i+1,len(v)):incidence_times[v[i]][v[j]]+=1incidence_times[v[j]][v[i]]+=14.程序实现4.5寻找关联次数最多的商品采用枚举算法,遍历二维数组incidence_times,找出关联次数最多的商品,输出其关联次数max_num和对应的商品货号sp1和sp2。max_num,sp1,sp2=0,0,0foriinrange(1,n):forjinrange(i+1,n+1):ifincidence_times[i][j]>=max_num:max_num,sp1,sp2=incidence_times[i][j],i,j4.程序实现4.6输出关联次数最多的商品因为有可能存在多对关联次数最多的商品,所以我们需要再次二维数组incidence_times,找出关联次数等于max_num的所有商品对。foriinrange(1,n):forjinrange(i+1,n+1):ifincidence_times[i][j]==max_num:print(f'关联次数最多的商品是{i}和{j},最大关联次数为{max_num}')5.程序测试输出各流水号中的货号信息(此处只截取了部分流水号信息)5.程序测试输出一对或多对关联次数最多的商品6.程序改进1 改进寻找和输出关联次数最多的商品的代码#寻找关联次数最多的商品max_num=max([max(i)foriinincidence_times])#有可能存在多对关联次数最多的商品sp=[(i,j)foriinrange(1,n)forjinrange(i+1,n+1)ifincidence_times[i][j]==max_num]fori,jinsp:print(f'关联次数最多的商品是{i}和{j},最大关联次数为{max_num}')6.程序改进2
增加查询关联次数为任意值的商品对功能#输出关联次数为num的商品num=int(input('请输入商品的关联次数,结束程序输入0:'))whilenum>0:sp=[(i,j,incidence_times[i][j])foriinrange(1,n)forjinrange(i+1,n+1)ifincidence_times[i][j]==num]fori,j,numinsp:print(f'商品{i}和{j}的关联次数为{num}')num=int(input('请输入商品的关联次数,结束程序输入0:'))03研究成果通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。通过复制您的文本后,在此框中选择粘贴。研究成果经过这一周的项目挑战,我们对Python程序设计的知识有了更深的理解,特别是对程序设计的基本步骤以及思想有了更具体、深刻的体会。通过一次次的解决难题,使我们不仅巩固了理论知识,还培养了我们灵活运用知识、解决实际问题的能力。其次,这个项目是我们小组团队协作完成的,在项目挑战过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中等职业学校思想政治、语文、历史三科课程标准的教学模块主题
- 国内外对肉苁蓉生产和研究现状与趋势-项目立项依据
- 【小升初语文讲义】第13讲:阅读之概括文章主要内容与理解句子(部编版-含例题)
- 教师节日活动方案模板-开学季
- 果洛藏族自治州玛沁县2023-2024学年英语五下期末经典模拟试题含解析
- 桂林市灵川县2023年三下数学期末统考试题含解析
- 装饰皮革产品项目运营指导方案
- 轮毂产品相关项目建议书
- 离子风枪项目可行性实施报告
- C语言程序设计 课件 第10章-文件
- 初高中生物衔接课件
- 新闻知识点归纳(课件)
- 提高床头交接班的完善率品管圈CQI课件
- 商务谈判(英文版.第五版)案例与分析(英文)
- 2023数学新课程标准
- 发展汉语初级口语I-第10课课件
- 电厂冷却塔施工方案
- 建筑工程勘察项目-技术标
- DB11-T808-2020市政基础设施工程资料管理规程
- 电动自行车充电桩智慧管理系统平台建设方案
- 小学综合实践三年级上册第1单元《考察探究》教材分析
评论
0/150
提交评论