プログラミング原人の進化ログ

プログラミング原人の進化論

オレ プログラミング ベンキョウ スル。マナンダ コト カク。

言語

【Python】リストの要素を独立に変化させたときの全ての組み合わせを求める

何をするのか わかりにくいタイトルですが、例えばリスト[x1, x2]を考えたときにx1, x2がそれぞれ0, 1, 2のいずれかの値を取るとします。この時、組み合わせの総数は3^2 = 9通りです。 こういった場合に、全ての組み合わせを列挙する方法を考えます。 方針 …

空のndarrayに列ベクトルや多次元配列を結合させる

最初に空の配列を作っておいて、後からそこに色々くっつけたい時があります。行ベクトルだと簡単に結合させられますが、このたび列ベクトルや多次元配列を結合させる方法を発見したのでメモ。 行(横)方向に連結する場合、hstackを使います。結合させたいも…

Javaのtime APIでよく使いそうなクラスとメソッド一覧

今までサボってきた時間情報の取り扱いを勉強したが、忘れそうなのでまとめておきます。自分用のチートシート的な位置付けです。 記事の内容 Dateクラスとかよりも新しい方法が登場しているらしいのでそちらをまとめておきます。 具体的には、java.timeパッ…

【Python】suptitleでグラフ全体と個別のグラフに別々にタイトルを与える

matplotlibで1つのfigureに複数のグラフを配置する時に、個別のグラフのタイトルだけでなく全体のタイトルをつけることができたら便利だなと思ったのでやり方をメモしておきます。 タイトルの付け方 全体のタイトルを設定するにはplt.suptitle('タイトル')…

【Java】スレッドの基本

Javaのスレッドについて基本的なことをまとめておきます。 スレッド Javaでは複数の処理を同時に並行して行うことができます。それぞれの処理の分岐のことをスレッドと言います。 スレッドの作り方 処理を分岐させてスレッドを作る方法は2つあります。 スレ…

Javaのインターフェース(確認用)

