[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/08 14:06 / Filesize : 275 KB / Number-of Response : 1034
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

なあ、再帰関数好きな人いる?



1 名前:名無しのプログラマ [2015/08/09(日) 17:46:33.69 ID:Icb40LOY.net]
for,while使うの嫌いで基本的に再帰多用するんだが、だめなの?
皆から敬遠されてる気がする

577 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:32:09.50 ID:haT66cVy.net]
メモリ確保って言っても律儀に
指定したメモリを毎回確保・解放してるわけじゃないからな。

ある一定サイズをどかんと確保して、
ちょこちょこ割り当てて使用している。

578 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 02:45:20.83 ID:g5UyIGYz.net]
ドカンと確保せず、毎回OSのページサイズ単位で確保した方が早い
WindowsならVirtualAlloc これは速い
mallocなどドカンと確保して、ちょこちょこ割り当てる、これが全く重い
正確には割り当てるのは速い 解放がとてつもなく遅い

579 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 03:55:56.31 ID:VNb5NXe3.net]
メモリの確保/解放を考える時点でなんか違うよ

もちろん、そこまで考えなきゃいけない分野はあるし、そういう分野で再帰を使うのは間違ってると
思うけど、一般の人間はそこまで考えなくていいからね

580 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:20:13.75 ID:sPvi53Zp.net]
メモリの確保/解放を考えないなんてもう論外。

プログラマとしてまともな仕事を扱うこともなく
任されることもない、
いい加減なコードを書くだけで信用も期待もされない。

これ一般じゃあない。

581 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 06:48:33.39 ID:e0Hg3/HL.net]
配列などない
ポインタがあるだけだ

582 名前:デフォルトの名無しさん [2015/08/29(土) 06:54:58.07 ID:hP/roqxQ.net]
世の中にはC言語以外の言語もあるのよ

583 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:05:13.99 ID:VNb5NXe3.net]
>>567
そこまで考えなきゃいけない分野があるのは事実だが、それをマニュアルでやる分野はレア

マニュアルでやってたら絶対バグるから、モダンな言語にはガベージコレクタなどの技術が
採用されてるんだしね

584 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 13:57:09.93 ID:7eeJLuGb.net]
>>531 ワロタ。お前道具もまともに使えない社畜だな、もう別のとこ行くか、黙ってみてろ

585 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 17:10:01.35 ID:g7aWBHc9.net]
別に再帰だから再帰じゃないからなんだって思うが



586 名前:デフォルトの名無しさん mailto:sage [2015/08/29(土) 18:43:39.65 ID:g7aWBHc9.net]
>>568
アドレス演算≠ポインタ演算

587 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:15.19 ID:PCX+Z6xE.net]
>>559
calloc?…

588 名前:デフォルトの名無しさん mailto:sage [2015/08/30(日) 14:09:53.80 ID:PCX+Z6xE.net]
>>574
ごめんなさい誤爆しました

589 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:14:01.81 ID:t91IYFQ3.net]
>>542
いやいや
スクリプト言語だと配列という名前でもハッシュだったりするし
最近は配列を多用するのはc/c++(c++あんま知らんけど)くらいだと思うんだけど
javaでもなるべくコレクション使うようにするし

590 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 01:16:56.25 ID:t91IYFQ3.net]
配列はデータの追加や削除の効率が悪いデータ構造だし
immutableに向いてないからキツイ

591 名前:デフォルトの名無しさん [2015/09/01(火) 02:05:52.14 ID:DJMTd98b.net]
"スタックオーバーフロー" "クイックソート" site:.ac.jp
でググったら、とっても残念なページを見つけてしまった。
素人ならまだしも、T 大学の N 先生、あなたがそんなことじゃだめでしょう。
クイックソートがスタックオーバーフローするのは recursive call のせいではありませんよ。

592 名前:デフォルトの名無しさん [2015/09/01(火) 02:14:07.76 ID:6K59ZHF3.net]
>>577
その人、たぶん、なんでデータの追加や削除の効率が悪いのかもわかってないのでは、と。

