よしたく blog

ほぼ週刊で記事を書いています

2021-01-01から1年間の記事一覧

math.factorialを使って階乗を計算する

背景 Project Euler でmath.factorial()を使う機会が多くなってきたので簡単にまとめる。 math.factorial とは math.factorial()は標準ライブラリの math に含まれていて、階乗が計算できるシンプルな関数になる。 引数には整数が指定でき、整数以外や負の数…

【Project Euler】Problem 20 Factorial digit sumをPythonで解く

この問題をPythonで解いた。 #20 Factorial digit sum - Project Euler 日本語の問題文はこちら n × (n - 1) × ... × 3 × 2 × 1 を n! と表す. 例えば, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 となる. この数の各桁の合計は 3 + 6 + 2 + 8 + 8 + 0 + 0 =…

【Project Euler】Problem 19 Counting SundaysをPythonで解く

この問題をPythonで解いた。 #19 Counting Sundays - Project Euler 日本語の問題文はこちら 次の情報が与えられている. 1900年1月1日は月曜日である. 9月, 4月, 6月, 11月は30日まであり, 2月を除く他の月は31日まである. 2月は28日まであるが, うるう年の…

~/.config/git/ignoreでグローバルなgitignoreを設定してファイルを除外する

git

背景 .DS_Store のようなファイルを毎回.gitignoreに書くのがめんどくさくなり、グローバルに設定できないか調べました。 解決方法 ~/.config/gitにignoreファイルを作る .gitignoreと同様に記述する .DS_Store これだけで完了です。 Patterns which a user …

【Project Euler】Problem 16 Power digit sumをPythonで解く

この問題をPythonで解いた。 #16 Power digit sum - Project Euler 日本語の問題文はこちら 215 = 32768 であり, 各位の数字の和は 3 + 2 + 7 + 6 + 8 = 26 となる. 同様にして, 21000 の各位の数字の和を求めよ. Problem 16 - PukiWiki sum(map(int, str(2*…

【Project Euler】Problem 15 Lattice pathsをPythonで解く

この問題をPythonで解いた。 #15 Lattice paths - Project Euler 日本語の問題文はこちら 2×2 のマス目の左上からスタートした場合, 引き返しなしで右下にいくルートは 6 つある. (画像省略) では, 20×20 のマス目ではいくつのルートがあるか. Problem 15 …

【Project Euler】Problem 13 Large sumをPythonで解く

この問題をPythonで解いた。 #13 Large sum - Project Euler 日本語の問題文はこちら 以下の50桁の数字100個の合計の上から10桁を求めなさい。 (数字は省略) Problem 13 - PukiWiki sample = '''37107287533902102798797998220837590246510135740250 46376…

【Project Euler】Problem 10 Summation of primesをPythonで解く

この問題をPythonで解いた。 #10 Summation of primes - Project Euler 日本語の問題文はこちら 10以下の素数の和は 2 + 3 + 5 + 7 = 17 である. 200万以下の全ての素数の和を求めよ. Problem 10 - PukiWiki from sympy import isprime result = 0 for num i…

【Project Euler】Problem 9 Special Pythagorean tripletをPythonで解く

この問題をPythonで解いた。 #9 Special Pythagorean triplet - Project Euler 日本語の問題文はこちら ピタゴラス数(ピタゴラスの定理を満たす自然数)とは a < b < c で以下の式を満たす数の組である. a2 + b2 = c2 例えば, 32 + 42 = 9 + 16 = 25 = 52 で…

itertoolモジュールのpermutations関数を使って順列を作る

itertoolモジュールのpermutations関数を使うと、簡単に順列を作ることができる。 permutationはなかなか見慣れない英単語だが、「順列、交換、置換、並べ換え」といった意味がある。パッと思い出せるぐらいには覚えておくと良さそう。 今回はpermutations関…

【Project Euler】Problem 7 10001st primeをPythonで解く

この問題をPythonで解いた。 #7 10001st prime - Project Euler 日本語の問題文はこちら 素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり, 6番目の素数は 13 である. 10 001 番目の素数を求めよ. Problem 7 - PukiWiki import sympy print(sympy.p…

【Project Euler】Problem 8 Largest product in a seriesをPythonで解く

この問題をPythonで解いた。 #8 Largest product in a series - Project Euler 日本語の問題文はこちら 次の1000桁の数字のうち, 隣接する4つの数字の総乗の中で, 最大となる値は, 9 × 9 × 8 × 9 = 5832である. 7316717653133062491922511967442657474235534…

【Project Euler】Problem 6 Sum square differenceをPythonで解く

この問題をPythonで解いた。 #6 Sum square difference - Project Euler 日本語の問題文はこちら 最初の10個の自然数について, その二乗の和は, 12 + 22 + ... + 102 = 385 最初の10個の自然数について, その和の二乗は, (1 + 2 + ... + 10)2 = 3025 これら…

【Project Euler】Problem 5 Smallest multipleをPythonで解く

この問題をPythonで解いた。 #5 Smallest multiple - Project Euler 日本語の問題文はこちら 2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり, そのような数字の中では最小の値である. では, 1 から 20 までの整数全てで割り切れる数字の中で最…

【Project Euler】Problem 4 Largest palindrome productをPythonで解く

