タグ

ブックマーク / ufcpp.net (17)

  • 数学

    主に高校~工学部生向けの数学の解説を行っています。 …

    数学
    yuiseki
    yuiseki 2020/10/12
  • C# で、同じソースコードから常に同じバイナリを生成する

    昔、gist にだけ置いてて、そういえばブログに書いてなかったものを思い出したので書いておくことに。 (一応、部分的には言及したことがあるんですけど、ちゃんとした話はしたことがなかったはず。) 決定論的ビルド 3年くらい前まで、C# コードをコンパイルすると、ソースコードを一切書き換えていなくても、生成結果の exe/dll や pdb のバイナリが変化していました(決定性(deteminism)がない)。 原因は以下の2つです。 バイナリ中に埋め込まれる GUID にタイムスタンプと乱数から生成される値を使っていた デバッグ用のファイル情報がフルパスで埋め込まれていた GUID の方はタイムスタンプと乱数なので当に致命的で、ローカルで再コンパイルしても毎回バイナリが変化していました。 フルパスの方は基的には pdb (デバッグ用シンボル情報)だけの問題なんですが、 exe/dll で

    C# で、同じソースコードから常に同じバイナリを生成する
  • 環・体

    概要 「群とは」では算法を1つ持つ代数系の分類について説明しました。 ここでは、加法と乗法の2つを持つ代数系の分類について説明します。 このような代数系の分類として、環・体などがあります。 環・体とは ある代数系 ( A,{+, ×} ) に対して、以下の条件を考えます。 (+ を加法、× を乗法と呼びます。) 加法に関して「アーベル群」をなす。 加法と乗法の間に「分配法則」が成り立つ。 乗法に関して「半群」をなす。 加法に関する「単位元」(零元)を除いて、乗法に関して「群」をなす。 代数系Aが 1. 2. 3. を満たすとき、環(ring)とよび、 1. 2. 4. を満たすとき、体(field)と呼びます。 また、これらは、乗法に関して可換であるとき、可換環・可換体と呼びます。 (ただし、可換なもののみを体と呼び、非可換なものは斜体と呼ぶ流儀もあります。) 慣例的に、環は R で、体は

    環・体
  • 群(群、環、体)

    概要 まずは、算法を1つ持つ代数系の分類について説明します。 このような代数系の分類として、群・半群などがあります。 群とは ある代数系(G,・)に対して、以下の条件を考えます。 「結合法則」が成り立つ。 「単位元」が存在する。 「逆元」が存在する。 代数系Gが 1. を満たすとき、半群(semi-group)とよび、 1. 2. を満たすとき、モノイド(monoid)と呼びます。 また、1.~3. の全てを満たすとき、Gを群(group)と呼びます。 さらに、群(半群、モノイド)の中で、 「交換法則」を満たすものを可換群(可換半群、可換モノイド)と呼びます。 可換群はアーベル群(abelian group)もしくは加法群(additive group)とも呼ばれ、 その算法は、しばしば + を用いて表します。 (逆に言うと、+ を用いて表される算法は暗黙的に可換算法であると考えることが多

    群(群、環、体)
  • 距離

    概要 空間上の2点(集合中の2元)の間が遠いか近いか、 連続かどうかなどを論じるためには、 「位相」 という概念が必要になります。 この位相という概念は、 距離の概念の条件を緩め、より多くの集合の幾何学的な構造を調べるために考えられるものです。 この位相という抽象的な概念の話に入る前に、 ここではまず、直感的に想像しやすい距離というものの話をしましょう。 距離の例 最も一般的に使われる距離というと、 ピタゴラスの定理に基づいて定義されるユークリッド距離でしょう。 説明の簡単化のために2次元で説明しますが、 2次元の実空間 R2 上のユークリッド距離は以下のようにして定義されます。

    距離
    yuiseki
    yuiseki 2012/09/22
  • 勾配

    勾配とは 勾配とはスカラー場φに対して、φがもっととも大きく変化する方向を向き、その変化量と同じ大きさを持つベクトル で、 gradφ と表します。φを標高に例えて、ある点にボールを置いたときに自然に転がりだす方向を向き、その坂の傾きと同じ大きさを持つベクトルをφの勾配というわけです。 すなわち、ある点Pにおけるスカラー場φの勾配 gradφ とは、任意の方向nに対し、その方向を向く単位ベクトルを i n 、その方向への方向微分を

    勾配
  • 四元数と3次元空間中の回転

    四元数なんていうたいそうな名前が付いているは、 元をただせば数学的な意味があるからなんですが、 四元数の数学的意味は、画像処理・3D CG の分野では大して役に立ちません。 応用上は、元々の数学的な意味を知る必要はあまりなく、 回転軸 p = ( px , py , pz ) と回転角 θ の情報を、 4次元の単位ベクトルとして、

    四元数と3次元空間中の回転
  • 四元数の数学的意味

    概要 「四元数と3次元空間中の回転」の付録。 四元数の数学的な側面について説明します。 はっきり言って、画像処理の分野では不要な知識。 画像処理(主に 3D CG)の分野では、とりあえず、 「四元数とは、回転の軸と角度を表わすために使うデータの形式」 とだけ覚えておけば OK。 ここで話す内容は要するに、 「なんでそれを四元数と呼ぶんだろう」という疑問に答えるものです。 ちなみに、「ハミルトンの四元数体」の内容の焼き直しだったりします。 より深く理解するためには、 「群」、 「環」、 「体」などについて調べることをお勧めします。 その前に・・・ 複素数についておさらい 四元数の説明に入る前に、 少し複素数についておさらいしておきます。 簡単に言うと、複素数ってのは以下のようなものです。 実数に、 i2 = −1 となる元iを追加したもの。 実数上の2次元ベクトルともみなせる。 曲形式 α

    四元数の数学的意味
  • 数学

    主に高校~工学部生向けの数学の解説を行っています。 …

    数学
  • 主成分分析(線形代数)

    概要 「固有値問題」の応用の1つとして、主成分分析を紹介。 記号の準備 これから説明する主成分分析は、 N 個のベクトル x1 , x2 , ・・・, xN に対して、その線形結合

    主成分分析(線形代数)
  • 固有値

    概要 2006年度前期輪講で発表した内容にそって説明を書く予定。 行列の、座標変換によって不変な性質を調べる。 座標変換によって不変な特徴量があるならば、その量こそが行列の質を表す量なのではないか。 英語だとまさに、characteristic value、行列の“特性”値。 ちなみに、eigen はドイツ語起源の接頭語。 (英語だと own、「自分自身の」「自身に固有の」という感じの意味。 発音もドイツ語的にアイゲン。 というか、ドイツ語起源なので英語圏の人でも読めない場合があって、 エイジャンとかアイジャンとか読む人も。) 固有値の「固有」は「eigen」の訳語。 対角化、Jordan 標準形 行列の冪計算、指数計算 相似変換 「線形写像」で説明しましたが、 線形写像を行列で表すとき、 線形空間の座標系の取り方によって行列の形が変わります。 となると、線形写像の性質は、座標系の取り方

    固有値
  • 信号処理

    ディジタル信号処理、ディジタルフィルタ、画像処理の目次です

    信号処理
  • フーリエ級数展開

    概要 フーリエ級数展開の基となる概念は19世紀の前半にフランスの数学者 フーリエ(Fourier、1764-1830)が熱伝導問題の解析の過程で考え出したものです。 そして、その基アイディアは「任意の周期関数は三角関数の和で表される」というものです。 フーリエ級数展開(および、フーリエ変換)について詳細に説明しようとすると、それだけでが1冊書けるほどになってしまいます。 そのため、ディジタル信号処理などの工学的な応用に必要になる部分に絞って説明していきたいと思います。 基アイディア フーリエは「任意の周期関数は三角関数の和で表される」という仮定の下で、 周期関数を三角関数を使って級数展開する方法(フーリエ級数展開と呼ばれています)を考案しました。 すなわち、周期Tの関数f(t)は

    フーリエ級数展開
  • XAML 概要(WPF)

    Windows Presentation Foundation」 では、 これまでと同様の C# コードベースの GUI 構築もできますが、 それと同時に、 XAML と呼ばれるマークアップ言語による GUI 構築手段を提供しています。 XAML(eXtensible Application Markup Language、発音的には zamel と読んでくれとのこと)は、 GUI アプリケーションを記述するための XML フォーマットです。 例えば、以下のように記述します。 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="White" > <FlowDocum

    XAML 概要(WPF)
    yuiseki
    yuiseki 2009/03/13
  • 勉強用ページ

    using static System.Console; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> /// <param name="args">visitors</param> public static void Main(string[] args) { foreach(string visitor in args) { WriteLine($"Hello {visitor}."); } WriteLine("Welcome to my web page."); } } C# によるプログラミング入門 コンピュータの基礎知識 アルゴリズムとデータ構造 ブログ ようこそ ++C++; へ。 C#・情報工学を中心に勉強用ページとブログを載せています。

    勉強用ページ
  • C# によるプログラミング入門 / ++C++;// 未確認飛行 C

    C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。

    C# によるプログラミング入門 / ++C++;// 未確認飛行 C
  • C# によるプログラミング入門

    C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。

    C# によるプログラミング入門
    yuiseki
    yuiseki 2008/08/02
  • 1