Skip to content

Instantly share code, notes, and snippets.

View komiya-atsushi's full-sized avatar
🏠
Working from home

KOMIYA Atsushi komiya-atsushi

🏠
Working from home
View GitHub Profile
@komiya-atsushi
komiya-atsushi / PangramSolver.java
Created December 24, 2013 02:51
「213個の単語からパングラムを作ろう」 https://codeiq.jp/ace/stakemura/q594 の回答です。整数計画法とかは一切使わず枝刈りをひたすらに頑張るアプローチです。
package codeiq;
import java.util.*;
/**
* 深さ優先探索を基本戦略とする SQL92 予約語パングラムのソルバーです。
* <p>
* 出題は https://codeiq.jp/ace/stakemura/q594 こちら。
* </p>
* <pre>
@komiya-atsushi
komiya-atsushi / author.html
Created October 13, 2013 14:07
Octopress の個々のエントリに Google+ アカウントを著者情報としてリンクさせたい場合の _includes/post/author.html の記述。
{% if post.author %}
{% assign author = post.author %}
{% elsif page.author %}
{% assign author = page.author %}
{% else %}
{% assign author = site.author %}
{% endif %}
{% if post.googleplus_user %}
{% assign googleplus_user = post.googleplus_user %}
set-option -g prefix C-t
bind-key C-t send-prefix
set-window-option -g mode-mouse on
@komiya-atsushi
komiya-atsushi / ChiSquaredTestMatcher.java
Created September 27, 2013 22:44
#渋谷java 第3回で発表予定のコードです。 http://atnd.org/events/42501
import org.apache.commons.math3.distribution.ChiSquaredDistribution;
import org.apache.commons.math3.stat.inference.ChiSquareTest;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import java.util.Arrays;
import java.util.List;
/**
* カイ二乗検定を用いた検証を行う BaseMatcher 継承クラスです。
@komiya-atsushi
komiya-atsushi / MinHash.java
Created September 2, 2013 16:13
b-bit Minwise hashing の Java 実装です。#DSIRNLP http://partake.in/events/76854228-ba38-4f6e-87b9-f79e30add75c での発表用に実装してみました。
/**
* b-bit Minwise hashing の Java 実装です。
* <p>
* 参考文献 : <a href="http://research.microsoft.com/pubs/120078/wfc0398-lips.pdf">b-Bit Minwise Hashing</a>
* </p>
*
* @author KOMIYA Atsushi
*/
public class MinHash {
private final int numBits;
@komiya-atsushi
komiya-atsushi / CrossingSolver.java
Last active December 22, 2015 03:18
CodeIQ の問題 「交差点をすばやく数えよう!」 https://codeiq.jp/ace/yuki_hiroshi/q432 の回答。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
/**
* CodeIQ の問題 [交差点をすばやく数えよう!](https://codeiq.jp/ace/yuki_hiroshi/q432) の回答です。
*
* @author KOMIYA Atsushi
*/
@komiya-atsushi
komiya-atsushi / solver.rb
Last active December 21, 2015 12:38
CodeIQ の問題「予約語から最長のしりとりを作ろう!」 https://codeiq.jp/ace/stakemura/q408 に回答したときのコード。
#
# CodeIQ の問題「予約語から最長のしりとりを作ろう!」
# https://codeiq.jp/ace/stakemura/q408 に対する回答コードです。
#
# 出題者による解答例は https://github.com/stakemura/codeiq こちらにあります。
#
#
# 予約語の最初の 1 文字と最後の 1 文字で構成される 2 文字の
# 文字列 (headtail) の頻度を保持します
@komiya-atsushi
komiya-atsushi / XXHash.java
Created August 18, 2013 12:33
4 バイトリトルエンディアンなデータに対して xxHash ( https://code.google.com/p/xxhash/ ) のハッシュ値を計算するコード。ループその他諸々を取っ払って実装したので、(利用ケースは限定的になるけど)速いはず。
public class XXHash {
private static final int PRIME32_2 = (int) 2246822519L;
private static final int PRIME32_3 = (int) 3266489917L;
private static final int PRIME32_4 = 668265263;
private static final int PRIME32_5 = 374761393;
public static int xxHash4ByteLE(int val, int seed) {
long h32 = seed + PRIME32_5 + 4;
h32 += (val & 0xffffffffL) * PRIME32_3;
@komiya-atsushi
komiya-atsushi / TokyoWebminingTwitterList.java
Created July 27, 2013 03:34
TokyoWebmining の参加者 Twitter リストを作成する際に作ったプログラム。 実質 10 ステップで Twitter リストを作ることができます。そう、 #Twitter4J ならね。
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.UserList;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.List;
@komiya-atsushi
komiya-atsushi / Retryable.java
Last active December 19, 2015 12:39
https://github.com/robertsosinski/retryable これの Java 版的なもの。再試行処理を記述を楽にしてくれます。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* 処理の再試行をしやすくする機能を提供します。
*
* @author KOMIYA Atsushi
*/