• ベストアンサー

計算の便利なプログラム言語

エクセルだと1000桁の計算を表示させる事ができません そこでプログラムでエクセルみたいに計算させれば 計算できるかもしれないと思ったのですが これはこれで無理なんですかね。。 たとえば 7000C0から7000C7000までを(C=コンビネーション) 自動で計算させるのに最適な方法はなんなのでしょうか。 エクセルだと7000C200辺りで#NUM!で計算できなく なってしまいます。 今やろうとしていることは、計算の桁も1000桁以上になり、 計算回数は1億くらいになってしまいます これを行うために、計算に強いプログラム言語はあるのでしょうか。

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

  • ベストアンサー
  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  数値計算に特化したプログラムとしては、マセマティカが有名だと思います。   http://ja.wikipedia.org/wiki/Mathematica   ただ、コンビネーションの計算が可能か、最大何桁まで可能かは知りません。 では。

その他の回答 (3)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.4

参考URL: 7000C3500 を計算。

参考URL:
http://www.wolframalpha.com/input/?i=binomial+coefficient+7000+3500
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

整数だけの計算なら Pythonの長整数型(2.Xまで)/整数型(3.0から) rubyの整数 はメモリが許す限り無限の桁をとります。 > たとえば 7000C0から7000C7000までを(C=コンビネーション) > 自動で計算させるのに最適な方法はなんなのでしょうか。 これだけの話しなら ・nCr=nC(n-r)を利用すれば求める数は半分 ・nCr * (n-r)/(r+1) = nC(r+1) 以上を利用すればnCnからnC0まで求めるのに必要な計算量はn/2回のかけ算とn/2回の割り算です。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

1000桁と言うと特殊な処理になりますので、こちらなんかどうでしょう。 「UBASIC」 UBASIC は 2700桁までの大きな整数の計算に適した BASIC 風の文法を持ったプログラミング言語です。 http://xaiax.at.infoseek.co.jp/Geo/UB_HELP/ub_index.html 速度最優先と考えるならC言語で多倍長ライブラリを使うのが良いかと思います。

