2016-07-01から1ヶ月間の記事一覧

インデックスのセットの要素をリストから除去する

c++

C++の場合 リストvがあって,そのリストから除去したいインデックスの集合remove_id_set(3,5,2)とかで指定する要素番号の要素を除去したい.eraseすると要素番号が一つずれるので,それも考慮して一旦集合をソートして,前から順に削除していくという方法. …

N以下の重複しない乱数(整数)の生成

C++ 良い方法かは分からないけどiotaやeraseを使った例を見つけたのでメモ.やり方は一旦iotaで[0,1,...max]の配列を作って,それをシャッフルして,eraseで必要ない部分を消す.eraseはイテレータを2つ渡すと,開始位置から終了位置の1つ前までを消去でき…

C/C++からPythonを使う

要旨 Pythonには色々な便利なライブラリがある.C/C++にも便利なライブラリがある.それらが重複しない場合は一方からもう一方を叩けると嬉しい. 参考URL 1. Embedding Python in Another Application — Python 3.5.2 documentation コンパイル方法 色々な…

c++のスレッド

c++

メモ c++11からはスレッドが言語に取り込まれている. コンパイルには-pthreadを付ける. スレッドを一時的に止めるときにはsleepではなく,スレッド用のstd::this_thread::thread_for()を使う. thread::join()をちゃんと実行して対象のスレッドの終了を待…

情報量関連のメモ

概要 機械学習とか統計を勉強していると情報量とかエントロピーの話が出てきていつも復習をし直しているので,纏めておく. 全体の1行まとめ 情報量 -> 平均値がエントロピー -> 2つのエントロピーの差分が相互情報量 -> 相対エントロピー。 各量の1行ま…

オブジェクトの配列

c++

概要 自分で作ったオブジェクトの配列を作りたいことはよくある.特に,vectorで管理したいことはよくある.その時に,不要なコピーコンストラクタを呼ばないようにc++11以降ではpush_backの代わりにemplace_backを使う. emplace_backの引数はコンストラク…

Euler Projecect 1

100以下の整数のうち,3か5の倍数の和. Ruby 最もシンプルにただ全部舐めていくだけ. sum = 0 100.times do |i| if i%3==0 or i%5==0 sum += i end end p sum

Emacsの設定

Font設定 RIcty-Diminisedを別途インストールしておく。 Option-Set Default FontからGUIでフォントを設定する。 scratchバッファで(frame-parameter nil 'font)でフォント名を確認する。 その文字列を下記のように追記する。 (add-to-list 'default-frame-a…

ODEのテンプレートプログラム

c++

ODEのテンプレートプログラムで流れを確認しておく. ヘッダや宣言 dobuleとfloatの描画ルーチンを自動でコンパチにする宣言を入れておく. #include <iostream> #include <ode/ode.h> #include <drawstuff/drawstuff.h> // Doubleで扱う場合は描画ルーチンをD型にする. #ifdef dDOUBLE #define dsDrawBo</drawstuff/drawstuff.h></ode/ode.h></iostream>…

ランダムウォーク

お題 X軸上をランダムに動く点の軌跡を求める.1ステップで±1か,動かないか. python 一歩ずつやってもいいけど,ガバッと乱数作ってnumpyのcumsumを使う方法でもいい. import numpy as np move = np.random.randint(-1,2,100) # generate 100 random in…

C++プログラミングのメモ

Last update 16/07/25 概要 プログラミングをする上で,変数名の付け方とかprivate/publicの使い分けとかを勉強したことをまとめておく. 【C++API】 API化/OOPプログラミング 目的は実装を隠すことで,利用者に影響を与えずに内部を常に改変できるようにす…

c++よく忘れること

c++

概要 久しぶりにC++を書こうとすると(というよりも読もうとすると)忘れてしまっていてリハビリするのがコピーコンストラクタ,this, Template, 参照渡し,仮想関数, オーバライド,スマートポインタ。忘れがちな点を纏めておく。 符号なし整数と符号あり整…

Common lispの開発環境

動機 遺伝的プログラミングの勉強をしているとLispの例が多いから.人工知能系の研究で従来から使われている理由(Cに比べての高級性)は最近の言語には劣るから意味ないと言われてもいるようだけど,少し本を読んだ限りでは高級性以外の関数型であること,…

ディレクトリ内のあるファイル群に処理を適用する

お題 あるディレクトリ配下のあるファイル群(例えば拡張子がrbのファイルに対してなど)に何か処理を適用する場合.スクリプトを書くときに良くあるのかな. Ruby Dir::glob("/home/nobunaga/codes/*.rb").each do |f| func(f) end python pythonもほぼ同様…

順列の作成

お題 N個の配列からM個の並びを全て列挙する.所謂縦列. python itertoolsを使う.自分で何もやっていないけど,pythonを使う意味はそこだから別に気にしない. import itertools if __name__ == "__main__": a = [0,1,2,3,4,5,6,7,8,9] for p in itertools…

ルーレット選択

お題 GAとかで使うルーレット選択を書く.いわゆる重み付きランダム選択.重みWがx:y:z=1:2:3の場合,x=1/6, y=2/6, z=3/6の確率で生成する.色んな言語で累積和,2分探索,乱数を扱う良い練習問題なのかな. python やり方としては重みの累積和の配列を作…