2019寒假訓練營第二次做業

學習視頻課程(20')

博客連接html

程序題(80'+50')

熱身題(20')
學習基本的文件讀寫
讀提供的文件Request.txt
把裏面的內容寫到output.txt
基本題(60')
根據提供請求的輸入Request.txt,把全部請求和對應的信息大小都存下來。
統計每一個發送方的總請求大小S,S超過T的就認定爲黑客,把他們的名字存進你的黑名單裏。
輸出黑客的個數,和這些黑客的名字。
開放題(50')
如今你已經暫時恢復了服務。但你發現,1的方法很笨,例如:把全部請求都存下來,再統計總值,花費了你大量的存儲空間。這裏麪包含了不少沒必要要的操做,有不少缺點。
吐槽1方法,找到這個方法的問題。給出你的方法,不必定是完美的,說出方法的優缺點,只要能自圓其說。(能夠從速度、佔用的空間、準確率等方面思考)
選作:實現你的方法git

GIT連接github

思路

熱身題:
創建結構體,定義數組,打開並讀寫文件,最後關閉文件。運行效果以下:

基礎題:
在熱身題的基礎上進行改動,再定義一個結構體數組,同時計算出相同名字的發送方的信息大小的和,而後判斷是否大於1500並進行是否重複的判斷,若知足條件則加入新創建的結構體,最後輸出便可。運行效果以下:
數組

開放題:
吐槽:學習

  • 該方法要求儲存全部請求和信息,當信息量比較大時,耗時並且佔用的臨時內存較大。
  • 判斷方式不夠完善,單純以信息量總和是否大於1500進行判斷,可能致使顧客被誤加入黑名單或者黑客沒法被所有加入黑名單,準確度不夠高。且當信息量較大時,更容易發生誤殺。
  • 靈活性低總信息量超出int範圍和用戶名超出定義的數組範圍都將影響程序運行。

改進:spa

  • 正常人發送消息速度有限,頻率過高應該就是黑客沒錯,能夠先對全部全部信息按用戶名排序,再篩選出短期內發送消息頻率較高的用戶列入黑名單。
  • 黑客發的騷擾信息信息量比較小隻是數量多,我以爲應該設定單次發送信息量的下限和上限,儲存時跳過信息量不達標的信息,這樣能節省必定的運行時間和內存。
  • 適當調整定義的數據範圍,保證程序的正常運行,若是能夠的話我還想適當調大T的大小,感受1500有點小。

優勢:提升了必定的準確度,節省了必定的運行時間和內存。
缺點:對單次信息量大小進行限制也可能會形成誤殺。視頻

實現:暫時沒有實現htm

相關文章
相關標籤/搜索