- ベストアンサー
1を加える足し算と、インクリメントの違い
- 数値Nを1つインクリメントすることと、数値Nに1を足すことには数学的な意味の違いがありますか?
- 前者は数値Nを設定したアップカウンタにクロック一つ分のカウント許可を与える操作、後者は加算器の入力にNと1を与える操作を想定しています。結果は同じで論理的には同じ操作ということになると思います。
- 前者は「数える」ことに近い感じで数そのものの定義に密接なイメージ、後者は加えるものが1で無くても同様に計算できるのでもう少し高級な意味ではないかというイメージを持っています。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
←No.4 補足 何度も書いているように、ペアノの方法ばかりが全てではないが、 ペアノの公理により定義した自然数の上に、A No.4 の方法で 加法を定義することは、伝統的によく行われている。 その場合、x'、suc(x)、x+ は、違う記号を使ってはいるが、 どれも同じ「後者」を表している。 x+1 の + は、上記 x+ の単項演算とは異なる 二項演算「加法」を表しており、これだけ別のものである。 「後者」を使って「加法」を説明する方法の一例は、前述の通り。
その他の回答 (9)
- cisim_body
- ベストアンサー率22% (50/221)
> 現実の電子回路では同期アップカウンタはラッチの手前に前回出力+1の加算器がついたものになると思うので、加算器の出力をラッチして同期化すれば回路は同じということになってしまうと思います。 いいえ、違います。 デジタル電子回路のカウンタは、同期カウンタであって、加算器を使用することはありません。 例えば、デジタル時計では、32.768kHzのクロックをカウントして1秒を生成しますが、そこに加算器などありません。 最近のデジタル時計は、CPUで構成されているので、細部はどうなっているかわかりませんが。(しかし、タイマカウンタがハードウェアとして使われているでしょう)
お礼
ご回答有難うございました。
私には質問者の言ってることがわかりません。
お礼
有難うございます。たぶん、この二つに違いは無い(最初から二つに区別する意味すらない)というご回答を頂いたのだと思います。
- genshisyounen
- ベストアンサー率73% (38/52)
>例えば右手の指をN=3本折ってある状態から、薬指を折って4本にする場合を「インクリメント」、右手の指はN=3本折ったまま右手の甲に左手の人差し指を1本加えたような場合を、「1を加える足し算」というようなイメージで考えておりました。 この例示を読むと、質問者はこの問題に関して数学的な捉え方をしているのではなく、哲学的な捉え方をされているように思います。数学は唯物的な学問であり、例示されているようなケースは全く同等のものとして扱われると私は考えます。 なお、プログラムにおけるインクリメント、ディクリメントという概念は、ある変数を順に加算ないしは減算しながら繰り返し演算処理していくプロセスで使われるものであり、繰り返し処理とは切っても切れない関係にあると思います。
お礼
有難うございました。哲学的には違うことになるかもしれないが少なくとも数学的には区別は無いということですね。
- genshisyounen
- ベストアンサー率73% (38/52)
インクリメントの説明として、Wikipediaをみると、「一般には増加という意味だが、コンピュータ用語としては、変数の値を1増やす演算のこと」と書かれています。 私はコンピューターのプログラム経験があるのでなじみのある言葉なのですが、一般的に繰り返し処理の中で使われる言葉です。 「数値Nを1つインクリメントする」という表現には、加算の行為が1回だけではなくて反復継続されるというニュアンスが込められていますが、「数値Nに1を足す」という表現には加算の反復継続性は問題にされておらず、加算という行為だけが示されているように感じます。
お礼
有難うございます。質問の際に「繰り返し処理」のイメージを消したかったのですが、うまい言葉が見つかりませんでした。紛らわしくて申し訳有りません。例えば右手の指をN=3本折ってある状態から、薬指を折って4本にする場合を「インクリメント」、右手の指はN=3本折ったまま右手の甲に左手の人差し指を1本加えたような場合を、「1を加える足し算」というようなイメージで考えておりました。この二つを考えた時に数学的に別々の定義を出発点にすることは可能なのでしょうか?
- k_kota
- ベストアンサー率19% (434/2186)
まず、インクリメントと数値に1を足すことのぞれぞれの定義を書いてください。 これは「あなたが対象とする分野」での意味です。 国語としては印象が違うので別だと思いますし、計算機学とかで行くと、表記は異なりますし、計算機の動作としても異なりそうなので別な気がします。 なんとなくインクリメントは整数を意識させますので。 数学的に、というのであれば数学的な言葉でそれぞれを定義して、差があるかを調べればいいと思います。 数学と言うのは定義がありきなので、そういう考え方でいいんじゃないですかね。 定義によっては同じになる場合も異なる場合もあるかもしれませんね。
お礼
有難うございます。私は数学が得意分野ではありませんが、この質問で対象にしたい分野は「数学」です。紛らわしい質問の仕方をしてしまいましたが、電子回路やソフトウエアに関する質問ではありません。たぶん数学の中でも自然数の定義とか、足し算の定義とかを扱う分野か、又は集合を扱う分野などに当たるのではないかと思います。その上でインクリメントと数値に1を足すことの各々の定義は、何となく回答者の方にも通じているとは思うのですが、私自身明確にはわかりません。普段当たり前に同じだと思っていたことが、ふと、本当に無条件に同じ意味なろうかと疑問に思ってしまった次第です。「数学的に別々の定義をし得るのか?」という質問だと言うべきかもしれません。この質問自体が数学の範疇に入るのかどうか、それもよくわかりません。
- alice_44
- ベストアンサー率44% (2109/4759)
>自然数の定義や集合の理論などを使って証明できるのではないかと思いました。 自然数の定義の一部として後者写像 x→x' の存在を要請した上で、 加法の定義を x+0 = x x+y' = x'+y x+y = y+x とし、 1 = 0' と命名すれば、 x+1 = x+0' = x'+0 = x' となる …というのが、前述の「普通」のやり方。 証明できたというより、こう証明できるように定義しといた という感じのものだが。 集合論上に後者写像の実例を構成する方法はイロイロあるが、 0 = { } x' = x ∪ { x } なんてのが有名。
お礼
ありがとうございます。教えて頂いた「後者写像」を検索していたら、Wikipediaの「ペアノの公理」という項目に行き当たりました。 http://ja.wikipedia.org/wiki/ペアノの公理 ご回答の中の「後者写像 x→x' の存在を要請」というのは、Wikipediaにあった「任意の自然数 a にはその後者 (successor)、suc(a) が存在する」と同じ意味でしょうか? Wikipediaの後半、「ペアノ自身による記述」には、a+という表現も出てきました。 私の質問は、x'、suc(x)、x+、x+1がそれぞれ数学的には同じ意味で表現の仕方がちがうだけなのか、それとも何れかから他の何かが説明されるべきものなのか、ということになりそうです。
- cisim_body
- ベストアンサー率22% (50/221)
電子回路という話があるので・・・。 電子回路レベルでも、加算器ではキャリーが発生すること(キャリービットを設けること)が多いが、カウンタではキャリーの面倒は見る(上位カウンタへのクロックとしての扱い)がそれをキャリーとして記憶しておくことは稀。 また、インクリメントはクロックが必要であり、これは明らかに順序回路(フリップフロップ)である。 しかし、加算は組み合わせ回路なのでクロックが不要であり、伝播遅延を無視(実設計ではなく机上設計)すれば、データを与えるや否や結果が出る。 さて、もう少し範囲を広げて考えてみる。 電子回路から範囲を広げるとCPUになる。 CPUによって、インクリメントと加算の振る舞いは異なる場合がある。 例えば、 インクリメント命令と加算命令で命令長が異なったり、実行クロック数が異なるかもしれない。 実行後のフラグの結果が変わるかもしれない。(加算の場合は、ハーフキャリーが変化することが多い) 数学的な見方は、あなたの見方で問題ないと思うが、電子回路の設計レベル、CPUの動作レベル、実装レベルになるといろいろ違いが出てくる場合がある。
お礼
ありがとうございます。 電子回路を持ち出したのは「インクリメント」と「加算」のイメージの違いを表現したかったからなのですが、かえって質問の焦点がぼけてしまったかもしれません。現実の電子回路では同期アップカウンタはラッチの手前に前回出力+1の加算器がついたものになると思うので、加算器の出力をラッチして同期化すれば回路は同じということになってしまうと思います。 質問の意図はもう少し抽象的、数学的(又は哲学的?)なもので、出発点としての「インクリメントする」と「1を足す」に意味の違いがあるのかどうか、という疑問になります。
- kiri-kirie
- ベストアンサー率11% (5/45)
概念的な違いはあるけれど 数学的な違いはないと言う事です。
お礼
有り難うございます。「インクリメントする」と「1を足す」は、言葉としての表現が違うだけで数学的には同じことを意味していると捉えてよろしいでしょうか?
- alice_44
- ベストアンサー率44% (2109/4759)
貴方自身が質問文中に書いているように 両者に数学的な意味の違いはないのだけれど、 教育学的とか、認知心理学的とか、哲学的とか の違いはあるのかもしれない。 自然数論を形式化するときには、インクリメント にあたる「後者写像」をまず公理化して、 足し算を定義するとき、1を足すことの定義を インクリメントと同じにしておくのが普通だが、 必ずそうしなければならないという訳でもない。
お礼
ありがとうございました。
補足
有難うございます。申し訳有りません。質問があいまいだったかもしれません。インクリメントすることと1を足すこととは同じ結果になると思いますが、 質問の意図は、そうなることは数学的に証明できるものなのか、それとも証明できない、或は証明不要なものなのか、という意図でした。 元々同じ意味なら証明不要なのでしょうが、元々別の意味を持っているのだと考えることができるのなら、自然数の定義や集合の理論などを使って証明できるのではないかと思いました。
お礼
有難うございます。度々お手数をおかけして申し訳有りません。よくわかりました。