読者です 読者をやめる 読者になる 読者になる

kanetaiの二次記憶装置

プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。http://qiita.com/kanetai

論理回路(Logic Circuit)

論理回路の復習をしたので コンピュータサイエンスで学ぶ論理回路とその設計作者: 柴山潔出版社/メーカー: 近代科学社発売日: 1999/09メディア: 単行本購入: 2人 クリック: 2回この商品を含むブログを見る github.com 論理代数(Logical Algebra) ブール領…

素数判定 (Primality Test)

リポジトリ 競プロ的なことを久しぶりにしたので、http://kanetai.hatenablog.com/entry/20110519/1305833341の一部を少し整理。 term description 約数(divisor), 因数,因子(factor) ある自然数を割り切る整数。 素数(prime number) 自分自身と1以外の自然…

Node.js環境構築メモ

➜ ~ 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…

Playgroundでマンデルブロ集合とジュリア集合を書いてみた

MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } }); qiita.com に移動しました。 プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。 http://qiita.com/kanetai

Template Method パターン

https://ja.wikipedia.org/wiki/Template_Method_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、そのアルゴリズムの具体的な設計をサブクラスに任せる。 swiftでの実装例 今のところ、protectedもabstra…

Adapterパターン

https://ja.wikipedia.org/wiki/Adapter_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3 既存のクラスに修正を加えることなくインターフェースを変更するラッパー. swiftで実装するには? クラス図どおり実装するだけだが、Objective-CやSwiftには言語機能として既存…

Iteratorパターン

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を実…

swiftで外部コマンド実行

qiita.com に移動 頭に#!/usr/bin/swiftって書いておくと chmod a+x hoge.swift ./hoge.swift #swift hoge.swiftでも起動できる って感じでスクリプトみたいに起動できることを知ったので、勉強がてら手元にあるperlスクリプトをswift翻訳してた。 その際の…

Effective Objective-C 2.0 第4章(プロトコルとカテゴリ)

項目23 オブジェクト間通信には、DelegateとDataSourceプロトコルを使う @class myClass; @protocol myDelegate <NSObject> @optional - (void)optionalMethod1:(myClass*)test; - (void)optionalMethod2:(myClass*)test; @end @interface myClass : NSObject - (void)</nsobject>…

プログラミングHaskell第6章(再帰関数)まとめ

再帰関数定義のための5段階の工程 1:型を定義する pow :: Int a => a -> a -> a 2:場合分けをする 数値なら(0, n), リストなら([], x:xs)などで場合分けする pow a n | (n == 0) = | (n > 0) = 3:簡単な方を定義する たいていの場合、基底部の方が簡単 pow …

ソート、整列(sorting)

リポジトリ 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:{...}]にして、括弧内をエスケープする。 …

プログラミングHaskell第5章(リスト内包表記)まとめ

