ビット演算まとめ

http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=bitManipulation

n & (n-1)
long long n;
there exists m in N n = 2^mの判定。

__builtin_ctz(n)
unsigned int n;
count trailing zeros
__builtin_ctz(n) = k * 2^m, k and 2 are coprimeなるm
__builtin_ctz(n) = LSB(n)

__builtin_clz(n)
unsigned int n;
count leading zeros
sizeof(n) – __builtin_clz(n) = argmin x < 2^i

SRM 597

1184->1214(Blue)
SRM 597 (div2), ox-, +50/-0, 264.1pts, 174th

Div.1に戻りました。

Easy
for all elem = a {
amin = minelem(a), there exists m in N elem / amin = 2^m
}
を判定する。
どうでもいいけど、given nに対して、there exists m in N n=2^mの判定方法として、(n & n – 1)がある。

Med
result -1はソートして同一かチェック。
result m ⇔ B[m:end]がAの部分列
これだけで良いのだが、下の部分列として存在の実装をミスった。馬鹿です。部分問題に加えます。
ミスった原因。
-forやwhileがこんがらがる問題は、きちんと紙で構造を確かめなければならない。
-終端条件から考えると楽
-条件が網羅的であることを確認しなければならない
-終端条件が更新条件によって変わる場合がある。下の解法2参照。
-whileとbreak, continueの構造は極めてミスりやすいので、他の関数を作ったほうが良いと思われる。インクリメントの変数の取り扱いが面倒。

部分問題、string A, Bについて、AがBを部分列として持つかを判定せよ。
解法0:
B[i]がA[j:end]に存在するかを逐一チェック。
終端条件
i: last && A[j:end]にB[i]がある→true
i: last && A[j:end]にB[i]がない→false
i: not last && A[j:end]にB[i]がない→false
更新条件
i: not last && A[j:end]にB[i]がある→jをfind(A[j:end], B[i]) + 1に設定

解法1:
B[i]がA[j:end]に存在するかを逐一チェック。
終端条件
j: done →false
更新条件
j: not done && A[j] == B[i]→j++, break
j: not done && A[j] != B[i]→j++

解法2:
whileとforの混成は面倒なので、while(1)でi, jを自分で管理する。
終端条件
i: not done && j: done→false
i: done && j: not done→true
i: done && j: done→???
更新条件
i: not done && j: not done && A[j] == B[i]→i++, j++
i: not done && j: not done && A[j] != B[i]→j++
???は、更新条件1行目によって更新された時にのみ発生。これは???=doneとして扱うべき。

bool ans0(string A, string B)
{
    int j = 0;
    for (int i = 0; i < B.length(); i++, j++) {
        int tmpj = A.substr(j, A.length() - j).find(B[i]);
        if (tmpj == string::npos) {
            return false;
        } else if (i != B.length() - 1) {
            j += tmpj;
        } else {
            return true;
        }
    }
    return true;
}


bool ans1(string A, string B)
{
    int j = 0;
    for (int i = 0; i < B.length(); i++) {
        while (1) {
            if (A[j++] == B[i])
                break;
            if (j >= A.length())
                return false;
        }
    }
    return true;
}

bool ans2(string A, string B)
{
    int i = 0, j = 0;
    while (1) {
        if (i >= B.length())
            return true;
        else if (j >= A.length())
            return false;
        else if (A[j] != B[i])
            j++;
        else {
            i++, j++;
        }
    }
}

Hard
わけがわからないよ。
勉強します。

TOREAD

–読みたいもの–
Mobergの論文

grip system

https://mail.google.com/mail/u/0/#search/sagisaka/144bb0ffe0534e32

論文の書き方(日本語)

http://www.amazon.co.jp/exec/obidos/ASIN/4320005716/kenkyuuryuuga-22(だれかおすすめ)

http://www.amazon.co.jp/%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%83%BB%E8%AB%96%E6%96%87%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E5%85%A5%E9%96%80-%E6%B2%B3%E9%87%8E-%E5%93%B2%E4%B9%9F/dp/4766409698

