論理回路の復習をしたので コンピュータサイエンスで学ぶ論理回路とその設計作者: 柴山潔出版社/メーカー: 近代科学社発売日: 1999/09メディア: 単行本購入: 2人 クリック: 2回この商品を含むブログを見る github.com 論理代数(Logical Algebra) ブール領…
リポジトリ 競プロ的なことを久しぶりにしたので、http://kanetai.hatenablog.com/entry/20110519/1305833341の一部を少し整理。 term description 約数(divisor), 因数,因子(factor) ある自然数を割り切る整数。 素数(prime number) 自分自身と1以外の自然…
➜ ~ sw_vers ProductName: Mac OS X ProductVersion: 10.11.1 BuildVersion: 15B42 nodebrew curlでインストール。終わったらPATHを通す($HOME/.nodebrew/current/bin) ➜ ~ curl -L git.io/nodebrew | perl - setup % Total % Received % Xferd Average Spee…
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); qiita.com に移動しました。 プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。 http://qiita.com/kanetai
https://ja.wikipedia.org/wiki/Template_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、そのアルゴリズムの具体的な設計をサブクラスに任せる。 swiftでの実装例 今のところ、protectedもabstra…
https://ja.wikipedia.org/wiki/Adapter_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 既存のクラスに修正を加えることなくインターフェースを変更するラッパー. swiftで実装するには? クラス図どおり実装するだけだが、Objective-CやSwiftには言語機能として既存…
https://ja.wikipedia.org/wiki/Iterator_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 ↓みたいに要素を反復列挙できるようにするパターン var iterator = aggregate.iterator() while iterator.hasNext() { var element = iterator.next() } swiftでIteratorを実…
qiita.com に移動 頭に#!/usr/bin/swiftって書いておくと chmod a+x hoge.swift ./hoge.swift #swift hoge.swiftでも起動できる って感じでスクリプトみたいに起動できることを知ったので、勉強がてら手元にあるperlスクリプトをswift翻訳してた。 その際の…
項目23 オブジェクト間通信には、DelegateとDataSourceプロトコルを使う @class myClass; @protocol myDelegate <NSObject> @optional - (void)optionalMethod1:(myClass*)test; - (void)optionalMethod2:(myClass*)test; @end @interface myClass : NSObject - (void)</nsobject>…
再帰関数定義のための5段階の工程 1:型を定義する pow :: Int a => a -> a -> a 2:場合分けをする 数値なら(0, n), リストなら([], x:xs)などで場合分けする pow a n | (n == 0) = | (n > 0) = 3:簡単な方を定義する たいていの場合、基底部の方が簡単 pow …
リポジトリ Arrays.sortに習って、a[fromIndex, toIndex)がソートされるようにしてみる。 また、javaにはswap()がないので適当に実装しておく。 public static final void xxxSort(T a[], int fromIndex, int toIndex) { ... } public static final int[] sw…
ここでも指摘されているように、はてなブログのmarkdownモードで数式を使おうとすると、エスケープとかではまることが多いので、簡易スクリプト(Perl)書いた。 \\( ...\\),\\[...\\]で囲まれた数式をはてな記法[tex:{...}]にして、括弧内をエスケープする。 …
zip 2つのリストを取り、対応する要素をタプルにしたリストを作る。 2つのリストの長さが違う場合は、短い方のリストと同じ長さのリストとして扱う。 pairs :: [a] -> [(a,a)] pairs xs = zip xs (tail xs) -- pairs [1, 2, 3, 4] -----> [(1,2),(2,3),(3,…
cons演算子「:」 既存のリストの先頭に新しい要素を追加したリストを作成する cons演算子は右結合 Prelude> :t (:) (:) :: a -> [a] -> [a] Prelude> 1 : [2, 3] [1,2,3] Prelude> 1 : (2 : (3 : [])) -- [1, 2, 3]はこれの略記 [1,2,3] Prelude> 1 : 2 : 3 …
MD5を使う機会があったので、色々な言語での求め方を調べてみた。 Uinux系 md5, md5sumが使えれば↓でおk md5sum <file> md5 <file> md5 -s <text> brewでインストールするなら、 brew install md5sha1sum shasumもついてくる。 shasum [OPTION]... [FILE]... With no FILE, or </text></file></file>…
項目15 名前空間の衝突を避けるプレフィックス名を使う Appleが2文字のプレフィックスを使う権利を保有してるので、 クラス名とかデリゲートメソッドに3文字以上のプレフィックスをつけようず クラスだけでなく、クラス実装ファイル内で使っている純粋C関数…
項目6 プロパティの理解 宣言プロパティ(declared property)の属性 アトミック性 デフォルト(何も書かない場合)はatomic nonatomic 排他的に実行されないアクセッサメソッド。 atomic アクセッサにアトミック性を保証するロック機能が付く。自分でを定義する…
基本型 Bool (真理値) False, True. Char (文字) シングルクォートで囲む。他の言語同様。 String (文字列) ダブルクォートで囲む。他の言語同様。 Int (固定制度整数) 固定長整数。プログラミングHaskellによると、Hugsではらしいが、 Integer (多倍長整数)…
標準ライブラリ(Prelude) 二項演算 除算はdiv関数を使う。通常関数は、ポーランド記号(前置記法, prefix notation)で書くが、バッククオートを入れると中置記法(infix notation)で書くことができる。 演算子の優先順位や結合の仕方は数学の慣習と同じ(累乗演…
プログラミングHaskellでは実際のHaskellで入力する記号ではなく数学記号で記述されている。 否定とノットイコールの入力方法が慣れ親しんでるプログラミング言語とは違う。 数学記号 意味 入力方法 変換する -> クラス制約 => 以上 >= 以下 等しくない /= …
Effective Objective-C 2.0を買ったので、適当にまとめ。 enumの話は知らなかったけど、第1章は半分ぐらいがC/C++でも当たり前の内容。 項目1 Objective-Cのルーツを知る ぶっちゃけなんもない。 スタック上にObjective-Cのオブジェクトを宣言できない、ヒ…
動機 新言語Swiftとか色々な言語でで関数型プログラミングをサポートし始めたので、ちょっとかじっておきたかった。 学ぶなら純粋関数型言語ということで、言語はHaskellにしますた。 参考書はプログラミングHaskell。 訳者のサポートページhttp://www.mew.o…
最小費用流問題を特殊化。 ソース節点sが複数ユニットを配布節点w経由でシンク節点に到達するように流す。各辺には、容量と実際のフローが付随する。 目標:ネットワークフローFを最大にする コード 残余ネットワークから増加パスを求める系のアルゴリズムを…
Network Flow Algorithms フローネットワーク(Flow network)/輸送網(Transportation network)を扱うアルゴリズム。 各アークに容量(capacity)を設定し、各アークをフロー(flow)が流れる。 ネットワークフローアルゴリズムの適用分やには次のような物がある。…
リポジトリ Cats Going Straight II(AOJ No.0273) まっすぐな壁で囲まれたいくつかの部屋からなるお屋敷がある。 お屋敷の一番外側の壁をみると、凸多角形になっている。 1枚の壁はその両端にある柱によって支えられている。 異なる柱が同じ位置を占めるこ…
平面グラフ(plane graph) 辺が交差しないように平面上に描けるグラフ(多重グラフを含む)は、平面的(planer)であるといい、特に、有限多重グラフの平面表現は地図(map)(または単に平面グラフ(plane graph))と呼ばれる。平面グラフと同型なグラフのことを平面…
リポジトリ The Lonely Girl's Lie(AOJ No.0272) N a1 a2 ... aN b1 b2 ... bN が与えられる。 aiはAがもっているパケモンのレベルbiはBがもっているパケモンのレベルを示す。 パケモンを戦わせたとき、レベルが高い方が勝つ。同レベルなら引き分け。 お互い…
リポジトリ Izua Dictionary(AOJ No.0271) nと、0, 1, ..., n-1を並べ替えてできるn!個の数列が辞書に乗っている。 数列0, 1, ..., n-1を入力に従ってR回スワップしてできた数列が辞書の何番目に乗っているかを答える。 ただし、0, 1, ..., n-1は、0番目に乗…
リポジトリ Aka-beko and 40 Thieves(AOJ No.0266) 1 or 2の系列が与えられたとき、AからBに行けるかどうかを答える。 コード import java.util.*; public class aoj0266 { static final Scanner stdin = new Scanner(System.in); enum City { A, B, X, Y, Z…
リポジトリ Points for a Perfect Scorer(AOJ No.0265) 塀が多角形で表され、いくつかの頂点にえさを置く。 猫が塀を登って、内部に侵入し、えさに向かって直進する。 猫がどこから入ってきても、塀にぶつからないようにえさを配置するとき、必要なえさの数…