593 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:08:24.61 ID:ucFEbRDO.net]
>>577
その人、たぶん、配列=メモリに連続して固定長のデータが並んでいるもの
それ以外は認めない。という間違った考え方をしてる。

594 名前:デフォルトの名無しさん [2015/09/01(火) 03:11:38.75 ID:Uqk8gU8P.net]
>>578
recursive call のせいですよ

595 名前:デフォルトの名無しさん [2015/09/01(火) 03:12:23.69 ID:Uqk8gU8P.net]
>>580
間違ってないですよ



596 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:14:38.29 ID:ucFEbRDO.net]
>>582
やっぱり固定長データが連続で並んでるものしか
認めないと思ってるのかw

明らかに間違ってるぞ。
C言語以外の言語の話をしようか?

597 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:20.63 ID:6K59ZHF3.net]
連続じゃなくてもいいけど(しかもハッシュじゃなく)アクセスがO(1)な
アドレスマッピングの方法を使ってる言語なんかあるの?

598 名前:デフォルトの名無しさん [2015/09/01(火) 03:29:25.49 ID:Uqk8gU8P.net]
>>583
C言語以外じゃないと都合が悪いのか?
じゃあC言語でお願いします

599 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:30:24.33 ID:ucFEbRDO.net]
>>585
あ、C言語限定じゃないと困るんだw

600 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:07.57 ID:Uqk8gU8P.net]
>>586
はい、基本C言語でお願いします
よろしくお願いいたします
配列=固定長データが連続で並んでる
これでいいですね

601 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:28.71 ID:Uqk8gU8P.net]
ふぅ、論破完了

602 名前:デフォルトの名無しさん [2015/09/01(火) 03:32:41.75 ID:6K59ZHF3.net]
単に「配列」って名前の付いてるハッシュの話してるんじゃないかと思う。
そしてそれは(データ構造としての)配列ではない。

603 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:33:05.52 ID:C9NG6GGp.net]
配列は抽象化されていないデータ構造なのか?

真にそう言えるのは1ビットのみである

604 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 03:40:53.92 ID:ucFEbRDO.net]
>>587
C言語においては、配列は固定長データが連続で並んでる。
その他の言語ではそうとは限らない
だから"配列"だけで断定することは出来ない。

これでいいですよ。

605 名前:デフォルトの名無しさん [2015/09/01(火) 03:44:11.25 ID:Uqk8gU8P.net]
>>591
C言語はプログラム言語です
つまり、プログラムにおいて配列とは固定長データが連続で並んでるものなんです



606 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:07:30.08 ID:ucFEbRDO.net]
わかりやすく言うと

プログラム言語 というカテゴリの中に
 ・C言語
 ・Perl
 ・PHP
 ・Ruby
 ・その他
 などが含まれます。

その中で、C言語では配列とは固定長データが連続で並んでるものなんです

607 名前:デフォルトの名無しさん [2015/09/01(火) 04:14:14.53 ID:Uqk8gU8P.net]
>>593
C言語以外では困るのでC言語でお願いしますと言いました。
いいですか、私はC言語以外では困るんです。
あなたは私を困らせたいのですか?困らせたくないでしょう。
私に同情してください。
配列=固定長データが連続で並んでる
これでいいですね。

608 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:19:55.14 ID:C9NG6GGp.net]
>>593
スクリプトだらけなんだが…

609 名前:デフォルトの名無しさん [2015/09/01(火) 04:24:44.91 ID:6K59ZHF3.net]
つうか、C言語のもの以外それみんな名前が「配列」なだけのハッシュ…

610 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 04:33:56.34 ID:ucFEbRDO.net]
配列の実装がハッシュなだけ。
配列だからって、実装まで決まらない証拠。

