• ベストアンサー

階乗の記号

階乗の記号は、なぜ「!」なんでしょうか?? ネットで検索したら、 1!、2!、3!、4!・・・ と計算していくと、数字が驚くほど増えていて、 先人たちはこれをみて大変びっくりし、 これに敬意を払って階乗の記号を「!」とした という由来を見つけたのですが、 本当でしょうか??? 他に由来を知っている方は教えてください!!

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

  • ベストアンサー
  • cubics
  • ベストアンサー率41% (1748/4171)
回答No.1

その由来の元は、ここでしょうかね。 http://mathforum.org/library/drmath/view/57907.html http://members.aol.com/jeff570/stat.html もともとは、違う記号だったようですが、印刷機にある記号を使うのが便利だというので、置き換えたようですね。 その後、これは、意味深だということで、定着したのでしょう。

参考URL:
http://mathforum.org/library/drmath/view/57907.html
nagi0806
質問者

お礼

回答ありがとうございます!! 最初から!というわけではなかったんですね☆

その他の回答 (1)

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

英語では階乗を「Factorial」というようです。 由来について ●びっくりするほど大きな値になるからか? ●階乗記号"!"の由来 http://page.freett.com/jevest/suugaku/bikuri.htm 矢張り、質問者さんの由来説がほとんどですね。 「!」の別の用途 C言語では否定演算子を表す。 「!」の別表現 Mathmaticaでは 階乗関数としてn!の代わりに Factorial[n] とも書いている。 2重階乗「n!!」...nから1までの1つ置きの自然数の積,ただし(-1)!!=0!!=1!!=1 というのもあります。 http://www.pluto.ai.kyutech.ac.jp/plt/matumoto/pi_small/node45.html

nagi0806
質問者

お礼

すばやい回答ありがとうございます!! !は他の表現方法もあるんですね~~。

