2019-08-01から1ヶ月間の記事一覧

PythonとPyPyで文字を追加する速度が全然違う

AlignmentのBacktrackのときに、文字を前に追加しなければならないが、当然後ろに追加して最後に文字列を逆にする方が速いと思える。しかし、このようなコードで、 import sys import time def f_add_to_head(N): s = '' for _ in range(N): s = 'c' + s ret…

Project Euler 669

https://projecteuler.net/problem=669203着。 久しぶりにやった。 変わった問題だが、すぐになんとなくわかる。 でも、そこからは怪しい。解けるんだけど、本当にこれでいいのか。 きっちり検証すれば正しいかどうかわかるが、そうしなくてもなんとなく解け…

秀丸で開いたファイルのフォルダにUbuntuを開いて移動する

これは、昔からコマンドプロンプトでよくやっていた。例えばPythonのコードを書いて、さあ実行しようという時に、コマンドプロンプトを起動して、Change Directoryする。しかし、わざわざ分かっているディレクトリに手動で移動するのは面倒ではないか。コマ…

JuliaでProject Euler(22)

Problem 42 https://projecteuler.net/problem=42 function read_names(path) open(path, "r") do fp for line in eachline(fp) return [ s[2:length(s)-1] for s in split(line, ",") ] end end end function is_square(n) return Int(floor(sqrt(n)))^2 ==…

JuliaでProject Euler(21)

Problem 33 https://projecteuler.net/problem=33分数は、次のように書く。 julia> f = 4//6 2//3 julia> typeof(f) Rational{Int64} julia> numerator(f) 2 julia> denominator(f) 3

JuliaでProject Euler(20)

Problem 25 https://projecteuler.net/problem=25 function add(v1, v2) if length(v1) > length(v2) return add(v2, v1) end v3::Array{Int} = [] carry = 0 for k in 1:length(v1) n = v1[k] + v2[k] + carry carry = div(n, 10) d = n % 10 push!(v3, d) …

JuliaでProject Euler(19)

Problem 22 https://projecteuler.net/problem=22 function read_names(path) open(path, "r") do fp for line in eachline(fp) return [ s[2:length(s)-1] for s in split(line, ",") ] end end end function name_score(name) return sum(Int(c)-Int('A')+…