文字列をmyBytesを5000から100000まで5000刻みで増やしていきます.
まずn=5000の時のxRとnRの関数の10回の平均処理時間をそれぞれ求めてその後myBytesを10000にしてと100000まで行います.そしてその結果を全て出力nが5000から100000まで出力したいです.
python
1import time 2import numpy as np 3 4NA ='ACGT' 5n = 100000 6s = '' 7myBytes = {} 8for n in range(5000,100000,5000): #000から100000まで5000刻みで動かす 9 myBytes[n] = (s.join([random.choice(DNA) for i in range(n)])).encode() 10 N=10 #10回平均処理時間 11 for j in range(N): 12 st1_time = time.time() 13 xR = sA(myBytes,256,0,False) 14 et1_time = time.time() 15 lap1_time= et1_time-st1_time 16 np.mean(lap1_time) 17 for j in range(N): 18 st2_time = time.time() 19 nR = A(myBytes) 20 et2_time = time.time() 21 lap2_time = et2_time-st2_time 22 np.mean(lap2_time) 23 24print("processing time:{} {} {}".format(np.mean(lap1_time),np.mean(lap2_time), xR==nR))
現状としてmyBytesを5000から100000まで5000刻みで持っている.
xRとnRで10回平均処理時間を求めることはできていますが,nを動かしながらxRとnRを動かすことがうまくいっておらず,
以下のようなエラーが表示されます.
python
1--------------------------------------------------------------------------- 2IndexError Traceback (most recent call last) 3<ipython-input-186-12a8686f963f> in <module> 4 11 for j in range(N): 5 12 st1_time = time.time() 6---> 13 xR = sA(myBytes,256,0,False) 7 14 et1_time = time.time() 8 15 lap1_time= et1_time-st1_time 9 10<ipython-input-53-0a3037ecc9d2> in sA(text, alphabetSize, nRec, dispF) 11 5 12 6 # slot suffixes into buckets 13----> 7 bSizes = bucketSizes(text, alphabetSize) 14 8 15 9 # determine the locations of LMSs 16 17<ipython-input-10-c0b3ee3b1238> in bucketSizes(string, alphabetSize) 18 5 res = [0] * alphabetSize 19 6 for char in string: 20----> 7 res[char] += 1 21 8 return res 22 23IndexError: list index out of range 24
あなたの回答
tips
プレビュー