zip 2つのリストを取り、対応する要素をタプルにしたリストを作る。 2つのリストの長さが違う場合は、短い方のリストと同じ長さのリストとして扱う。 pairs :: [a] -> [(a,a)] pairs xs = zip xs (tail xs) -- pairs [1, 2, 3, 4] -----> [(1,2),(2,3),(3,…

プログラミングHaskell第4章(関数定義)まとめ

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 …

Hash(MDx, SHA-xxx)

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>…

Effective Objective-C 2.0 第3章(インターフェイスとAPI設計)メモ

項目15 名前空間の衝突を避けるプレフィックス名を使う Appleが2文字のプレフィックスを使う権利を保有してるので、 クラス名とかデリゲートメソッドに3文字以上のプレフィックスをつけようず クラスだけでなく、クラス実装ファイル内で使っている純粋C関数…

Effective Objective-C 2.0 第2章(オブジェクト、メッセージング、ランタイム)メモ

項目6 プロパティの理解 宣言プロパティ(declared property)の属性 アトミック性 デフォルト(何も書かない場合)はatomic nonatomic 排他的に実行されないアクセッサメソッド。 atomic アクセッサにアトミック性を保証するロック機能が付く。自分でを定義する…

プログラミングHaskell第3章(型とクラス)まとめ

基本型 Bool (真理値) False, True. Char (文字) シングルクォートで囲む。他の言語同様。 String (文字列) ダブルクォートで囲む。他の言語同様。 Int (固定制度整数) 固定長整数。プログラミングHaskellによると、Hugsではらしいが、 Integer (多倍長整数)…

プログラミングHaskell第2章(はじめの一歩)まとめ

標準ライブラリ(Prelude) 二項演算 除算はdiv関数を使う。通常関数は、ポーランド記号(前置記法, prefix notation)で書くが、バッククオートを入れると中置記法(infix notation)で書くことができる。 演算子の優先順位や結合の仕方は数学の慣習と同じ(累乗演…

プログラミングHaskell第1章(導入) まとめ

プログラミングHaskellでは実際のHaskellで入力する記号ではなく数学記号で記述されている。 否定とノットイコールの入力方法が慣れ親しんでるプログラミング言語とは違う。 数学記号 意味 入力方法 変換する -> クラス制約 => 以上 >= 以下 等しくない /= …

Effective Objective-C 2.0 第1章(Objective-Cに慣れる)メモ

Effective Objective-C 2.0を買ったので、適当にまとめ。 enumの話は知らなかったけど、第1章は半分ぐらいがC/C++でも当たり前の内容。 項目1 Objective-Cのルーツを知る ぶっちゃけなんもない。 スタック上にObjective-Cのオブジェクトを宣言できない、ヒ…

macでHaskell環境構築メモ

動機 新言語Swiftとか色々な言語でで関数型プログラミングをサポートし始めたので、ちょっとかじっておきたかった。 学ぶなら純粋関数型言語ということで、言語はHaskellにしますた。 参考書はプログラミングHaskell。 訳者のサポートページhttp://www.mew.o…

最大流問題(Maximum Flow Problem)

最小費用流問題を特殊化。 ソース節点sが複数ユニットを配布節点w経由でシンク節点に到達するように流す。各辺には、容量と実際のフローが付随する。 目標:ネットワークフローFを最大にする コード 残余ネットワークから増加パスを求める系のアルゴリズムを…

Network Flow Algorithm

Network Flow Algorithms フローネットワーク(Flow network)/輸送網(Transportation network)を扱うアルゴリズム。 各アークに容量(capacity)を設定し、各アークをフロー(flow)が流れる。 ネットワークフローアルゴリズムの適用分やには次のような物がある。…

Cats Going Straight II(AOJ No.0273)

リポジトリ Cats Going Straight II(AOJ No.0273) まっすぐな壁で囲まれたいくつかの部屋からなるお屋敷がある。 お屋敷の一番外側の壁をみると、凸多角形になっている。 1枚の壁はその両端にある柱によって支えられている。 異なる柱が同じ位置を占めるこ…

平面グラフ(plane graph)、彩色(cloring)、木(tree)

平面グラフ(plane graph) 辺が交差しないように平面上に描けるグラフ(多重グラフを含む)は、平面的(planer)であるといい、特に、有限多重グラフの平面表現は地図(map)(または単に平面グラフ(plane graph))と呼ばれる。平面グラフと同型なグラフのことを平面…

The Lonely Girl's Lie(AOJ No.0272)

リポジトリ The Lonely Girl's Lie(AOJ No.0272) N a1 a2 ... aN b1 b2 ... bN が与えられる。 aiはAがもっているパケモンのレベルbiはBがもっているパケモンのレベルを示す。 パケモンを戦わせたとき、レベルが高い方が勝つ。同レベルなら引き分け。 お互い…

Izua Dictionary(AOJ No.0271)

リポジトリ 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), Triangle of Blocks(AOJ No. 0267), Kongo Type(AOJ No. 0268), East Wind(AOJ No. 0269), Modular Query(AOJ No. 0270)

リポジトリ 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…

Cats Going Straight(AOJ No.0265)

リポジトリ Points for a Perfect Scorer(AOJ No.0265) 塀が多角形で表され、いくつかの頂点にえさを置く。 猫が塀を登って、内部に侵入し、えさに向かって直進する。 猫がどこから入ってきても、塀にぶつからないようにえさを配置するとき、必要なえさの数…

Points for a Perfect Scorer(AOJ No.0256), Railway Ticket(AOJ No.0257), Kitchen Garden(AOJ No.0258), All Numbers Lead to 6174(AOJ No.0259), Salary for a Plumber(AOJ No.0260), Mayan Crucial Prediction(AOJ No.0261), Making Sugoroku(AOJ No.0262), Beat Panel(A

リポジトリ Points for a Perfect Scorer(AOJ No.0256) 足し算する。 コード import java.util.*; public class aoj0256 { static final Scanner stdin = new Scanner(System.in); public static void main(String[] args) { int sum = 0; while (stdin.hasN…

Time Sale(AOJ No.0245), Bara-Bara Manju(AOJ No.0246), Ice Maze(AOJ No.0247)

リポジトリ Time Sale(AOJ No.0245) 店のマップが横x、縦yのマスで構成される2次元 グリッドが与えられ、マスごとに通路、商品棚の どちらかが割り当てられている。 一つの商品棚には 1種類の商品があり、それは商品番号gで区別される。 同じ商品番号の商品…

Time to Study(AOJ No. 0238), Calorie Counting(AOJ No. 0239), Interest Rates(AOJ No. 0240), Quaternion Multiplication(AOJ No. 0241), Input Candidates(AOJ No. 0242), Filling Game(SOJ No. 0243), Hot Spring Trip(AOJ No. 0244)

リポジトリ Time to Study(AOJ No. 0238) 要するにが与えられて、かどうかを答える。 コード import java.util.*; public class aoj0238 { static final Scanner stdin = new Scanner(System.in); public static void main(String[] args) { while (true) { …

The Last Door(AOJ No.0237)

リポジトリ The Last Door(AOJ No. 0237) n個の2等辺三角形の座標(頂点座標x3)と 光の伸びる長さ dが与えられる。 2等辺三角形の底辺の長さをlとする。 三角形に触れると点灯し、底辺から底辺を含まない頂点に向かって、l×dの長方形の光がでる。 その光が他…

Eclipseの設定

IDE

mac版のeclipseのデフォルトエンコーディングがShift-JISになってるので、eclipse.iniに -Dfile.encoding=utf-8 を追加しとくと安心。 これやってないと、プロジェクトをインポートするときめんどくさいことになる。フォント/サイズは、Eclipseの環境設定で…

強連結成分分解(Decomposition of Strongly Connected Components)

リポジトリ 有向グラフ(directed graph, digraph) 強連結(strongly connected): 有向グラフの任意の2頂点u, vに対して、uからvに到達可能かつvからuに到達可能、すなわち、任意の2頂点に双方向の道が存在するとき、その有向グラフは強連結であるという。 …

Alien Messages(AOJ No.0236)

リポジトリ Alien Messages(AOJ No.0236) W×Hのマップ(0:empty, 1:障害物)が与えられて閉曲線が描けるかどうかを答える。 ↓みたいに交差したりしてはいけない。 制約 0 アルゴリズム 障害物の無いところに, 左上から、下の6パターン(十字路のわたり方)の線を…

Sergeant Rian(AOJ No.0235)

リポジトリ Sergeant Rian(AOJ No.0235) 1〜N+1の島にN個の橋がかけられてツリー構造になっている。 Nと各橋の接続関係と各橋をわたるのに必要な時間t1, t2, ..., tNが与えられる。 自分がいる島に隣接した橋を爆破することができる(爆破にかかる所要時間は…

Life Game(AOJ No.0232), Book Arrangement(AOJ No.0233), Aizu Buried Treasure(AOJ No.0234)

リポジトリ Life Game(AOJ No.0232) 人生ゲームをやって、ゴールしたときの金の期待値(小数点以下切り捨て)を求める。 進むマスを決めるルーレットは、X 等分に区分され、それぞれに V1、V2、...、Vx という値が記入されている。 ボードには、0 番、1 番、..…

Hit and Blow(AOJ No.0226), Thanksgiving(AOJ No.0227), Seven Segments(AOJ No.0228), Big Hit !(AOJ No.0229), Ninja Climbing(AOJ No.0230), Dangerous Bridge(AOJ No.0231)

リポジトリ Hit and Blow(AOJ No.0226) hitとblowの数を答える。Hit and Blow(AOJ No.0025)とほぼ同じ コード ソートしてindexを勧めながらblowを数える import java.util.*; public class aoj0226 { static final Scanner stdin = new Scanner(System.in); …

Kobutanukitsuneko(AOJ No.0225)

リポジトリ Kobutanukitsuneko(AOJ No.0225) 文字列がn個与えられる。 それらの文字列を全て使ってしりとりをし、最初の文字列の先頭と最後の文字列の最後と同じにすることができるかを答える。 制約 1 コード 有向グラフのオイラー閉路が作れるかどうかを調…

有向グラフ(directed graph, digraph)

グラフ理論(Graph theory) 有向グラフ(directed graph) ダイグラフ(digraph)の要素 要素が頂点(vertex), 点(point), または節点(node)の集合V 弧(arc)と呼ばれる頂点の順序対の集合A 多重弧(parallel arc): 自己ループ(loop): 次数(degree): 頂点vで始まる…

Bicycle Diet(AOJ No.0224)

リポジトリ Bicycle Diet(AOJ No.0224) ケーキ屋さんの数 m ランドマークの数 n 単位距離あたりの消費カロリー k 距離のデータの総数 d, 各ケーキ屋さんで摂取するカロリー c1, c,2, ..., cm 地点間の距離データ系列 が与えられる。 ある地点へ移動するには…

FizzBuzz(AOJ No.0221), Prime Quadruplet(AOJ No.0222), Stray Twins(AOJ No.0223)

リポジトリ FizzBuzz(AOJ No.0221) m,n,とn個の発言内容が与えられる。 1-mのIDが振られたm人がFizzBuzzを1からnまで順番に行っていく。 間違ったことを言えばその人は脱落して、次の人は、間違ったところの次から始める。 発言する順番は1,2,...,m,1,2...と…

[OnlineJuCutting Down Water Bills(AOJ No.0216), Walking in the Hospital(AOJ No.0217), Dividing Students(AOJ No.0218), A Popular Ice-cream Shop(AOJ No.0219), Binary Digit A Doctor Loved(AOJ No.0220)

リポジトリ Cutting Down Water Bills(AOJ No.0216) 段階 水量 料金 第 1 段階料金 10 まで 基本料金 1150 円 第 2 段階料金 10 超過 20 まで 1 あたり 125 円 第 3 段階料金 20 超過 30 まで 1 あたり 140 円 第 4 段階料金 30 超過分 1 あたり 160 円 今月…

NDEF(NFC Data Exchange Format)

とりあえず、直近で使いそうなRTD Text、AAR, Mime Recordについてだけ調べた。 他のレコードやAndroidBeamなどの内容はまた機会があったら調べようと思う。 Android NFCプログラミング完全ガイド買ってみた。Android NFCプログラミング完全ガイド作者: 株式…

Android NFC

ちょいとNFCについて調べたのでメモ。NFCには規格がいくつかあるが、AndroidでNFCといったら、NFCフォーラム仕様のことを指す。 NFCフォーラム仕様のNFCは下記の3つに対応している NDEF(読み込みフォーマット) 3つのモード(NFC通信仕様) NFC Forum Tag NDEF…

Pachimon Creature(AOJ No.0215)

リポジトリ Pachimon Creature(AOJ No.0215) のマップが与えられて、 1:火属性、 2:氷属性、 3:木属性、 4:土属性、 5:水属性のパチクリとスタート地点とゴール地点が配置されている。スタート地点で好きな属性のパチクリを貰って、全属性のパチクリを捕まえ…

Autumnal Illumination(AOJ No.0214)

リポジトリ Autumnal Illumination(AOJ No.0214) 4つの頂点座標で表される四角形がn個与えられて、オーバーラップ(on lineも含む)しているものは一つのオブジェクトと見なしたとき、オブジェクトの数はいくつなのかを答える。(これらmセットがデータセット1…

Union-Find

リポジトリ Union-Find データの集合を素集合(互いにオーバーラップしない集合)に分割して保持する素集合データ構造(disjoint-set data structure)に対して行う、次の操作をUnion-Findアルゴリズムと呼ぶ。 Find: 特定の要素がどの集合(グループ)に属して…