※はおすすめ
※M.アドラー C.ヴァン ドーレン『本を読む本』ブリタニカ出版,1978年.
板坂元『考える技術・書く技術』講談社現代新書,1978年.
板坂元『何を書くか,どう書くか』光文社カッパブックス,1980年.
※澤田昭夫『論文の書き方』講談社学術文庫,1977年.
澤田昭夫『論文のレトリック』講談社学術文庫,1983年.
野口悠紀雄『「超」勉強法』講談社,1995年.
野口悠紀雄『「超」勉強法 実践編』講談社,1997年.
本多勝一『日本語の作文技術』朝日新聞社,1982年.
論文の書き方(英語)

http://books.google.co.jp/books?id=0LfNnHk9NOoC&pg=PA105&lpg=PA105&dq=%E8%AB%96%E6%96%87%E3%80%80%E3%81%84%E3%81%A1%E3%81%A9&source=bl&ots=nyMHDoZXOg&sig=c9q5WH11NhBiKPwIbwe2H4vDZxg&hl=ja&sa=X&ei=Yb8fU8C6B8u9kQWd8IHAAg&redir_esc=y#v=onepage&q=%E8%AB%96%E6%96%87%E3%80%80%E3%81%84%E3%81%A1%E3%81%A9&f=false

論文の書き方とか

http://homepage3.nifty.com/hiraizumi/index.html

接触運動両方測ってる奴
Analysis of human grasping under task anticipation using a tactile book

物体の受動性を使ったロボットの設計
Exploitation of Environmental Constraints in Human and Robotic Grasping
Open-Loop Precision Grasping With Underactuated Hands Inspired by a Human Manipulation Strategy
Push-Grasping with Dexterous Hands: Mechanics and a Method

Auditory Filling

http://www.cell.com/current-biology/retrieve/pii/S0960982207016910

google docsの
StudyOfAnimalBody
thesis

http://tkawamoto.web.fc2.com/write_tip.html

粕谷「生物学を学ぶ人のための統計のはなし」
Man-WhitneyのU検定=Wilcoxonの検定.

伝えるための心理統計
(H君おすすめ.効果量のはなし.)

period surrogateと音声の「あ」の構成についてとか.

http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/isrr2013.pdf

母体の肥満と子供の発達障害の関係性.

http://pediatrics.aappublications.org/content/129/5/e1121.short

pais*
運動時系列から重要な変数の抽出と制御器抽出とセグメンテーションをするらしい.
接触情報は扱ってない.

bernardin*
人間の把持パターン時系列を認識するシステム.古い.
切り出すべきノードが最初から決まってる(把持形態の先行研究から導出)

rainer*
マニピュレーションのプランニング.
接触情報を拘束条件にしてる

Shukla*
運動計測から最適制御器を得る,ということのようだが,
接触情報は(少なくとも計測においては)扱ってない模様.

Handle Project

http://www.thehandembodied.eu/papers

Latash先生とか

柳川「ノンパラメトリック法」

調理と理論-山崎-清子

http://gihyo.jp/dev/serial/01/machine-learning

http://www.atmarkit.co.jp/ait/articles/1203/07/news117_3.html

–読んでいる途中のもの–

–読んだもの–
統計について
久保田「確率・統計解析の基礎」 18h(7章マルコフ連鎖をふっ飛ばした.)
超厳密ではなくてよいが,確率・統計解析を数学のことばで追いたい人向け.
測度論から導入し,高校数学で理解できる範囲で確率変数などをきちんと定義している.
この本で初めて確率変数が標本空間からボレル集合への「写像」のことを表すことを知った.
また,χ^2分布,F分布,t分布の定義をきちんと枢軸量によって与えており,あのだからt分布ってなんだよ!!的歯がゆさを消してくれる.
複合仮説検定のχ^2検定について,証明を全部ふっとばされた.最後の章の結構気になっていたのに,残念.