色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Python 找出出現次數超過數組長度一半的元素實例

瀏覽:41日期:2022-07-26 08:48:05

利用問題的普遍性和特殊性來求解,

代碼如下:

import unittestfrom datetime import datetimeclass GetFreqNumbersFromList(unittest.TestCase): def setUp(self): print('n') self.start_time = datetime.now() print(f'{self._testMethodName} start: {self.start_time}') def tearDown(self): self.end_time = datetime.now() print(f'{self._testMethodName} end: {self.end_time}') exec_time = (self.end_time - self.start_time).microseconds print(f'{self._testMethodName} exec_time: {exec_time}') def normal_solution(self, _list, _debug=False): ''' 普遍性解法 利用字典記錄每個元素出現的次數——然后找出元素出現次數超過數組長度一半的元素 普遍性解法針對任何次數的統計均適用而不光只是針對出現次數超過數組長度一半的情況 ''' _target = len(_list) // 2 _dict = {} for _member in _list: if _member not in _dict: _dict.setdefault(_member, 1) else: _dict[_member] += 1 _ret = [_member for _member in _dict if _dict[_member] > _target] if _debug: print(_ret) return _ret def specific_solution(self, _list, _debug=False): ''' 特殊性解法 假設有兩個元素出現的次數都超過數組長度一半就會得出兩個元素出現的次數超出了數組長度的矛盾結果——所以超過數組長度一半的元素是唯一的 排序后在數組中間的一定是目標解 特殊性解法只能針對元素出現次數超過數組長度一半的情況 ''' _list.sort() if _debug: print(_list[len(_list) // 2]) return _list[len(_list) // 2] def test_normal_solution(self): actual_result = self.normal_solution([2,2,2,2,2,2,1,1,1,1,1], False) self.assertEqual(actual_result[0], 2) def test_specific_solution(self): actual_result = self.specific_solution([2,2,2,2,2,2,1,1,1,1,1], False) self.assertEqual(actual_result, 2)if __name__ == '__main__': # 找出出現次數超過數組長度一半的元素 suite = unittest.TestSuite() suite.addTest(GetFreqNumbersFromList(’test_normal_solution’)) suite.addTest(GetFreqNumbersFromList(’test_specific_solution’)) runner = unittest.TextTestRunner() runner.run(suite)

測試結果:

Python 找出出現次數超過數組長度一半的元素實例

補充知識:Python 用積分思想計算圓周率

早上起來突然想求圓周率,1單位時圓的面積。

代碼如下:

from math import pow, sqrtdef calc_circle_s_with(r, dy, x_slices): x_from_start_to_cc = sqrt(1 - pow(dy, 2)) dx = x_from_start_to_cc / x_slices x_to_edge = 1 - x_from_start_to_cc quarter_circle_s = 0 while x_to_edge < 1: rect_s = dy * dx quarter_circle_s += rect_s x_to_edge = x_to_edge + dx dy = sqrt(1 - pow((1 - x_to_edge), 2)) circle_s = 4 * quarter_circle_s print(circle_s)calc_circle_s_with(1, 0.0001, 10000000)

運行結果接近3.1415926,dy傳的越小,x_slices傳的越大,就越接近。

半徑為:1

初始小矩形到圓周的距離:1 - x_from_start_to_cc

其中dy代表四分之一圓中初始小矩形的高度,x_slices代表小矩形的寬度:(1 - x_from_start_to_cc) / x_slices

四分之一圓的面積積分為:quarter_circle_s

以上這篇Python 找出出現次數超過數組長度一半的元素實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩一级特黄 | 欧美性猛交xxxxxxxx软件 | 亚洲精品一区二区久久这里 | 在线亚洲一区二区 | 成人毛片免费视频播放 | 久久九九国产精品怡红院 | 一级毛片aaa | 看全色黄大色黄大片毛片 | 精品日本久久久久久久久久 | 视频亚洲一区 | 国产欧美视频一区二区三区 | 在线观看日本永久免费视频 | 久久精品成人一区二区三区 | 久久久精品一区 | 亚洲人成网国产最新在线 | 国产超薄肉色丝袜足j | 日本韩国三级在线观看 | 欧美精品亚洲精品日韩一区 | 亚洲国产人成中文幕一级二级 | 爽死你个放荡粗暴小淫货双女视频 | 97视频在线看| 手机看片在线精品观看 | 亚洲三级a| 精品日本久久久久久久久久 | 网红主播大尺度精品福利视频 | 亚洲国产在 | 日韩亚洲欧美在线 | 国产欧美一区二区三区观看 | 97青娱国产盛宴精品视频 | 亚洲欧美久久 | 国产成人精品免费视频 | 亚洲偷自拍另类图片二区 | 欧美乱爱 | 国产精品日韩欧美一区二区三区 | heyzo北条麻妃久久 | 最近最新中文字幕免费的一页 | 久久午夜鲁丝片午夜精品 | 久久经典免费视频 | 女人张开双腿让男人桶爽免 | 国产人成精品综合欧美成人 | 色片在线播放 |