Blog
2007/05/14のBlog
[ 00:00 ]
少し前に、ヤマダ電機に公取委が入った。
どうやらメーカーからヘルパーを出すように強要?したらしい。
これって公正な取引が出来ないというような問題なのであるか?
製品を売る売り子がメーカーの社員であるというのは、買う側としてはどうなのだろうか?
メーカーの人間であれば、一台でも多く売れる事を願うだろうから、沢山売ろうと頑張る。
その利益はメーカーだけではなく、ヤマダ電機に計上されるという事だ。
しかし、ヤマダ電機はヘルパーに対して賃金を渡しているはずである。
メーカーは自社製品が売れる為には努力は惜しまない。
販売店に出向くこともやぶさかではない。
公取委ってよっぽど暇なのでしょうか…。
私はあの曲が頭から離れない程、ヤマダ電機には足を運んでおります。
ヤマダまだまだ安いんだ
ヤマダの安さは半端じゃないよ
でんでん電機はヤマダだだ
今だいまいま今行こう
ヤマダの安さは見逃せないよ
でんでん電機はヤマダだだ
たまだたまたま来てみたら
ヤマダの安さにたまげたよ
でんでん電機はヤマダだだ
ひまだひまひま暇ならば
一度はおいでよヤマダまで
でんでん電機はヤマダだだ
ごまだゴマゴマご満足
ヤマダの安さに大満足
でんでん電機はヤマダだだ
ヤマダ電機
どうやらメーカーからヘルパーを出すように強要?したらしい。
これって公正な取引が出来ないというような問題なのであるか?
製品を売る売り子がメーカーの社員であるというのは、買う側としてはどうなのだろうか?
メーカーの人間であれば、一台でも多く売れる事を願うだろうから、沢山売ろうと頑張る。
その利益はメーカーだけではなく、ヤマダ電機に計上されるという事だ。
しかし、ヤマダ電機はヘルパーに対して賃金を渡しているはずである。
メーカーは自社製品が売れる為には努力は惜しまない。
販売店に出向くこともやぶさかではない。
公取委ってよっぽど暇なのでしょうか…。
私はあの曲が頭から離れない程、ヤマダ電機には足を運んでおります。
ヤマダまだまだ安いんだ
ヤマダの安さは半端じゃないよ
でんでん電機はヤマダだだ
今だいまいま今行こう
ヤマダの安さは見逃せないよ
でんでん電機はヤマダだだ
たまだたまたま来てみたら
ヤマダの安さにたまげたよ
でんでん電機はヤマダだだ
ひまだひまひま暇ならば
一度はおいでよヤマダまで
でんでん電機はヤマダだだ
ごまだゴマゴマご満足
ヤマダの安さに大満足
でんでん電機はヤマダだだ
ヤマダ電機
2007/05/13のBlog
[ 00:00 ]
[ トリビア ]
2007/05/12のBlog
[ 00:00 ]
あるペンションで果実酒を客に振る舞うのは酒税法に反するとのことで、果実酒を処分するように通告された。
この法律によれば、果実酒はリキュールの類になり、簡単に言えば新たに酒を造ったという事らしい。
その酒を、自分及び同居する家族以外に飲ませる事が違反だというのだ。
梅酒など果実酒って、ホワイトリカーなど既に酒として税金を納めたものものに果実を漬け込んで作ったものなので、新たな酒を造ったという事ではないだろう。
例えば、Aさんは梅酒を造りました。
同居する親族のBさんに梅酒を飲ませることは法律に反しない。
別居する親族のCさんに梅酒を飲ませることは法律に反する。
例えば、Aさんはパーティを開いて、自分の作った梅酒を友達に配った。
これも法律に反するのである。
既に酒になっているものに果実を入れるだけで酒を造ったという論理であるのであれば、ビールにトマトジュースを入れてレッドアイを作って友達に渡したら法律に反するのか?
この法律によれば、果実酒はリキュールの類になり、簡単に言えば新たに酒を造ったという事らしい。
その酒を、自分及び同居する家族以外に飲ませる事が違反だというのだ。
梅酒など果実酒って、ホワイトリカーなど既に酒として税金を納めたものものに果実を漬け込んで作ったものなので、新たな酒を造ったという事ではないだろう。
例えば、Aさんは梅酒を造りました。
同居する親族のBさんに梅酒を飲ませることは法律に反しない。
別居する親族のCさんに梅酒を飲ませることは法律に反する。
例えば、Aさんはパーティを開いて、自分の作った梅酒を友達に配った。
これも法律に反するのである。
既に酒になっているものに果実を入れるだけで酒を造ったという論理であるのであれば、ビールにトマトジュースを入れてレッドアイを作って友達に渡したら法律に反するのか?
2007/05/11のBlog
[ 00:00 ]
素数列挙プログラムを例に、プログラムの高速化を考えてみる。
32ビットの整数型で表せる10^nの最大は10000000なので、これ未満の素数を全て列挙する様にコーディングする。
また今回は配列やファイルは使わないという制限をつけるものとする。
まずはたたき台となるコードを。
a) 2の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=3; i < j; i+=2) {
____if (!(n%i)) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
intmain()
{
__int i;
__printf("2\n");
__for (i=3; i < 10000000; i+=2) {
____check(i);
__}
__returnEXIT_SUCCESS;
}
b) 2と5の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=3; i < j; i+=10) {
____if (!(n%i) || !(n%(i+4)) || !(n%(i+6)) || !(n%(i+8))) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n5\n7\n");
__for (i=11 ;i < 10000000 ;i+=10) {
____check(i);
____check(i+2);
____check(i+6);
____check(i+8);
__}
__return EXIT_SUCCESS;
}
c) 2と3の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=5; i < j; i+=6){
____if (!(n%i) || !(n%(i+2))){
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n");
__for (i=5 ;i < 10000000 ;i+=6) {
____check(i);
____check(i+2);
__}
__return EXIT_SUCCESS;
}
d) 2と3と5の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=7; i < j; i+=30) {
____if (!(n%i) || !(n%(i+4)) || !(n%(i+6)) || !(n%(i+10)) ||
______!(n%(i+12)) || !(n%(i+16)) || !(n%(i+22)) || !(n%(i+24))) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n5\n7\n");
__for (i=11 ;i < 10000000 ;i+=30) {
____check(i);
____check(i+2);
____check(i+6);
____check(i+8);
____check(i+12);
____check(i+18);
____check(i+20);
____check(i+26);
__}
__return EXIT_SUCCESS;
}
a) 2の倍数を枝刈り .................... 1/2 = 0.5
b) 2と5の倍数を枝刈り .......... 4/10 = 0.4
c) 2と3の倍数を枝刈り ............. 2/6 = 0.{3}
d) 2と3と5の倍数を枝刈り ... 8/30 = 0.2{6}
右の式は、素数判定する個数の割合である。
値が大きい方が余計に判定するので遅く、小さい方が速い。
配列を使うことで素数を使って素数判定する事で高速化が望める。
しかし、配列には上限が存在するので大きい数値になると配列が足りなくなる恐れもある。
また、ファイルに溜め込む事も出来るが、ファイルI/Oは速度的に遅いだろう。
とは言っても標準出力への出力が遅いので、せっかくの枝刈りによる高速化が目に見えてこない。
残念な結果である。
32ビットの整数型で表せる10^nの最大は10000000なので、これ未満の素数を全て列挙する様にコーディングする。
また今回は配列やファイルは使わないという制限をつけるものとする。
まずはたたき台となるコードを。
a) 2の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=3; i < j; i+=2) {
____if (!(n%i)) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
intmain()
{
__int i;
__printf("2\n");
__for (i=3; i < 10000000; i+=2) {
____check(i);
__}
__returnEXIT_SUCCESS;
}
b) 2と5の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=3; i < j; i+=10) {
____if (!(n%i) || !(n%(i+4)) || !(n%(i+6)) || !(n%(i+8))) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n5\n7\n");
__for (i=11 ;i < 10000000 ;i+=10) {
____check(i);
____check(i+2);
____check(i+6);
____check(i+8);
__}
__return EXIT_SUCCESS;
}
c) 2と3の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=5; i < j; i+=6){
____if (!(n%i) || !(n%(i+2))){
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n");
__for (i=5 ;i < 10000000 ;i+=6) {
____check(i);
____check(i+2);
__}
__return EXIT_SUCCESS;
}
d) 2と3と5の倍数を枝刈り
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void check(int n)
{
__int i, j;
__j = sqrt((double)n)+1;
__for (i=7; i < j; i+=30) {
____if (!(n%i) || !(n%(i+4)) || !(n%(i+6)) || !(n%(i+10)) ||
______!(n%(i+12)) || !(n%(i+16)) || !(n%(i+22)) || !(n%(i+24))) {
______return;
____}
__}
__printf("%d\n", n);
__return;
}
int main()
{
__int i;
__printf("2\n3\n5\n7\n");
__for (i=11 ;i < 10000000 ;i+=30) {
____check(i);
____check(i+2);
____check(i+6);
____check(i+8);
____check(i+12);
____check(i+18);
____check(i+20);
____check(i+26);
__}
__return EXIT_SUCCESS;
}
a) 2の倍数を枝刈り .................... 1/2 = 0.5
b) 2と5の倍数を枝刈り .......... 4/10 = 0.4
c) 2と3の倍数を枝刈り ............. 2/6 = 0.{3}
d) 2と3と5の倍数を枝刈り ... 8/30 = 0.2{6}
右の式は、素数判定する個数の割合である。
値が大きい方が余計に判定するので遅く、小さい方が速い。
配列を使うことで素数を使って素数判定する事で高速化が望める。
しかし、配列には上限が存在するので大きい数値になると配列が足りなくなる恐れもある。
また、ファイルに溜め込む事も出来るが、ファイルI/Oは速度的に遅いだろう。
とは言っても標準出力への出力が遅いので、せっかくの枝刈りによる高速化が目に見えてこない。
残念な結果である。
2007/05/10のBlog
[ 00:00 ]
あなたは宇宙人の存在を信じますか?それとも信じませんか?
またコミュニケーションは取れると思いますか?
宇宙の広さを考えれば、地球と同様の環境がある確率はかなり高いだろう。
その条件を満たす天体は地球からどれくらい離れているのだろうか?
何万光年とか、天文学者では無いので答えることは出来ないが、人類が容易に行き来出来る距離ではないことは確かである。
地球外知的生命体とコミュニケーションをとるということは、
・ある程度近い所に存在しないとならない。
・同時期に存在しないとならない。
などの条件が出て来るのである。
なんとも浪漫のカケラも無い事実であろうか。
それでも人間は夢を抱くものである。
惑星探査機ボイジャーは、惑星の探査を終え、慣性によってどんどん離れていく。
ボイジャーには「地球の音 (The Sounds of Earth)」という金メッキされた銅板製のレコードが付いている。
これを回収してくれた知的生命体が現れた時、我々人類はどうなっているのだろうか。
こんな途方もない浪漫に浸るのもいいのだが、身近にコミュニケーションの取れる相手が居るじゃないか。
宗教・思想の違い?
言語の違い?
そんなのは小さい事なんではないだろうか。
まずはそこから始めよう。
またコミュニケーションは取れると思いますか?
宇宙の広さを考えれば、地球と同様の環境がある確率はかなり高いだろう。
その条件を満たす天体は地球からどれくらい離れているのだろうか?
何万光年とか、天文学者では無いので答えることは出来ないが、人類が容易に行き来出来る距離ではないことは確かである。
地球外知的生命体とコミュニケーションをとるということは、
・ある程度近い所に存在しないとならない。
・同時期に存在しないとならない。
などの条件が出て来るのである。
なんとも浪漫のカケラも無い事実であろうか。
それでも人間は夢を抱くものである。
惑星探査機ボイジャーは、惑星の探査を終え、慣性によってどんどん離れていく。
ボイジャーには「地球の音 (The Sounds of Earth)」という金メッキされた銅板製のレコードが付いている。
これを回収してくれた知的生命体が現れた時、我々人類はどうなっているのだろうか。
こんな途方もない浪漫に浸るのもいいのだが、身近にコミュニケーションの取れる相手が居るじゃないか。
宗教・思想の違い?
言語の違い?
そんなのは小さい事なんではないだろうか。
まずはそこから始めよう。
2007/05/09のBlog
[ 00:00 ]
[ 数楽 ]
太陽暦では、1年=365.24219日
旧暦である陰暦では、1箇月=29.53039日
である。
一年=十二箇月
なのだが、
365.24219÷29.53039=12.{…}
と循環小数になる。
取り急ぎ、分母分子を10万倍して整数表記する。
36524219÷2953039
じつはこれらの2数は互いに素である。
言い換えれば2数の最大公約数は1である。
ということである。
よく、互いに素というと素数と勘違いする人がいる。
今回の2数は残念ながら素数ではない。
36524219=239*152821
02953039=023*128393
どちらも随分大きな素数を含む合成数である。
分母の約数に2と5が含まれない事で純循環小数である事も解る。
話しを戻して、循環節の桁数ですが、128392桁になります。
もし10秒で1桁計算出来、不眠不休で計算したとすると…
1分で6桁
1時間で360桁
1日で8640桁
1週間で60480桁
1箇月=29.53039日で255142.5696桁
1年=365.24219日で3155692.5216桁
約半月かかる計算だ。
などと妄想してみる。
旧暦である陰暦では、1箇月=29.53039日
である。
一年=十二箇月
なのだが、
365.24219÷29.53039=12.{…}
と循環小数になる。
取り急ぎ、分母分子を10万倍して整数表記する。
36524219÷2953039
じつはこれらの2数は互いに素である。
言い換えれば2数の最大公約数は1である。
ということである。
よく、互いに素というと素数と勘違いする人がいる。
今回の2数は残念ながら素数ではない。
36524219=239*152821
02953039=023*128393
どちらも随分大きな素数を含む合成数である。
分母の約数に2と5が含まれない事で純循環小数である事も解る。
話しを戻して、循環節の桁数ですが、128392桁になります。
もし10秒で1桁計算出来、不眠不休で計算したとすると…
1分で6桁
1時間で360桁
1日で8640桁
1週間で60480桁
1箇月=29.53039日で255142.5696桁
1年=365.24219日で3155692.5216桁
約半月かかる計算だ。
などと妄想してみる。
2007/05/08のBlog
[ 00:00 ]
バイオエタノールのようなバイオ燃料について、ちょっと書いてみよう。
以前、蒸留酒について書いたとおり、穀物や植物を酵母によって発酵させアルコールを作る。
そのアルコールを蒸留する事でアルコール濃度を高める事が出来る。
このアルコールを飲むのではなくて燃料にしようという考えがバイオ燃料である。
テレビなどで騒がれているが、どうも納得が行かないことが幾つかある。
その一つは、人間や動物が食べられるものでバイオエタノールを作ろうという発想である。
世界には飢餓で苦しむ人々が沢山居る。にも関わらず食料に成り得るものを燃料にしてしまうのはいかがな物だろうか?
確かに食料と成り得るものはいかにもエネルギーが高そうではある。
私が言いたいのは、食料に成り得るもの以外でバイオエタノールを取る発想が出来ないのだろうか?
所謂雑草の類でバイオエタノールは出来ないのかという事。
どうやらこれは解決しているようだ。
あともう一つの方が心配なのである。
もし、雑草やなにやら関係なくバイオエタノールに出来るようになったとする。
今まで土に返っていたものをバイオエタノールとして使ってしまうと土がやせてしまわないのだろうか?という心配だ。
つまりバイオエタノールはクリーンエネルギーなのだろうかという不安である。
みんなバイオだからクリーンに決まっているだろうという考えは、ちょっと立ち止まって欲しい。
とにかく何でもかんでもバイオエタノールにするのには反対なのだ。
以前、蒸留酒について書いたとおり、穀物や植物を酵母によって発酵させアルコールを作る。
そのアルコールを蒸留する事でアルコール濃度を高める事が出来る。
このアルコールを飲むのではなくて燃料にしようという考えがバイオ燃料である。
テレビなどで騒がれているが、どうも納得が行かないことが幾つかある。
その一つは、人間や動物が食べられるものでバイオエタノールを作ろうという発想である。
世界には飢餓で苦しむ人々が沢山居る。にも関わらず食料に成り得るものを燃料にしてしまうのはいかがな物だろうか?
確かに食料と成り得るものはいかにもエネルギーが高そうではある。
私が言いたいのは、食料に成り得るもの以外でバイオエタノールを取る発想が出来ないのだろうか?
所謂雑草の類でバイオエタノールは出来ないのかという事。
どうやらこれは解決しているようだ。
あともう一つの方が心配なのである。
もし、雑草やなにやら関係なくバイオエタノールに出来るようになったとする。
今まで土に返っていたものをバイオエタノールとして使ってしまうと土がやせてしまわないのだろうか?という心配だ。
つまりバイオエタノールはクリーンエネルギーなのだろうかという不安である。
みんなバイオだからクリーンに決まっているだろうという考えは、ちょっと立ち止まって欲しい。
とにかく何でもかんでもバイオエタノールにするのには反対なのだ。
2007/05/07のBlog
[ 00:00 ]
[ 数楽 ]
チェックデジットとは、データの整合性をチェックする為の数値である。
例えば、ISBNとは書籍を管理するための番号である。
お手持ちの書籍の裏などを確認して見て下さい。
バーコードにも同様の番号が振られています。
ISBNの後に続く数は、2006年以前は10桁、2007年以降は13桁へと拡張されました。
ここではそれぞれを(10)や(13)と書くことで分けます。
%は剰余算の記号です。
A/B=CあまりDだとすると、A%B=Dという計算結果を返すのです。
ISBN(10)の各桁を
ISBNabcdefghij
とするならば、チェックデジットにあたるjは
j = 11-(10a+9b+8c+7d+6e+5f+4g+3h+2i)%11;
となる。
但しj=10の場合、Xとなる。
ISBN(13)の各桁を先のISBN10を踏まえて
ISBNxyz-abcdefghij
とするならば、チェックデジットにあたるjは
j = 10-{(x+z+b+d+f+h)+3*(y+a+c+e+g+i)}%10;
となる。
ISBN(10)と(13)はチェックデジットの算出方法が異なる為、データ変換は以下のようになる。
ISBN(10)から(13)への変換は、978-を付加し、jのチェックデジットを再計算する。
ISBN(13)から(10)への変換は、xyz-を削除し、jのチェックデジットを再計算する。
では、身近なものをチェックしてみよう。
手元にるるぶ練馬区があったので、そのISBNを例にします。
ISBN978-4-533-06672-6
奇数桁目 9 8 5 3 6 7
偶数桁目 7 4 3 0 9 2
奇数桁目の総和は 9+8+5+3+6+7 = 38
偶数桁目の総和は 7+4+3+0+6+2 = 22
偶数桁目を3倍は 22*3 = 66
総計は 38+66 = 104
チェックデジットは 10-4 = 6
例えば、ISBNとは書籍を管理するための番号である。
お手持ちの書籍の裏などを確認して見て下さい。
バーコードにも同様の番号が振られています。
ISBNの後に続く数は、2006年以前は10桁、2007年以降は13桁へと拡張されました。
ここではそれぞれを(10)や(13)と書くことで分けます。
%は剰余算の記号です。
A/B=CあまりDだとすると、A%B=Dという計算結果を返すのです。
ISBN(10)の各桁を
ISBNabcdefghij
とするならば、チェックデジットにあたるjは
j = 11-(10a+9b+8c+7d+6e+5f+4g+3h+2i)%11;
となる。
但しj=10の場合、Xとなる。
ISBN(13)の各桁を先のISBN10を踏まえて
ISBNxyz-abcdefghij
とするならば、チェックデジットにあたるjは
j = 10-{(x+z+b+d+f+h)+3*(y+a+c+e+g+i)}%10;
となる。
ISBN(10)と(13)はチェックデジットの算出方法が異なる為、データ変換は以下のようになる。
ISBN(10)から(13)への変換は、978-を付加し、jのチェックデジットを再計算する。
ISBN(13)から(10)への変換は、xyz-を削除し、jのチェックデジットを再計算する。
では、身近なものをチェックしてみよう。
手元にるるぶ練馬区があったので、そのISBNを例にします。
ISBN978-4-533-06672-6
奇数桁目 9 8 5 3 6 7
偶数桁目 7 4 3 0 9 2
奇数桁目の総和は 9+8+5+3+6+7 = 38
偶数桁目の総和は 7+4+3+0+6+2 = 22
偶数桁目を3倍は 22*3 = 66
総計は 38+66 = 104
チェックデジットは 10-4 = 6
2007/05/06のBlog
2007/05/05のBlog
[ 00:00 ]
私が幼少の頃、家には大きな鯉のぼりがあった。
家の門柱あたりを1~2m掘って支柱を立て、文字通り屋根より高い鯉のぼりである。
私が小学校高学年の頃には飾らなくなった。
理由は、
・掘るのが大変
・風が吹くと大変
といった事らしい。
また、鯉のぼりはどうしたのか聞いてみると、
新築の際に処分したらしい。
結構大きなものだったと記憶しているが…。
なんか、一日に750アクセスもあって、45000アクセスを突破しました。
家の門柱あたりを1~2m掘って支柱を立て、文字通り屋根より高い鯉のぼりである。
私が小学校高学年の頃には飾らなくなった。
理由は、
・掘るのが大変
・風が吹くと大変
といった事らしい。
また、鯉のぼりはどうしたのか聞いてみると、
新築の際に処分したらしい。
結構大きなものだったと記憶しているが…。
なんか、一日に750アクセスもあって、45000アクセスを突破しました。
