1秒が60秒だとしたら1/2は0.60でないとおかしいのでは? -基数の問題について-

プログラミングにおける数学の基本を話していたら、割り算が少しおかしい事を思い出した。そもそも1分が60秒だとすると、1秒/2秒は0.60秒ではないのか?という疑問。
7
圡本 強 @117Florian

数においては加算、乗算は可換、減算、除算は不可換。これがベクタだの行列だのになると微妙に変になってくるし、プログラミング言語における代入とか、メソッド呼び出しだとますますわやに。まず「世の中には可換と不可換があってだなー」って所から話をするべきかと(乗り遅れた)。

2010-11-16 09:25:29
圡本 強 @117Florian

可換のからくりに気付いた小学2年の私は、九九を半分しか覚えないという荒技に出てあとで困ったようなおぼろげな記憶が。そういうところで手を抜くから余計な工数が……。

2010-11-16 09:26:56
出水 @izmktr

小学生のころ、九九は5の段までしかおぼえてなくて、それでも九九表を塗りつぶすと75%は覚えている事になるので、それ以降はなかなか覚えなかったなぁ… 今でも6以上どうしの掛け算は覚えている領域が違うみたいで微妙なタイムラグがある

2010-11-16 09:30:43
ハティオ @majic1248

上手い人のプログラミングを見ていると足し算、引き算、掛け算、割り算は本当に必要なの?と思うことがある。初歩的な算数は、++、--、加算、乗算、減算、除算の順が良いのではと。

2010-11-16 14:40:45
ハティオ @majic1248

割り算なんて10/3は、3.333333....四捨五入しましょうとか。本当は「四捨五入なんて不正」で「してはいけない」んだよね。コンピュータは小さな矛盾が蓄積して大きなバグに繋がっちゃうと言う話。

2010-11-16 09:37:33
ハティオ @majic1248

まぁ四捨五入というあいまい数学も、ゲームシステムや量子学(jpegフォーマット)等で、お世話になる事があるけど、間違いない初等教育としてどうなんだろうと思う。

2010-11-16 09:42:01
圡本 強 @117Florian

@majic1248 概念としての数量と、実際の少数という具体性を持った表記には微妙に開きがあるんですよね。ちなみにSmalltalkで10/3をやると0.33という数値ではなく「10/3」という抽象的概念が保管されます(信者乙)。

2010-11-16 09:42:48
ハティオ @majic1248

僕は0.~以降は概念が変わってしまうと考えていたことがあります。人/2は切断されて死体と呼びますみたいな。

2010-11-16 09:54:13
ハティオ @majic1248

そもそも0.5というのが気持ち悪いです。1分が60秒だとしたら、1/2は0.60でないとおかしい。

2010-11-16 14:10:16
ハティオ @majic1248

むしろ0.64にして、1秒を1.28秒にして、0.64、0.32、0.16、0.8、0.4。0.2、0.1、0.064……、無限に割り切れるようにとか、プログラマー的かな(苦笑)

2010-11-16 09:59:27
圡本 強 @117Florian

@majic1248 それは基数の問題ですね。アラビア数字は10を基数に計算する前提ですから。とはいえヤード・ポンド圏に(計算は10進数、単位は12進数、下手すると表記は20進数)ちょっとでも触れると、「もう全部10進数に統一しろ!」と怒りがこみ上げてきます。

2010-11-16 10:04:02
ハティオ @majic1248

@117Florian 12進数ですか。12や24という数字は、1でも2でも3でも4でも、割り切れる綺麗な数字ですよね。しかし基数が混合されて誤算を招く恐れがあるというのは厄介な話です。秒にも割り算使っちゃう人が大そう。

2010-11-16 10:15:19
圡本 強 @117Florian

@majic1248 混乱しそう……といいながら、ふだん2^n進法の世界に生きているので慣れなのかなぁ、って気は何となく。32768という数字を見てとっさに「切りがいいなぁ」と思うのはかなり末期症状だと思います。はい。

2010-11-16 10:32:20
圡本 強 @117Florian

@majic1248 そうそう、さっき書くの忘れてましたが、60進数の世界では1/2は0.30ですよ。

2010-11-16 10:43:03