Skip to content

Instantly share code, notes, and snippets.

@giuniu
giuniu / Gistテスト
Created June 6, 2011 09:27
Gistのテストをしてみるよ。
コレが中身。
@giuniu
giuniu / Exercise.java
Created December 8, 2011 13:24
最大公約数が最も大きい組み合わせを見つける(Java版)
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
public class Exercise {
public static void main(String[] args) {
List<Integer> nums = new ArrayList<>();
for (String str : args)
@giuniu
giuniu / SortWords.scala
Created December 9, 2011 14:46
ダブり文字列並べ替えロジック Scala版
object SortWords {
def main(args: Array[String]): Unit = {
val list = args.toList sort (_ > _)
val foldList = (List((1, list.head)) /: list.tail) {
case (x, y) if (x.head._2 == y) => (x.head._1 + 1, x.head._2) :: x.tail
case (x, y) => (1, y) :: x
}
val result = foldList sort ((a, b) => a._1 > b._1 || a._1 == b._1 && a._2 < b._2) map (_._2)
println(result)
@giuniu
giuniu / SortWordsJ.java
Created December 10, 2011 09:54
ダブり文字列並べ替えロジック Java版
package exercise;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.SortedSet;
import java.util.TreeSet;
public class SortWordsJ {
@giuniu
giuniu / PythagoraSwitch.java
Created December 12, 2011 17:54
原始ピタゴラス数探索ロジック:しらみつぶし編
import java.util.ArrayList;
import java.util.List;
public class PythagoraSwitch {
public static void main(String[] args) {
final int MAX = Integer.parseInt(args[0]);
long start = System.nanoTime();
List<PythagorasNum> result = new ArrayList<>();
for (int c = 3; c <= MAX; c += 2) {
@giuniu
giuniu / PythagoraSwitch2.java
Created December 12, 2011 17:55
原始ピタゴラス数探索ロジック:一般項導出編
import java.util.ArrayList;
import java.util.List;
public class PythagoraSwitch2 {
/**
* @param args
*/
public static void main(String[] args) {
final int MAX = Integer.parseInt(args[0]);
@giuniu
giuniu / PythagoraSwitch.scala
Created December 13, 2011 22:50
原始ピタゴラス数探索ロジック:Scala版
import math._
object PythagoraSwitch {
def main(args: Array[String]): Unit = {
val max = Integer.parseInt(args(0))
val start = System.nanoTime()
/*
val result = for (
c <- 3 to max by 2;
@giuniu
giuniu / MapBetween.scala
Created January 27, 2012 03:11
mapBetween関数とりあえずやっつけ版
object MapBetween {
def main(args:Array[String]) = {
val range = 1 to 10
println(mapBetween(range, (a1:Int,a2:Int)=>a1+a2))
println(mapBetween(range, (a1:Int,a2:Int)=>a1*a2))
println(mapBetween(range, (a1:Int,a2:Int)=>a1-a2))
}
def mapBetween[A,B,T>:A](seq:Seq[A], f:(T,T)=>B): Seq[B] = {
((Seq[B](), seq.head) /: seq.tail) {(tup:(Seq[B], A), a:A) => (tup._1 :+ f(tup._2, a), a)}._1
@giuniu
giuniu / mapBetween2.scala
Created February 24, 2012 02:20
mapBetween関数sliding版
object mapBetween2 {
def main(args:Array[String]) = {
val range = 1 to 10
println(mapBetween(range)(_+_) mkString ",")
println(mapBetween(range)(_*_) mkString ",")
println(mapBetween(range)(_-_) mkString ",")
}
def mapBetween[A,B,T>:A](seq:Seq[A])(f:(T,T)=>B): Iterator[B] = {
seq.sliding(2).map(s=>f(s(0),s(1)))
@giuniu
giuniu / mapBetween.scala
Created February 27, 2012 11:54
mapBetween関数 trait版
object mapBetween {
def main(args:Array[String]) = {
val range = new Range(1, 10, 1) with ExtSeq[Int]
println(range.mapBetween(_+_) mkString ",")
println(range.mapBetween(_*_) mkString ",")
println(range.mapBetween(_-_) mkString ",")
val range2 = 1 to 10
println(range2.mapBetween(_+_) mkString ",")
println(range2.mapBetween(_*_) mkString ",")