611 名前:デフォルトの名無しさん [2015/09/01(火) 04:37:44.81 ID:Uqk8gU8P.net]
>>597
ふうむ、たとえば二分探索木の実装に赤黒木やスプレーツリーがあるように
データ構造にも抽象的なものとより具体的なものがあるわけっしょ。
つまり、抽象データ構造としての配列とより具体的なデータ構造としての配列があり、
抽象データ構造としての配列に連想配列が含まれ、より具体的な連想配列のデータ構造として
ハッシュテーブルがあるってことでしょね。

612 名前:デフォルトの名無しさん [2015/09/01(火) 04:57:20.77 ID:6K59ZHF3.net]
データ構造についての普通の教科書読めば
そういう緩い意味で「配列 array」は使わないことがわかるよ。

613 名前:デフォルトの名無しさん [2015/09/01(火) 04:58:46.51 ID:6K59ZHF3.net]
array data structureとarray data typeとの区別をつけようね。

614 名前:デフォルトの名無しさん [2015/09/01(火) 05:04:47.15 ID:6K59ZHF3.net]
細切れに書いちゃってアレだけど、
array data typeはその実装がリストでもいい。
だから、効率性を云々する時のarrayはarray data typeではなくて
array data structureの話じゃなきゃいけない。そしてarray data structureは
インデックスからアドレスへの容易な算術演算によって(典型例が
データの連続配置)、O(1)アクセスを可能にするデータ構造。

615 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 06:38:20.62 ID:lctJDoUS.net]
いや、そんな長々と説明しなくていい



616 名前:諱B
array data structureがO(1)でなければならないというのなら
それを定義したのはどれかを言ってくれればいい。
おそらく無いからそれをごまかすために説明してるんだろうと思ってるけどねw
[]
[ここ壊れてます]

617 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 07:30:15.06 ID:CkpgYLyf.net]
>>594
うわあ、これはマジモンでヤバい人だ…

618 名前:デフォルトの名無しさん [2015/09/01(火) 08:00:49.42 ID:/DoXUIG1.net]
tet

619 名前:デフォルトの名無しさん [2015/09/01(火) 08:05:00.21 ID:/DoXUIG1.net]
メモリの取得、解放なんかは
OS自体にその手の機能が存在してるべきなんだよ
速度をそこまでガチで求めない場合の簡易版で良い

620 名前:デフォルトの名無しさん [2015/09/01(火) 08:11:25.32 ID:KtW8DmAo.net]
ゲーム木探索とかの再帰じゃないとできないことぐらいしか再帰関数でやらない
逆に再帰関数はforやwhileに書き換えできる? 出来るならそっちにしたいレベル

621 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 08:25:26.84 ID:vcgHCiFQ.net]
テンプレートメタプログラミングやC++11のconstexprだと、どうしても再帰使わないと書けないコードでてくる……
あれってなんか解決策あるんですかね……
怠惰なインスタンス化のように無限再帰を回避する方法ならあるけど

622 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 12:55:10.42 ID:4i2DmfPV.net]
>再帰じゃないとできない

まず無い。
再帰でベンチマーク作るのでなければ。

623 名前:デフォルトの名無しさん [2015/09/01(火) 13:38:18.55 ID:DJMTd98b.net]
>>581
君に理解できる話じゃないよ。
クイックソートのスタックオーバーフローを防ぐためと称して
非再帰化しろだのスタックサイズを増やせだのと、
君程度の人なら言うかもしれないが、大学の先生がそんなことじゃ困る。
空間計算量の最適化を教えなさいよという話だ。
それ無しに非再帰化だのスタックサイズだのと言われる学生さんが可哀想だ。

624 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 13:48:33.08 ID:4i2DmfPV.net]
>>609
君ごときの無能にそんなことじゃ困るなんて言われる
先生がかわいそうだ。

625 名前:デフォルトの名無しさん [2015/09/01(火) 15:23:42.04 ID:6K59ZHF3.net]
>>602
data typeじゃなくて data structureとしてのarrayなら下にあるけど?
常識なんで、定数アクセスじゃないadsがあるというならむしろそっちが実例挙げてね

