1を加える足し算と、インクリメントの違い

このQ&Aのポイント
  • 数値Nを1つインクリメントすることと、数値Nに1を足すことには数学的な意味の違いがありますか?
  • 前者は数値Nを設定したアップカウンタにクロック一つ分のカウント許可を与える操作、後者は加算器の入力にNと1を与える操作を想定しています。結果は同じで論理的には同じ操作ということになると思います。
  • 前者は「数える」ことに近い感じで数そのものの定義に密接なイメージ、後者は加えるものが1で無くても同様に計算できるのでもう少し高級な意味ではないかというイメージを持っています。
回答を見る
  • ベストアンサー

1を加える足し算と、インクリメントの違い

数値Nを1つインクリメントすることと、数値Nに1を足すことには数学的な意味の違いがありますか? 電子回路で言うなら前者は数値Nを設定したアップカウンタにクロック一つ分のカウント許可を与える操作、後者は加算器の入力にNと1を与える操作を想定しています。もちろん結果は同じで論理的には同じ操作ということになると思います。 何となくですが、前者は「数える」ことに近い感じで数そのものの定義に密接なイメージ、後者は加えるものが1で無くても同様に計算できるのでもう少し高級な意味ではないかというイメージを持っています。数えることはできるが足すことは難しい、という知的能力の段階があるような気がしています。興味の中心は数学的意味の違いの有無です。

  • el156
  • お礼率97% (349/358)

質問者が選んだベストアンサー

  • ベストアンサー
  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.9

←No.4 補足 何度も書いているように、ペアノの方法ばかりが全てではないが、 ペアノの公理により定義した自然数の上に、A No.4 の方法で 加法を定義することは、伝統的によく行われている。 その場合、x'、suc(x)、x+ は、違う記号を使ってはいるが、 どれも同じ「後者」を表している。 x+1 の + は、上記 x+ の単項演算とは異なる 二項演算「加法」を表しており、これだけ別のものである。 「後者」を使って「加法」を説明する方法の一例は、前述の通り。

el156
質問者

お礼

有難うございます。度々お手数をおかけして申し訳有りません。よくわかりました。

その他の回答 (9)

回答No.10

> 現実の電子回路では同期アップカウンタはラッチの手前に前回出力+1の加算器がついたものになると思うので、加算器の出力をラッチして同期化すれば回路は同じということになってしまうと思います。 いいえ、違います。 デジタル電子回路のカウンタは、同期カウンタであって、加算器を使用することはありません。 例えば、デジタル時計では、32.768kHzのクロックをカウントして1秒を生成しますが、そこに加算器などありません。 最近のデジタル時計は、CPUで構成されているので、細部はどうなっているかわかりませんが。(しかし、タイマカウンタがハードウェアとして使われているでしょう)

el156
質問者

お礼

ご回答有難うございました。

noname#171582
noname#171582
回答No.8

私には質問者の言ってることがわかりません。

el156
質問者

お礼

有難うございます。たぶん、この二つに違いは無い(最初から二つに区別する意味すらない)というご回答を頂いたのだと思います。

回答No.7

>例えば右手の指をN=3本折ってある状態から、薬指を折って4本にする場合を「インクリメント」、右手の指はN=3本折ったまま右手の甲に左手の人差し指を1本加えたような場合を、「1を加える足し算」というようなイメージで考えておりました。 この例示を読むと、質問者はこの問題に関して数学的な捉え方をしているのではなく、哲学的な捉え方をされているように思います。数学は唯物的な学問であり、例示されているようなケースは全く同等のものとして扱われると私は考えます。 なお、プログラムにおけるインクリメント、ディクリメントという概念は、ある変数を順に加算ないしは減算しながら繰り返し演算処理していくプロセスで使われるものであり、繰り返し処理とは切っても切れない関係にあると思います。

el156
質問者

お礼

有難うございました。哲学的には違うことになるかもしれないが少なくとも数学的には区別は無いということですね。

回答No.6

インクリメントの説明として、Wikipediaをみると、「一般には増加という意味だが、コンピュータ用語としては、変数の値を1増やす演算のこと」と書かれています。 私はコンピューターのプログラム経験があるのでなじみのある言葉なのですが、一般的に繰り返し処理の中で使われる言葉です。 「数値Nを1つインクリメントする」という表現には、加算の行為が1回だけではなくて反復継続されるというニュアンスが込められていますが、「数値Nに1を足す」という表現には加算の反復継続性は問題にされておらず、加算という行為だけが示されているように感じます。

el156
質問者

お礼

有難うございます。質問の際に「繰り返し処理」のイメージを消したかったのですが、うまい言葉が見つかりませんでした。紛らわしくて申し訳有りません。例えば右手の指をN=3本折ってある状態から、薬指を折って4本にする場合を「インクリメント」、右手の指はN=3本折ったまま右手の甲に左手の人差し指を1本加えたような場合を、「1を加える足し算」というようなイメージで考えておりました。この二つを考えた時に数学的に別々の定義を出発点にすることは可能なのでしょうか?

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.5

