最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素實(shí)例

 更新時(shí)間:2020年05月11日 08:45:47   作者:天外歸云  
這篇文章主要介紹了Python 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

利用問(wèn)題的普遍性和特殊性來(lái)求解,

代碼如下:

import unittest
from datetime import datetime

class 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):
  """
  普遍性解法
  利用字典記錄每個(gè)元素出現(xiàn)的次數(shù)——然后找出元素出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素
  普遍性解法針對(duì)任何次數(shù)的統(tǒng)計(jì)均適用而不光只是針對(duì)出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的情況
  """
  _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):
  """
  特殊性解法
  假設(shè)有兩個(gè)元素出現(xiàn)的次數(shù)都超過(guò)數(shù)組長(zhǎng)度一半就會(huì)得出兩個(gè)元素出現(xiàn)的次數(shù)超出了數(shù)組長(zhǎng)度的矛盾結(jié)果——所以超過(guò)數(shù)組長(zhǎng)度一半的元素是唯一的
  排序后在數(shù)組中間的一定是目標(biāo)解
  特殊性解法只能針對(duì)元素出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的情況
  """
  _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__":
 # 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素
 suite = unittest.TestSuite()
 suite.addTest(GetFreqNumbersFromList('test_normal_solution'))
 suite.addTest(GetFreqNumbersFromList('test_specific_solution'))
 runner = unittest.TextTestRunner()
 runner.run(suite)

測(cè)試結(jié)果:

補(bǔ)充知識(shí):Python 用積分思想計(jì)算圓周率

早上起來(lái)突然想求圓周率,1單位時(shí)圓的面積。

代碼如下:

from math import pow, sqrt

def 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)

運(yùn)行結(jié)果接近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 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何利用Pandas刪除某列指定值所在的行

    如何利用Pandas刪除某列指定值所在的行

    工作中通常會(huì)遇到大量的數(shù)據(jù)集需要處理,其中的一項(xiàng)就是將含有某些數(shù)據(jù)的行刪除掉,下面這篇文章主要給大家介紹了關(guān)于如何利用Pandas刪除某列指定值所在的行的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python為什么要安裝到c盤

    python為什么要安裝到c盤

    在本篇文章里小編給大家整理的是一篇關(guān)于python安裝到c盤的原因的文章,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • python 中 .py文件 轉(zhuǎn) .pyd文件的操作

    python 中 .py文件 轉(zhuǎn) .pyd文件的操作

    這篇文章主要介紹了python 中 .py文件 轉(zhuǎn) .pyd文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Pandas多列值合并成一列的實(shí)現(xiàn)

    Pandas多列值合并成一列的實(shí)現(xiàn)

    本文主要介紹了Pandas多列值合并成一列的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python openpyxl 帶格式復(fù)制表格的實(shí)現(xiàn)

    python openpyxl 帶格式復(fù)制表格的實(shí)現(xiàn)

    這篇文章主要介紹了python openpyxl 帶格式復(fù)制表格的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Django migrations 默認(rèn)目錄修改的方法教程

    Django migrations 默認(rèn)目錄修改的方法教程

    這篇文章主要介紹了Django migrations 默認(rèn)目錄修改的方法教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Python基礎(chǔ)教程之輸入輸出和運(yùn)算符

    Python基礎(chǔ)教程之輸入輸出和運(yùn)算符

    這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之輸入輸出和運(yùn)算符的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python操作mysql代碼總結(jié)

    python操作mysql代碼總結(jié)

    本篇文章給大家分享了python操作mysql的步驟以及相關(guān)實(shí)例代碼,對(duì)此有需要的朋友可以參考學(xué)習(xí)下。
    2018-06-06
  • Python數(shù)據(jù)可視化之用Matplotlib繪制常用圖形

    Python數(shù)據(jù)可視化之用Matplotlib繪制常用圖形

    Matplotlib能夠繪制折線圖、散點(diǎn)圖、柱狀圖、直方圖、餅圖. 我們需要知道不同的統(tǒng)計(jì)圖的意義,以此來(lái)決定選擇哪種統(tǒng)計(jì)圖來(lái)呈現(xiàn)我們的數(shù)據(jù),今天就帶大家詳細(xì)了解如何繪制這些常用圖形,需要的朋友可以參考下
    2021-06-06
  • Python實(shí)現(xiàn)疫苗接種管理數(shù)據(jù)庫(kù)步驟詳解

    Python實(shí)現(xiàn)疫苗接種管理數(shù)據(jù)庫(kù)步驟詳解

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)疫苗接種管理數(shù)據(jù)庫(kù)步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論

泰和县| 始兴县| 宽城| 柏乡县| 周口市| 阳江市| 遂宁市| 施甸县| 根河市| 定州市| 逊克县| 通江县| 峨山| 巴林右旗| 玉屏| 马龙县| 昌宁县| 濮阳市| 鹤岗市| 晋城| 类乌齐县| 金坛市| 兴安县| 南汇区| 高阳县| 安顺市| 左贡县| 买车| 塔河县| 无为县| 延庆县| 天津市| 新巴尔虎左旗| 南华县| 邻水| 遂溪县| 济南市| 民权县| 庄河市| 龙泉市| 麻阳|