python array的应用
生活随笔
收集整理的這篇文章主要介紹了
python array的应用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)組的應(yīng)用
應(yīng)用1:洗牌
? 描述:洗牌后每個元素隨機(jī)出現(xiàn)在每個位置,且概率相等
方法1:調(diào)用庫函數(shù)
import random def shuffle_system(cards):random.shuffle(cards)?
方法2:
def shuffle_correct(cards):for i in range(len(cards)):randomi = i+ random.randint(0,len(cards)-i-1)card[i],cards[randomi] = cards[randomi],card[i] #對方法二的解釋: #首先在0 - n-1下標(biāo)中產(chǎn)生一個隨機(jī)下標(biāo),交換第一個和和隨機(jī)下標(biāo),所以任何數(shù)字出現(xiàn)在第一個位置的概率是1/n #第二次時在1- n-2 中隨機(jī)產(chǎn)生下標(biāo),產(chǎn)生1- n-2 隨機(jī)數(shù)的概率時1/n-1,但是第二次抽中第一次沒有選中這個數(shù)的概率時n-1/n #所以第二次出現(xiàn)在第二個位置的概率還是1/n, #依次類推,所以每個數(shù)出現(xiàn)的概率都是1/n,就能完成對一個數(shù)組進(jìn)行洗牌的操作?
應(yīng)用二:計算質(zhì)數(shù)的個數(shù)
描述:給定一個正整數(shù)n,計算出小于等于n的質(zhì)數(shù)有多少個。比如17,則返回7,因為小于等于7的質(zhì)數(shù)有2,3,5,7,11,13,17
def count_prime(n):count=0;for i in range(2,n+1):for j in range(2 ,i):if i % j == 0:break;else:count = count + 1;return count?
應(yīng)用三:證明哥德巴赫的猜想:
描述:任一大于2的偶數(shù),都可表示成兩個質(zhì)數(shù)之和。
#primes函數(shù)和應(yīng)用二類似,只是把所有質(zhì)數(shù)添加到一個list中 def prime(n):count=0;primes=[];for i in range(2,n+1):for j in range(2 ,i):if i % j == 0:break;else:primes.append(i)return primes?
#采用了雙指針的方法來進(jìn)行移動 def goldbach(n):primes=prime(n)begin = 0end = len(primes)-1while begin < end:if primes[begin]+primes[end] > n:end = end - 1elif primes[begin]+primes[end] < n:begin = begin + 1else:print("{}={}+{}".format(n,primes[begin],primes[end]))break?
轉(zhuǎn)載于:https://www.cnblogs.com/zhanyifan/p/9744150.html
總結(jié)
以上是生活随笔為你收集整理的python array的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nowcoder 202F-平衡二叉树
- 下一篇: css 五种位置