11/11/27 19:05:58.93
>>505
URLリンク(ideone.com)
38行めから55行目の間に
ピポッド選択と行の交換をしているのはわかるのですが
この部分を文章で説明する場合どうすれば良いのでしょうか
あと53行目と54行目の カンマの意味が分からないのですが
カンマを使わないで交換をできないでしょうか
一行に=が3つもあるのがよくわからないので・・・
長文失礼しました
798:デフォルトの名無しさん
11/11/27 19:09:39.85
>>796
全然分からん
799:デフォルトの名無しさん
11/11/27 19:11:39.43
>>796
Accelerated C++にやり方かいてあるけど、どこがわからないの?
800:796
11/11/27 19:34:48.07
1)1行ずつ読み込み←できる
1語ずつローテートした文字列を作る←できる
2)ソートする←できる
3)元に戻して適当な空白を入れる←できない
すみません、出来上がった分のソースを綺麗にしてからupします。
801:デフォルトの名無しさん
11/11/27 19:50:02.37
>>797
「部分ピボット選択」だから、行を交換して係数が一番大きな行で割るテクニック
係数がゼロの行があっても解ける場合が多い
また、どうして行を交換しても良いのかと聞かれたら、「連立一次方程式は行を
交換しても解は変わりません」と答えて置けば良い
53~54行目は
t = a[i][j]; a[i][j] = a[k][j]; a[k][j] = t; // 行の交換
t = inv_a[i][j]; inv_a[i][j] = inv_a[k][j]; inv_a[k][j] = t; // 単位行列も行の交換を行う
と書き換えてください
これは、カンマ演算子を使うと要素の交換が一行で書けるために多用されるのですが
今回は二行になっているためカンマ演算子の意味が無くなっています
802:デフォルトの名無しさん
11/11/27 19:51:39.81
>>797
×係数が一番大きな行で
○係数の絶対値が一番大きな行で
本当はfabs()を使えば綺麗に書けるのだが、今回は使えないので
40~51行のように負だったら符号を反転している
803:デフォルトの名無しさん
11/11/27 20:15:47.14
>>724
設問1-3なのですが、「int x, y;」と宣言されていないので、「int x, y;」と宣言されているプログラムをお願いします。
804:デフォルトの名無しさん
11/11/27 20:42:07.03
>>802
38行から51行では、自分が入力した値で対角成分に0があった場合に、なにかしら
しているという処理なのでしょうか?
いまいちなにをしているのかがわからないので、プログラムに対する考えが
かけなくて困っています、、、すいません
fabsとかの代わりと書いていますが、調べてみたら絶対値を取るとかって書いて
いました、以上のことからあまり0が~とかっっていうのは考えてないのでしょうか?
長くなってすいません、、、
805: ◆EiEUm/qHNk
11/11/27 20:43:39.51
>>804
トリップつけ忘れました
806:デフォルトの名無しさん
11/11/27 20:50:15.54
>>796
URLリンク(ideone.com)
スニペット?を4語選択するルールがよく分からなかったので適当にやりました。
807:デフォルトの名無しさん
11/11/27 20:54:24.06
>>804
掃き出し法を手でやる場合を考えてみるとわかり易い
もし係数がゼロの場合に出くわしたらどうなる?割れないでしょ?
だから絶対値の一番大きな行で割るように入れ替えている
これは計算誤差を小さくするという利点もある
もし係数がゼロの行が3行あると行列式がゼロとなってしまい
正則行列ではなくってしまうから、逆行列が定義出来なくなため
23~24行で予め調べている
まず手で何かの行列の逆行列を求めて見るとすぐに理解出来る
808: ◆QZaw55cn4c
11/11/27 20:56:26.24
>>796
URLリンク(ideone.com)
Accelerated C++ の章末問題 5-1 (p98) ですね。当時作ったものをあげておきます。
809:796
11/11/27 21:36:16.57
>>806 >>808
ありがとうございます。読ませていただいて勉強します。
自分のコードを綺麗にしようとして、動かなくなっていますので、自分の分はupできなさそうです(^^;;
名無しにもどります。
810: ◆QZaw55cn4c
11/11/27 21:47:32.64
>>809
自分がいうのもなんですが、コードをアップすると得られる利益は大きいですよ。糞よばわりされて終わることもあるけれども、まあそれはそれ。
811:デフォルトの名無しさん
11/11/27 22:49:48.63
レビューして貰って突っ込まれて勉強する方が良いよ。
812:デフォルトの名無しさん
11/11/27 23:12:16.05
人のコード見れるってだけでも勉強になる
813:デフォルトの名無しさん
11/11/27 23:15:16.94
突っ込まれても馬耳東風のアホもいるけどな
814:デフォルトの名無しさん
11/11/27 23:21:51.34
>>813
それは突っ込み側の問題では?
815:デフォルトの名無しさん
11/11/27 23:24:05.85
いや明らかにアホがいる
816:デフォルトの名無しさん
11/11/27 23:28:30.54
>>815
では突っ込み対象のソースコードと突っ込みの内容を具体的に
817:デフォルトの名無しさん
11/11/27 23:33:17.72
free()の事かーーー
818:デフォルトの名無しさん
11/11/27 23:35:42.20
自分の書いたコードが糞である事を棚にあげて突っ込む方を批判するなど
見当違いもいい所だな
819:デフォルトの名無しさん
11/11/27 23:36:27.93
>>816
その手には二度と乗りませんよ
820:デフォルトの名無しさん
11/11/27 23:55:39.08
>>796
URLリンク(ideone.com)
冗長だけど。
821:デフォルトの名無しさん
11/11/28 00:03:08.66
>>818-819
具体的な話ができないのでは寝言をほざいているのと見分けがつかない
>>819
一度として突っ込めないのに「二度」?
822:デフォルトの名無しさん
11/11/28 00:50:57.86
[1] 授業単元:c言語プログラミング
[2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、
左の数字が同じかつ真ん中の数字も同じとき、右の数字が大きいものを削除し、link2.txtに書きこむプログラムを作りなさい。
(この場合、左が1と1かつ真ん中が2と2で右が3と4なので4の方が大きいので(1,2,4)を削除する)
[3] 環境
[3.1] OS: (Windows/Linux/等々)Linux debian
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)11月30日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)特にありません。お願いします。
823:デフォルトの名無しさん
11/11/28 00:50:58.97
具体的に話しても全然理解しなかった例ならQの過去スレにあるぞw
824:デフォルトの名無しさん
11/11/28 01:04:33.10
[1] 授業単元: C言語とアルゴリズム
[2] 問題文(含コード&リンク):
初速v、仰角θを入力。着弾距離、着弾するまでの時間を求める。
<問題の意味>
vx=vcos(θ),vy=-gt+vsin(θ)
x=vtcos(θ),y=-gt^2/2+vtsin(θ)+y0
y=0,y0=0のとすると、
着弾するまでの時間は gt^2/2=vtsin(θ) > t=2*vsin(θ)/g
着弾距離はtがわかれば x=vtcos(θ)で求まる
[3] 環境
[3.1] OS: (Windows/Linux/等々) :WinXP
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) :VC2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか) :C
[4] 期限: 28日 AM6時まで
[5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです
よろしくお願いします。math関数の存在は習いました。
825:デフォルトの名無しさん
11/11/28 01:32:31.39
>>822
>[2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、
入力ファイルは改行区切り?
あと、(1,2,3) (3,3,3)(1,2,4)...のように、間に別の数値がある場合でも、(1,2,4)は削除?
826:デフォルトの名無しさん
11/11/28 01:38:13.86
>>825
説明不足ですいません。
改行区切りです。
間に別の数値があっても(1,2,4)は削除です。
おねがいします。
827:デフォルトの名無しさん
11/11/28 01:43:30.81
>>826
> 右の数字が大きいものを削除し、
list.txtから削除するってこと?
> link2.txtに書きこむ
削除した数列をlink2.txtに書き込むってこと?
828:デフォルトの名無しさん
11/11/28 01:44:13.28
>>824
URLリンク(ideone.com)
829:デフォルトの名無しさん
11/11/28 01:45:33.42
>>827
またまた説明不足ですみません。
list.txtには手を加えずに、list.txtから削除した数列を除いたものをlist2.txtに書きこむようです。
830:デフォルトの名無しさん
11/11/28 01:54:47.87
>>826
>間に別の数値があっても(1,2,4)は削除です。
in (1,2,4)(3,3,3)(1,2,3)
out (3,3,3)(1,2,3)
でok?
831:デフォルトの名無しさん
11/11/28 02:03:02.68
>>830
はい!それでokです。
832:デフォルトの名無しさん
11/11/28 02:29:35.44
>>822
入力データ行数は、適当に1000件としてみた。
URLリンク(ideone.com)
833:832
11/11/28 02:38:20.98
>>832
X for (j = 0 + 1; j < n; j++) {
O for (j = 0; j < n; j++) {
として下さい。
834:デフォルトの名無しさん
11/11/28 02:40:13.39
>>828
感謝です
835:デフォルトの名無しさん
11/11/28 02:56:59.73
>>822
3つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。
URLリンク(ideone.com)
836:デフォルトの名無しさん
11/11/28 03:36:37.32
>>824 角度はラジアン?
837:デフォルトの名無しさん
11/11/28 03:56:03.81
Qは屁理屈を言わせると天才的だな
しかしその屁理屈もここの住人を超うんざりさせる事にしか役に立ってない
一生嫌われ者で終わるだろうね
838:デフォルトの名無しさん
11/11/28 04:10:04.79
>>826
左の数字と真ん中の数字が一致したグループができたら、
右が一番小さい数字のものだけ残すということかな?
839:デフォルトの名無しさん
11/11/28 05:47:23.44
>>824
速攻で作ったからあってるかわからん
#include <stdio.h>
#include <math.h>
#define g 9.80665
#define PI 3.14159265358979323846
#define RAD(r) ((r)/(180*PI))
int main()
{
double v,kakudo;
double vx,vy,t,h,x;
puts("初速度を入力してください");
scanf("%lf",&v);
puts("角度を入力してください");
scanf("%lf",&kakudo);
vx = v*cos(RAD(kakudo));
vy = v*sin(RAD(kakudo));
h = (vy*vy)/(2*g);
t = (sqrt(h/(2*g)))*2;
x = t*vx;
printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x);
return 0;
}
840:デフォルトの名無しさん
11/11/28 05:54:02.54
ひどいな
841:839
11/11/28 06:07:42.75
>>840
たしかにひどすぎた。
改良、改定よろしく。
842:デフォルトの名無しさん
11/11/28 06:20:00.52
自分で直すように努力しないと、いつまでたってもバカのままだよ?
843:デフォルトの名無しさん
11/11/28 07:19:10.50
全国初!ローソン、「けいおん!」とのコラボ店舗が本日オープン!外観はもちろん店内BGMまで「けいおん!」一色!
2011年11月27日 12時29分
[シネマトゥデイ映画ニュース] 27日、アニメ「けいおん!」と大阪府・大阪市の
「ローソン ホテル京阪ユニバーサルタワー店」のスペシャル・コラボレーションが開始され、
店舗外観はもちろん、店内BGMにいたるまで「けいおん!」一色となった全国初のローソンが誕生した。
これまでにも「エヴァンゲリオン」や藤子・F・不二雄作品とコラボレーションしてきたローソンならではの
今回の試みは、12月29日まで行われる予定だ。
今回、「けいおん!」とコラボを果たしたのは、ユニバーサル・スタジオ・ジャパン(USJ)の近くにある
「ローソン ホテル京阪ユニバーサルタワー店」。これまでにもローソンは「けいおん!」関連の
キャンペーンを行っており、今月22日には「けいおん!フェア」第3弾を開始したばかり。
今回のコラボは、そういったことに加え、27日にUSJにて「『映画 けいおん!』公開直前記念イベント」が
行われること、さらには同店店長が大の「けいおん!」ファンということで実現した。
外観の装飾なども含め、ここまで大規模に「けいおん!」とコラボしたローソン店舗は全国で初めてだという。
当日は、0時ちょうどから外観の装飾が開始された。劇中バンド「放課後ティータイム」の
メンバー5人のシールがウインドウに貼り付けられるだけでなく、店内BGMは「けいおん!」関連の楽曲、
店内には「けいおん!」特設コーナー、店舗スタッフも「けいおん!」特製ジャンパーを着用しての接客……
とまさに「けいおん!」尽くし。背中に「K-ON!」の文字が入った赤いジャンパーは今回のためだけに
作られたといい、ここでしか見ることのできない貴重なものとなっている。
続きはソースで
URLリンク(www.cinematoday.jp)
「けいおん!」とコラボした「ローソン ホテル京阪ユニバーサルタワー店」
URLリンク(s.cinematoday.jp)
『映画 けいおん!』場面写真
URLリンク(s.cinematoday.jp)
URLリンク(s.cinematoday.jp)
844:デフォルトの名無しさん
11/11/28 07:52:07.43
>>823
素数の話なら勘弁。確かに今でもほとんど理解していない。でも、正直なところ理解したいとも思っていない。
それ以外ならなんだろう?何の話かちょこっとだけ教えてほしい。
頭は悪いほうだから理解できないことは多々あるだろうと思う。
それでもわからないと自覚しているのなら、「わからない」と明言していることであろう。
無論、わかっていないことすら自覚していないこともあるだろう。
>>837
うんざりするのは勝手だが、この程度で音をあげるようではまともなお仕事すらできないのでは?
それとも私の職場はそろいもそろって理屈こきの巣窟なのだろうか?まあ窓際煉獄部署といえなくもないのではあるが。
845:デフォルトの名無しさん
11/11/28 08:03:40.20
>>839
>#define RAD(r) ((r)/(180*PI))
#define RAD(r) ((r) * PI / 180.0)
>printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x);
l はいらない。%f でよい。
846:デフォルトの名無しさん
11/11/28 08:33:52.42
>>844
URLよろしく>素数の話
847:デフォルトの名無しさん
11/11/28 08:54:50.83
Qはちゃんとコテつけてくれ
848:デフォルトの名無しさん
11/11/28 12:24:23.77
>>833
ありがとうございました!
助かりました。
849:デフォルトの名無しさん
11/11/28 12:25:10.91
>>835
>3つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。
その仕様がありがたいです。
本当にありがとうございました。
850:デフォルトの名無しさん
11/11/28 12:43:48.65
>>844
その素数の話のURL貼ってもらえますか
851:デフォルトの名無しさん
11/11/28 12:49:12.45
>>850
【モリタポ有償】C/C++の問題を片付けます(2)
URLリンク(hibari.2ch.net)
534 名前: ◆QZaw55cn4c [qzaw55cn4c@a.email.ne.jp] 投稿日:2011/04/25(月) 21:03:10.67
>>516
URLリンク(codepad.org)
スレリンク(tech板:439番) の指摘を受けて細かいところを変更しました。
>素数の調べ方がクソ
エラトステネスのふるいは必要なメモリ容量が半端でないので、「クソ」かもしれませんが、素朴な方法にしました。10万までなら、(私の環境では)十分な速度が出ています。
しかし、割り算を二回実行してしまうのはなんとかしたいと思いつつも改良できないでいます。
>ループにも無駄が多すぎ
ちょっとだけましになったと思います。
592 名前:581 ◆QZaw55cn4c [PhenomII x6 が放置状態‥‥] 投稿日:2011/04/27(水) 05:53:22.39
>>591
>for(i = 2, max_len = 0; i * max_len < N; i++) {
を説明していただけませんでしょうか。
ベルトランの仮説(チェビシェフにより証明)を利用していると思われるんですが、
i から 2i の間に素数があっても、2i から 3i の間に素数があるかどうかはわかりません。
もっともここを
for (i = 2, i < N; i++)
にしてみたところで、
URLリンク(codepad.org)
爆速なんですけれども。(それか、codepad を速度判定に用いるのは精度がよくないですね。)
それにしてもエラトステネスのふるいの威力は見損じていました。sierve[i] で素数判定できるのには太刀打ちできません。
削除申請を出しました。
スレリンク(saku板:337番)
852:デフォルトの名無しさん
11/11/28 12:50:06.13
614 名前: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 07:54:07.83
>>599
最初の素数 p があったとして、その次が 2p までにあることはベルトランの仮説により証明されているようです。まあ実際は、素数はもっと詰まっていますが。
p と len_max の二つの情報にベルトランの仮説を用いて探索範囲を狭めるのならば、p * (2^(len_max - 1) < i でしょうね。(^ はここではべき乗)
素数の間隔に関する単純な定理が他にあるかどうかは、調べてみましたがよくわかりませんでした。素数分布に関するものならいくつかありますが。
617 名前: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:08:33.63
>>610
i の探索範囲が狭まると、狭まった分だけループの回数が減りますが、本当に減らしてもいいのでしょうか、という問題です。
たしかに実質 >>602 で len_max 個分の隣り合う素数を足しこんで N 以上であれば打ち切っていますが、これは実際にスキャンして調べているわけでその分計算量を要しています。
でも、だからといって、i * len_max が N を超えたら実際に調べなくともいい、とは限らないと考えています。
>>592 で影響の度合いの確認はとっています。
853:デフォルトの名無しさん
11/11/28 13:17:03.73
ちょ、まって、その話について、まだ理解がおぼつかないって言ってんのか?
854:デフォルトの名無しさん
11/11/28 13:29:32.23
小学生レベルの足し算の話なんだけどねえ
855:デフォルトの名無しさん
11/11/28 13:36:03.43
「理解しました」
618 返信: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:13:28.09
>>599
>最初の数字より大きいものしか続かないわけだから、i * max_len < N よりも少なくていいはず。
なるほど。やっと理解しました。
これでお開きとします。いろいろと説明ありがとうございました。
856:デフォルトの名無しさん
11/11/28 13:36:44.63
2 + 3 + 5がある数より大きければ、3 + 5 + 7は当然その数より大きい
これが理解できない人がいるんだぜ
857:デフォルトの名無しさん
11/11/28 13:41:01.96
Qはウンコ
858:デフォルトの名無しさん
11/11/28 13:53:24.92
今頃寝てるのかな?そして夜起きだして宿題を解く毎日w
859:デフォルトの名無しさん
11/11/28 14:47:15.45
Qのアホさはこれが分かりやすいと思う
641 名前:デフォルトの名無しさん[] 投稿日:2010/05/13(木) 16:05:13
このスレの住民の方には楽勝かもしれませんがお願いします
場合の数を計算するときに、いわゆる「nCr」というものを使うことがある。これは、順番を特に決めない場合、n個のものからr個のものを取り出す場合をいい、
7C5 = 7! / (7-5)!5!
である。nCrであれば
nCr = n! / (n-r)!r! (但し、0≦r≦n)
この数を計算したい。
1. nとrを入力させる。
2. n!を計算させる
3. (n-r)!を計算させる
4. r!を計算させる
5. (2)/(3)/(4)を計算する
しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
1から5の手順まで守ったプログラムと手間を省いたプログラムをそれぞれ作成しなさい
660 名前: ◆QZaw55cn4c [sage] 投稿日:2010/05/14(金) 00:11:21
>>641
当方の環境は Windows/cygwin、処理系は gcc 3.4.4 です。
URLリンク(ideone.com)
f1() は定義どおり、f2() は再帰関数(漸化式)を用いました。
661 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:17:44
題意を把握していないw
662 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:31:13
>>661
そですかね。掛け算を足し算に変えたんですけど、これってやっぱり「計算の手間を省いた」ことにはならないんですかね。
860:デフォルトの名無しさん
11/11/28 14:55:40.17
[1] 授業単元: C言語とアルゴリズム
[2] 問題文(含コード&リンク):
文字列st が回文(前から読んでも後ろから読んでも
同じ)であれば1 を,そうでなければ0 を返す関数
int isPalindrome(const char st[])
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
<実行例>
./5-4
文字列を入力してください:AKASAKA
その文字列は回文です。
% ./5-4
文字列を入力してください:tomato
その文字列は回文ではありません。
[3] 環境
[3.1] OS: (Windows/Linux/等々) :linux
[3.2] コンパイラ名とバージョン:(gcc 3.4
[3.3] 言語:C
[4] 期限: 29日 AM6時まで
[5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです
よろしくお願いします。math関数の存在は習いました。
861:デフォルトの名無しさん
11/11/28 15:06:21.32
>>860
#include <stdio.h>
int isPalindrome(const char st[])
{
char *p, *q;
for(p = st; *p; p++);
for(q = st, p--; q < p; q++, p--) if(*p != *q) return 0;
return 1;
}
int main(void)
{
char st[256];
printf("文字列を入力してください:");
scanf("%s", st);
printf("その文字列は回文で%s。\n", isPalindrome(st) ? "す" : "はありません");
return 0;
}
862:デフォルトの名無しさん
11/11/28 15:17:20.10
>>859
アホ過ぎるw
863:デフォルトの名無しさん
11/11/28 16:12:11.13
>>715
お礼が遅くなりすみませんでした。
課題を手伝っていただき、ありがとうございました。
864:デフォルトの名無しさん
11/11/28 16:35:06.57
[1] 授業単元:リスト構造
[2] 問題文(含コード&リンク):
URLリンク(codepad.org)
例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、
エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。
そこで、存在しない学生の番号を入力した場合には、
「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良せよ。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C
[4] 期限:12/3まで
[5] その他の制限:リンク先のコードを元に改良してください
865:832
11/11/28 16:36:43.38
>>860
URLリンク(ideone.com)
866:デフォルトの名無しさん
11/11/28 16:48:46.87
>>864
URLリンク(ideone.com)
867:デフォルトの名無しさん
11/11/28 19:20:23.97
iPhoneなどスマートフォンアプリ記述の標準言語はJavaやなんといっても
Objective-C
このマイナーだったプログラミング言語もようやく市民権を得た観があります。
今後Objective-Cを用いた課題も出ることでしょう。
このスレもObjective-Cに対応しなければならないかもしれません。
大丈夫でしょうか?>>QZさん
868:デフォルトの名無しさん
11/11/28 19:32:48.80
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):リンク先上部に問題文があります。
URLリンク(ideone.com)
[3] 環境
[3.1] OS:Linux
[3.2]コンパイラ:gcc
[3.3] 言語:C
[4] 期限: 2011年12月2日0:00まで
[5] その他の制限: 再帰法を使うこと、途中までプログラミングを行ったのですが
再帰法が今一つ分からずデバッグできません。誤り箇所を訂正する形でお願いします。
869:デフォルトの名無しさん
11/11/28 19:32:58.28
>>867
専用スレあるから。
870:デフォルトの名無しさん
11/11/28 19:34:51.26
>>868
int Max(i,j,Max)
このMaxはポインタでないとだめなんじゃない?
最大値を返却するように変えてもいいと思うけど。
871:デフォルトの名無しさん
11/11/28 19:36:02.11
あと、関数名と変数名がかぶってるのもエラーの一つ
872:デフォルトの名無しさん
11/11/28 20:07:50.22
>>870 >>871
ありがとうございます。ポインタは忘れてしまったので
返却する方法でプログラミングしました。
無事に完成しました。ありがとうございました。
873:デフォルトの名無しさん
11/11/28 20:40:10.41
ももちゃん
874:デフォルトの名無しさん
11/11/28 20:45:32.95
>>862
うーん、今でも掛け算より足し算のほーが、楽なんじゃないかと思ってしまうんですけれども‥‥‥。
まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。
875:デフォルトの名無しさん
11/11/28 20:54:08.57
[1]プログラミング実習
[2]
表面に色が塗られたサイコロが二つあります
それぞれ共に
赤が3面
青が2面
緑が1面
あります
二つのサイコロを同時に振ると色の組み合わせは
1)赤赤
2)赤青
3)赤緑
4)青青
5)青緑
6)緑緑
の6通りありますが
出やすい組み合わせの順に並び替えて出力しなさい
[3]C
[4]11/30
[5]標準ライブラリのみでコンソールに出力すること
876:デフォルトの名無しさん
11/11/28 20:58:37.94
>>874
これだけ馬鹿にされても自分が正しい、間違っているのは相手の方、と決めつけて
いる辺りが本物の馬鹿だと思うね
877:デフォルトの名無しさん
11/11/28 21:00:38.64
>>874
> しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
この省き方をしろって言ってると思うよ。
878:よろしくお願いします
11/11/28 21:16:36.02
[1] C言語演習
[2] キーボードから8回、11から18までの数字を読み取り、得られた5つの数字を
大きい順に表示して改行するプログラムを書きなさい。
ただし、以下のコードの空白を埋めるようにしなさい
#include <stdio.h>
int readNumber(){
char data[32],*p;
int m;
do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
return m;
}
int main(void){
int x;
この部分にコードを追加して,要求を満たすようにすること
return 0;
}
[3-1] Mac OSX(Snow leopard)
[3-2]Gcc 4.6
[3-3]C言語
[4] 12/1まで
879:878
11/11/28 21:17:46.72
訂正です
×得られた5つの数字を
●得られた8つの数字を
880:デフォルトの名無しさん
11/11/28 21:19:37.48
>>877
いつの間にか人の手柄を自分の手柄のように横取りしてしまうのも
Qの自己愛の特徴です
881:878
11/11/28 21:22:11.64
すみません。
再度訂正させてください
×do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
○do{p=fgets(data,32,stdin);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
他にも間違って写している部分があるかも知れませんがよろしくお願いします
882:864
11/11/28 21:22:32.09
[1] 授業単元:リスト構造
[2] 問題文(含コード&リンク):
URLリンク(codepad.org)
例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、
エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。
そこで、存在しない学生の番号を入力した場合には、
「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良し、
双方向リスト構造 Doubly-linked List を用いて作成せよ。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C
[4] 期限:12/3まで
[5] その他の制限:リンク先のコードを元に改良してください
883:832
11/11/28 22:48:42.43
>>882
while( pointer_student && pointer_student->number != in_number )
pointer_student = pointer_student->pointerNext;
if(pointer_student)
printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name );
else
printf("「その番号の学生は、いません。」¥n");
/* if( pointer_student->number == in_number ) { */
/* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */
/* } else { */
/* while(1) { */
/* pointer_student = pointer_student->pointerNext; */
/* if( pointer_student->number == in_number ) { */
/* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */
/* break; */
/* } */
/* } */
/* } */
884:デフォルトの名無しさん
11/11/28 22:51:02.28
>>882
Line94 pointer_student = pointer_student->pointerNext; の次に以下を追加
if( ! pointer_student ) { printf( "その番号の学生は居ない\n" ); return 0; }
885:デフォルトの名無しさん
11/11/28 23:08:57.39
>>874
その、まっとうだと思ってる方法でちょっとコード書いてみて。
割と最近宣言してたように、口数少なく、コードで示す方向で。
886:832
11/11/28 23:16:33.32
>>878
URLリンク(ideone.com)
887: ◆QZaw55cn4c
11/11/28 23:27:36.26
>>882
URLリンク(ideone.com)
888:デフォルトの名無しさん
11/11/28 23:43:27.35
>>887
気持ちは判るけどそこまで書き直しちゃ駄目だろ
次に関数を用いて書き直せって問題が出るかも知れないし
889: ◆QZaw55cn4c
11/11/28 23:55:07.49
>>885
URLリンク(ideone.com)
890:デフォルトの名無しさん
11/11/29 00:06:36.25
>>889
うーん。
中学か高校かもう忘れちゃったけど、
たとえば、 5! / (5 - 2)! を計算する時に
(5 * 4 * 3 * 2 * 1) / (3 * 2 * 1) とかいて、 3 * 2 * 1 は分母、分子ともにあるから、取り払って
(5 * 4) にする、みたいな記憶はない?
891:デフォルトの名無しさん
11/11/29 00:07:44.14
うまくいかなかったので、わかる方、お手数ですがもう1度お願いします。
問題
一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n, int m)を作成せよ。
更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。
no=3の場合
- *
- ***
- *****
よろしくお願いします。
892:デフォルトの名無しさん
11/11/29 00:08:04.78
> n!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
この、重複って言うのは、>>890 でいうところの、(3 * 2 * 1)ね。
その工夫を求められてるんだよ。
893:デフォルトの名無しさん
11/11/29 00:11:52.79
>>891
>>2
あと何がどううまくいかないのか書けよ
894:デフォルトの名無しさん
11/11/29 00:15:41.33
>>892
その簡単な日本語が理解できないのが頭悪いと言われる理由
895:デフォルトの名無しさん
11/11/29 00:19:58.95
>>891
#include <stdio.h>
void putzs(int n, int m)
{
while(n--) putchar(' ');
while(m--) putchar('*');
}
int main(void)
{
int i, no;
scanf("%d", &no);
for(i = 1; i <= no; i++) {
putzs(no - i, i * 2 - 1);
putchar('\n');
}
return 0;
}
896:デフォルトの名無しさん
11/11/29 00:20:46.72
ここは「そんなこともわからねーのか」成分が多すぎる気がするのでなんとなく。
宿題貼った生徒が見て理解できればそれでいいし。
897:デフォルトの名無しさん
11/11/29 00:27:11.20
やっと>>859の問題ができた・・・
URLリンク(codepad.org)
たぶん合ってると思うけど・・・
自分の頭の悪さ加減が嫌になってくる・・・
898:デフォルトの名無しさん
11/11/29 00:36:08.88
int nCr(int n, int r)
{
int i, ret = 1;
if(n < r * 2) r = n - r;
for(i = 1; i <= r; i++, n--) {
ret *= n;
ret /= i;
}
return ret;
}
899: ◆QZaw55cn4c
11/11/29 00:37:54.46
>>890 >>892
それはすでにしている。プログラム中の f(), g(), h() を使って表現すると、
g(10, 3) = 10 * 9 * 8
f(3) = 3 * 2 * 1
10C7 = h(10, 7) = g(10, 3)/f(3) = (10 * 9 * 8) / (1 * 2 * 3)
もっとよく読んでほしい。
>>897
n - r < r のときの工夫が足りない。
900: ◆QZaw55cn4c
11/11/29 00:41:29.35
>>898
途中で ret が小数点含みになる可能性はないのか?
901:デフォルトの名無しさん
11/11/29 00:43:23.26
>>895
ありがとうございます。
902:デフォルトの名無しさん
11/11/29 00:45:16.51
連続したn個の整数の中にはnで割り切れる数が当然含まれる事が理解できないバカっぷり
903: ◆QZaw55cn4c
11/11/29 00:54:47.45
>>902
なるほど理解した。感謝。
904:デフォルトの名無しさん
11/11/29 01:00:50.40
ちょっと考えればわかることなのに、本当に頭悪すぎだな
905:デフォルトの名無しさん
11/11/29 01:20:55.33
頭が悪い人に、「頭悪いな」とか言ってやるなよ。
頭が悪い人間でも、頭が悪いなりに一生懸命いきているんだよ。たぶん。
頭悪いとか言われると傷つくんだぞ。
あんまり、頭悪い、頭悪いと言っていじめてやるなよ。
906:デフォルトの名無しさん
11/11/29 01:28:18.39
>>875
URLリンク(ideone.com)
907:デフォルトの名無しさん
11/11/29 01:28:21.12
>>875
URLリンク(codepad.org)
908:デフォルトの名無しさん
11/11/29 01:35:39.54
感覚的に赤青が多そうな気がする
909:デフォルトの名無しさん
11/11/29 01:47:52.25
足して1にならないのに間違ってるって気づかないとかアホすぎる
910:デフォルトの名無しさん
11/11/29 01:52:04.83
RR 9 通り
RB 12 通り
RG 6 通り
BB 4 通り
BG 4 通り
GG 1 通り
911:デフォルトの名無しさん
11/11/29 02:09:12.75
本当にアホだった
訂正
>>875
URLリンク(codepad.org)
912:デフォルトの名無しさん
11/11/29 02:15:09.81
>>905
自作自演ウザス
こいつは頭が悪いというよりは、人の話を聞く耳を全く持たないと言う方が近いな
自分のやり方を頑なに突き通し、人のアドバイスは全く受けない
だから当然新しい進歩も皆無
宿題スレでも題意はもちろん無視して結果だけ正しければそれで良しとする
バグを含んでいても前々スレの流れを見ていても分かるように自分にとって都合の悪い
指摘は全部完全無視
こいつが嫌われる理由が分かった
913:デフォルトの名無しさん
11/11/29 02:26:16.43
>>875
やっつけ仕事だけど
#include <stdio.h>
int main()
{
int i,j;
int deme[7][2] = {0};
int d[] = {0,0,0,1,1,3};
char c[][3] = {"赤","青","","緑"};
char p[][5] = {"赤赤","赤青","赤緑","青青","青緑","","緑緑"};
for (i=0;i< 7; i++){deme[i][0] = i; deme[i][1] = 0;}
for (i=0;i< 6; i++){
for (j=0;j< 6; j++){
int m = d[i]+d[j]; deme[m][1]++;
printf("%s%d%s%d\n",c[d[i]],i+1,c[d[j]],j+1);
}
}
for (i=0;i< 6; i++){
for (j=i;j< 7; j++){
if(deme[i][1]<deme[j][1]) {
int t = deme[j][1]; deme[j][1] = deme[i][1]; deme[i][1] = t;
t = deme[j][0]; deme[j][0] = deme[i][0]; deme[i][0] = t;
}
}
}
for (i=0;i< 7; i++){
if (p[deme[i][0]][0] != 0) printf("%s (%2d)\n",p[deme[i][0]],deme[i][1]);
}
return 0;
}
914:839
11/11/29 02:29:36.16
>>842
遅レスだけど
5分でデバッグなしで作ったんだよ~
ほかにも考慮する部分あるけど
馬鹿にしないでくれよ~
915:デフォルトの名無しさん
11/11/29 02:33:13.69
>>899
よくよんでないんだけど、20C10って117であってんの?
916:デフォルトの名無しさん
11/11/29 02:35:42.52
オーバーフローしてる
917:デフォルトの名無しさん
11/11/29 02:36:42.64
なるほど
918:デフォルトの名無しさん
11/11/29 02:39:20.87
>>914
他にも突っ込みどころはあるけど
>#define RAD(r) ((r)/(180*PI))
これはひどすぎるだろw
919:839
11/11/29 02:58:27.10
>>918
ごめんよ~ごめんよ~
920: ◆EiEUm/qHNk
11/11/29 06:18:53.28
URLリンク(ideone.com)
URLリンク(ideone.com)
大変申し訳ないのですが、forやifのあとに
{
がないのですが、付け足しては貰えないでしょうか、、、
921:デフォルトの名無しさん
11/11/29 07:31:56.70
それぐらい自分でやれよwww
922:デフォルトの名無しさん
11/11/29 07:35:45.55
C言語習ってないのかよw
923: ◆QZaw55cn4c
11/11/29 07:55:06.55
>>912
自演認定ご苦労。
バグは判明した分についてはほぼ訂正を入れるようにしているのだが、抜けがあるのか?
>>902
ちょっと考えていたが、例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。
>>898 のループ各回の割り算の直後の ret は nC1, nC2, nC3 ... になっているのでほぼ自明だが、厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
ともあれ、>>898 はオーバーフローの心配が少ないいい方法だ。
924:デフォルトの名無しさん
11/11/29 08:00:25.58
馬鹿すぐる
925:デフォルトの名無しさん
11/11/29 08:07:24.27
>例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。
反例を示してくれ
あ、触ったらいけなかったか?
926:デフォルトの名無しさん
11/11/29 08:26:55.57
(ノ∀`)'`,、'`,、'`,、'`,、'`,、
Qって真性のアホだよな
自分の主張を通すなら間違っている事も正しい事にするのか?
朝鮮人みたいだ
927:デフォルトの名無しさん
11/11/29 08:32:49.45
俺が理解できないこと=誰も証明できないこと
なんだな、Qの中では
928:デフォルトの名無しさん
11/11/29 08:35:02.52
>>927
そう、その「自分が世界で一番頭が良くて偉い」という価値観こそが自己愛の
最大特徴なんだよ
傍から見ていると滑稽で仕方がないんだがなwww
929:デフォルトの名無しさん
11/11/29 11:53:50.39
> その「自分が世界で一番頭が良くて偉い」という価値観
それは有る意味で尊敬に値するぞ、社会を知らないって事は幸せなんだw
930:デフォルトの名無しさん
11/11/29 12:24:47.68
裸の王様だよな
931: ◆QZaw55cn4c
11/11/29 12:33:54.38
>>925
反例はないだろう。nC4 は整数であることは経験的に自明だから。それは >>923 の後半でも述べている。
>>902 の記述だけでは >>900 の説明としては足りないのではないか?と考え考えしているだけなのだが。
こういえばよかったか?
「N が 2, 3, 4, のすべてで割り切れるからといって N は 2 * 3 * 4 で割り切れるとは限らない」
nCm が整数であることはどうやって証明すればいいのだろうか?
>>926-929
なんでそういう解釈となるのか理解に苦しむ。
932:デフォルトの名無しさん
11/11/29 12:33:58.51
>例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。
こんなバカが偉そうな態度とってりゃ、ムカつく人間も出るわなw
933:デフォルトの名無しさん
11/11/29 12:35:29.64
「N が 2, 3, 4, のすべてで割り切れる」だと4で割り切れるうちに2で割り切れるのも含まれるからとかバカなこと考えてるんだろうなw
934:878
11/11/29 12:40:45.22
>>886
ありがとうございました。
変数の追加をすれば良かったのですね。
なかなか思いつかない発想だと思います。
935:デフォルトの名無しさん
11/11/29 12:41:57.22
Qの主張は現代高校教育の数学において、証明できていない事をもとにした計算方法を教えてるってことになるなw
936:デフォルトの名無しさん
11/11/29 12:46:12.84
>>724
有難う御座います
937:デフォルトの名無しさん
11/11/29 12:46:41.07
Qは自分の>>889のやり方も割り切れると証明されてないと主張してることに気づいているんだろうか
938:デフォルトの名無しさん
11/11/29 13:01:41.03
>>937
気付いてないだろ
Qは真性の馬鹿だから
939:デフォルトの名無しさん
11/11/29 13:03:15.44
>>931
>>>926-929
>なんでそういう解釈となるのか理解に苦しむ。
そりゃQには理解出来ないだろうよ
人格障害なんだから
理解出来たら今までの厚顔無恥な発言は二度と恥ずかしすぎて出来なくなる
940:デフォルトの名無しさん
11/11/29 13:05:00.16
おまけに割れ厨を正当化して公言しちゃってるもんな
警察に目を付けられてるかもしれんぞ
941:デフォルトの名無しさん
11/11/29 13:07:35.91
算数っていうのはある種の人にとっては超能力なんだよ^^
高校でベクトルと行列と複素数が表裏一体であると教わっても
クラスの半数くらいの人間が「何を言っているのだ」と感じるのと一緒
マッサー先生は「プログラマは生涯数学の勉強をしないさい」と書いてたけど
算数の才能のない人はプログラマにはなれず、せいぜいコーダ止まりなんだなと
今更ながらに思うまんこ。
942:デフォルトの名無しさん
11/11/29 13:52:12.39
大体nCrの結果が整数じゃないかもしれないって思うのがおかしいんだよ
943:デフォルトの名無しさん
11/11/29 14:01:25.23
高校中退だったりしてw
944:デフォルトの名無しさん
11/11/29 14:02:55.70
>>931
>nCm が整数であることはどうやって証明すればいいのだろうか?
マジレスすると、証明方法はいろいろあると思うがとりあえず数学的帰納法とか。
k個の積がk!で割り切れるときにk+1個の積が(k+1)!で割り切れることを示せれば良い。
945:デフォルトの名無しさん
11/11/29 14:06:08.52
むしろnCrをどう計算したら整数じゃなくなるというんだ?
946:デフォルトの名無しさん
11/11/29 14:07:25.12
背理法でもいいんじゃね?
組み合わせの「数」なんだから少数点以下が付くわけないだろ
947:デフォルトの名無しさん
11/11/29 14:09:35.59
しかし無理数×無理数=整数となる場合があるのは美しいよなあ
√2×√2=2なんて中学生でも知ってるけど、√2は無理数だからなあ
948:デフォルトの名無しさん
11/11/29 14:09:58.89
いまだに民事と刑事を取り違えてるバカがいるな
949:デフォルトの名無しさん
11/11/29 14:13:54.11
おっ、Qが釣り餌に食いついてきたようだぞ
950:デフォルトの名無しさん
11/11/29 14:26:23.64
URLリンク(okwave.jp)
のANo.2かな。
自力で数学的帰納法に持っていけんかった・・・orz
951:デフォルトの名無しさん
11/11/29 14:28:14.79
これとか
URLリンク(detail.chiebukuro.yahoo.co.jp)
952:デフォルトの名無しさん
11/11/29 14:28:45.97
URLリンク(detail.chiebukuro.yahoo.co.jp)
こっちの方が良い
953:デフォルトの名無しさん
11/11/29 14:29:46.40
さてQは見事に論破されたわけだが
>厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
馬鹿過ぎて笑える
954:デフォルトの名無しさん
11/11/29 14:30:21.94
Qのことだから
955:デフォルトの名無しさん
11/11/29 14:53:13.90
>>875
遅レスだが。
URLリンク(ideone.com)
956:デフォルトの名無しさん
11/11/29 14:57:29.37
>>955
int max=0;
957:デフォルトの名無しさん
11/11/29 15:19:16.72
Qを嗤うのは目か鼻か
nCrが整数か否かは、すんごく深い数学では
自明じゃなかったりするが、Qがそれとは関係無いことは自明
ま、それは兎も角、
>>875とか>>868の問題辺りはQはどう解くか見てみたい。
958:デフォルトの名無しさん
11/11/29 15:26:26.30
>>957
nCrは整数の加算で表せるから整数にしかならんぜ?
959:デフォルトの名無しさん
11/11/29 15:26:52.49
Qと同レベルのアホがきたw
960:デフォルトの名無しさん
11/11/29 15:27:49.88
>>959は>>957のことな
わかるとは思うけど、一応
961:デフォルトの名無しさん
11/11/29 15:34:18.68
>>960
具体的に整数にならない条件教えれ
962:デフォルトの名無しさん
11/11/29 15:40:16.81
>>960
ごめ。まちがえた
963:デフォルトの名無しさん
11/11/29 15:43:35.36
返事遅れてごめん。>665のものです。
いろいろありがとう。プログラムの意味をこれから理解してみます。
964:デフォルトの名無しさん
11/11/29 15:48:39.31
>>957
あのさあ
Q自身が>>923で
>厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
と言っちゃってるわけなんだけど
あなたの目は節穴ですか?
>Qがそれとは関係無いことは自明
あなたもQと同程度、あるいはQ以上に馬鹿ですね
965:デフォルトの名無しさん
11/11/29 16:41:15.70
nCrが整数にしかならないってのは、5個のケーキを0.3人で分けることよりわかりやすいと思うんだけどな。
ただ、>>957の、すんごく深い数学でどうなってるのかはわからん。
軽めのアンカー希望
966:デフォルトの名無しさん
11/11/29 16:54:47.81
>>965
尊師に聞いてみるといいかも
967:デフォルトの名無しさん
11/11/29 18:45:43.42
題意無視するなら再帰もいらないよね
で、何処で整数じゃなくなるんだ?
int ncr(int n, int r)
{
int i,j,result;
int *c=(int *)calloc(sizeof(int),n+1);
assert(n >= r);
c[0]=1;
for(i=0;i<=n;i++)
for(j=i;j>0;j--)
c[j] += c[j-1];
result = c[r];
free(c);
return result;
}
968:デフォルトの名無しさん
11/11/29 19:20:25.78
だれか、次スレ立ててくれ
969:デフォルトの名無しさん
11/11/29 19:29:03.37
3.3個のりんごから1.4個のりんごをとる場合の組み合わせが必要な数学があるんだろうとおもうよ
970:デフォルトの名無しさん
11/11/29 19:32:05.93
次スレたてたよ。
ここちゃんと使い切ってね。
C/C++の宿題片付けます 154代目
スレリンク(tech板)
971:デフォルトの名無しさん
11/11/29 19:43:18.54
初歩的なことすら理解できないアホがベルトランとかチェビシェフとかドヤ顔で口にしてるのが笑えるw
972:デフォルトの名無しさん
11/11/29 19:58:43.07
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):URLリンク(www.kent-web.com)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 2011年12月1日
[5] 実装にはスタックを用いてください。
そのスタックはURLリンク(www.kent-web.com)です。
よろしくお願いします。
973:デフォルトの名無しさん
11/11/29 20:48:40.65
>>972
これは多倍長計算すればいいのか?
>式の長さや式中に現れる整数には制限を設けない。すなわち、どれだけ式の長さが長くても、またどのような整数が出現しても正しく動作するようにすること。
974: ◆QZaw55cn4c
11/11/29 20:51:09.31
>>868
>>957
我流だ。許せ。URLリンク(ideone.com)
>>952
>>874を理由にパスカルの三角形を >>859 URLリンク(ideone.com) の f2() で使っている。
975: ◆QZaw55cn4c
11/11/29 20:58:19.85
>>868
バグ修正:URLリンク(ideone.com)
976:デフォルトの名無しさん
11/11/29 21:05:54.95
>>974
ん?どこに
>まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。
という事をやってんの?単なる再帰に過ぎないじゃん
アッカーマン関数でもstd::mapではない連想配列(値を参照してもキーが存在しない場合は
デフォルト値を返さない)に途中までの結果を入れると全然速度が違う
ついにボケ始めたか