電波ビーチ

☆(ゝω・)v

2017-10-01から1ヶ月間の記事一覧

ポラード・ロー法で素因数分解

素因数分解をするアルゴリズムがあるようです。 ポラード・ロー素因数分解法 - Wikipedia こちらのqiita記事でも言及されております。フロイドの循環検出法に基づく素因数発見のための乱択式アルゴリズムとかいう意味不明な単語が並びますが、いくら読んでも…

メモ: 他人のコードを読む or ライブラリを作る

独学していると表題のようなことに至りにくいわけでして。また、読めるようになったり作れるようになったりの行程をステップを踏んで説明しているようなところも無いわけでして。比較的「こいつは読めそうだ」ってのを見つけ次第ピックアップしていこうかな…

最小公倍数を求めるやつ

ある2つの数x,yの最小公倍数は、それらをかけ合わせたものをそれらの最大公約数で割るとイケます。すなわち、x,yの最大公約数、最小公倍数をそれぞれgcd(x, y), lcm(x, y)とすると、 x*y = gcd(x, y) * lcm(x, y) が成り立ちます。 最大公約数はこの回でやっ…

最大公約数をユークリッドの互除法で求める

超有名どころ。最古のアルゴリズムらしいです。 ユークリッドの互除法 - Wikipedia 書いてあるとおりに素直に実装すればいいだけですね。 def gcd(x, y): if x

isnumeric, isdigit, isdecimalは負値に対応してなかった話

知らんかったです。ハマり記念 >>> lis = [str(x) for x in range(-3, 3)] >>> lis ['-3', '-2', '-1', '0', '1', '2'] >>> for l in lis: ... print(l if l.isnumeric() else 'Noooo!!!') ... Noooo!!! Noooo!!! Noooo!!! 0 1 2 >>> for l in lis: ... prin…

The Self-Taught Programmer/Cory Althoffを読んだ

きみもワナビ、ぼくもワナビ この記事を読みました。 www.freia.jp 一切プログラムの経験がない *1男が、就職できねぇからといってpython3を勉強し、一年後eBayにエンジニアとして就職した、という話です。たびたびこうしたシンデレラストーリーがはてな界隈…

競プロ的なのするときの環境ってみんなどうやってんだろ

自分はVSCでやっている。pythonだと コンソールからリダイレクトで読み込ませる。テストケースは別タブで開いておいて書き換えたりする。いちいちファイルを作るのがめんどくさいので自動化したいんだけどVSCでの自動化がわからん。不便。 C#でもやっていた…

0-1ナップザック問題をメモ化再帰で思い出す

前回の続きというか書き忘れ or3.hatenablog.com DPは配列でやるのがよく入門でみかけるんだけど、最初に学習するときって順序的にはDFSからのメモ化再帰からのDPっていう感じのほうが理に適っている感じがある。なのでメモ化再帰バージョンを。 # 典型的ナ…

0-1ナップザック問題を思い出す

プログラマになりたいくせにしばらくプログラミングから離れていたらものの見事に忘れ果てていたので、基本に立ち返ることにした。まずはナップザック問題から。 0-1ナップザック問題 n, maxw = list(map(int, input().split())) v_lis, w_lis = [], [] # in…