modulo m での“かけ算九九”の表を印字する、次のようなプログラムを考える。 (コマンドライン引数が m になる。)
#include <stdio.h> #include <stdlib.h> main(int argc, char* argv[]) { int i, j, m; if (argc != 2) { return 1; } m = atoi(argv[1]); for (i = 1; i < m; i++) { for (j = 1; j < m; j++) { printf(" %2d", i*j%m); } putchar('\n'); } }
これを、たとえば m として 24 を選んで動かすと次のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 4 6 8 10 12 14 16 18 20 22 0 2 4 6 8 10 12 14 16 18 20 22 3 6 9 12 15 18 21 0 3 6 9 12 15 18 21 0 3 6 9 12 15 18 21 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 0 4 8 12 16 20 5 10 15 20 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 6 12 18 0 6 12 18 0 6 12 18 0 6 12 18 0 6 12 18 0 6 12 18 7 14 21 4 11 18 1 8 15 22 5 12 19 2 9 16 23 6 13 20 3 10 17 8 16 0 8 16 0 8 16 0 8 16 0 8 16 0 8 16 0 8 16 0 8 16 9 18 3 12 21 6 15 0 9 18 3 12 21 6 15 0 9 18 3 12 21 6 15 10 20 6 16 2 12 22 8 18 4 14 0 10 20 6 16 2 12 22 8 18 4 14 11 22 9 20 7 18 5 16 3 14 1 12 23 10 21 8 19 6 17 4 15 2 13 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 0 12 13 2 15 4 17 6 19 8 21 10 23 12 1 14 3 16 5 18 7 20 9 22 11 14 4 18 8 22 12 2 16 6 20 10 0 14 4 18 8 22 12 2 16 6 20 10 15 6 21 12 3 18 9 0 15 6 21 12 3 18 9 0 15 6 21 12 3 18 9 16 8 0 16 8 0 16 8 0 16 8 0 16 8 0 16 8 0 16 8 0 16 8 17 10 3 20 13 6 23 16 9 2 19 12 5 22 15 8 1 18 11 4 21 14 7 18 12 6 0 18 12 6 0 18 12 6 0 18 12 6 0 18 12 6 0 18 12 6 19 14 9 4 23 18 13 8 3 22 17 12 7 2 21 16 11 6 1 20 15 10 5 20 16 12 8 4 0 20 16 12 8 4 0 20 16 12 8 4 0 20 16 12 8 4 21 18 15 12 9 6 3 0 21 18 15 12 9 6 3 0 21 18 15 12 9 6 3 22 20 18 16 14 12 10 8 6 4 2 0 22 20 18 16 14 12 10 8 6 4 2 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1一ケタの数と二ケタの数とで濃淡の差があるので、 なにやら、同心円状のものが見えるであろう。 m を 48 にすると次のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 4 8 12 16 20 24 28 32 36 40 44 0 4 8 12 16 20 24 28 32 36 40 44 0 4 8 12 16 20 24 28 32 36 40 44 0 4 8 12 16 20 24 28 32 36 40 44 5 10 15 20 25 30 35 40 45 2 7 12 17 22 27 32 37 42 47 4 9 14 19 24 29 34 39 44 1 6 11 16 21 26 31 36 41 46 3 8 13 18 23 28 33 38 43 6 12 18 24 30 36 42 0 6 12 18 24 30 36 42 0 6 12 18 24 30 36 42 0 6 12 18 24 30 36 42 0 6 12 18 24 30 36 42 0 6 12 18 24 30 36 42 7 14 21 28 35 42 1 8 15 22 29 36 43 2 9 16 23 30 37 44 3 10 17 24 31 38 45 4 11 18 25 32 39 46 5 12 19 26 33 40 47 6 13 20 27 34 41 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 0 8 16 24 32 40 9 18 27 36 45 6 15 24 33 42 3 12 21 30 39 0 9 18 27 36 45 6 15 24 33 42 3 12 21 30 39 0 9 18 27 36 45 6 15 24 33 42 3 12 21 30 39 10 20 30 40 2 12 22 32 42 4 14 24 34 44 6 16 26 36 46 8 18 28 38 0 10 20 30 40 2 12 22 32 42 4 14 24 34 44 6 16 26 36 46 8 18 28 38 11 22 33 44 7 18 29 40 3 14 25 36 47 10 21 32 43 6 17 28 39 2 13 24 35 46 9 20 31 42 5 16 27 38 1 12 23 34 45 8 19 30 41 4 15 26 37 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 0 12 24 36 13 26 39 4 17 30 43 8 21 34 47 12 25 38 3 16 29 42 7 20 33 46 11 24 37 2 15 28 41 6 19 32 45 10 23 36 1 14 27 40 5 18 31 44 9 22 35 14 28 42 8 22 36 2 16 30 44 10 24 38 4 18 32 46 12 26 40 6 20 34 0 14 28 42 8 22 36 2 16 30 44 10 24 38 4 18 32 46 12 26 40 6 20 34 15 30 45 12 27 42 9 24 39 6 21 36 3 18 33 0 15 30 45 12 27 42 9 24 39 6 21 36 3 18 33 0 15 30 45 12 27 42 9 24 39 6 21 36 3 18 33 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 0 16 32 17 34 3 20 37 6 23 40 9 26 43 12 29 46 15 32 1 18 35 4 21 38 7 24 41 10 27 44 13 30 47 16 33 2 19 36 5 22 39 8 25 42 11 28 45 14 31 18 36 6 24 42 12 30 0 18 36 6 24 42 12 30 0 18 36 6 24 42 12 30 0 18 36 6 24 42 12 30 0 18 36 6 24 42 12 30 0 18 36 6 24 42 12 30 19 38 9 28 47 18 37 8 27 46 17 36 7 26 45 16 35 6 25 44 15 34 5 24 43 14 33 4 23 42 13 32 3 22 41 12 31 2 21 40 11 30 1 20 39 10 29 20 40 12 32 4 24 44 16 36 8 28 0 20 40 12 32 4 24 44 16 36 8 28 0 20 40 12 32 4 24 44 16 36 8 28 0 20 40 12 32 4 24 44 16 36 8 28 21 42 15 36 9 30 3 24 45 18 39 12 33 6 27 0 21 42 15 36 9 30 3 24 45 18 39 12 33 6 27 0 21 42 15 36 9 30 3 24 45 18 39 12 33 6 27 22 44 18 40 14 36 10 32 6 28 2 24 46 20 42 16 38 12 34 8 30 4 26 0 22 44 18 40 14 36 10 32 6 28 2 24 46 20 42 16 38 12 34 8 30 4 26 23 46 21 44 19 42 17 40 15 38 13 36 11 34 9 32 7 30 5 28 3 26 1 24 47 22 45 20 43 18 41 16 39 14 37 12 35 10 33 8 31 6 29 4 27 2 25 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 0 24 25 2 27 4 29 6 31 8 33 10 35 12 37 14 39 16 41 18 43 20 45 22 47 24 1 26 3 28 5 30 7 32 9 34 11 36 13 38 15 40 17 42 19 44 21 46 23 26 4 30 8 34 12 38 16 42 20 46 24 2 28 6 32 10 36 14 40 18 44 22 0 26 4 30 8 34 12 38 16 42 20 46 24 2 28 6 32 10 36 14 40 18 44 22 27 6 33 12 39 18 45 24 3 30 9 36 15 42 21 0 27 6 33 12 39 18 45 24 3 30 9 36 15 42 21 0 27 6 33 12 39 18 45 24 3 30 9 36 15 42 21 28 8 36 16 44 24 4 32 12 40 20 0 28 8 36 16 44 24 4 32 12 40 20 0 28 8 36 16 44 24 4 32 12 40 20 0 28 8 36 16 44 24 4 32 12 40 20 29 10 39 20 1 30 11 40 21 2 31 12 41 22 3 32 13 42 23 4 33 14 43 24 5 34 15 44 25 6 35 16 45 26 7 36 17 46 27 8 37 18 47 28 9 38 19 30 12 42 24 6 36 18 0 30 12 42 24 6 36 18 0 30 12 42 24 6 36 18 0 30 12 42 24 6 36 18 0 30 12 42 24 6 36 18 0 30 12 42 24 6 36 18 31 14 45 28 11 42 25 8 39 22 5 36 19 2 33 16 47 30 13 44 27 10 41 24 7 38 21 4 35 18 1 32 15 46 29 12 43 26 9 40 23 6 37 20 3 34 17 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 0 32 16 33 18 3 36 21 6 39 24 9 42 27 12 45 30 15 0 33 18 3 36 21 6 39 24 9 42 27 12 45 30 15 0 33 18 3 36 21 6 39 24 9 42 27 12 45 30 15 34 20 6 40 26 12 46 32 18 4 38 24 10 44 30 16 2 36 22 8 42 28 14 0 34 20 6 40 26 12 46 32 18 4 38 24 10 44 30 16 2 36 22 8 42 28 14 35 22 9 44 31 18 5 40 27 14 1 36 23 10 45 32 19 6 41 28 15 2 37 24 11 46 33 20 7 42 29 16 3 38 25 12 47 34 21 8 43 30 17 4 39 26 13 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 0 36 24 12 37 26 15 4 41 30 19 8 45 34 23 12 1 38 27 16 5 42 31 20 9 46 35 24 13 2 39 28 17 6 43 32 21 10 47 36 25 14 3 40 29 18 7 44 33 22 11 38 28 18 8 46 36 26 16 6 44 34 24 14 4 42 32 22 12 2 40 30 20 10 0 38 28 18 8 46 36 26 16 6 44 34 24 14 4 42 32 22 12 2 40 30 20 10 39 30 21 12 3 42 33 24 15 6 45 36 27 18 9 0 39 30 21 12 3 42 33 24 15 6 45 36 27 18 9 0 39 30 21 12 3 42 33 24 15 6 45 36 27 18 9 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 0 40 32 24 16 8 41 34 27 20 13 6 47 40 33 26 19 12 5 46 39 32 25 18 11 4 45 38 31 24 17 10 3 44 37 30 23 16 9 2 43 36 29 22 15 8 1 42 35 28 21 14 7 42 36 30 24 18 12 6 0 42 36 30 24 18 12 6 0 42 36 30 24 18 12 6 0 42 36 30 24 18 12 6 0 42 36 30 24 18 12 6 0 42 36 30 24 18 12 6 43 38 33 28 23 18 13 8 3 46 41 36 31 26 21 16 11 6 1 44 39 34 29 24 19 14 9 4 47 42 37 32 27 22 17 12 7 2 45 40 35 30 25 20 15 10 5 44 40 36 32 28 24 20 16 12 8 4 0 44 40 36 32 28 24 20 16 12 8 4 0 44 40 36 32 28 24 20 16 12 8 4 0 44 40 36 32 28 24 20 16 12 8 4 45 42 39 36 33 30 27 24 21 18 15 12 9 6 3 0 45 42 39 36 33 30 27 24 21 18 15 12 9 6 3 0 45 42 39 36 33 30 27 24 21 18 15 12 9 6 3 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1ボタンの花のように見えないだろうか?
m が素数かどうかはあまり関係ないようである。
2008-02-03 (0) 23:13:12 +0900
2008-01-31 (4) 02:13:51 +0900
最近使われすぎとも言われる「〜させていただく」だが、 「私が決めます」をへりくだって言ったつもりの 「私が決めさせていただきます」は横柄にとられることがあるかも。
2008-01-30 (3) 21:57:55 +0900
前半については 《NHKフランス語会話>七月 18 日(水曜日)放送分》> も参照のこと。
スケッチの内容について。 カトリーヌにデザートを手渡すとき、 家の主人の目の前にはすでにデザートが置かれていたようである。 客とはいえ(主人から見て)妹だからという理由で彼女を特別扱いしなかったのか、 それともフランスではあれが普通なのか。
後半。 話がアフガニスタンの学校になったところで、 字幕に「グローズさん」という誤字が。正しくは「ダローズ」さん。 最後のモットーを書いてもらうところでも同じ誤字がもう一度。 最近あまりみかけないタイプの誤字だ。
2008-01-30 (3) 21:57:18 +0900
f: G -> G' を群の間の準同型写像とすると、 f は G×G' の部分集合 Γ である。 この集合の元の間には (g1, g'1)(g2, g'2) = (g1g2, g'1g'2) として積が定義される。 f(g1g2) = f(g1)f(g2) = g'1g'2 だから積は Γ の元である。
付) 某掲示板で、群の意味を理解せずに 「関数が群をなす」と言っている人を見かけた。 そこからこじつけて考えてみたもの。
付) (g1, f(g1))(g2, f(g2)) = (g1g2, f(g1g2)) と定義すれば f が準同型写像である必要はない。 ただ、「任意の群から任意の群への写像は群をなす」 と書くよりもこのほうが「おや?」と思わせる効果が高いと思われたので、 タイトル行に書いたほうを選んだ。
2008-01-30 (3) 20:24:28 +0900
最後の「付」のようにすると、 f(f(g1g2))g3) = f(g1(f(g2g3))) とは限らないから、一般には結合法則が成り立たなくて、だめか。
2009-03-21 (6) 01:12:59 +0900