reduce為逐次操作list里的每項,接收的參數為 2個,最后返回的為一個結果
站在用戶的角度思考問題,與客戶深入溝通,找到靈寶網站設計與靈寶網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、網站制作、企業官網、英文網站、手機端網站、網站推廣、域名注冊、網絡空間、企業郵箱。業務覆蓋靈寶地區。
def myadd(x,y):
return x*y
sum=reduce(myadd,(1,2,3,4,5))
120
解法1
數組解法牛。
首先定義一個ns數組用來存儲n!的各個位數上的數值,利用for循環給ns加入10000個0值,以方便后面直接根據index對數組進行操作。
然后定義length作為 “數組的長度”(有真實數值的而非自動添加的0) 也即n!的結果的位數。
之后也必須用到for循環進行累乘,但跟解法一的直接累乘不同,這里是乘數(即i)跟各個位上的數分別相乘,若結果大于等于10則carry0即向前進一位數值為carry,若j循環結束后carry0則說明需要在當前ns的“長度”上進一位,所以length+1即位數+1,這里carry起的就是判斷是否進位的作用,而length則代表著結果的位數。
n= int(input())
ns = [0 for i in range(10000) ]
n= int(input())
ns = [0 for i in range(10000) ]
length = 1
ns[0] = length = 1
if n=2:
#for i in range(2,n+1):
##carry = 0
##for j in range(length):
###temp = ns[j] * i + carry
###carry = int(temp/10)
###ns[j] = temp % 10
##while carry0:
###ns[length] += carry%10
###length+=1
###carry = int(carry/10)
while length0:
#length -=1
#print(ns[length],end='')
把# 替換為空格就可以運行。
如輸入1000,計算1000!
解法2
print()
m=int(input("計算m!,請輸入整數m:"))
import math
a=sum([math.log10(i) for i in range(1,m+1)])
b=int(a)
c=a-b
print(f'{m}!={10**c}*10^{b}')
有階乘函數,Numpy中,mat必須是2維的,但是array可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含于Array。所以matrix 擁有array的所有特性。
在numpy中matrix的主要優勢是:相對簡單的乘法運算符號。例如,a和b是兩個matrices,那么a*b,就是矩陣積。
若a=mat([1,2,3])?是矩陣,則 a.A 則轉換成了數組,反之,a.M則轉換成了矩陣。
擴展資料:
常用的Numpy運算:
取矩陣中的某一行?ss[1,:]?或該行的某兩列?ss[1,0:2]
將數組轉換成矩陣?randMat=mat(random.rand(4,4))
矩陣求逆?randMat.I
單位陣?eye(4)
零矩陣?zeros((x,y))?建立x行y列的零矩陣。
最大值和最小值?a.max(),a.min()?,而a.max(0)?表示按列選取每列的最大值。最大/小元素的下標?a.argmax(),a.argmin()
#作為方法x.sum() #所有元素相加x.sum(axis=0) ? #按列相加x.sum(axis=1) ? #按行相加#作為函數sum(a,axis=0)ss.mean()?
mean(a,axis=0(或1)) ?#按列或行求均值var(a)var(a,axis=0(或1))? #按列或行求方差。
std(a)std(a,axis=0(或1)) ? #按列或行求標準差ss.T或ss.transpose() #轉置。
有階乘函數:
improt numpy
print numpy.math.factorial(3)
python 自帶的標準庫也有階乘函數
import math
print math.factorial(3)
以下提供兩種方法 供參考,第一種方式為自己構造求階乘的函數,第二種則直接使用了Python標準庫,代碼如下:
一、
自己構造階乘函數
from functools import reduce
def factorial(n):
l = range(1,n+1)
result = reduce(lambda x,y:x*y,l)
return result
for i in range(1,6): print('{}! = {}'.format(i, factorial(i)))
二、
Python標準庫
from math import factorial
for i in range(1,6):
print("{}! = {}".format(i,factorial(i)))
兩段程序輸出一樣,如下:
前兩個都封裝成了函數。最后一個直接運行的。沒有定義函數。
中間那個問題,是因為你忘記做類型轉換,你試著運行這個number=int(number)。應該 就對了。
網頁名稱:python2階乘函數,python中求階乘
轉載源于:http://vcdvsql.cn/article12/hecggc.html
成都網站建設公司_創新互聯,為您提供電子商務、標簽優化、響應式網站、外貿建站、網站制作、建站公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