関連するQ&A

  • 計算させるのに便利なプログラム言語

    エクセルだと1000桁の計算を表示させる事ができません そこでプログラムでエクセルみたいに計算させれば 計算できるかもしれないと思ったのですが これはこれで無理なんですかね。。 たとえば 7000C0から7000C7000までを(C=コンビネーション) 自動で計算させるのに最適な方法はなんなのでしょうか。 エクセルだと7000C200辺りで#NUM!で計算できなく なってしまいます。 今やろうとしていることは、計算の桁も1000桁以上になり、 計算回数は1億くらいになってしまいます これを行うために、計算に強いプログラム言語はあるのでしょうか。

  • C言語でπを2万桁まで計算するには

    C言語でπの値を2万桁まで(2万という数字に特に意味はないですが大きい桁)をマーチンの公式を用いて計算したいのです。 マーチンの公式によるπの求め方は 16×アークタンジェント(1/5) - 4×アークタンジェント(1/239) ということは分かったのですが double型の変数を使っても扱える桁数はたかがしれているので どのようにすればアークタンジェント(1/5)などの値を C言語のプログラムで大きい桁まで求めることができるのでしょうか。 また何かうまい具合に計算できるアルゴリズムなどがありましたら 教えてください。 詳しい方いましたら、よろしくお願いします。 もしよければ参考プログラムなども 貼り付けていただけたら幸いです。

  • パズルのプログラム

    例えば三ケタの123とし、大きい順に並べて321小さい順に並べて123とします.そして321-123=198となりまた大小で並べて981-198と計算していきます。そして何回かすると同じ数がずっと出てくるのですが、それを何回行うかを求めるプログラムを教えて欲しいです。なお三ケタの100~999までとし、使う言語をc言語としてください。

  • C言語プログラム

    学校のレポートでC言語のプログラムを作りました。ところが実行してみると計算値を表示させるところに -1.#IND00 と表示されます。本当は実数が表示されるはずなに・・・ 多分、私のプログラムが間違っているのだろうと思います。どこが間違っているのか目星をつけるためにこの出力結果の意味を教えてほしいのです。

  • C言語について質問です。

    C言語について質問です。 C言語初心者の者です。 1に1ずつ加えていき、9までいったら、 次は0.1ずつ加えていき、9.9までいったら、 その次は0.01ずつ加えていき、9.99までいったら そのまた次は0.001ずつ加えていき・・・ といった計算をするプログラムを考えています。 9まではこのように作りました。 #include <stdio.h> main() { float a; a=1; while(a<10) { printf("%f\n",a); a++; } } この先をどのように作ったらいいのかわかりません。 同じようにして0.1を加えていくといった方法も考えたのですが、 小数点以下15桁以上は計算したいので、 とても長くなってしまいます。 9までいったら自動的に加える数が1/10になるようにしたいのですが どうしたらいいのかわかりません。 説明が下手で本当にごめんなさい。 どなたか教えていただけないでしょうか?

  • 長い桁(小数点以下)が計算できる言語は?

    先日、円周率を求める独自のアルゴリズムで、(仮称)十進BASICを使用して1000桁まで出すことに成功しました。 しかし、(仮称)十進BASICは1000桁が限界で、これ以上詳しい値を出すことが出来ませんでした。 なので、さらに詳しい値を算出できるプログラミング言語には何があるのでしょうか? 検索してみると、独自の計算のプログラムなどを組まなければいけないとか・・・ 無限桁の桁数が扱えるプログラミング言語はないでしょうか? また、計算用のプログラムを組むとなれば、どの言語がおすすめですか? 是非教えてください。

  • 個人におすすめのプログラム言語

    自分でプログラムを組んでWindous上で使えるツールを作れるようになりたいと考えています。 一番やりたいことはトレード関係で、決まった時間や条件で証券会社に自動でログインして発注をかけたり、別のソフトウェア上での単純作業を自動化したりなどです。 プログラム経験といえば、ExcelでのVBAを1年ほどかじったぐらいで、一般的なexeファイルから単品で実行させるようなものは作ったことがありません。 お聞きしたいのは、どの言語を勉強した方が良いのか?ということと、それに関連するお勧めの書籍やサイト、勉強方法などです。 有名なC言語から始まって、C++、C#、Delphi、JAVA、PHP、Rubyなど他にもいろいろありますが、どれがお勧めでしょうか? Cならなんでもできると聞いたことがあるので、これだけ覚えてしまえば何とかなるかなとは思いましたが、Cだけだと厳しいという声もあったりして混乱しています。 プログラムなんて一つ極めるだけでもとんでもない時間がかかるそうですから、これを覚えて駄目ならこれ、というようなやり方は僕の頭脳レベルでは厳しいので、なんとか一つに絞りたいです。 詳しい方、よろしくお願いいたします。

  • プログラム言語に上下関係ってありますか?

    プログラム言語に上下関係ってありますか? 私は、普段プログラミングするとき、表計算ソフトとの連携が容易であり、 グラフ化が簡単にできると理由から、Excelに付属のるVBAを使います。 しかしながら、私の中ではVBAはExcelに毛が生えた程度で、 極めて初心者用のプログラムだと思っています。 やはりC言語やMathematicaの方がプロ仕様という感じがして、 レベルが上のように思います。 そのため、他人にそのプログラムは何で書きましたか? 聞かれたときに、「VBAです」と答えるのですが、「何だVBAか」と思われていないかと 少し引けを感じてしまいます。 でも、実際、どうなんでしょうか? 勝手に私の中でVBAよりC言語やMathematicaの方が偉いと思っているだけなのでしょうか? それとも実際に、ほとんど人が同じように思っているのでしょうか?

  • javaの繰り上がった回数を表示するプログラム

    javaの繰り上がった回数を表示するプログラム javaの繰り上がった回数を計算するプログラム 1ケタから10ケタの足し算をし繰り上がった回数を表示するプログラムを作成したいのです。 例 入力:159 444 出力:2回 入力:6789 4321 出力:4回 このようなメソッドはあるのですが、{???}のところに入る部分が分かりません。 static private int 繰り上がり回数(long m1,long m2){ int c=0,kuri=0; while( (m1!=0) && (m2!=0) ){ kuri= {???} /10; c+=(kuri!=0)?1:0; m1/=10;m2/=10; } return c; }

  • C言語のプログラムについて

    C言語初心者です if分を用いて aが2以上の場合には10 それ以外の場合にはbに100を代入して bの値を画面に表示するプログラムを作成したいです 書き方が分からないので 作成方法を教えていただきたいです よろしくお願いします

専門家に質問してみよう