Skip to content

Instantly share code, notes, and snippets.

View private-yusuke's full-sized avatar
💤

private-yusuke

💤
View GitHub Profile
@private-yusuke
private-yusuke / prime_list.d
Created May 5, 2018 10:42
Generates a list containing prime numbers from 2 to N
int[] prime_list;
void generate_prime_list(int N) {
prime_list = [2];
bool not_prime = false;
foreach(i; 3..N+1) {
foreach(j; prime_list) {
if(i % j == 0) {
not_prime = true;
break;
@private-yusuke
private-yusuke / fibonacci_general_term_ex.d
Created March 16, 2018 09:25
フィボナッチ数列の一般項を変形してプログラムに落とし込んだら余計遅くなった
import std.stdio;
import std.bigint;
import std.algorithm;
import std.range;
void main()
{
//iota(1, 11).map!(x => fibonacci(x) / (2 ^^ x)).each!writeln;
//iota(1, 9).map!(x => nCr(8, x)).writeln;
//iota(1, 10).map!(x => factorial(x)).writeln;
@private-yusuke
private-yusuke / fib_kinji.d
Created March 13, 2018 13:35
近似のちから
import std.stdio;
import std.conv;
import std.math;
void main(string[] args)
{
/*
n → ∞においてF_{n+1} = φF_nであることを利用して近似をとる
*/
auto phi = (1+sqrt(5.))/2;
@private-yusuke
private-yusuke / mine.d
Created March 13, 2018 09:06
マインスイーパーをD言語で実装しました。(最終更新日: 2018年1月13日)
import std.stdio, std.conv, std.random, std.range, std.string;
const USAGE_MESSAGE =
r" The player opens cells that don't contain mine.
If you open the mine cell, you lose.
[Cell]
- x: not opened yet
- F: flag
- number: showing how many mines in the nearby 8 cells.
@private-yusuke
private-yusuke / fizzbuzz.d
Last active March 10, 2018 01:59
一行でFizzBuzz
import std.stdio;
import std.range;
import std.conv;
import std.algorithm;
void main()
{
iota(1, 100).map!(x => x % 15 == 0 ? "FizzBuzz": x % 3 == 0 ? "Fizz": x % 5 == 0 ? "Buzz": x.to!string).each!writeln;
}
@private-yusuke
private-yusuke / fibonacci_general_term.d
Last active February 17, 2018 08:54
再帰処理、メモ化、一般項、行列のそれぞれ4種類の方法でフィボナッチ数列の第n項を求めるプログラムたち
import std.stdio;
import std.conv;
import std.range;
import std.bigint;
import std.datetime;
import std.math;
import std.algorithm;
import std.datetime.stopwatch: benchmark, StopWatch;
void main(string[] args)
@private-yusuke
private-yusuke / customemojicollector.d
Last active May 27, 2018 10:15
Slackのカスタム絵文字の全画像をダウンロードし、エイリアスを含めてすべての絵文字を出力します。
import std.stdio;
import std.json;
import std.net.curl;
import std.conv;
import std.regex;
import std.file;
import std.string;
import std.algorithm;
import std.parallelism: parallel;
import std.range;
@private-yusuke
private-yusuke / MonteCarlo.java
Created February 1, 2018 08:33
円周率をモンテカルロ法に基づいて算出
public class MonteCarlo {
static public final long POINT_AMOUNT = 10000;
public static void main(String[] args) {
long count = 0;
for (long i = 0; i <= POINT_AMOUNT; i++) {
Point p = new Point(Math.random(), Math.random());
if(p.isInCircle()) count++;
}
System.out.println((double)4*(double)count / (double)POINT_AMOUNT);
@private-yusuke
private-yusuke / regex_yahoo.d
Created November 19, 2017 13:29
正規表現で画像のURLを抽出
import std.stdio, std.net.curl, std.file, std.windows.charset, std.conv, std.regex;
void main()
{
auto content = get("yahoo.co.jp");
writeln(to!(string)(toMBSz(content)));
auto r = ctRegex!("\\<img.*?src\\s*?=\\s*?[\"|\'](.*?(png|jpeg|jpg|gif))[\"|\'].*?\\>");
foreach(c; matchAll(content, r))
{
writeln(to!(string)(toMBSz(c[1])));
@private-yusuke
private-yusuke / EuclidSolver.swift
Created August 15, 2017 00:35
ユークリッドの互除法で最大公約数と最小公倍数を一瞬で出せるクラス(整数は2つ以上ならいくらでも処理させられる)
import Foundation
class EuclidSolver {
static func solveGCD(_ a: Int, _ b: Int) -> Int {
if a == 0 || b == 0 {
fatalError("Fount zero value in the arguments")
}
var i = a, j = b
if i < j {