https://en.wikipedia.org/wiki/Array_data_structure



626 名前:デフォルトの名無しさん mailto:sage [2015/09/01(火) 19:15:05.37 ID:jZfLWulg.net]
大学と共同研究とか外注受けたりとかやったことあるやつは
大学の先生の技術レベルがやばいのは経験してるでしょ

いまさら騒ぐ事でもねーよ

627 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 00:47:36.69 ID:kkVdXJxG.net]
サイ基地外は現実を否定することしかできない

628 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 17:48:58.50 ID:pfz+JPDH.net]
メモリ上でスラッと並んでるのが配列であって
そうじゃないけど並んでるように見えるのは
あんまり配列とは呼びたくないでござる。

629 名前:デフォルトの名無しさん mailto:sage [2015/09/02(水) 19:19:55.89 ID:DAe+xWqL.net]
組み込みや専用機なら配列と言う概念はいらない

630 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 02:22:06.78 ID:APM+2rA2.net]
位置の並びは関係なく、演算だけで区別できるのが配列
Rubyの配列はRuby用語

631 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 11:36:04.16 ID:hDY8eKzg.net]
こんなにも配列の話題で盛り上がるとは
みんな配列が大好きだね
人気者の配列のループには繰り返し文を使うから
繰り返し文は不滅だね

632 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 11:44:10.96 ID:HOkCudGK.net]
>>614
わかる。配列とコレクションは別だよな。

633 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:12:06.19 ID:dGS6eFW0.net]
配列の処理もforじゃなくて再帰で書くんだがやめたほうがいいのかね

634 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 12:26:06.74 ID:hDY8eKzg.net]
>>619
具体的にどんな感じで?

635 名前:デフォルトの名無しさん [2015/09/03(木) 14:27:45.88 ID:9nQXwra1.net]
>>620
head, tail,



636 名前:append さえあれば普通のリストとほぼ変わらん []
[ここ壊れてます]

637 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 15:43:06.69 ID:dGS6eFW0.net]
>>620
hoge(input, output){
  if (size(input) == 0) {
    return;
  }
  return hoge(tail(input), output.append(dosomething(tail(input))));
}

こんなかんじ

638 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 18:02:46.75 ID:IwEVB15/.net]
わざわざ再帰を使うなんてやめた方がいい。

ちゃんとループで書く技術を身につけるべき。

639 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 18:37:19.10 ID:dGS6eFW0.net]
forのほうが手軽なんだけど、しょーもないインデックスミスしちゃわない?
最近はどの言語も範囲forがあるから、まだいいんだが

640 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:27:47.89 ID:FSKtVBgW.net]
> forのほうが手軽なんだけど、しょーもないインデックスミスしちゃわない?
あんまりないな。いつも書き方一緒だし。
それ以外の書き方をしていれば「?」となる。

641 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:39:17.92 ID:6KaE3e8w.net]
単に慣れの問題

642 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 19:55:45.70 ID:Fz3Ka6Ix.net]
>>624
しょーもないミスをしないためにも再帰は覚えておくべきだね
使いドコロはケース・バイ・ケースだけど
何が何でも再帰を避けるようなことさえしなければいいんじゃない?

643 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 20:37:42.86 ID:FSKtVBgW.net]
>>627
forは範囲forで対応できるけど、
再帰は、範囲再帰ってあるの?w

再帰のほうがしょーもないミス多いよね。
終了条件ミスってスタックオーバーフローw

644 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:22:18.75 ID:qp+WFxZL.net]
範囲forに対応するものは高階関数になるんでね?
なんでもできてしまうforよりかは
畳み込み、map,foreach, filterなんかで使いわけたほうがいい

645 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 21:23:50.62 ID:qp+WFxZL.net]
後は >>= , <*>



