Giter Site home page Giter Site logo

qmc's Introduction

Quine-McCluskey algorithm in C language.

クワイン・マクラスキー法とペトリック法による論理圧縮

概要

「クワイン・マクラスキー法とペトリック法による論理圧縮アルゴリズムをCで実装」

http://qiita.com/jun6231jp/items/41b492ce31a109e4cec6

のソースを改造しました。

改造点は

  • オンメモリで動作するように。
  • ロジックを整理して高速化
  • 複数出力に対応

などです。

ビルド

make

使い方

qmc filename

入力ファイルは 0個以上のスペース又はタブのあと 1こ以上の '0' か '1' そのあと1こ以上のスペース又はタブのあと 1こ以上の '0' か '1 それ以外の文字が出てきたら無視。 入力の無い行は無視します。

sample/7seg.tblを参考にしてください。

入力は12ビットまで対応していますが、チェックはしていません。

オプション

-r    必要最小限のビットを求める処理をします。
-s    計算に先立って、入力をソートし重複行を削除します。

テーブル作成

必要最小限のビットを求める時、nビット立った数をnの小さい順、数の小さい順に並べたテーブルを使います。 12ビットまで対応なので、テーブルサイズは4Kになります。

先に計算しておいたほうがよさそうなので、テーブルを作るツールを用意しました。

mask12.c

その他

メッセージ出力やオリジナルの結果出力を省略したので、別プロジェクトとしています。 以前は元のソースを字面で追いかけて書き直していましたが、Githubに登録するにあたって、処理内容を追いかけて書き直しました。

また、windowsコンソールに対応するためにソースはBOM付きUTF-8にしてあります。

VS2015の開発者コマンドプロンプトでのコンパイル、実行を確認しています。

オリジナルを作成したjun6231jpさん。 そのほかコメント欄に改造案など出してくれた方々に感謝します。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.