選択ソート 配列から最小・最大値を探し,先頭要素と交換することを繰り返すことで整列を行う方法。 未整列部分の値を全て確認するので、等差数列的に計算数が加算され、時間計算量は0(n2)必要になる。 def selection_sort(arr): # 結果を出力するリスト res…
動的計画法 解決するべき問題を簡単に解決できる細かい問題に分割し、その細かい問題の解答を利用して大きな問題を解くこと。 動的計画法に向いている問題 再帰的な問題は向いている。 また最適部分構造(親問題が最適化を問うており、その子問題も同様に最適…
エラトステネスの篩 素数を見つけるためのアルゴリズム。 素数の倍数を除外していき、全ての数値を走査して最後まで除外されなかった数値群が素数となる。 ja.wikipedia.org 実装 # n以内の素数をリストで返す def sieve_of_eratosthenes(n): n += 1 if n ==…
fキーワードをクオートの前につける。 変数は{}で括る。 name = "taro" age = 20 print(f"My name is {name}. I am {age} years old.") # My name is taro. I am 20 years old. ランキング参加中プログラミング
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]] 上記の正方行列は次のように記述することで生成できる。 myMatrix = [[i + 5 * j for i in range(5)] for j in range(5)] print(myMatrix) # [[0, 1…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 リスト(List) 生成 直接要素を指定 リスト内包表記 文字列をリストに変換 任意の値を任意個数要素にもつリストを生成 操作 読み取り 特定インデックスの値 for文を使用して繰り返し処理 後…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 インスタンスを生成すると、その実態はヒープ領域に格納される。 以下のようにインスタンスが格納されているヒープ領域のアドレスを取得できる。 class Person: def __init__(self, name): se…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 メモ化再帰 再帰処理において、同じ引数の計算を何度も行う場合がある。 そこで計算結果をメモとしてキャッシュして効率化をはかること。 例えば以下が計算結果をキャッシュする前。 (例とし…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 構文エラー (syntax error) コマンドの中に誤った文字列が含まれていること。 # printの誤り prin("hello") 論理エラー プログラムはコンパイルできるが、エンジニアの意図通り動作しないこと…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 グローバル変数は、プログラムの実行中常にメモリを占有する グローバル変数は、グローバルスコープに紐づけられる グローバルスコープはプログラムのどこからでもアクセスできるスコープ ど…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 スコープ データや関数の影響範囲のこと。 ローカルスコープとグローバルスコープがあり、 ローカルスコープは特定のクラスや関数内の、制限された領域のこと。 ローカルスコープ内で定義され…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 再帰処理 再帰処理とは、とある処理の中で、自分自身を呼び出す処理のこと。 詳しくは以下の記事で紹介した。 note-tmk.hatenablog.com 最大公約数 複数の数値が存在するとき、各数値の約数の…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 ハノイの塔 3本の棒と複数の円盤を用いたシンプルなパズル。 円盤を目的の棒に、なるべく少ない移動回数で移動させるというもの。 円盤は全てサイズが異なり、サイズの小さい円盤は大きい円盤…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 フィボナッチ数列 次の漸化式で表現される数列をフィボナッチ数列と呼ぶ。 計算量はO(2n)である。 F0 = 0 F1 = 1 Fn = Fn-1 + Fn-2 (n ≥ 2) ja.wikipedia.org フィボナッチ数列は自然界でも観…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 テキストデータの圧縮 Recursionの練習問題で、以下のような問題が出た。 # 文字列を以下のように圧縮する関数を書け "aaabbbbccd" → "a3b4c2d" この関数は再起処理を用いるとシンプルに実装…
現在Recursionに取り組んでいる。 そこで学んだことをメモする。 再帰処理 再帰処理とは、とある処理の中で、自分自身を呼び出す処理のこと。 例えば以下のような処理。 def sum(n): if n == 0: return 0 return sum(n-1) + n これを実行すると以下のように…
感想を書いていく。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||function(){arguments.currentScript=c.currentScript ||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)}; c.getElementById(a)||(d=c.createEle…
読書中にメモった内容を記載。 一言で言うと、プロジェクトマネジメントの実力は「周囲への誠実さ」と「包括的なスキル」を身につける必要がある、と感じた。 以下商品リンクとメモ。 (function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a; b[a]=b[a]||func…
flutterにて開発を行っていた際、次のようなワーニングが表示された。 The imported package 'パッケージ名' isn't a dependency of the importing package. Try adding a dependency for 'パッケージ名' in the 'pubspec.yaml' 以下のリントツールのルール…
Flutterではコードを実行する際にモードが3つ用意されている。 Release Debug Profile それぞれ次のような用途で用いる。 Release 以下のコマンドで実行する。 flutter run --release 特徴は以下。 リリース準備をする際に用いる assert()は無効 実行速度が…
本書の概要 理論編 実践編 ユニットテスト編 実践編の適用例 コードを読みやすくする 名前は機能の要約 コメントはわかりにくい名前の代替案になるべきではない コメントはなぜそのコードが存在するかを説明すると良い 冗長なコメントはつけない コードは1行…
メソッド viewDidLoad() viewWillAppear() viewDidAppear() viewWillDisappear() viewDidDisappear() サンプルコード UIViewControllerにはライフサイクルがあり、ライフサイクルの節目ごとに処理を行うためのメソッドが用意されている。 以下で各メソッドの…
UILabelはデフォルト設定の場合、サイズを超える文字列が入力されると切り捨てられてしまう。 全ての文字列を全て表示する場合、Linesプロパティに0を入れると表示される。
Xcodeで新しいファイルを作成する際に、いくつかの選択肢がある。 その際に「Swift File」と「Cocoa Touch Class」というものが表示される。 この2種類のファイルの違いについて説明する。 違い 「デフォルトの状態で何が書かれているか」が異なる。どちらも…
概要 この本が向いている人、向いていない人 向いている人 向いていない人 各パートごとのレビュー 基礎編 実践編 まとめ 概要 スクラム開発を実際の開発現場でどのように実行すれば良いかのヒントを与えてくれる書籍。 「基礎編」「実践編」とパートが分か…
ランキング参加中プログラミング Riverpodとは 使い方 インストール providerをグローバルで宣言 アプリ全体をProviderScopeでラップ ConsumerWidgetなどを継承したクラスを作成 providerから状態を取得 ref.watch ref.listen ref.read サンプル カウンター…
FlutterはUIを作成する際にConstraintsという情報を扱っている。 そのConstraintsを説明した記事が公式から出ている。 docs.flutter.dev このポストでは上の記事を読んで、個人的にメモに残したい内容を記載する。 Constraintsはウィジェットのサイズと位置…
ClipPathとは 使い方 ウィジェットをClipPathでラップ CustomClipperを継承したclipperクラスを作成 三角形 台形 曲線状に凹んだ正方形 星型 clipperクラスをClipPath.clipperに指定 ClipPathとは api.flutter.dev 画面上に表示されるウェジェットの形状を設…
Material Design 3 とは プロジェクトへの適用方法 デモアプリ Material Design 3 とは m3.material.io Googleのデザイナーがメンテナンスしているデザインシステム。 バージョン2と比べて、全体的に柔らかい印象のデザインになっている。 Flutterでは現在バ…
LinearGradientとは 使い方 2色のグラデーションを作成する 3色のグラデーションを作成する 2色の間隔を指定したグラデーションを作成する 任意の開始・終了位置のグラデーションを作成する LinearGradientとは api.flutter.dev LinearGradientはグラデーシ…