マガジンのカバー画像

技術メモ

74
運営しているクリエイター

2018年12月の記事一覧

抽象データ型

12月25日火曜日、晴れAbstract data type というご大層な名前がついているこの技法が、僕はとても好きだ。 C++ や Java などのオブジェクト指向言語では「インターフェース」が相当する。

つまり「型」があって、これに対するひとそろいの操作がある、というもの。

C 言語でもこれは表現できる。構造体の名前だけを見せて、ポインター越しに操作する関数をいくつか公開するというもの。

もっとみる

Boehm GC

12月17日月曜日、晴れこちらに書かれたサンプルソースをビルドしてみることにする。
#include "gc.h"#include <assert.h>#include <stdio.h>int main(){ int i; GC_INIT(); /* Optional on Linux/X86; see below. */ for (i = 0; i < 10000000; ++i) {

もっとみる

4万6656通り

12月10日月曜日、晴れこどもの三者面談で早退。

なにを言われることか恐れていたし、こどもの希望をどうやって後押しするか気を揉んでいたんだけれど(そもそも、その希望がどうにもよくわからないという問題もある)、あっけないほど事務的に終わった。

3時20分に呼ばれていたところ、前のお子さんが30分までの延長戦。
これは── と覚悟していたところ、10分で終わるんだから一体なんなんだ。

いろいろ勘

もっとみる

ビットパターンを記録するインターフェース

メモリー上にビットパターンを確保して、指定インデックスのビット操作をでき、またパターン同士の一括論理和や論理積を計算できるインターフェースを考えていた。
#pragma once#include <stdbool.h>struct bits;struct bits *bits_alloc(unsigned nr_bits);void bits_free(struct bits *bits);st

もっとみる

バックトラック(続き)

12月5日水曜日、晴れ帰宅後、昨晩書いていたバックトラックのコードを手直し。

左上から順に愚直に埋めていくという流れは変えていない。
Visual Studio Code のコード整形がアグレッシブに改行を入れてくるので(開き波括弧を改行されるのは僕の美意識に反していてかなり辛い)、これに逆らってどれくらい行数を減らせるかのチャレンジ。

甲斐あって200行切った。

また main から、利用

もっとみる

バックトラック

12月4日火曜日、曇り曇っていたとおもう。たぶん(ずっとオフィスに閉じこもってコードを書いていたので天気を知らない。夜に出たら小雨が降っていた)

* * *

なんだかんだで「探索」プログラムがどうにも苦手。

かつて Qiita で探索問題を解く、なんて記事をあげたのも、この苦手意識をどうにかしたいから。

さて。
一昨日だったかに書こうとおもって投げだしていた数独ソルバー、バックトラック版を

もっとみる