タグ

2018年5月31日のブックマーク (2件)

  • JigsawでSPIを使用する - きつねとJava!

    Java9では,ようやくJigsawが導入され,モジュール化ができるようになります. 一方,SPI(SurviceProviderInterface)と呼ばれる仕組みがあり,広く利用されています. 今回は,JigsawでSPIを扱うための方法を紹介します. Jigsawの基礎知識はある程度あるものと想定します. もしも分からない部分があれば,櫻庭さんの記事*1 *2 *3 *4 *5 *6が分かりやすくまとまっているので,そちらをご参照ください. SPIとは SPIはSurviceProviderIntefaceの略で,あるプログラムやライブラリに対して,第三者が実装を提供するため仕組みです. SPIはJDBCやPluggable Annotation Processing APIなど,多くの場面で利用されています. ライブラリはSPIとなるインターフェースを提供し,java.util.S

    JigsawでSPIを使用する - きつねとJava!
  • SAT ソルバで数独を解く方法 - まめめも

    数独は非常に SAT に変換しやすい問題です。全部参考文献 *1 に載っている内容ですが、なるべくわかりやすく説明してみます。ちょっと長いです。 SAT とは まず SAT をごく簡単に説明します。すでに SAT を知っている人はここは読み飛ばしてください。 命題論理式の形の一つに乗法標準形のというのがあります。変数か変数の否定 (リテラルと言います) を or だけでつないだ式 (節と言います) を and だけでつないだ論理式のことを言います。つまり以下みたいな形です。 ( a1 or !a2 or ... or an) and ( b1 or !b2 or ... or !bn) and ... and (!z1 or z2 or ... or !zn)SAT は「a1 や zn などの変数にうまく true か false を代入して、上の式全体を true にできるか」という問題

    SAT ソルバで数独を解く方法 - まめめも