studies

いろいろ勉強用備忘録的な感じ

GUIは変わりやすい…けれど…

最近職場でWindows 7に代わって、Windows 10が標準OSとして指定されつつある。 なんでWindows 7でやっていたことを、Windows 10でもやろうとするのだが、例のごとくGUIが変わっていてやりにくいことこの上ない。 なんでMSは毎度毎度GUIを変更するんだろうか…

pmccabeを使って簡単にサイクロマチック複雑度を測る

サイクロマチック複雑度、あるいは循環的複雑度とは、コードのパスの複雑さを表す指標の一つだ。 10以下なら良い構造、30未満ならまあ許容、30以上なら構造的リスクあり、50以上でテスト不可能、70以上でいかなる変更もデグレを引き起こすとされている。 こ…

英語、UML、git、バイナリ操作、オブジェクト指向

久しぶりの投稿だ。というのも、仕事であまり新奇なものに触れる機会もなく、ちょっと腐り気味だったのである。タイトルは、最近なんとなく勉強しといたほうがいいだろうかと思っていることを列挙したものである。英語は結構勉強している。 あまりそれ自体は…

いろいろ環境設定(主にvim)

ソースコードが読めない(絶望)。あまりにダメダメだから、環境を色々試してみることにした。やったこと↓ Windowsのレジストリをいじって、キーバインドを変更。CapsLock->Control, 変換->Esc。 tmux導入。 vimプラグインdein導入。 vimプラグインtaglist導…

出力変換指定子の修飾子とか、整数拡張とか

仕事でビット演算を使って、結構知らないことが多かった。まずは、signed charの場合。 #include <stdio.h> int main(void) { /* 以下いずれも右辺の定数はintで解釈される。右辺の値が左辺の型で表現できる範囲を超えている場合の動作は処理系定義。 */ signed char </stdio.h>…

C言語のdigraphsを使ってみる

完全に小ネタ。ISO/IEC 9899:1999によると、 In all aspects of the language, the six tokens(67 %: %:%:behave, respectively, the same as the six tokens[ ] { } # ##except for their spelling.(68 67) These tokens are sometimes called ‘‘digraphs’’…

ぐるぐるとまだ回る君の影 どこにも行けずに春が来る

社会人になって一年が経過した。同時に、プログラマになって一年だ。今自分の職業について思っていることを徒然に書いてみる。 プログラマはプログラムを作る人 プログラムとは予定表の意味だ。 だから、プログラマとは予定表を作る人に他ならない。 プログ…

GIFのバイトオーダはリトルエンディアンです!ビッグエンディアンじゃありません!

ふーんという感じですが、specificationにも記述があります。 https://www.w3.org/Graphics/GIF/spec-gif89a.txt Multi-byte numeric fields are ordered Least Significant Byte first. 『入門 Python3』のp216の記述は誤植ですね(とても混乱するので、エ…

高速化フィボナッチの計算量の理想と現実

前回書いた高速化フィボナッチでは、計算量をと見積もった。 今回はこの見積もりの妥当性を検討する。まず、 >>> from my import fib >>> from timeit import timeit >>> from matplotlib import pyplot as plt >>> x = range(2**7) >>> y = [ timeit('fib({…

pythonでフィボナッチ高速化

激しく既出という気がするけど、行列を使ってフィボナッチを高速化する。その前に、の計算を高速化するアルゴリズムを確認しておく。 def my_pow(x, n): if n == 0: return 1 elif n % 2: return x * my_pow(x, n-1) else: half_pow = my_pow(x, n/2) return…

SQLite3でちょっと複雑なソート

SQL

studies.hatenablog.com studies.hatenablog.com応用情報の勉強をしなければならない。 といっても、なかなか腰が上がらないものである。 気づけば日曜日の夜である。 今回は普段触らないSQLで例の問題を解く。 きっと、応用情報の役に立つはずだ(?)今、c…

pythonとhaskell, perl6で加重平均

python。 最後はnumpyの内積(ドット積)を使っている(ずるい?) >>> weight = [ 0.22, 0.14, 0.04, 0.12, 0.22, 0.26 ] >>> record = [ 64, 51, 132, 24, 19, 11 ] >>> sum( a * x for (a, x) in zip(weight, record) ) 36.42 >>> sum(map(lambda a, x: a…

void *p = &p : 自分自身を参照する初期化の問題

久しぶりの投稿はちょっと変な話。次のように、自分自身を参照するポインタを作ってみる。 #include <stdio.h> int main(void) { void *p = &p; printf("%p\n", p); return 0; } 自分の環境では、普通にコンパイルが通る。 そして、実行するたびに結果が変わる(実行</stdio.h>…

無名共用体を見かけた

無名共用体(anonymous union)を久しぶりに見た。無名共用体というのは、こんなやつ。 #include <iostream> using namespace std; static struct { char dummy; union { // これが無名共用体よ long data_double_word; struct { // これは無名構造体だ // リトルエンデ</iostream>…

pythonで順序を保つグルーピング

恒例の?問題をpythonでやってみる。 使うアルゴリズムは、perlで最後にやったのと同じ(いちおうバケットソートといえるだろうか?) studies.hatenablog.compythonのcollectionモジュールにあるOrderedDict(順序付き辞書)を使うと楽に書ける。 OrderedDi…

pythonとhaskellで素数のリストを作ってみる

今回はメモ程度。 リスト内包表記と、filter, mapを使った書き方。python。 >>> [n for n in range(2,100) if 0 not in [n%d for d in range(2,n)]] [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] >>>…

フィボナッチ数をたくさん出力すると放物線が現れる件

前回、pythonを使ってフィボナッチ数の第n項を返す関数をいくつかのバリエーションで実装した。 ところで、pythonではメモリが許す限りいくらでも大きな整数を扱うことができる。 調子に乗って、前回作った関数でフィボナッチ数を(各項の間にスペースを一個…

python3はじめました:とりあえずフィボナッチ数列を書いてみる

ふと読み返してみると、いつからこのブログは旅行記になったのだろう、という感じである。 最近マンネリ気味だったので仕方がない。さて、なんとなく仕事も閑散期を抜けそうな気がするので、私も心新たに新しい言語を試してみている。 python3である。とりあ…

京都に行ってきた【東寺・来迎院・宝泉院】

仕事が閑散期なため、ふと思いついて京都に行ってきた。 そうだ、京都行こう。東寺。教王護国寺ともいう。 真言宗のお寺。五重塔の初層が公開されていた。 ところ変わって大原来迎院。 大原エリアではここだけまだ来たことがなかった。 ここは天台宗のお寺。…

鎌倉に行ってきた【銭洗弁財天~大仏ハイキングコース~高徳院】

鎌倉に行ってきた。銭洗弁財天。トライフォース。 銭を洗うと金運が上がるらしい。 大仏までのハイキングコースから鎌倉を望む。 大仏。

勉強用サーバ兼ファイルサーバの構築(samba/Ubuntu16.04/Windows10)

思ったより簡単にできてしまったのでメモ。 機材 小さなノートPC(1kg以下。使いやすい。HDD容量30GBくらい) 大きなノートPC(重い。使いづらい。HDD容量500GBくらい) 今までの環境 どっちもOSはWindows10。 小さな方にMS-Officeを入れてexcelで遊んだり、…

2017年の目論見

あけましておめでとう。年は明けて2017年。 今年もよろしくお願いします。年頭よろしく、今後の目論見なんかを作ってみる。 ブログの更新頻度向上 アウトプットの場としてのブログの利用価値を見直す。 応用情報技術者 4月の試験はこれ。 ネットワークスペシ…

perlで順序を保つグルーピング ~優先度からの解放~

excelでちょっと複雑なソート - studies perlでちょっと複雑なソート - studies perlでちょっと複雑なソート2 - studies perlでちょっと複雑なソート3 - studies ワンライナーでちょっと複雑なソート - studies今までタイトルに「ソート」と付けていたように…

ワンライナーでちょっと複雑なソート

早く目が覚めてしまった。 これは午後眠くなるぞー。さて、excelとperlでいろいろやってきたこの問題。studies.hatenablog.com最後の仕上げ?として、perlを使わず、ワンライナーでやってみる。 (もしかしたらまだ続くかも)。 awk '{p[$2] || (p[$2]=NR); …

perlでちょっと複雑なソート3

この問題、さらに改良してみる。 studies.hatenablog.com #! /usr/bin/perl -a use 5.010; use sort 'stable'; push @lines, $_; $priority{$F[1]} //= $.; END { print (sort { $priority{(split /\s+/, $a)[1]} <=> $priority{(split /\s+/, $b)[1]} } @li…

perlでちょっと複雑なソート2

昨日のエントリの最後で、use sortプラグマを使うことで、perlのソートに安定性を保証することができるという話を書いた。studies.hatenablog.com そこで今回は、これを使って先日のソースを改良してみる。 #! /usr/bin/perl use 5.010; use sort 'stable'; …

perlでちょっと複雑なソート

まただいぶ間が空いてしまった。その間に私は、基本情報技術者という資格試験を受けたり、引っ越したりしていた。最近少し落ち着いてきたし、間が空きすぎるのもよくないので、余りネタはないものの何か書いてみようと思う。 数か月前、excelでちょっと複雑…

短いことは良いことだ(ほかの人に理解させるつもりがないのなら)

昨日本屋に行ってperlの本を買ってきた。 perlは文字列の処理が得意なプログラミング言語らしい。 Cみたいにコンパイルしたりせずに、シェルから直接起動することができるから便利そう。最近はソースコードやスクリプトをいかに短く書くことができるか、とい…

久方の雨も降らぬか雨障み

久しぶりの更新である。 最近は少しずつ残業も増えてきた。 世の中のブロガーは、どうやってブログを書く時間やブログのネタを見つける時間を捻出しているのだろう。 最近私はC++の勉強はそこそこに、シェルスクリプトや正規表現なんかの勉強をしている。 と…

時間を扱うライブラリ関数

引き続き、独習C++をやっている。 練習問題で、時間を扱うことが多い。今までC言語でも時間を扱ったことがほとんどなかった。 C++というよりCの標準ライブラリ関数の勉強みたいになっている。ctime(C言語ならtime.h)をかんたんにまとめる。 time_t型 ctime…