Javaのインターフェースを勉強したので、そのメモです。 書式を確認するためのものです。 インターフェース インターフェースは実体化することはできない。 インターフェースの宣言 次のように宣言する。 interface インターフェース名 { ... 型 フィールド…

【Java】クラスの基本メモ

Javaのクラスの基本的な内容を備忘録としてまとめておきます。 見やすさのために、具体例なしで各概念の簡単な説明と書き方を羅列します。 クラス クラスの定義 クラスを次のように定義する。 class クラス名 { // フィールドやメソッドを定義 } ファイル名…

【JavaScript】クラスの基本

JavaScriptのクラスについてまとめておきます。 具体例を交えず構文だけ書いていきます。忘れたときに見返す用です。 クラス 次のようにクラスを定義する。 class クラス名 { ... } インスタンス インスタンスの生成は次のように行う。 const インスタンス名…

CSSで余白を指定する方法メモ

CSSで余白を指定する方法をすぐに忘れてしまうので、メモしておきます。 ボックスモデル 要素を取り囲む領域にはmargin, border, paddingがある。余白の確保にはmargin, paddingを使う。 余白の指定方法 margin, paddingはそれぞれCSSでmargin, paddingプロ…

Common Lisp で乱数を生成する

乱数を生成するには、random関数を使います。 random 引数より小さい非負の整数の乱数を返してくれます。例:0から9の整数乱数を生成します。 CL-USER> (random 10) 6 CL-USER> (random 10) 8 CL-USER> (random 10) 3 参考 コンラッド・バルスキ(2013)「…

C++の標準ライブラリでソート

C++のソートを、標準ライブラリを使って行う方法のメモです。 主要なソートをだいたい勉強し終えたので、そろそろ車輪の再発明のフェーズを脱しようという意図です。 安定でないソート sortを使います。ヘッダファイルで定義されています。sortはクイックソ…

【OCaml】Graphicsモジュールが読み込めなかった時の解決策のメモ

先日OCamlをインストールして、チュートリアルをやっていたんですが、Graphicsが読み込めない...という事態に陥りました。解決策を記録しておきます。 環境 Mac OS Mojave バージョン 10.14.4 問題 open Graphics;;と書いたファイルをコンパイルしようとする…

【C++】コンストラクタのオーバーロード

プロコンの本を読んでいたら、1つのクラスの中にいきなり2つのコンストラクタの定義が出てきたので、なんぞこれと思って調べてみました。勉強した内容をまとめておきます。 コンストラクタのオーバーロード 一般的にオーバーロードとは同じものに対して複…

【C++】フレンド関数

フレンド関数の勉強メモです。基本的な使い方についてです。 フレンド関数 C++ではクラスの外部で定義した関数をクラスのprivateメンバにアクセスできるようにすることができます。 そのような関数をフレンド関数と呼びます。friend修飾子を使ってフレンド関…

APSchedulerの使い方(初心者向け)

APSchedulerの使い方のメモです。 APSchedulerはPythonのライブラリで、ジョブの自動実行のスケジュール管理を行なってくれるものです。この記事ではインストールから、基本的な使い方までを見てみます。 動機 日本語で使い方を体系的に説明した資料が少ない…

【Common Lisp】loopマクロの使い方まとめ

Common Lispでループ処理に使われるloopマクロの使い方です。網羅的にまとめた資料が少ないので、備忘録的にまとめておこうと思います。 loopマクロには多くの機能があります。なので、最初から全てを抑える必要はないと思います。 この記事の内容 loopマク…

Common Lisp のインクリメント・デクリメント

Common Lispでインクリメントやデクリメントを行う方法です。紹介するマクロはインクリメント・デクリメントだけでなく色々できます。 incf, decf incfは第2引数に指定した分だけ、第1引数の変数の値を大きくします。 (incf 変数 数字) decfは第2引数に指…

【C++】インライン関数

C++にはインライン関数を使う機能があります。その使い方のまとめです。 目標 インライン関数が何者か理解する C++でインライン関数を使えるようになる インライン関数とは? 通常の関数は、呼び出すたびにメモリのどこかに存在するその関数を(関数へのポイ…

【C++】クラスの使い方

C++のクラスの基本的な使いかたについてまとめました。 対象 クラスについての基本的な知識を持っているけど、C++ではどうやって使えばいいの?という人。 やること スタックの実装を通して、C++におけるクラスの実際の使い方を学ぶ。クラスの定義から、コン…

C++でメモリを動的に確保する方法

C++でのメモリの動的確保の方法です。Cではmallocとfreeを使うことが多かったのですが、C++ではnewとdeleteを使います。 それらの使い方を書いていきます。 メモリの確保 メモリの確保はnew演算子で行います。newを使うと、ヒープ領域と呼ばれる空きメモリ領…

【Common Lisp】defmethodコマンドの使い方

defmethodを使って関数を定義する方法です。 目標 defmethodコマンドを使ってジェネリック関数を定義する。 defmethodの利点 データ型によらないジェネリックな関数を定義する際に便利なのが defmethod です。 例えば、引数を2つとる関数を考え、整数が渡さ…

【Common Lisp】型述語まとめ

Common Lisp の型述語の勉強メモです。 型述語 真偽値を返す関数を述語と言います。特にデータ型の判定をするものを型述語と呼びます。 numberp arrayp characterp consp functionp hash-table-p listp stringp symbolp 型の名前に述語(predicate)を表すp…

【Common Lisp】シーケンス関数の基本

ジェネリックプログラミングの一環として、シーケンス関数について勉強したので、そのメモです。 目標 ジェネリックとは何かざっくりと理解する 基本的なシーケンス関数を使えるようにする ジェネリックである、とは? 簡単に言えば、異なるものを同じ方法で…

【Common Lisp】構造体の基本

lispの構造体の勉強をしたのでメモを残しておきます。基本的な使い方です。 構造体とは データ型の1つ。複数の属性を持つオブジェクトをうまく表現することができます。 属性のことをスロットと呼びます。 構造体を作る defstructコマンドで宣言します。 CL…

【Common Lisp】ハッシュテーブルの基本

lispのハッシュテーブルの勉強メモです。 ハッシュテーブル ハッシュテーブルはlispの持つ複合的なデータ型の一つで、キーと値をセットにして管理します。連想リストと似ていますが、より高速に定数時間で要素にアクセスできます。 ハッシュテーブルを作る m…

【Common Lisp】配列の基本

Common Lisp における配列の勉強メモです。 配列 lispのデータ型の1つです。リストと似ていますが、配列の方が特定の要素に高速にアクセスできます。 配列を作る make-array関数で配列を生成できます。 CL-USER> (make-array 3) #(NIL NIL NIL) 頭に # をつ…

【Common Lisp】連想リスト、循環リスト、ドットリスト

リストはLispの基本ですが、単なるリストではなく色々なリストがあります。ドットリスト、循環リスト、連想リストについてまとめます。 ドットリスト 以下に2つの例を挙げます。普通のリスト: CL-USER> (cons 1 (cons 2 (cons 3 nil))) (1 2 3) 終端がnil…

【Common Lisp】条件分岐:if, when, unless, cond

Common Lispの条件分岐についてのメモです。条件分岐のためのコマンドと、それらを使うのに必要な基本的な演算子や関数をまとめておきます。 真偽値 common lispでは、空リストが唯一の偽値です。それ以外は全て真となります。 なお、'(), (), nil, 'nilは空…

【Common Lisp】リストの基本中の基本

リストはLispにおいて非常に大事です。ということで、Common Lispのリストの基本的なアイデアをまとめました。 フォーム Lispのコードはリストで構成されています。このリストは、フォームでなければなりません。フォームとは、先頭の要素がコマンドであるよ…

【Common-Lisp】ash関数でビットシフト

ビットシフトのためのash関数についてのメモです。 ash関数 ash関数はビットシフトを行うLispの組み込み関数。 第1引数に数値を渡し、これをビットシフトの対象とする。 第2引数で左右どちらにシフトするかを指定する。第2引数が1のとき、左にシフト。-…