@ゲー単走部

ローグライク雑記。変愚蛮怒、DCSSなど。

アルゴリズム

逆ポーランド記法

逆ポーランド記法ってなんやねんって感じだったが(括弧なしではどうやって読めばいいのかわからず困惑していた)、 要するに数を順番にスタックに積んでいって、演算子がスタックに入ったら後に入れたほうから計算していくっていうだけのことなんやな。 難…

マージソート

部分リストのうまい取り方がわからん merge :: [Int] -> [Int] -> [Int] merge [] ys = ys merge xs [] = xs merge (x:xs) (y:ys) | x <= y = x : merge xs (y:ys) | otherwise = y : merge (x:xs) ys mergesort :: [Int] -> [Int] mergesort [] = [] merges…

素数の列を返すプログラム、素数かどうか判定するプログラム

素数の列を返すプログラムを書いてみる。 def prime(n): # nまでの素数のリストを返す if n == 2: return [2] elif n > 2: array = [2] # 素数を集める for i in range(3, n + 1): # 3~nが素数かどうか for p in array: if i % p == 0: # 素数で割り切れた…

Iteratorパターン

イテレータ、イテレータってよく聞くけど、要するにこんな感じなんだろう。 class MyList: def __init__(self, mylist): # 引数mylistは通常のリストを想定 self.mylist = mylist def getsize(self): return len(self.mylist) def __getitem__(self, index):…

単方向連結リストの実装

あー疲れたー。 プログラミング・アルゴリズムの勉強がてら、連結リストを試しに実装してみたが、色々引っかかって数時間があっという間に飛んでいってしまった。 だがまあ、こうやって苦労してこそ理解も深まるというもの。決して無駄ではなかったと思いた…