646 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:32:32.63 ID:FSKtVBgW.net]
>>629
> 範囲forに対応するものは高階関数になるんでね?

そんなわけない。
範囲だろうが範囲じゃなかろうがforはfor。

647 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:52:40.78 ID:qp+WFxZL.net]
拡張for文はIteratorを実装しなけらばならなかったりforeachメソッドがなきゃいけなかったりbegin/endがなきゃいけなかったりするから
ある程度抽象的だから
whileと同じような単純な構文であるforと同じだって言われると微妙な気持ちになる

オブジェクト指向ありきみたいな

648 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 22:55:55.75 ID:K5TdrWRE.net]
便利だけど本質的には普通のforと同じ。
便利だけど単なるシンタックスシュガー

なにより副作用のために使うものだから
関数型的ではない。

649 名前:デフォルトの名無しさん mailto:sage [2015/09/03(木) 23:50:51.54 ID:LEFvEBee.net]
問題の解き方を探るときにwholemeal approachをやろうとすると、再帰は宣言的なんでスタート地点にしやすい。
dynamic programmingでやることにしても、最初の明快だけど遅い関数を書くときは再帰が多い。
そっからチューンしていったものが正しいかを検証したいとかよくある。
ので、再帰もループもどっちもある程度便利に使える言語は便利よ。

650 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 07:55:30.31 ID:iLm0cn85.net]
>>633
0点。

651 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 09:21:42.12 ID:QpES+Y0P.net]
宣言的な書き方は、総じて手続き的な書き方よりコードが短くなるため可読性が高い。ただし抽象度も上がるため、読む人を選ぶ可能性がある。

例えば以下の関数定義、手続き的に素直に書こうとするともっと長くなるはずだが、こう書かれても理解できない人もいるかもしれない。

f(n) =
| 0 (n = 0 のとき)
| n + f(n - 1) (n > 0 のとき)
| -f( |n| ) (n < 0 のとき)
なお、n は整数。


俺は宣言的な書き方が好き。

652 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 10:16:03.02 ID:qqcvyIbf.net]
数学における関数の、定義域別の関数定義みたいな書き方っすね

653 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 13:15:00.48 ID:YC3FOSdx.net]
結局、元の定義が再帰的でないと、再帰を使う意味は無いんだよな
プログラミングでもっとも良く使うデータ構造は配列ですし、
配列のループ処理を再帰とみなす必要は無いですし、
繰り返し文であふれるのは自然だね

654 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 17:32:01.47 ID:45GRgS6i.net]
>>635
理由書いてないので無視するw

655 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 18:34:45.30 ID:FR19Rjgq.net]
再帰キティは、理由なんか無く難癖つけるだけのレスばかり



656 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 20:04:17.17 ID:RgFRqfXr.net]
>>638
数学的に突き詰めれば自然数だって帰納的に定義されるものなんだから、
ループは必ず再帰に置き換えられるね(もちろん逆もまた真)

したがって意味がないことはない
あとはどっちが読みやすいかだけの話

モダン言語の流れは手続き的なループをなくして、再帰や高階関数を使う
方向のようだけどね

657 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 20:31:46.45 ID:K7Q0EkNO.net]
再帰とループの違いはなに?
手順をスタックしてるかどうかでしょ

まぁループと再帰を別に考えてる(と言うか感じてる)時点で三流くささがするのだけど

658 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 20:32:19.95 ID:FR19Rjgq.net]
それモダン言語じゃなくて、性能の悪い非実用的な言語なだけ

659 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 20:55:16.54 ID:RgFRqfXr.net]
>>643
最近はマシンスペックが上がってるからね
性能より抽象的な書き方ができるのを求めるようになってるんだよ

性能カリカリに求めたい場合だけCとか使っておけばいい世界

660 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 21:38:09.28 ID:vuZU5Hwi.net]
>>642
> 再帰とループの違いはなに?

ループ・・・小学校で習う(1から10までの数字を足し算しょう等)
再帰・・・高校で習う。(1からnまでの自然数の和を計算式で表す)