関連するQ&A

  • VB2005での階乗を出力する方法

    VB2005で階乗を出力したいと思っていますが どのようにすれば良いのかわかりません。 階乗を出力と言うのは、計算結果ではなく数字の右上に小さい数字を付けたものを出力したいということです。 何か良い方法はありませんか? また、FlexGridに出力することは可能でしょうか? サンプルやヘルプを見ても分からなかったのでよろしければ教えて下さい。

  • 階乗の語呂合わせ

    階乗の語呂合わせをできるだけたくさん教えてください。自分では覚えやすい物が思いつきません。。。。ネットで検索しても出てきません。具体的には4!,5!,6!,7!です。作っていただいてもかまいません。 よろしくお願いいたします。

  • 階乗の計算

    問題の途中で以下のような式変形があったのですが、どうしても理解できません。   ( n / ( m + 1 ) ) * ( n - 1 / ( m + 2 ) ) * ・・・ * ( 1 / ( m + n ) ) = ( m ! * n ! ) / ( ( m + n ) ! ) なぜこのようになるのでしょうか?これは階乗計算にはよくある式変形なのでしょうか?また他にも階乗に関する重要な式変形があったら教えてください。よろしくお願いします。

  • 数字や記号の左上に付くものは?

    数字や記号の右上に、小さい数字や記号が付けば「べき乗」ですが、 左上に付いた場合は何になるんでしょうか? 習った覚えがないし、ネットで検索してもうまくひっかかりません。。。

  • パソコンで階乗を計算

    現在、fortran90を使って階乗を計算するプログラムを作っております。 プログラム内容は、(n !を求めえるプログラム) n=0 do i=1,100 n=n*i enddo このプログラムを実行すると、12!までは予想された値が得られるのですが、13!以降は電卓で計算した値と遙かに異なる値が得られました。 このプログラムは間違っているとは思えないですが、電卓の計算とパソコンの計算が異なる結果になった理由が分かりません。 どなたか、ヒントや参考情報だけでもいいので教えてください。 ちなみにパソコンによる計算結果は、 i n 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 362880 10 3628800 11 39916800 12 479001600 13 1932053504 14 1278945280 15 2004310016 16 2004189184 17 -288522240 18 -898433024 19 109641728 20 -2102132736 21 -1195114496 22 -522715136 23 862453760 24 -775946240 25 2076180480 26 -1853882368 27 1484783616 28 -1375731712 29 -1241513984 30 1409286144 31 738197504 32 -2147483648 33 -2147483648 34 0 35 0 36 0 36の階乗以降0です。 計算結果が正となるが、結果が違うモノ(例えば、13!や31!)は単精度で約10桁程度しか有効数字が得られないためであると思われるのですが、負になったり、0になる理由が分かりません。

  • 大きな階乗の計算:スターリングの公式→常用対数表

    「統計学入門」という本を読んでいて、10!や20!などの大きな数字の階乗の計算のために「スターリングの公式」というのが出てきました。その計算結果はExcelで正しく出たのですが、その計算結果を常用対数表を使って実際の数字に近似する手順を教えて下さい。 まずは添付画像をご覧下さい。 スターリングの公式で10!の第一近似が6.556145115465と出て、 「これを常用対数表から、10!は7桁で 10!≒3598695.61874... となる。」 とありますが、常用対数表のどこの項目を見てその3598695.61874...が出てきたんですか? 6.5と6の交差したところの値、0.8169は3598695.61874...とはまったく関係ないですよね? 逆に、2.2と9の交差したところの値が3.598になっています。これですか?もしこれだとしたら、2.29がどこから出てきたか分かりません。 ※7桁の部分は理解しています、6.556145115465を切り上げると7なので。 「"常用対数表" "階乗" "スターリングの公式"」などで検索してもどこにもその手順が見つかりません。どうか教えて下さい。

  • 方位記号の由来を教えてください。

    方位記号(数字の4のような記号)の形には、何か由来があるのでしょうか? 地図を見ていて疑問に思ったのですが、調べてみても手がかりが見つからなかったので、もしどなたかご存知でしたら教えてください。よろしくお願いします。

  • MSWordで数字の階乗を表示するためにはCtrlと+をおす

    MSWordで数字の階乗を表示するためにはCtrlと+をおすというのをWordのどこかで見たのですがその情報はどこにあるかご存じの方いませんか? またCtrlとほかのボタンを押したら階乗でなしに文字の右下に小さな文字を打てるのですが どこでその情報を見れたか教えて下さい。 むかしは覚えてたのに・・・

  • C言語の勉強をしていて、for文と戻り値を使った階乗について分からずに

    C言語の勉強をしていて、for文と戻り値を使った階乗について分からずに困っています。 以下の点に留意して、階乗を計算するプログラムを作成する。 階乗とは、数字を1つづつ減らしながら掛け合わせたものです。つまり 5の階乗:5×4×3×2×1=120 3の階乗:3×2×1=6 となります。 main内 1)整数型の変数kazu、kekkaを宣言する。 2)“階乗を計算します。”を表示する。 3)実行例と同様の表示になるように、“整数を入力してください”を表示し、入力された値を、変数kazuに読み込む。 4)作成する関数名は、kaijyoとし、kazuを引数とし、戻り値をkekka に代入する。 6)“○の階乗は ○です。”と表示する。 関数kaijyo内 1)引数を変数名xとする。 2)整数型の変数i、valを宣言する。 3)計算結果をvalに入れていくために、valを初期化する(下記注意参照)。 4)iをカウンターとするfor文と複合代入演算子を使って階乗を計算する。 5)valの内容が戻り値となるようにする。 注意:階乗を計算するために、for文の中で複合代入演算子を使って階乗を計算します。しかし、for文に入る前のvalの初期化には注意が必要です。0に何を何回かけても0だと言うことを思い出してください。 という問題です。 それで私は下の通りに作りました。 #include <stdio.h> int kaijyo(int x); void main(void) { int kazu,kekka,kaijyo,sum; printf("階乗を計算します。\n"); printf("整数を入力してください"); scanf("%d",&kazu); kekka=kaijyo(kazu); printf("%dの階乗は%dです。",kazu,kekka); } int kaijyo(int x) { int i,val; val=1; x=1; for(i=1;i<=val;i++){ x=x*i; } return val; } しかし、メイクして実行してもどの階乗でも256になってしまいます。 どこが間違っているのか分からずに困っています。 よかったら教えてください。 よろしくお願いします。 カテゴリを間違ってしまっていたらすみません。

  • エクセルで記号を計算出来ますか?

    エクセル2000を使用しています。 LOT6の過去データをインターネットサイトでコピーしてエクセルに貼り付けました。 そこで教えて下さい。 縦軸に過去の回数、横軸に1~43の当選数字の所に●印を打った時、この●印の回数を計算をしたいのですが色々と行ったのですが出来ません。 やはり記号は計算出来ないのでしょうか? 又ボーナス数字を別の記号にした時、その記号を抜いて計算出来るのでしょうか? 1~43の個別合計を出したい時 本数字のみの合計 ボーナス数字のみ合計 本数字+ボーナス数字合計 もし可能でしたら教えて頂けると幸いです。