まず、インクリメントと数値に1を足すことのぞれぞれの定義を書いてください。 これは「あなたが対象とする分野」での意味です。 国語としては印象が違うので別だと思いますし、計算機学とかで行くと、表記は異なりますし、計算機の動作としても異なりそうなので別な気がします。 なんとなくインクリメントは整数を意識させますので。 数学的に、というのであれば数学的な言葉でそれぞれを定義して、差があるかを調べればいいと思います。 数学と言うのは定義がありきなので、そういう考え方でいいんじゃないですかね。 定義によっては同じになる場合も異なる場合もあるかもしれませんね。

el156
質問者

お礼

有難うございます。私は数学が得意分野ではありませんが、この質問で対象にしたい分野は「数学」です。紛らわしい質問の仕方をしてしまいましたが、電子回路やソフトウエアに関する質問ではありません。たぶん数学の中でも自然数の定義とか、足し算の定義とかを扱う分野か、又は集合を扱う分野などに当たるのではないかと思います。その上でインクリメントと数値に1を足すことの各々の定義は、何となく回答者の方にも通じているとは思うのですが、私自身明確にはわかりません。普段当たり前に同じだと思っていたことが、ふと、本当に無条件に同じ意味なろうかと疑問に思ってしまった次第です。「数学的に別々の定義をし得るのか?」という質問だと言うべきかもしれません。この質問自体が数学の範疇に入るのかどうか、それもよくわかりません。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.4

>自然数の定義や集合の理論などを使って証明できるのではないかと思いました。 自然数の定義の一部として後者写像 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 } なんてのが有名。

el156
質問者

お礼

ありがとうございます。教えて頂いた「後者写像」を検索していたら、Wikipediaの「ペアノの公理」という項目に行き当たりました。 http://ja.wikipedia.org/wiki/ペアノの公理 ご回答の中の「後者写像 x→x' の存在を要請」というのは、Wikipediaにあった「任意の自然数 a にはその後者 (successor)、suc(a) が存在する」と同じ意味でしょうか? Wikipediaの後半、「ペアノ自身による記述」には、a+という表現も出てきました。 私の質問は、x'、suc(x)、x+、x+1がそれぞれ数学的には同じ意味で表現の仕方がちがうだけなのか、それとも何れかから他の何かが説明されるべきものなのか、ということになりそうです。

回答No.3

電子回路という話があるので・・・。 電子回路レベルでも、加算器ではキャリーが発生すること(キャリービットを設けること)が多いが、カウンタではキャリーの面倒は見る(上位カウンタへのクロックとしての扱い)がそれをキャリーとして記憶しておくことは稀。 また、インクリメントはクロックが必要であり、これは明らかに順序回路(フリップフロップ)である。 しかし、加算は組み合わせ回路なのでクロックが不要であり、伝播遅延を無視(実設計ではなく机上設計)すれば、データを与えるや否や結果が出る。 さて、もう少し範囲を広げて考えてみる。 電子回路から範囲を広げるとCPUになる。 CPUによって、インクリメントと加算の振る舞いは異なる場合がある。 例えば、 インクリメント命令と加算命令で命令長が異なったり、実行クロック数が異なるかもしれない。 実行後のフラグの結果が変わるかもしれない。(加算の場合は、ハーフキャリーが変化することが多い) 数学的な見方は、あなたの見方で問題ないと思うが、電子回路の設計レベル、CPUの動作レベル、実装レベルになるといろいろ違いが出てくる場合がある。

el156
質問者

お礼

ありがとうございます。 電子回路を持ち出したのは「インクリメント」と「加算」のイメージの違いを表現したかったからなのですが、かえって質問の焦点がぼけてしまったかもしれません。現実の電子回路では同期アップカウンタはラッチの手前に前回出力+1の加算器がついたものになると思うので、加算器の出力をラッチして同期化すれば回路は同じということになってしまうと思います。 質問の意図はもう少し抽象的、数学的(又は哲学的?)なもので、出発点としての「インクリメントする」と「1を足す」に意味の違いがあるのかどうか、という疑問になります。

回答No.2

概念的な違いはあるけれど 数学的な違いはないと言う事です。

el156
質問者

お礼

有り難うございます。「インクリメントする」と「1を足す」は、言葉としての表現が違うだけで数学的には同じことを意味していると捉えてよろしいでしょうか?

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

貴方自身が質問文中に書いているように 両者に数学的な意味の違いはないのだけれど、 教育学的とか、認知心理学的とか、哲学的とか の違いはあるのかもしれない。 自然数論を形式化するときには、インクリメント にあたる「後者写像」をまず公理化して、 足し算を定義するとき、1を足すことの定義を インクリメントと同じにしておくのが普通だが、 必ずそうしなければならないという訳でもない。

el156
質問者

お礼

ありがとうございました。

el156
質問者

補足

有難うございます。申し訳有りません。質問があいまいだったかもしれません。インクリメントすることと1を足すこととは同じ結果になると思いますが、 質問の意図は、そうなることは数学的に証明できるものなのか、それとも証明できない、或は証明不要なものなのか、という意図でした。 元々同じ意味なら証明不要なのでしょうが、元々別の意味を持っているのだと考えることができるのなら、自然数の定義や集合の理論などを使って証明できるのではないかと思いました。

