2009-02-01から1ヶ月間の記事一覧

Project Euler Problem 3

問題 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 感想 ライブラリ使って余裕!

Project Euler Problem 2

問題 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…

Project Euler Problem 1

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という難解言語はご存じだろうか? '>', ' チューリング完全なチューリングマシンである。 Brainfuckの言語仕様 > ポインタをインクリメントする。ポインタをptrとすると、C言語の「ptr++;」に相当する。 C言語の「ptr--;」に相当。 + ポインタが指…

Rubyで2^x以上で最小の素数

ちょと必要だったので、そのときのプログラムをメモ。 なぜ計算したかったのか? xが1〜32までの時の2^x以上で最小の素数が欲しかったんです ハッシュテーブルの大きさとかによく使うでしょ(そうそれ! ソース require 'mathn' (1..32).each{|x| puts lambd…

UTF-9への道のりと教訓

anarchy golfでやっているショートコーディングのお題のUTF-9でようやくC言語でトップが取れたのでその道のりを公開。 かなり69バイトをさまよっていますwww ポイント 変数iで連結したビット数をカウント 0の場合は次の1バイトを連結しても出力はできな…

setjmpを呼びたすための関数を作ってはならない!

以前に「C言語でJavaと同等程度の例外処理をやってみる - ほんまの走り書き技術メモ」でC言語でも例外処理っぽいこと出来るんやぞってのを書きました。今日その辺をいじっていて気付いたことがあったのでメモ。 jmp_bufとはなんぞや? 以前にも説明したが、j…

yacc&lexでJSONパーサを作る

yacc&lexの練習のために作ったJSONパーサです。 一通り、JSONのBNF*1には従ったつもりです。 また、ソースには以前「C言語で文字列を簡単にかつ少し高速に操作する - ほんまの走り書き技術メモ」で紹介したMyStringを使用しています。 object {} { members }…

Perlで累乗計算の速度計測〜二乗を計算するなら?〜

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言語で文字列を簡単にかつ少し高速に操作する

c

C言語では文字列を連結していくと、メモリの再確保とかしなくてはならないのでとても面倒です。さらに、strcatを利用すると、 以下のように文字列連結をした場合。 strcat(str1, str2); char *strcat(char *s1, const char *s2) { int len = strlen(s1); str…

Cygwinでcronを使う

Cygwinでcronを使いたかったのでその時のメモ。 cronをWindwosのサービスとして登録 cygrunsrv --install cron --path /usr/sbin/cron --args -Dこんな感じで登録されるはず。。 cronサービス起動 cygrunsrv --start cron 確認 Current StateがRunningとなっ…

JavaでBase64のエンコード・デコード

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エンコードのソース(C言語)

とりあえずまともに書いたらこんな感じかな??プログラム引数に文字列を指定すると、Base64文字列を出力してくれる。 ソース #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char *w = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123</string.h></stdio.h>…

2007年アジア予選B問題(Prime Gap)(2007/11/15(木) 00:49:27)

2007年アジア予選B問題を解いてみた 解法 エラトステネスの篩で素数配列を生成し、素数以外の数字なら素数間の距離を数えて出力するだけ。 ソース (目標10分以内) #include #include using namespace std; #define MAX_LEN 1299800//>1299709 int main(){ …

2007年アジア予選H問題(Bug Hunt)(2007/11/14(水) 00:05:05)

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問題(And Then There Was One)(2007/11/13(火) 23:36:42)

2007年アジア予選A問題を解いてみた。 解法 最大の石の数10000よりも大きい配列を用意する。 必要な配列数だけ0で埋めて初期化。 消した石は1を代入しいく。(石数-1回繰り返す) 高速化 上記の解法でも普通に答えは得られるが、少し速度的に遅いので、 for(…

JDBC MySQL接続クラス(2007/11/13(火) 23:12:25)

MySQL Clusterの負荷テストの際に使用したMySQLを簡単に書くためのクラス。勘違いもいっぱいありそうやけど、初めてのJDBC。 import java.sql.*; public class MySQL { private String url = "localhost"; private int prt = 3306; private String usr = "ro…

SOAP/WSDLについての概要&クライアント作成手順(2007/08/14(火) 02:21:15)

最近SOAP/WSDLについての仕事ばかりやってたのでメモ。 SOAP SOAP通信はHTTP、FTP、SMTPなどのプロトコルを使ってWebサービスを呼び出すもので、 通信にはXML文書が用いられる。 サーバとクライアント双方がSOAPを生成・解釈するためのエンジンを 持つことに…

JDK6の新機能(2007/08/13(月) 01:42:59)

凄い(?)!! こんな新機能が出たんや!!ってことで φ(*'д'* )メモメモ JDK6でのコンソール入力(文字列) Console console = System.console(); String line = console.readLine("文字列:"); JDK6でのコンソール入力(パスワード) 標準入力からの入力がコンソー…

2007年国内予選C問題(Cut the Cake)(2007/07/30(月) 01:10:47)

2007年国内予選C問題のCut the Cake(ケーキカット)をやってみました。 解法 1つ1つのピースを切られた順番、大きさ(縦・横)で管理する。 切られたピースは削除し、新たに2つ新しいピースを追加する。ソートは、切られた順番にソートするless()オペレー…

2007年国内予選B(Analyzing Login/Logout Records)(2007/07/30(月) 00:44:10)

2007年国内予選B問題のAnalyzing Login/Logout Records(ログイン/ログアウト記録の解析)をやってみました。 解法 3600のboolean配列を用意すればよい感じ? ソース (目標10分以内) #include <iostream> using namespace std; typedef struct LOG{ bool t[3601]; </iostream>…

2007年国内予選A問題(ICPC Score Totalizer Software)(2007/07/30(月) 00:37:45)

include 2007年国内予選A問題のICPC Score Totalizer Software(ICPC 得点集計ソフトウェア)をやってみました。 解法1 Vectorに入れてソートしたものを、先頭データ+1から末尾データ−1までで平均値を出す。 解法2 入力で最小値と最大値、合計を求めて…

Tomcat5.5でSSL設定(2007/07/26(木) 22:45:31)

Tomcat5.5のSSL設定の方法はかなり簡単。(約2分)まず、SSL通信には欠かせない鍵を生成する。 鍵の作成 コマンドプロンプトを立ち上げて以下のコマンドを実行する。 (ディレクトリはどこでもOK!!) なお、自己認証など、特に業務以外に使う場合以外は名前…

2006年国内予選C問題(Hexerpents of Hexwamp)(2007/07/25(水) 01:04:31)

2006年ICPC国内予選のC問題を暇なので解いてみた!後から思ったんやけど、幅優先の方がいいね・・・ 実際にコレ実行したら結構時間かかるし(汗 でも、絶対にどこか枝刈りで切るはずだ!! 本日のコーディングミス こんな酷いミス久しぶりww 何回か、コード…

何も見ないで書いてみた(マージソート)(2007/07/23(月) 23:57:46)

何も見ないでマージソートを書いてみた。 初め int *tmp = new int[num]; で、マージするための領域用意したのに if(j >= num || (i < left && array[i] < array[j]))array[k++] = array[i++]; else array[k++] = array[j++]; と書いていて、tmpのコピーも開…

何も見ないで書いてみた(クイックソート)(2007/07/23(月) 23:55:28)

何も見ないでクイックソートを書いてみた(汗 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 = …

優先順位付き待ち行列(Priority queue)(2007/07/23(月) 22:58:42)

優先順位付き待ち行列(Priority queue)とは、普通の待ち行列(キュー)と少し違い、デキュー(取り出す)ときに優先順位の高い(低い)ものから取り出す待ち行列。順次にデータが出てくる場合においてデータをソートしたい場合において、並び替えを行う時…

JBossのインストール(2007/07/17(火) 00:48:05)

今までTomcatばかり使ってて、会社の同僚にJBossのこと聞いて入れてみたが、あまり良く分からない。。。Tomcatより早いらしいが、まだ検証できていない(汗 JBossの特徴 オープンソースである JBossのライセンスはLGPLです。LGPLの元では、JBossを実行環境や…

JSPでセッションを使ったログイン(2007/07/15(日) 17:13:36)

最近JSPをいじっているので、JSPメモ。JSPの基礎と、セッション管理のサンプル。 1つのJSPファイルでログイン、ログアウト、ホーム画面を表示できる。 各画面は「sc」というパラメータで制御される。 sc 画面 なし ホーム、ログイン login ログイン処理 logo…

プログラミング言語マリチリンガルメモ〜憧れのマルチリンガル〜の記事をこちらへ移動します

以前はFC2にて「プログラミング言語マリチリンガルメモ〜憧れのマルチリンガル〜としてブログをやっていましたが、 はてブを始める前くらいから更新が滞っていたので、こちらの方へ記事を統合することにしました。プログラミング言語マリチリンガルメモ〜憧…