この問題をPythonで解いた。 #4 Largest palindrome product - Project Euler 日本語の問題文はこちら 左右どちらから読んでも同じ値になる数を回文数という. 2桁の数の積で表される回文数のうち, 最大のものは 9009 = 91 × 99 である. では, 3桁の数の積で…

【Project Euler】Problem 3 Largest prime factorをPythonで解く

この問題をPythonで解いた。 #3 Largest prime factor - Project Euler 日本語の問題文はこちら 13195 の素因数は 5, 7, 13, 29 である. 600851475143 の素因数のうち最大のものを求めよ. Problem 3 - PukiWiki N = 600851475143 i = 2 while i * i <= N: wh…

【Project Euler】Problem 2 Even Fibonacci numbersをPythonで解く

この問題をPythonで解いた。 #2 Even Fibonacci numbers - Project Euler 日本語の問題文はこちら フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 数列の…

【Project Euler】Problem 1 Multiples of 3 or 5をPythonで解く

この問題をPythonで解いた。 #1 Multiples of 3 or 5 - Project Euler 日本語の問題文はこちら 10未満の自然数のうち, 3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり, これらの合計は 23 になる. 同じようにして, 1000 未満の 3 か 5 の倍…

Azure Data Factory でデータレイクから最新日付のファイルを取得する

Azureを使ってデータ分析基盤を構築すると、Azure Data Lake Storage Gen2にデータを溜めていく事が多いです。 この日々溜まっていくデータから最新日付のファイルのみを取り出したいときに使えるテクニックです。 前提条件 前提条件として、XXX_yyyyMMdd.cs…

Reposでブランチを削除する方法

どこから削除ができるのか探してしまったのでメモ。 まずはReposの「Files」に、現在いるものとする。 左のReposメニューから「Branches」を選択する。 削除したいブランチの右に配置されている点から「Delete branch」を選択する。 確認画面が表示されるの…

Azure Data FactoryのGit運用で困ったら取り入れてみること

Azure Data Factoryでは、パイプライン開発をバージョン管理するためにGit連携ができます。 GUIでの開発なのにバージョン管理できるのは、Data Factoryの実態がJSONファイルになっているからです。 Azure Data FactoryとAzure DevOpsなどを連携すると、デフ…

リレーショナルデータベースにおけるカーディナリティについて

RDB

カーディナリティは、データベースのカラムに入っているデータの種類がどれぐらい存在しているかを表す。 もともとの英単語の訳としては濃度という訳が当てはまる。 例えば、genderカラムが存在していたとする。単純な話としたいので、このカラムに入ってく…

ストレングスファインダーをやってみた

「さあ、才能(じぶん)に目覚めよう 新版 ストレングス・ファインダー2.0」を買って、実践してみた。 さあ、才能(じぶん)に目覚めよう 新版 ストレングス・ファインダー2.0作者:トム・ラス日本経済新聞出版社Amazon この本は自分の才能に気がつき、今後の人生…

Azure SQL Databaseの監査ログを取得する

Azure SQL Databaseでは監査ログをかんたんに取得することができる。文字通り監査のタイミングで必要になるので、基本的には取得しておいたほうがいいものになる。Azure SQL Databaseではデータベースのイベントを追跡し、Blobストレージに監査ログを書き込…

Apache AirflowのDAGファイルの最小設定

Apache Airflowで自作ファイルを作成しようとしたが、設定できる項目多く迷うことが多かった。そこでチュートリアルで用意されているものから最低限必要なものを抜き出してみた。 それが以下になる。 from datetime import timedelta from airflow import DA…

Apache Airflowのチュートリアルを実行してみた

Airbnb 社が開発し、今は Apache ソフトウェア財団のトッププロジェクトとなっている Apache Airflow。 今回は業務の中でワークフロー製品を扱っていることもあり、OSS の Airflow の感触を確かめるべく触ってみた。 準備 Airflow の公式ページでインストー…

【Pandas】GroupBy.first関数の動きを確認する

Pandas のGroupBy.first を使うと、グループの中で一番最初の値を取得できる。 pandas.pydata.org 以前SQLの分析関数であるFIRST_VALUEとの動きを確認した。Pandasでどのように実現していくのか見ていくものになる。 yoshitaku-jp.hatenablog.com 実行環境 …

【Pandas】shift関数の動きを確認する

Pandas のshift を使うと、現在の行の値と前後の行の値を比較できる。 pandas.pydata.org 以前SQLの分析関数であるLAGとLEADの動きを確認したが、Pandasではどのように実現していくのか見ていくものになる。LAG関数とLEAD関数も比較して見てもらえると! yos…

【SQL】RANK関数・DENSE_RANK関数の動きを確認する

SQL

SQL の分析関数である RANK と DENSE_RANK を使うと、順序が付けられた値のセットの中で何番目の値かを返すことができる。 今回は RANK と DENSE_RANK を使って、動きを確認していく。 RANK (Transact-SQL) - SQL Server | Microsoft Docs DENSE_RANK (Trans…

【SQL】FIRST_VALUE関数・LAST_VALUE関数の動きを確認する

SQL

SQL の分析関数である FIRST_VALUE と LAST_VALUE を使うと、順序が付けられた値のセットの中で最初の値と最後の値を返すことができる。 今回は FIRST_VALUE を使って、動きを確認していく。 FIRST_VALUE は最初の値、LAST_VALUE は最後の値という違いだけで…