関連するQ&A

  • 論理回路:「カウンタ」は何を「カウント」するもの?

    論理回路の勉強をしています。 カウンタなのですが、カウンタは何をカウントするのでしょうか? 図を見ればクロックの動きによって出力Qの動きを表で書いたりは一応できるのですが、何をしているのかがよくわかりません。 その前のフリップフロップを勉強しているときとの違いがわかりません。 よろしくお願いします。

  • 正規表現preg_matchでincrement?

    foreach($data as $key=>$val) { if(preg_match("/^increment\((\-?\d+)\)$/i",$val,$m)) $q.= "`$key` = `$key` + $m[1], "; ・上記のようなif文があるのですが、どういう意味でしょうか? ・incrementはカウントアップ? ・$valに「-1」…「-9」文字列があれば、$m[1]として利用? ・iがあるので、その際、大小文字の違いを無視?

    • ベストアンサー
    • PHP
  • 「このQ&Aは役に立った」と「この回答は参考になった」の違い

    「このQ&Aは役に立った」と「この回答は参考になった」の違い 前者にカウントされると「協力になった」と参加意識を感じますが、後者にカウントされると代表して言って「やらされた」思いがします。 サイト運営陣の狙いは何ですか?

  • 「科学的証明」の一般的定義について

    一般に「科学的証明」と言う場合、数学や論理学などの形式科学における証明と、自然科学における証明とがあり、前者を一般に「論証」と言いおもに演繹法により、後者を一般に「実証」と言い実験や観測のデータにもとづく帰納法による・・・と、大雑把にはこういう理解でよいですか? それで一般に科学的証明と言う場合、どちらかというと後者の意味で、つまり実証という意味で言われることが多いように思われますがいかがですか? あと、形式的証明と非形式的証明の違いについて出来るだけわかりやすく教えて下さい。

  • 言葉の表現の違い、ニュアンスの違いを教えて下さい

    こちらのカテゴリーで宜しかったでしょうか。 タイトル通りですが、 下記の言葉のニュアンス、意味の違いを教えて下さい。 できれば、判りやすく例にとって頂けると有難いです。 『厳しい中にも優しさがある』 『優しい中にも厳しさがある』 前者は、何となく判るのですが、後者がはっきりと理解できません。 【前者に至ってもよくわかっていないので、説明をお願いします】 どういった場合に用いられるのか、どなたか判る方がいらっしゃれば 教えて下さい。

  • each と every の違い

    each と every の違いがよくわかりません。 前者は少ないグループの中からひとつ、それぞれ、後者は each よりは大きいグループの中からひとつ、それぞれ、の意味でしょうか?

  • DCOUNT関数とDCOUNTA関数の違い

    DCOUNT関数とDCOUNTA関数の内容の違いがよくわかりません。前者が「数値の個数」で後者が「データの個数」であることは、わかります。 しかし、実際にやってみるとどちらを使えばよいのかわからなくなってきます。使用する何を基準にすればよいのでしょうか?

  • 論理回路問題

    デジタル値で8ビットの擬似正弦波を発する論理回路の設計をしたい。 1、Dフリップフロップを用い、nを入力し4n(8≦n≦64)をカウントする時に値を0にリセットする8ビット同期式のカウンタの回路図を書きたい 8ビットのインクリメント回路を使ってよい。 2、1の正しく動作する為の最大動作周波数を求めたい 3、8ビットのtと6ビットのnを入力してsinπt/2n(8≦n≦64)の近似値を出力する論理回路の回路図を書きたい。sin関数の近似にはtayler展開を使用する 8ビット加算回路、減算回路及び8ビット入力16出力の乗算回路を使ってよい 4、3の回路の入力tが変化したときの伝播遅延時間は? 5、1と3より目的の回路を書く。 6、5での回路が正しく動作する最大動作周波数は? NOT,NAND、NOR 各ゲートの伝播遅延時間 2ns XOR,XNOR  各ゲートの伝播遅延時間 3ns Dフリップフロップからのクロック入力の有効エッジからの伝播遅延時間 3ns Dフリップフロップのセットアップ時間 5ns Dフリップフロップのホールド時間 1ns インクリメント加算、減算回路の伝播遅延時間 5ns 乗算回路の最大伝播遅延時間 30ns どなたか上記の問いについてアドバイス頂けないでしょうか? 宜しければお願いします

  • meet と meet up with の違い

    meet と meet up with の違いはいったいなんなんでしょうか? 前者は広い意味で会う、後者はセットアップして会うみたいなニュアンスなんでしょうか?

  • 「漂流」と「漂泊」の違いは?

    「漂流」と「漂泊」の違いをご説明ください。 「漂流」についてはニュアンスも含め理解できるのですが、 「漂泊」についてきちんとしたイメージが持てません。 (「漂着」との違いははっきり分かります。) 字をそのまま解釈すれば、「漂って流されている」のと 「漂って泊まっている」のとの違いとなり、前者は位置が 動いているのに対し、後者は同じところに浮いているだけと なるのでしょうか?そうだとすると、GPSでも使わないと 両者を区別できないみたいで不思議です!