2021-06-01から1ヶ月間の記事一覧

PythonのNumPyのndarrayで各列の合計と平均と各行の相関を計算する

$ cat data.csv 8,9,6,2,9,3,8,4,1,9 5,5,4,2,6,3,5,2,2,6 2,2,5,5,2,5,4,4,7,4import numpy as np data = np.loadtxt('data.csv', delimiter=',') print(data) print(type(data)) print('列の合計', np.sum(data, axis=0)) print('列の平均', np.mean(data,…

Project Euler Problem 36

Python 方法1 1から100万の数について、 10進数と2進数で回文数であるか調べる。偶数は2進数で1の位が0になり、回文数にならないので、 奇数だけ調べればよい。 def is_palindromic_base10(n): s = str(n) return s == s[::-1] def is_palindromic_base2(n):…

円周率の計算(円に内接する多角形と外接する多角形の周囲の長さを使う)

下記のページを参考にしました https://w3e.kanazawa-it.ac.jp/e-scimath/contents/t16/textbook_t16_all.pdf円に内接する正n角形の周の長さと、 円に外接する正n角形の周の長さとから、 円に内接する正2n角形の周の長さと、 円に外接する正2n角形の周の長さ…

円周率の計算(円に内接する多角形の周囲の長さを使う)

半径が1の円に内接する正1万角形の周囲の長さを使って求める。 それが2πに近くなるので、2で割る。Python import math #半径が1の円に内接する正n角形の1辺の長さを求める #頂角がth、等しい2辺の長さが1の二等辺三角形の底辺の長さを求める def length_of_b…

Project Euler Problem 33

該当する場合は、 分子の1の位の数と、分母の10の位の数が同じで、 それを除去する場合のみであるが、 なぜそうなのかは、分からない。Python from fractions import Fraction def is_digit_cancelling(nu, de): nu_10, nu_1 = divmod(nu, 10) de_10, de_1 =…

Project Euler Problem 32

3個の数を a * b = c a とする3個の数の桁数について、成立する場合は下記の2通り (aの桁数, bの桁数, cの桁数) (1, 4, 4) (2, 3, 4)理由は、 (1) aが1桁の場合(1-1) bが3桁の場合 cが5桁にならなければならない (なぜなら、aの桁数 + bの桁数 + cの桁数 = 9…

Project Euler Problem 31

Python coins = (1, 2, 5, 10, 20, 50, 100, 200) memo = {} def first_denomination(kinds_of_coins): return coins[kinds_of_coins - 1] def count_change(amount, kinds_of_coins): if (amount, kinds_of_coins) in memo: return memo[(amount, kinds_of_…

Project Euler Problem 30

7桁の数の各桁の5乗の和の最大値は 9^5 * 7 = 413343 (9999999のとき)であり 7桁にならないので、 6桁の数まで調べればいいらしい。正確には、354294(=9^5 * 6)まで調べればよさそうPython def sum_of_fifth_power_of_digits(n): digits = map(int, str(n)) …

Project Euler Problem 29

Python answer = set() for a in range(2, 101): for b in range(2, 101): answer.add(a ** b) print(len(answer)) print(len({i**j for i in range(2,101) for j in range(2,101)}))

Project Euler Problem 28

Python # n×nの一番外側の4個の数の和を返す def sum_of_group(n): last_num = n * n # 4個の数の最大値 diff = n - 1 # 4個の数の差 return (last_num + (last_num - diff) + (last_num - diff * 2) + (last_num - diff * 3)) answer = 1 for n in range(3,…

Project Euler Problem 27

Python def is_prime(n): if n < 2: return False d = 2 while d * d <= n: if n % d == 0: return False d += 1 return True def quadratic_func(a, b): return (lambda n: n * n + a * n + b) def len_of_prime_sequence(func): n = 0 while is_prime(func…