“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)項目匯報_第1頁
“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)項目匯報_第2頁
“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)項目匯報_第3頁
“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)項目匯報_第4頁
“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)項目匯報_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

目錄01項目任務02研究步驟03研究成果04小組總結01項目任務通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。1.項目背景2.項目任務根據(jù)第二章“項目挑戰(zhàn)”中設計的算法,采集超市某個時期內的流水賬記錄,將已有的算法進行程序實現(xiàn),找出超市內關聯(lián)次數(shù)最多的一對商品(“關聯(lián)次數(shù)”的具體敘述詳見第二章的“項目挑戰(zhàn)”)。具體要求如下:1.采集商品交易數(shù)據(jù),采用合適的文件格式進行存儲。2.根據(jù)算法特點,預處理數(shù)據(jù)并能采用合理的數(shù)據(jù)結構進行組織。3.編寫計算機程序,找出關聯(lián)次數(shù)最多的商品。3.項目分析本項目圍繞研究“尋找關聯(lián)次數(shù)最多的商品”問題之算法實現(xiàn)這一主題,在采集數(shù)據(jù)和程序設計的過程中,初步掌握數(shù)據(jù)采集、數(shù)據(jù)整理和數(shù)據(jù)預處理的方法,領悟數(shù)據(jù)的價值、數(shù)據(jù)計算的意義;學會使用Python語言編寫程序,解決實際問題,掌握程序調試與運行的方法;通過小組合作完成項目活動,整理分析完成一篇程序設計分析報告。最后,以小組為單位,通過一定的形式將分析報告向全班同學作介紹。02研究步驟通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。研究步驟1.組建團隊2.任務分工3.采集和預處理數(shù)據(jù)4.程序實現(xiàn)5.項目展示1.組建團隊組長:張三組員:李四、王五、趙六、陳七2.任務分工組內分工組員姓名主要職責聯(lián)系方式組長XXX總體協(xié)調,最后匯總QQ:YYY組員AXXX數(shù)據(jù)采集,數(shù)據(jù)預處理QQ:YYY組員BXXX程序設計和調試QQ:YYY組員CXXX程序設計和調試QQ:YYY組員DXXX程序設計和調試QQ:YYY3.采集和預處理數(shù)據(jù)4.程序實現(xiàn)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.程序實現(xiàn)4.2初始化商品關聯(lián)次數(shù)我們設貨號的最大值為n,則貨號取值范圍[1,n],因為后面的計算是以貨號值為下標,舍棄了下標為0的元素,故需要設置大小為(n+1)*(n+1)的二維數(shù)組incidence_times,并初始化所有數(shù)組元素均為0。n=max(a[1:])#各商品的貨號取值范圍[1,n]#存儲各商品關聯(lián)次數(shù)的二維數(shù)組incidence_times=[[0foriinrange(n+1)]forjinrange(n+1)]4.程序實現(xiàn)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.程序實現(xiàn)4.4統(tǒng)計各商品關聯(lián)次數(shù)遍歷所有購物籃,為每個購物籃內的商品建立關聯(lián),并使其關聯(lián)次數(shù)增1,這樣就可以統(tǒng)計出所有商品之間的關聯(lián)次數(shù)。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.程序實現(xiàn)4.5尋找關聯(lián)次數(shù)最多的商品采用枚舉算法,遍歷二維數(shù)組incidence_times,找出關聯(lián)次數(shù)最多的商品,輸出其關聯(lián)次數(shù)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.程序實現(xiàn)4.6輸出關聯(lián)次數(shù)最多的商品因為有可能存在多對關聯(lián)次數(shù)最多的商品,所以我們需要再次二維數(shù)組incidence_times,找出關聯(lián)次數(shù)等于max_num的所有商品對。foriinrange(1,n):forjinrange(i+1,n+1):ifincidence_times[i][j]==max_num:print(f'關聯(lián)次數(shù)最多的商品是{i}和{j},最大關聯(lián)次數(shù)為{max_num}')5.程序測試輸出各流水號中的貨號信息(此處只截取了部分流水號信息)5.程序測試輸出一對或多對關聯(lián)次數(shù)最多的商品6.程序改進1 改進尋找和輸出關聯(lián)次數(shù)最多的商品的代碼#尋找關聯(lián)次數(shù)最多的商品max_num=max([max(i)foriinincidence_times])#有可能存在多對關聯(lián)次數(shù)最多的商品sp=[(i,j)foriinrange(1,n)forjinrange(i+1,n+1)ifincidence_times[i][j]==max_num]fori,jinsp:print(f'關聯(lián)次數(shù)最多的商品是{i}和{j},最大關聯(lián)次數(shù)為{max_num}')6.程序改進2

增加查詢關聯(lián)次數(shù)為任意值的商品對功能#輸出關聯(lián)次數(shù)為num的商品num=int(input('請輸入商品的關聯(lián)次數(shù),結束程序輸入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}的關聯(lián)次數(shù)為{num}')num=int(input('請輸入商品的關聯(lián)次數(shù),結束程序輸入0:'))03研究成果通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。通過復制您的文本后,在此框中選擇粘貼。研究成果經(jīng)過這一周的項目挑戰(zhàn),我們對Python程序設計的知識有了更深的理解,特別是對程序設計的基本步驟以及思想有了更具體、深刻的體會。通過一次次的解決難題,使我們不僅鞏固了理論知識,還培養(yǎng)了我們靈活運用知識、解決實際問題的能力。其次,這個項目是我們小組團隊協(xié)作完成的,在項目挑戰(zhàn)過程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論