Skip to content

Instantly share code, notes, and snippets.

View junpeitsuji's full-sized avatar

Junpei Tsuji junpeitsuji

View GitHub Profile
require 'rational'
class AugmentedMatrix
def initialize a, b, mod
@matrix = []
@i_size = a.size
@j_size = a[0].size
@junpeitsuji
junpeitsuji / gauss.rb
Last active February 2, 2016 07:29
ガウスの消去法を使って、解を求めるプログラム。不定解・解なしの場合も対応。
require 'rational'
class AugmentedMatrix
def initialize a, b
@matrix = []
@i_size = a.size
@j_size = a[0].size
@junpeitsuji
junpeitsuji / primitive_root.rb
Last active January 14, 2016 13:01
原始根についての Ruby プログラム
require 'prime'
require 'set'
# Euler のファイ関数を計算する
def euler_phi m
phi = m
if Prime.prime? m
phi = m-1
@junpeitsuji
junpeitsuji / turing2.tm
Last active October 18, 2015 10:19
「チューリングを読む」 p.134 参照
# turing2.tm
# 「チューリングを読む」 p.134 参照
#
# 入力: なし
# 出力: 001011011101111011111...
#
# チューリングの規約により,
# 非周期でかつ1つ飛ばしで打ち込む
#
# 形式:
@junpeitsuji
junpeitsuji / TuringMachine.rb
Created October 13, 2015 18:48
チューリング・マシン
require 'test/unit'
# 要
# $ gem install test-unit
require 'set'
LEFT = 'L'
RIGHT = 'R'
@junpeitsuji
junpeitsuji / primes.rb
Last active October 1, 2015 04:53
tt21akRW1 さんによる [7, 120] における素数の個数を返す計算式の検証のためのプログラム。参考URL: http://blogs.yahoo.co.jp/donald_stinger/14413096.html
# tt21akRW1 さんによる [7, 120] における素数の個数を返す計算式の検証のためのプログラム
# 参考URL: http://blogs.yahoo.co.jp/donald_stinger/14413096.html
require 'prime'
def mod(n, modulo)
n.modulo(modulo).to_f
end
# tt21akRW1 さんによる [7, 120] における素数の個数を返す関数
@junpeitsuji
junpeitsuji / spiral.rb
Last active September 11, 2015 17:41
螺旋状に格子点を順に列挙する Enumerator クラス
##########
### 螺旋状に格子点を順に列挙する Enumerator クラス
#
# -max_levels <= x <= +max_levels
# -max_levels <= y <= +max_levels
# の範囲の格子点 (x, y) を列挙する
#
# ただし,中心 (0, 0) から
# -> ( 1, 0) -> ( 1, 1) -> ( 0, 1) -> (-1, 1)
# -> (-1, 0) -> (-1, -1) -> ( 0, -1) -> ( 1, -1)
@junpeitsuji
junpeitsuji / expansion.rb
Last active September 11, 2015 17:42
1変数多項式の展開プログラム(いろんなサンプルコードつき)
# 1変数多項式の展開プログラム
class Polynomial
@@DEFAULT_MAX_ORDER = 200
@@max_order = @@DEFAULT_MAX_ORDER # 打ち切らずに計算させる最大の次数 ( (MAX_ORDER+1) 以上の次数は打ち切られる )
attr_reader :coefficients, :variable
# コンストラクタ
@junpeitsuji
junpeitsuji / eratosthenes.rb
Created September 3, 2015 14:21
エラトステネスの篩を実行するコード
maximum_number = 10000000
# 得られた素数を保管する配列
primes = []
# 素数の候補となる数の配列
numbers = (2..maximum_number).to_a
p = numbers.first
require 'rubygems'
require 'gruff'
require 'prime'
# 配列を宣言
primes = Array.new
prev_num = 0
# 素数を生成する上限を決める