661 名前:デフォルトの名無しさん [2015/09/04(金) 21:49:10.66 ID:q06Od88z.net]
>>645
まったく理解できてない……

662 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 21:49:46.26 ID:vuZU5Hwi.net]
>>646
「間違ってる」とは言わないんだなw

663 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 21:54:59.88 ID:K7Q0EkNO.net]
なんかどうでもいいや

664 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 21:59:29.06 ID:vuZU5Hwi.net]
はい、反論も出なかったわけで、
つまりループと再帰ではループのほうがわかりやすいんだよね。

単純なループじゃない場合は、再帰のほうがいい場合もある。
だけどループでいいのならば、ループのほうがわかりやすい。

それは小学生でもループを理解していることからわかる。
(小学生にループというのは、nにn-1を足すのを0になるまで繰り返すとか言ってもわからない)

665 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 22:17:32.25 ID:6Rt4goII.net]
最新の実験的な言語で昔の関数型に回帰して再帰に走ってるの
単に言語開発のネタ切れしてるだけじゃねぇの

開発サイドの人間が必死こいて宣伝してるんだったら気持ちもわかるが
ユーザーだったらもっとマシな言語あるでしょとしか言えない



666 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 22:24:44.42 ID:q06Od88z.net]
>>647
根底から間違ってる、って言えばよかったの?

まず、(((((((((1+2)+3)+4)...+10) は典型的な再帰構造。ループでもなんでもない。

そして和の公式 n*(n+1)/2 は再帰でも何でもない閉じた式表現
(というか、再帰を使わない式にすることこそがその眼目だ)。

667 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:01:37.97 ID:vuZU5Hwi.net]
1から10まで足せって
小学生に言って、そんな式書く奴いないなw

普通は
1 + 1 = 2
2 + 2 = 4
4 + 3 = 7
7 + 4 = 11
って計算するんだぜ。

これを10まで繰り返す。
まさにループ

668 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:20:57.61 ID:q06Od88z.net]
>>652
それ全然ループじゃないから。

669 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:24:17.87 ID:q06Od88z.net]
n-1 までの和に n を足せば nまでの和が得られる、という原理に忠実な計算なんで
再帰以外のなにものでもないんだけど、基礎論触ったことないとわかんないかもね。

670 名前:デフォルトの名無しさん [2015/09/04(金) 23:26:41.39 ID:yf6WF608.net]
>>654
わかったところでカスだけどな。
再帰っていうのは木偶の坊の代名詞。

671 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:28:22.98 ID:kQbi8Wuv.net]
一つの見方しかできないのは数学に向いてないよ

672 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:29:28.63 ID:vuZU5Hwi.net]
>>653
ループじゃんw

書けば理解できるのか?

int sum = 0;
for(int i = 1; i <= 10; i++) {
 sum = sum + i;
}

これをステップ実行したのが>>652

673 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:30:53.74 ID:K7Q0EkNO.net]
おまえら夏休みは終わったんだぞ

674 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:33:40.85 ID:vuZU5Hwi.net]
>>658
9月にそれを言うってことは
お前大卒(もしくは在籍)じゃないのか?

675 名前:デフォルトの名無しさん mailto:sage [2015/09/04(金) 23:43:51.99 ID:RgFRqfXr.net]
>>655
分かったなら再帰が役に立つことぐらい簡単に理解できそうなもんだけどなー
理解できないならわかってないんだよ



676 名前:デフォルトの名無しさん [2015/09/05(土) 00:20:19.44 ID:LWQiKMu8.net]
>>660
ループの方が100億万倍やくに立つ。
再帰は数学に憧れてるだけで数学できない出来損ない野郎が使う。

677 名前:デフォルトの名無しさん mailto:sage [2015/09/05(土) 00:45:04.95 ID:j+vMQGdO.net]
いや、goto の方が1000億万倍役に立つだろ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef