2018年1月2日火曜日

グラフのデータを作成するプログラム「Rudy」

グラフのデータを作成するプログラム「Rudy」を紹介します。

Stanford大学のStefan E. Karischさんが作成したプログラムで、Stanford大学のウェブサイトからダウンロードできます。gb_lib.crudy.cをダウンロードすればOKです。

readmeに書いてあるように、以下でコンパイルできます。
$ gcc gb_lib.c rudy.c -lm -o rudy

rudyは色々なグラフのデータを作成できます。

以下は、ノード数5の完全グラフを作成する例です (完全グラフとは、全てのノード(vertex)が、全てのノードとつながっている(辺を持つ)グラフのこと)。
$ ./rudy -clique 5
5 10
1 5 4
1 4 3
1 3 2
1 2 1
2 5 3
2 4 2
2 3 1
3 5 2
3 4 1
4 5 1
一行目はノード数とエッジ数です。二行目以降は、[ノードID ノードID エッジの重み]です。ノードIDは1始まりです(0始まりではない)。エッジの重みの最大値は、(ノード数 - 1)で決まります。

以下は、ノード数5の平面グラフを作成する例です (平面グラフとは、辺(エッジ)同士が交差しないグラフのこと)。
$ ./rudy -planar 5 40 3.1415
5 4
1 4 1
1 3 1
2 5 1
3 4 1
40というのは、グラフの密度です。0~100で指定できます。密度が大きいほど、エッジの数が増えます。3.1415というのは、乱数のシード(seed)です。たぶん、適当に指定しても大丈夫です(笑

以下はランダムグラフを作成する例です。
$ ./rudy -rnd_graph 5 60 42221
5 5
1 3 1
1 2 1
2 4 1
3 5 1
4 5 1
引数の意味は、平面グラフのときと同じです(ノード数、密度、シード)。

2017年12月30日土曜日

Python 3で、ファイルの文字列を読み込む方法

Pythonでファイルの文字列を読み込み方法を紹介します。

以下のサンプルコードは、sample.datというファイルを読み込み、一行ずつ出力します。

filename = "sample.dat"

with open(filename) as f:
    line = f.readline().strip() # 一行読み込み、かつ、改行を削除
    while line:
        print(line)
        line = f.readline().strip()

"with open..."でファイルを読み込むことで、いちいちcloseメソッドを呼ばなくても勝手にファイルを閉じてくれます。

また、readline関数で、ファイルを読み込んだ後に、strip関数で改行を削除しています。

Python 3で、組み合わせの一覧を求める方法

Python 3で組み合わせを計算する方法を紹介します。

組み合わせの総数の求め方は、確か、高校で習うはずで、簡単です。たとえば、ここに書いてあります。一方、その全ての組み合わせを求めるアルゴリズムは、少し複雑です。が、Pythonのライブラリを使えば、その複雑さを気にせずに組み合わせを求めることができます。Python最高ですね(笑

以下のサンプルコードでは、組み合わせの候補(4個)から、3個を選択する全ての組み合わせを求めて、出力します。

import itertools

# 組み合わせの候補
s = ['1','2','3','4']

# 組み合わせをもとめて、リストとして取得
patterns = list(itertools.combinations(s, 3));

# 組み合わせを表示
for p in patterns:
    print(p)
実行すると以下が出力されます。
('1', '2', '3')
('1', '2', '4')
('1', '3', '4')
('2', '3', '4')

2017年12月28日木曜日

Microsoft Office PowerPoint 2013でよく使うショートカット

Microsoft Office PowerPointでよく使うショートカットを紹介します。ちなみに、PowerPoint 2013です。

  • Ctrl+s 保存
  • Ctrl+c コピー
  • Ctrl+x 切り取り
  • Ctrl+v 貼り付け
  • Ctrl+z 元に戻す
  • Ctrl+y 同じ操作を繰り返す
  • 図形やテキストボックスを選択してCtrl+Shift+< 文字を小さくする
  • 図形やテキストボックスを選択してCtrl+Shift+> 文字を大きくする

また、以下はショートカットではないですが、よく使うキー操作です。

Shiftを押したまま、図形などをドラッグ&ドロップ -> 真上(真下)、または、真右(真左)のみに図形を動かすことができる(図形が斜めに動かないので、綺麗にスライドできる)。

Ctrlを押したまま、図形などをドラッグ&ドロップ -> 図形をコピーする。

Microsoft Office 2013で、保護ビューを無効にする方法


ネットワークを経由してパワーポイントのファイルを開くと、デフォルトでは、保護モードで開きます。そのため、編集するためには保護モードを解除する必要があります。

保護モードは、セキュリティ上は有効な機能なのかもしれませんが、いちいち保護モードを解除するのがめんどくさい場合もあります。例えば、プライベートに設置した共有サーバ上のパワーポイントファイルを開くのに、いちいち「保護モード」で開いてはめんどうでしょう。

以下の設定を行うと、保護モードを無効にできます。なお、Microsoft Office 2013 Power Pointでの設定になります。

  1. 「ファイル」タブを選択
  2. 「オプション」を選択 -> ダイアログが開く
  3. 「セキュリティセンター」を選択
  4. 「セキュリティセンターの設定」を選択 -> ダイアログが開く
  5. 「保護ビュー」を選択
  6. 右側の3つのチェックボックスの、上2つ(インターネットから取得したファイルに対して保護ビューを有効にする、と、安全でない可能性のある場所のファイルに対して、保護ビューを有効にする)の、チェックを外す。
  7. 「OK」をクリック

ちなみに、エクセルやワードも同じように設定することが可能です。

2017年8月20日日曜日

Windows 10のスタートアッププログラムの設定

Windows 10にログインしたときに、特定のアプリケーションを自動的に起動する方法を紹介します。


  1. 「Windowsボタン + x」を押す。
  2. 「ファイル名を指定して実行」を選択。
  3. "shell:startup" と入力してEnterキーを押す。
  4. スタートアップフォルダが表示される。
  5. スタートアップフォルダに、自動的に起動したいアプリケーションの「ショートカット」をコピーする。


これで、ログイン時に、ショートカットファイルが実行されます。

ちなみに、スタートアップフォルダの場所は、"C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" です(「ユーザ名」のところは、お使いの環境に合わせて変更してください)。上記の手順1~3の代わりに、エクスプローラでスタートアップフォルダを開くことも可能です。

アプリケーションの自動実行を止めたい場合は、スタートアップフォルダにコピーしたショートカットファイルを削除すればよいです。

もしくは、タスクマネージャから無効化する方法もあります。

  1. タスクマネージャーを起動(Ctrl + Alt + Del)
  2. スタートアップタグを選択
  3. 自動実行したくないアプリケーションを右クリックして「無効化」を選択

一部のアプリケーションは、最初から自動実行が有効になっている場合があります。その場合は、タスクマネージャから無効化しましょう。

Windows 10で、日本語/英語切り替え時の表示を無効化する方法

Windows 10では、日本語/英語を切り替える際に、画面中央に「A」や「あ」と大きく表示される場合があります。
頻繁に日本語/英語を切り替える場合、この表示が邪魔に感じられる場合があります。そこで、この表示を無効にする方法を紹介します。


  1. 画面右下のIMEのアイコン(「A」や「あ」という表示)を、右クリック
  2. 「プロパティ」をクリック
  3. ダイアログが表示されるので、「画面中央に表示する」のチェックボックスを外して、「OK」
これで表示されなくなります。


JavaScriptで10進数と16進数を変換する方法

JavaScriptで10進数と16進数を変換する方法を紹介します。 まず、16進数を、10進数に変換する方法です。 以下のサンプルコードでは、16進数の"DB"や"0A"を、10進数に変換しています。 var a = pa...