すみません、初心者中の初心者で、こんなことと思うこともあるかもしれませんが、
お手すきのかたでもしよろしければ助けてください。。。
pytthon3を使っています。
1〜1000の範囲から整数を100個、同じ範囲から整数を1個(Xとおく)を作って、
整数100個と整数1個をそれぞれ変数に格納します。
整数100個はYと置いています。整数1個はXです。
この整数100個(Y)から整数1個(X)がある場合はa、ない場合はbというコードを二分探査を使って作りたいのですが、
ソートを使って整数100個をランダムに出して、昇順に並べるというところまではできました。
def select(Y): n=len(Y) for i in range(n): k=i for j in range (i +1,n): if Y[j]<Y[k]: k=j Y[i], Y[k]=Y[k],Y[i] return Y import random Y=random.sample(range(1,1000),100) print(Y) print(select(Y)) import random X=random.sample(range(1,1000),1) print(X)
ここまでは難なくエラーも出ることなくできました。
そのあと、二分探査を使って
def binary_search_loop(data: Y[int], target: int) ->int: left,right=0, len(data) while left<=right: mid=(left+right)//2 if data[mid]==target: return mid elif data[mid]<target: left=mid+1 else: right=mid-1 return None result=binary_search_loop(data, target) if result is not None: print ("a") else: print("b")
とコードを打ってみたのですが、
TypeError Traceback (most recent call last) <ipython-input-2-9f7308f4882a> in <module> ----> 1 def binary_search_loop(data: Y[int], target: int) ->int: 2 left,right=0, len(data) 3 4 while left<=right: 5 mid=(left+right)//2 TypeError: list indices must be integers or slices, not type
といったエラーが出てしまいました。
どこをどう変えればいいのでしょうか。
もしかすると全く訳のわからないことを書いているかもしれません。。。
ネットで調べまくってコードを参考にして書いたので、、、、、
すみません、ご協力よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー