L.Entisの日記: 経験則と理解と乗算演算子 6
日記 by
L.Entis
今日は秋葉原の cure maid cafe に行って、その後新宿のヨドバシに行ってネットで注文した品を受け取り、ハンズで買い物をしてきて帰ってきました。
なんだか数ヶ月ぶりに休日らしい休日だったような気がします。
ところで電車の中でふと、以前プログラム上の文字列の加算は順序を入れ替えることが出来ないから+ではなく*で結合すべきだ等と言う意味不明な主張をネットで見た事を思い出しました。
実に馬鹿げた主張だと思いますが、おそらくその人物は、掛け算を理解することなく、法則をただ記憶し、長年それを以って理解したのだと思い込み、そして行列の演算に出会ったとき、それを理解することなく、驚きと同時に再び単に記憶し、それを以って理解したと誤解したまま、行列演算の衝撃だけが印象的に残っているのではないかと推測します。
行列の積の順序が交換出来ないことは、行列を理解していれば何の違和感も無く受け止められると私は思うのですけどね…(寧ろ順序が逆になったときにどうしてイコールになると思えるのか…)
ところで、私のC++自前ライブラリと自前言語の文字列演算では、乗算演算子も定義していまして、文字列×整数のみ累加として
"abc" * 3 → "abcabcabc"
などのようにしています。
また、負の数を掛けると、
"abc" * -1 → "cba"
のように順序が変わる定義にしてます。
個人的には結構便利だと思うのですが、あまり他所では見かけない気がします。
因みに、この定義だと、"abc" * 3 * -2 は "abc" * (3 * -2) と同じ結果になります。
あと、文字列÷整数や、文字列÷文字列も(例えば)
"abcdef" / 2 → { "ab", "cd", "ef" } (え?)
"abc,def" / "," → { "abc", "def" }
などのように定義する事は出来ると思いますが、今のところ実装はしていませんが。(やるとしたら自前の正規表現分解かな?)
それにしても、自分の経験を以って根拠とする人っていますよね。
基本的に同じじゃないかと思います。
なんだか数ヶ月ぶりに休日らしい休日だったような気がします。
ところで電車の中でふと、以前プログラム上の文字列の加算は順序を入れ替えることが出来ないから+ではなく*で結合すべきだ等と言う意味不明な主張をネットで見た事を思い出しました。
実に馬鹿げた主張だと思いますが、おそらくその人物は、掛け算を理解することなく、法則をただ記憶し、長年それを以って理解したのだと思い込み、そして行列の演算に出会ったとき、それを理解することなく、驚きと同時に再び単に記憶し、それを以って理解したと誤解したまま、行列演算の衝撃だけが印象的に残っているのではないかと推測します。
行列の積の順序が交換出来ないことは、行列を理解していれば何の違和感も無く受け止められると私は思うのですけどね…(寧ろ順序が逆になったときにどうしてイコールになると思えるのか…)
ところで、私のC++自前ライブラリと自前言語の文字列演算では、乗算演算子も定義していまして、文字列×整数のみ累加として
"abc" * 3 → "abcabcabc"
などのようにしています。
また、負の数を掛けると、
"abc" * -1 → "cba"
のように順序が変わる定義にしてます。
個人的には結構便利だと思うのですが、あまり他所では見かけない気がします。
因みに、この定義だと、"abc" * 3 * -2 は "abc" * (3 * -2) と同じ結果になります。
あと、文字列÷整数や、文字列÷文字列も(例えば)
"abcdef" / 2 → { "ab", "cd", "ef" } (え?)
"abc,def" / "," → { "abc", "def" }
などのように定義する事は出来ると思いますが、今のところ実装はしていませんが。(やるとしたら自前の正規表現分解かな?)
それにしても、自分の経験を以って根拠とする人っていますよね。
基本的に同じじゃないかと思います。
浮動小数点の加算では (スコア:0)
結合法則が成り立たないんですがいったいどういう演算子を使ったらいいんでしょうねえ。
(値が近い物同士を先に足したほうが誤差が小さくなる)
Re:浮動小数点の加算では (スコア:1)
Re:浮動小数点の加算では (スコア:1)
量子化した数は別の数学だろが。
Re: (スコア:0)
実数の演算と行列の演算が違う数学であることを理解できない人の話ですからー
Re:浮動小数点の加算では (スコア:1)
Re: (スコア:0)
答え:桁数を伸ばす。できれば無限にまで