問題 Starting in the top left corner of a 2×2 grid, there are 6 routes (without backtracking) to the bottom right corner. How many routes are there through a 20×20 grid? ソース class Integer def fact return 1 if self.zero? self * (self - 1…
問題 2520 is the smallest number that can be divided by each of the numbers from 1 to 10without any remainder. What is the smallest number that is evenly divisible by all of the numbers from 1 to 20? ソース 解答 require 'mathn' x = 20 prim…
問題 A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. Find the largest palindrome made from the product of two 3-digit numbers. ソース max = 0 999.downto(…
問題 The sum of the squares of the first ten natural numbers is, 1^(2) + 2^(2) + ... + 10^(2) = 385 The square of the sum of the first ten natural numbers is, (1 + 2 + ... + 10)^(2) = 55^(2) = 3025 Hence the difference between the sum of t…
問題 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? ソース require 'mathn' x = 600851475143 pv = x.prime_division p pv[pv.size - 1][0] 解答 6857 感想 ライブラリ使って余裕!
問題 Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the seque…
About - Project Eulerに参戦し始めた Rubyの勉強も兼ねてRubyで挑戦問題の和訳はこちらProject Euler - PukiWiki 問題 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 2…
Brainfuckという難解言語はご存じだろうか? '>', ' チューリング完全なチューリングマシンである。 Brainfuckの言語仕様 > ポインタをインクリメントする。ポインタをptrとすると、C言語の「ptr++;」に相当する。 C言語の「ptr--;」に相当。 + ポインタが指…
ちょと必要だったので、そのときのプログラムをメモ。 なぜ計算したかったのか? xが1〜32までの時の2^x以上で最小の素数が欲しかったんです ハッシュテーブルの大きさとかによく使うでしょ(そうそれ! ソース require 'mathn' (1..32).each{|x| puts lambd…
anarchy golfでやっているショートコーディングのお題のUTF-9でようやくC言語でトップが取れたのでその道のりを公開。 かなり69バイトをさまよっていますwww ポイント 変数iで連結したビット数をカウント 0の場合は次の1バイトを連結しても出力はできな…
以前に「C言語でJavaと同等程度の例外処理をやってみる - ほんまの走り書き技術メモ」でC言語でも例外処理っぽいこと出来るんやぞってのを書きました。今日その辺をいじっていて気付いたことがあったのでメモ。 jmp_bufとはなんぞや? 以前にも説明したが、j…
yacc&lexの練習のために作ったJSONパーサです。 一通り、JSONのBNF*1には従ったつもりです。 また、ソースには以前「C言語で文字列を簡単にかつ少し高速に操作する - ほんまの走り書き技術メモ」で紹介したMyStringを使用しています。 object {} { members }…
Perlで二乗の計算をするなら $i ** 2 よりも $i * $i の方が約2倍早い。 実験 0〜1000000までの二乗を計算する速度 ソース pow1.pl(*で計算) #!/usr/bin/perl use strict; for (my $i = 0; $i < 1000000; $i++) { my $p = $i * $i; } pow2.pl(**で計算) …
C言語では文字列を連結していくと、メモリの再確保とかしなくてはならないのでとても面倒です。さらに、strcatを利用すると、 以下のように文字列連結をした場合。 strcat(str1, str2); char *strcat(char *s1, const char *s2) { int len = strlen(s1); str…
Cygwinでcronを使いたかったのでその時のメモ。 cronをWindwosのサービスとして登録 cygrunsrv --install cron --path /usr/sbin/cron --args -Dこんな感じで登録されるはず。。 cronサービス起動 cygrunsrv --start cron 確認 Current StateがRunningとなっ…
1年以上前に作ったJavaでのBase64のエンコード、デコードのクラスです。 ソース MyBase64.java class MyBase64 { final static char[] base64 = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U…
とりあえずまともに書いたらこんな感じかな??プログラム引数に文字列を指定すると、Base64文字列を出力してくれる。 ソース #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char *w = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123</string.h></stdio.h>…
2007年アジア予選B問題を解いてみた 解法 エラトステネスの篩で素数配列を生成し、素数以外の数字なら素数間の距離を数えて出力するだけ。 ソース (目標10分以内) #include #include using namespace std; #define MAX_LEN 1299800//>1299709 int main(){ …
2007年アジア予選H問題を解いてみた。以下のBNFのプログラムのインタプリタを作成し、何行目にバグがあるかを見つける問題。 <program> ::= <declaration> | <program><declaration> | <program><assignment> <declaration> ::= <array name>[<number>]<new line> <assignment> ::= <array name>[<expression>]=<expression><new line> <expression> ::= <number> | <array name>[<…</array></number></expression></new></expression></expression></array></assignment></new></number></array></declaration></assignment></program></declaration></program></declaration></program>
2007年アジア予選A問題を解いてみた。 解法 最大の石の数10000よりも大きい配列を用意する。 必要な配列数だけ0で埋めて初期化。 消した石は1を代入しいく。(石数-1回繰り返す) 高速化 上記の解法でも普通に答えは得られるが、少し速度的に遅いので、 for(…
MySQL Clusterの負荷テストの際に使用したMySQLを簡単に書くためのクラス。勘違いもいっぱいありそうやけど、初めてのJDBC。 import java.sql.*; public class MySQL { private String url = "localhost"; private int prt = 3306; private String usr = "ro…
最近SOAP/WSDLについての仕事ばかりやってたのでメモ。 SOAP SOAP通信はHTTP、FTP、SMTPなどのプロトコルを使ってWebサービスを呼び出すもので、 通信にはXML文書が用いられる。 サーバとクライアント双方がSOAPを生成・解釈するためのエンジンを 持つことに…
凄い(?)!! こんな新機能が出たんや!!ってことで φ(*'д'* )メモメモ JDK6でのコンソール入力(文字列) Console console = System.console(); String line = console.readLine("文字列:"); JDK6でのコンソール入力(パスワード) 標準入力からの入力がコンソー…
2007年国内予選C問題のCut the Cake(ケーキカット)をやってみました。 解法 1つ1つのピースを切られた順番、大きさ(縦・横)で管理する。 切られたピースは削除し、新たに2つ新しいピースを追加する。ソートは、切られた順番にソートするless()オペレー…
2007年国内予選B問題のAnalyzing Login/Logout Records(ログイン/ログアウト記録の解析)をやってみました。 解法 3600のboolean配列を用意すればよい感じ? ソース (目標10分以内) #include <iostream> using namespace std; typedef struct LOG{ bool t[3601]; </iostream>…
include 2007年国内予選A問題のICPC Score Totalizer Software(ICPC 得点集計ソフトウェア)をやってみました。 解法1 Vectorに入れてソートしたものを、先頭データ+1から末尾データ−1までで平均値を出す。 解法2 入力で最小値と最大値、合計を求めて…
Tomcat5.5のSSL設定の方法はかなり簡単。(約2分)まず、SSL通信には欠かせない鍵を生成する。 鍵の作成 コマンドプロンプトを立ち上げて以下のコマンドを実行する。 (ディレクトリはどこでもOK!!) なお、自己認証など、特に業務以外に使う場合以外は名前…
2006年ICPC国内予選のC問題を暇なので解いてみた!後から思ったんやけど、幅優先の方がいいね・・・ 実際にコレ実行したら結構時間かかるし(汗 でも、絶対にどこか枝刈りで切るはずだ!! 本日のコーディングミス こんな酷いミス久しぶりww 何回か、コード…
何も見ないでマージソートを書いてみた。 初め int *tmp = new int[num]; で、マージするための領域用意したのに if(j >= num || (i < left && array[i] < array[j]))array[k++] = array[i++]; else array[k++] = array[j++]; と書いていて、tmpのコピーも開…
何も見ないでクイックソートを書いてみた(汗 while(i < num && array[i] < s)i++; while(j >= 0 && array[j] >= s)j--; の、各whileの1つ目の条件抜けてて、結構ハマった。。。。 ソース void quickSort(int *array, int num){ if(num < 2)return; int i = …