欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

代碼如下:

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ù)超過數(shù)組長(zhǎng)度一半的元素
  普遍性解法針對(duì)任何次數(shù)的統(tǒng)計(jì)均適用而不光只是針對(duì)出現(xiàn)次數(shù)超過數(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ù)都超過數(shù)組長(zhǎng)度一半就會(huì)得出兩個(gè)元素出現(xiàn)的次數(shù)超出了數(shù)組長(zhǎng)度的矛盾結(jié)果——所以超過數(shù)組長(zhǎng)度一半的元素是唯一的
  排序后在數(shù)組中間的一定是目標(biāo)解
  特殊性解法只能針對(duì)元素出現(xiàn)次數(shù)超過數(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ù)超過數(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ì)算圓周率

早上起來突然想求圓周率,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ù)超過數(shù)組長(zhǎng)度一半的元素實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python高級(jí)特性與幾種函數(shù)的講解

    Python高級(jí)特性與幾種函數(shù)的講解

    今天小編就為大家分享一篇關(guān)于Python高級(jí)特性與幾種函數(shù)的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 使用Python腳本操作MongoDB的教程

    使用Python腳本操作MongoDB的教程

    這篇文章主要介紹了使用Python腳本操作MongoDB的教程,MongoDB作為非關(guān)系型數(shù)據(jù)庫(kù)得到了很大的宣傳力度,而市面上的教程一般都是講解JavaScript的腳本操作,本文則是基于Python,需要的朋友可以參考下
    2015-04-04
  • Python 生成一個(gè)從0到n個(gè)數(shù)字的列表4種方法小結(jié)

    Python 生成一個(gè)從0到n個(gè)數(shù)字的列表4種方法小結(jié)

    今天小編就為大家分享一篇Python 生成一個(gè)從0到n個(gè)數(shù)字的列表4種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python的代理類實(shí)現(xiàn),控制訪問和修改屬性的權(quán)限你都了解嗎

    Python的代理類實(shí)現(xiàn),控制訪問和修改屬性的權(quán)限你都了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python的代理類實(shí)現(xiàn),控制訪問和修改屬性的權(quán)限,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 使用Streamlit和Pandas實(shí)現(xiàn)帶有可點(diǎn)擊鏈接的數(shù)據(jù)表格

    使用Streamlit和Pandas實(shí)現(xiàn)帶有可點(diǎn)擊鏈接的數(shù)據(jù)表格

    這篇文章主要為大家詳細(xì)介紹了如何利用?Streamlit?和?Pandas?在?Python?中創(chuàng)建一個(gè)帶有可點(diǎn)擊鏈接的數(shù)據(jù)表格,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • Python繪制動(dòng)態(tài)水球圖過程詳解

    Python繪制動(dòng)態(tài)水球圖過程詳解

    這篇文章主要介紹了Python繪制動(dòng)態(tài)水球圖過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python教程之基本運(yùn)算符的使用(上)

    Python教程之基本運(yùn)算符的使用(上)

    Python?運(yùn)算符通常用于對(duì)值和變量執(zhí)行操作。這些是用于邏輯和算術(shù)運(yùn)算的標(biāo)準(zhǔn)符號(hào)。在本文中,我們將研究不同類型的?Python?運(yùn)算符,感興趣的可以了解一下
    2022-09-09
  • python導(dǎo)入其它py文件的實(shí)現(xiàn)步驟

    python導(dǎo)入其它py文件的實(shí)現(xiàn)步驟

    本文主要介紹了python導(dǎo)入其它py文件的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Python量化交易詳細(xì)簡(jiǎn)介

    Python量化交易詳細(xì)簡(jiǎn)介

    這篇文章主要介紹了Python量化交易詳細(xì),??算法交易是使用自動(dòng)化系統(tǒng)來執(zhí)行交易,這些交易是通過特定的算法以預(yù)測(cè)的方式執(zhí)行的沒有任何人為干預(yù)。依據(jù)數(shù)學(xué)模型對(duì)大數(shù)據(jù)進(jìn)行概率分析,使得長(zhǎng)期收益期望最大化,下文詳細(xì)敘述,需要的朋友可以參考一下
    2022-03-03
  • pandas條件組合篩選和按范圍篩選的示例代碼

    pandas條件組合篩選和按范圍篩選的示例代碼

    這篇文章主要介紹了pandas條件組合篩選和按范圍篩選的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論