探検
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
1デフォルトの名無しさん
2015/11/28(土) 18:51:38.86ID:Rc2MJzM/ なあ、再帰関数好きな人いる?
122デフォルトの名無しさん
2015/12/05(土) 22:53:23.45ID:Ij5oOkBB たらいのループ化と展開の様子誰か頼む
123デフォルトの名無しさん
2015/12/07(月) 01:05:16.16ID:OW/BWl2V なんで自分でやらない?
再帰関数が好きなんだろ?
再帰関数が好きなんだろ?
124ネトuy ◆Qawu9.2l1E
2015/12/07(月) 02:12:06.27ID:IGEuV37f w
125デフォルトの名無しさん
2015/12/07(月) 19:27:26.73ID:NCOmGjcr126デフォルトの名無しさん
2015/12/08(火) 10:04:03.24ID:HiEYAt85 きも
127デフォルトの名無しさん
2015/12/10(木) 22:01:50.93ID:ZuWvmJPo たらいのループ化どうやるかわからん。
128デフォルトの名無しさん
2015/12/10(木) 23:27:19.50ID:ZuWvmJPo んーなんかプログラムカウンタに相当するものをスタックに積まなきゃいけない感じ?
129デフォルトの名無しさん
2015/12/11(金) 02:06:03.72ID:6gh0GR4/130デフォルトの名無しさん
2015/12/11(金) 13:42:03.51ID:Z+QL5bbx 再帰厨はcall命令とjmp命令の違いが分かってから布教してほしい
131デフォルトの名無しさん
2015/12/11(金) 18:14:40.60ID:H0NYZxX+132デフォルトの名無しさん
2015/12/11(金) 18:27:07.72ID:FXKTAEC3 >命令にもこういうのがあるよ、必要だからあるんだよ。
だからどうしたとしか。
基地外宗教を布教するなら、自分でするんだね。
だからどうしたとしか。
基地外宗教を布教するなら、自分でするんだね。
133デフォルトの名無しさん
2015/12/11(金) 19:01:03.96ID:DIOiIqvd callとjumpの中間の命令もあるよな。
call使わない奴はいないのか?
call使わない奴はいないのか?
134デフォルトの名無しさん
2015/12/11(金) 19:02:56.29ID:6gh0GR4/ 中間の命令ってなんだよ?
135デフォルトの名無しさん
2015/12/11(金) 19:40:32.13ID:DIOiIqvd136デフォルトの名無しさん
2015/12/13(日) 22:44:03.31ID:1ET048aA ツリーのイテレータってどう書くの
誰か頼む
誰か頼む
137uy ◆Qawu9.2l1E
2015/12/14(月) 05:58:59.61ID:0uboKikK まずはこの手のアルゴリズム抽象化でC++使うのをやめろ
効率悪すぎ
効率悪すぎ
138uy ◆Qawu9.2l1E
2015/12/14(月) 06:02:04.72ID:WJU5GahL ツリーのイテレータっつうか
ゲームプログラミング的にいえばツリー構造のタスクシステム
ゲームプログラミングしてれば普通に書いてるような低レベルの話
ゲームプログラミング的にいえばツリー構造のタスクシステム
ゲームプログラミングしてれば普通に書いてるような低レベルの話
>>136
ツリーのイテレータの書き方は大きく分けて3種類ある。
一つ目はイテレータ自身に「どのノードを辿ってきたか」って情報を覚えさせておいてそれを用いる方法
イテレータの空間効率がO(log n)になる代わりにサクセッサの時間効率が平均でO(1)になる。
二つ目はイテレータ自身にキーを覚えさせておいて、一旦そのキーを手繰ってから次のノードを手繰り直す方法
イテレータの空間効率がO(1)になる代わりにサクセッサの時間効率がO(log n)になる。
三つ目は木構造の各葉っぱに次の葉っぱへのポインタを書いておく方法
イテレータの空間効率がO(1)、サクセッサの時間効率がO(1)になる代わりに葉要素のサイズがO(1)増える。
ツリーのイテレータの書き方は大きく分けて3種類ある。
一つ目はイテレータ自身に「どのノードを辿ってきたか」って情報を覚えさせておいてそれを用いる方法
イテレータの空間効率がO(log n)になる代わりにサクセッサの時間効率が平均でO(1)になる。
二つ目はイテレータ自身にキーを覚えさせておいて、一旦そのキーを手繰ってから次のノードを手繰り直す方法
イテレータの空間効率がO(1)になる代わりにサクセッサの時間効率がO(log n)になる。
三つ目は木構造の各葉っぱに次の葉っぱへのポインタを書いておく方法
イテレータの空間効率がO(1)、サクセッサの時間効率がO(1)になる代わりに葉要素のサイズがO(1)増える。
2015/12/14(月) 11:57:14.44ID:S7hw1GZs
イテレータってそんなにたくさん使うもんじゃないし、一つ目がいいかな、俺的に。
141uy ◆Qawu9.2l1E
2015/12/14(月) 15:02:59.78ID:WIf5dtaV それ種類じゃなくて、全部組み合わせて実装したほうが汎用的じゃねーの
class A
attr_accessor :up , :key , :list , :data
end
最低でも1と3のup listは無ければ木構造にならないだろ
君の考えは prev(up) と next(list) になってる
class A
attr_accessor :up , :key , :list , :data
end
最低でも1と3のup listは無ければ木構造にならないだろ
君の考えは prev(up) と next(list) になってる
2015/12/14(月) 16:34:38.86ID:S7hw1GZs
全部組み合わせたほうが汎用的?
何を言ってるかよくわからん
何を言ってるかよくわからん
143uy ◆Qawu9.2l1E
2015/12/14(月) 21:12:22.29ID:WIf5dtaV まず、ツリーにしたらそれはイテレータとは呼ばないから
ただのツリーを走査する為の関数に過ぎない
「イテレータ」にしか使用できないツリーじゃなくて
一通りの事に使用できるツリークラス作れば?って話
ただのツリーを走査する為の関数に過ぎない
「イテレータ」にしか使用できないツリーじゃなくて
一通りの事に使用できるツリークラス作れば?って話
144デフォルトの名無しさん
2015/12/14(月) 21:30:28.83ID:lwFUcSQC function NodeIterator(node, childNodesName) {
this._stack = [node];
this._name = childNodesName;
}
NodeIterator.prototype.hasNext = function() {
return this._stack.length > 0;
}
NodeIterator.prototype.next = function() {
var node = this._stack.pop();
if (node) {
for (var i = node[this._name].length -1; i > -1; --i) {
this._stack.push(node[this._name][i]);
}
}
return node;
}
ノードの親や深さも欲しい時は、スタックに積むノードをオブジェクトでラップして親の参照や深さを持たせればいいかも
this._stack = [node];
this._name = childNodesName;
}
NodeIterator.prototype.hasNext = function() {
return this._stack.length > 0;
}
NodeIterator.prototype.next = function() {
var node = this._stack.pop();
if (node) {
for (var i = node[this._name].length -1; i > -1; --i) {
this._stack.push(node[this._name][i]);
}
}
return node;
}
ノードの親や深さも欲しい時は、スタックに積むノードをオブジェクトでラップして親の参照や深さを持たせればいいかも
145デフォルトの名無しさん
2015/12/14(月) 22:23:44.30ID:S7hw1GZs uyのイテレータの定義がさっぱりわからん。
俺はC++STLのイテレータを想像しているんだが。
uyの言ってるイテレータはなんのイテレータなんだ?
俺はC++STLのイテレータを想像しているんだが。
uyの言ってるイテレータはなんのイテレータなんだ?
146デフォルトの名無しさん
2015/12/14(月) 23:47:42.33ID:S7hw1GZs uyが言ってるのはツリーで実装されたイテレータということかな?
俺が言いたいのはツリーを巡回するイテレータなんだが?
俺が言いたいのはツリーを巡回するイテレータなんだが?
147デフォルトの名無しさん
2015/12/15(火) 02:12:24.45ID:1v1TladX コレクションを操作するのがイタレータ
148uy ◆Qawu9.2l1E
2015/12/15(火) 02:28:13.41ID:hKbS74r3 センスないと無理
149デフォルトの名無しさん
2015/12/15(火) 02:42:41.61ID:1v1TladX >>147
それを言うなら走査だろと自分で突っ込んどく
それを言うなら走査だろと自分で突っ込んどく
150uy ◆Qawu9.2l1E
2015/12/15(火) 02:44:41.16ID:xpC/Gts5 例えば
[1,2,3,4] ← これをイテレートするのがイテレータだろ?
ツリーは
[1,2,[3,4,[5,6]]] ← これをイテレートしたいのが作りたいイテレータだろ?
下のはイテレータと表現するまでもなくプログラム中でツリー構造が必要になって、
「ツリークラス」ってのを定義した事あれば、そんなのは標準実装しているレベルのものだから、わざわざツリーのイテレータなんていう半端なものは誰も作らない
作る順序的にまずはイテレータのツリー化じゃなくて、ツリークラスの定義
考えが追いつかないなら好きな順序で作れば良いけど
[1,2,3,4] ← これをイテレートするのがイテレータだろ?
ツリーは
[1,2,[3,4,[5,6]]] ← これをイテレートしたいのが作りたいイテレータだろ?
下のはイテレータと表現するまでもなくプログラム中でツリー構造が必要になって、
「ツリークラス」ってのを定義した事あれば、そんなのは標準実装しているレベルのものだから、わざわざツリーのイテレータなんていう半端なものは誰も作らない
作る順序的にまずはイテレータのツリー化じゃなくて、ツリークラスの定義
考えが追いつかないなら好きな順序で作れば良いけど
151デフォルトの名無しさん
2015/12/15(火) 07:32:58.54ID:1zInVUKk ツリーオブジェクトにtoArray()メソッドを用意すれば
すべて解決すると思うの。
すべて解決すると思うの。
152デフォルトの名無しさん
2015/12/15(火) 10:44:59.05ID:kfL23r5/ 大富豪プログラミングだなtoArray()
ツリーなんかはサイズが非常にデカくなることがしばしばあるぞ。
ツリーなんかはサイズが非常にデカくなることがしばしばあるぞ。
153デフォルトの名無しさん
2015/12/15(火) 18:13:10.16ID:kfL23r5/ tAo.kQ2STk ってテレンスタオから取ってんの?
154デフォルトの名無しさん
2015/12/15(火) 18:56:51.85ID:kfL23r5/156デフォルトの名無しさん
2015/12/15(火) 22:38:36.35ID:WpFCIHcQ ツリーじゃね
157デフォルトの名無しさん
2015/12/15(火) 22:42:50.33ID:kfL23r5/ 参照が木構造になってるかグラフになってるかなんて実行時に決まることじゃないのか?
158デフォルトの名無しさん
2015/12/16(水) 03:41:52.77ID:L2apS2Qu 何だこの池沼w
159デフォルトの名無しさん
2015/12/16(水) 09:38:17.31ID:VSvjkteq ごめん
160デフォルトの名無しさん
2015/12/16(水) 21:37:56.27ID:OpCUYLL/ いいってことよ
161デフォルトの名無しさん
2015/12/17(木) 17:19:47.96ID:Szn4FINI162デフォルトの名無しさん
2015/12/18(金) 23:27:00.37ID:95zCi6v5 プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
163デフォルトの名無しさん
2015/12/19(土) 15:12:57.98ID:iG82T79N164デフォルトの名無しさん
2015/12/19(土) 16:17:36.19ID:qhiLE2sk 制御では、実行時間が読めないアルゴリズムは使いにくい。
165デフォルトの名無しさん
2015/12/19(土) 16:48:17.67ID:mZAnd63z 再帰と繰り返しは相互に変換可能なんだから、再帰で実行時間が読めないならば、繰り返しでも読めない。
こんなじょうしきも知らないの?
こんなじょうしきも知らないの?
166デフォルトの名無しさん
2015/12/19(土) 20:02:11.53ID:owy4KRbC ごめん
167デフォルトの名無しさん
2015/12/19(土) 20:16:05.69ID:hx9j/3Ds 再帰はシステムダウンの危険がある。
処理速度もはるかに遅くなる。
再帰の場合には、こうした実行時間が読めない特有の問題点がある。
処理速度もはるかに遅くなる。
再帰の場合には、こうした実行時間が読めない特有の問題点がある。
168デフォルトの名無しさん
2015/12/19(土) 22:02:48.92ID:EjHtX5K0 > 再帰はシステムダウンの危険がある。
そう言う環境ならば、システムダウンの可能性は繰り返しでもある。
> 処理速度もはるかに遅くなる。
ヘボが作った繰り返しは再帰よりはるかに遅い。
そう言う環境ならば、システムダウンの可能性は繰り返しでもある。
> 処理速度もはるかに遅くなる。
ヘボが作った繰り返しは再帰よりはるかに遅い。
169デフォルトの名無しさん
2015/12/19(土) 22:20:57.65ID:ZeO9ImyW >>168
繰り返しと再帰はいっしょなんだろ?
繰り返しと再帰はいっしょなんだろ?
170デフォルトの名無しさん
2015/12/19(土) 22:22:37.57ID:EjHtX5K0 >>169
お前、バカなんだろ。
お前、バカなんだろ。
171デフォルトの名無しさん
2015/12/19(土) 23:26:42.72ID:25MZJC6Y 末尾再帰に対応した言語が少ないからなぁ
172デフォルトの名無しさん
2015/12/19(土) 23:29:13.06ID:srVmyYNw 普通の言語は対応してる
変な言語は使うもんじゃない
変な言語は使うもんじゃない
173uy ◆Qawu9.2l1E
2015/12/20(日) 01:30:16.73ID:cCXQYS6+ # 1
def f
if 条件
処理
else
f()
end
end
# 2
def f
if 条件
f()
end
end
# 3
def f
case 条件
when LABEL
f()
end
end
末尾再帰されるパターンわからない奴wwwwwwwwwwwwっうぃる?
def f
if 条件
処理
else
f()
end
end
# 2
def f
if 条件
f()
end
end
# 3
def f
case 条件
when LABEL
f()
end
end
末尾再帰されるパターンわからない奴wwwwwwwwwwwwっうぃる?
174デフォルトの名無しさん
2015/12/20(日) 01:48:28.93ID:XCzWC+ME >>172
Java「…」
Java「…」
175デフォルトの名無しさん
2015/12/20(日) 12:14:12.80ID:8RLYRFXT >>175
漸化式
漸化式
176デフォルトの名無しさん
2015/12/20(日) 12:15:13.29ID:37nsyMmy それは、無限再帰
177デフォルトの名無しさん
2015/12/20(日) 14:49:43.30ID:zNzoBoA2 ID:EjHtX5K0のような白痴ばかりだから
再帰厨だと馬鹿にされることになる。
再帰を愛して使うんだったら、
ループ版にはない深刻なデメリットがある事ぐらいちゃんと注意した上で、
効率や安全性を無視したプログラミングを楽しむべき。
再帰厨だと馬鹿にされることになる。
再帰を愛して使うんだったら、
ループ版にはない深刻なデメリットがある事ぐらいちゃんと注意した上で、
効率や安全性を無視したプログラミングを楽しむべき。
178デフォルトの名無しさん
2015/12/20(日) 17:18:50.85ID:37nsyMmy 繰り返しの唯一の利点は回数の制御が再帰よりも容易であること。
これ以外の利点はない。
バカにはそれが理解できないらしいが。
これ以外の利点はない。
バカにはそれが理解できないらしいが。
179デフォルトの名無しさん
2015/12/20(日) 17:26:49.52ID:8RLYRFXT 馬鹿には出来ませんね
180デフォルトの名無しさん
2015/12/20(日) 18:23:24.49ID:/qKlyz5E ごめん
181デフォルトの名無しさん
2015/12/20(日) 19:26:33.84ID:37nsyMmy 再帰はID:zNzoBoA2のように低知能には理解不能という弱点があるけど
ID:zNzoBoA2のような低知能の出現率は低いので全然問題無い
むしろ低知能者を検出試験としてのメリットの方が大きい
ID:zNzoBoA2のような低知能の出現率は低いので全然問題無い
むしろ低知能者を検出試験としてのメリットの方が大きい
182デフォルトの名無しさん
2015/12/20(日) 22:01:31.82ID:ywvYIxL3 再帰苦手だから何でもかんでもループ使ってすまん
183デフォルトの名無しさん
2015/12/20(日) 22:05:01.79ID:A/4Tj+iv flattenとか難しいよね
184デフォルトの名無しさん
2015/12/20(日) 22:51:10.83ID:zNzoBoA2 もし再帰が理解出来たつもりなら、ちゃんとループに直せるぐらいのプログラミング技術は備えなくちゃ。
最低でもそれくらいの技術や知能が無ければ
再帰を楽しむことはできないよ。
最低でもそれくらいの技術や知能が無ければ
再帰を楽しむことはできないよ。
185デフォルトの名無しさん
2015/12/21(月) 02:17:48.47ID:EKnooMo4 「再帰には深刻なデメリットがある」キリッ
なんて発言する低知能人は再帰を理解してるはずが無い、理解不能なものを怖れている。未開人と同じ。
なんて発言する低知能人は再帰を理解してるはずが無い、理解不能なものを怖れている。未開人と同じ。
186デフォルトの名無しさん
2015/12/21(月) 09:54:25.69ID:S8kWm1db ループを恐れるのは、ループにするだけの知識・経験を欠いているから。
その程度じゃあプログラミングの世界からすぐに消えるだけの存在。
再帰厨は、現実で満たされないのでスレで妄想を垂れ流すことしかできないクズ。
その程度じゃあプログラミングの世界からすぐに消えるだけの存在。
再帰厨は、現実で満たされないのでスレで妄想を垂れ流すことしかできないクズ。
187デフォルトの名無しさん
2015/12/21(月) 10:52:48.60ID:zel3cCjW 関数内にjmpも好き勝手にやるタイプだからどうとも言わんけど、
再帰否定派はまさか単一のアーキテクチャの話してないよな?
アルゴリズムとして再帰がイケてないって話だよな?
再帰否定派はまさか単一のアーキテクチャの話してないよな?
アルゴリズムとして再帰がイケてないって話だよな?
188デフォルトの名無しさん
2015/12/21(月) 14:23:04.48ID:MyhUNItP そうなのか?
189デフォルトの名無しさん
2015/12/21(月) 14:51:29.83ID:EKnooMo4190デフォルトの名無しさん
2015/12/21(月) 18:43:17.30ID:u4st+H+L みなさん、これが「弄ってるって言いたいバカ」ですw
191デフォルトの名無しさん
2015/12/22(火) 08:48:59.73ID:kujr6tD9 迷信を信じ込んで再帰を否定してるバカが
深刻なデメリット(爆笑)、例えば
> 処理速度もはるかに遅くなる。
を、実証すればスレ終了するのに。
深刻なデメリット(爆笑)、例えば
> 処理速度もはるかに遅くなる。
を、実証すればスレ終了するのに。
192デフォルトの名無しさん
2015/12/22(火) 11:16:51.41ID:4uBr+2Cy 異様に伸びてると思ったら深刻な問題祭りかい
いくらでも例外は挙げられるけど
再帰で書こうがループで書こうが計算時間や空間計算量はそんなに変わらんから
書きやすく、読みやすい方で書いたほうが良いんじゃない?
そんなに変わらないって言うのは十分大きな入力に対して精々2〜3倍以下に納まるって意味だからね。
1時間掛かる処理を20マイクロ秒速くする為にごちゃごちゃ書き換えるのは結構な事だけど。
いくらでも例外は挙げられるけど
再帰で書こうがループで書こうが計算時間や空間計算量はそんなに変わらんから
書きやすく、読みやすい方で書いたほうが良いんじゃない?
そんなに変わらないって言うのは十分大きな入力に対して精々2〜3倍以下に納まるって意味だからね。
1時間掛かる処理を20マイクロ秒速くする為にごちゃごちゃ書き換えるのは結構な事だけど。
194デフォルトの名無しさん
2015/12/22(火) 14:08:14.84ID:dkSLpih8 はるかと言っても所詮定数倍でしょ。
しかも一桁違うケースは
関数呼び出しがやや高価なスクリプト系の言語でもほとんどないでしょ。
しかも一桁違うケースは
関数呼び出しがやや高価なスクリプト系の言語でもほとんどないでしょ。
195デフォルトの名無しさん
2015/12/22(火) 17:31:14.37ID:qPz15M1W >>193
いやね,絶対的に再帰でないと書けない,いや非常に書きにくいものはあるのは確かで.
たとえば代数式の解析を非再帰的で記述しろといわれると「はたして出来るのか??」と逡巡してしまう.
こういう話題があまり発展しないのはどうしたわけですかね
関係ないけどquick-sort を三項演算子とコンマ演算子で書く話題,誰か‥私は挫折した‥
いやね,絶対的に再帰でないと書けない,いや非常に書きにくいものはあるのは確かで.
たとえば代数式の解析を非再帰的で記述しろといわれると「はたして出来るのか??」と逡巡してしまう.
こういう話題があまり発展しないのはどうしたわけですかね
関係ないけどquick-sort を三項演算子とコンマ演算子で書く話題,誰か‥私は挫折した‥
196uy ◆Qawu9.2l1E
2015/12/22(火) 18:25:40.50ID:/7VurpfC 再帰の深刻なデメリットと言えば、コンパイラ設計者が甘えてる事によってバグを触ったり
異常に速度遅くなるパターンが放置されてたりする事
なんの言語とは言わないけど
異常に速度遅くなるパターンが放置されてたりする事
なんの言語とは言わないけど
197デフォルトの名無しさん
2015/12/22(火) 19:03:19.84ID:8Du/ashj それは再帰のデメリットではなくそういうクソコンパイラしかない言語のデメリット
198デフォルトの名無しさん
2015/12/22(火) 22:57:38.64ID:kujr6tD9200デフォルトの名無しさん
2015/12/22(火) 23:48:59.13ID:8Du/ashj >>199
食パン裏返してんのはお前のほうだよw
食パン裏返してんのはお前のほうだよw
201デフォルトの名無しさん
2015/12/22(火) 23:51:52.68ID:2TsBrERG202デフォルトの名無しさん
2015/12/23(水) 01:07:26.60ID:xKy7nhKt 食パンの裏はどっち側だよ
203デフォルトの名無しさん
2015/12/23(水) 01:25:49.85ID:zjRNfIWb >>201
こうするとなかなか興味深いことになるね。
本当に興味深いと思ってるだけで他意は無いよ。
fun_rec(){
if [ $1 -gt 5000 ] ; then
time fun_for
return
fi
fun_rec $(( $1 + 1 ))
}
こうするとなかなか興味深いことになるね。
本当に興味深いと思ってるだけで他意は無いよ。
fun_rec(){
if [ $1 -gt 5000 ] ; then
time fun_for
return
fi
fun_rec $(( $1 + 1 ))
}
204デフォルトの名無しさん
2015/12/23(水) 02:04:18.65ID:3NYqkGXc205デフォルトの名無しさん
2015/12/23(水) 07:21:41.71ID:fM9ORKUP206デフォルトの名無しさん
2015/12/23(水) 07:28:38.71ID:fM9ORKUP Cの場合は入った時にフレーム作成と出る時にフレーム復元
c86なら、レジスタ操作4ステップ(複合命令なら2ステップ)だ。
名前解決なんかリンク時に終わってる。
c86なら、レジスタ操作4ステップ(複合命令なら2ステップ)だ。
名前解決なんかリンク時に終わってる。
207デフォルトの名無しさん
2015/12/23(水) 08:47:35.90ID:2F8TsTF+ 最近の関数呼び出しは引数をスタックに積まずにレジスタ渡しみたいだから
再帰で何段ネストしちゃっててもレジスタに収まってる限りは爆速なんじゃね
再帰で何段ネストしちゃっててもレジスタに収まってる限りは爆速なんじゃね
208デフォルトの名無しさん
2015/12/23(水) 08:59:40.61ID:r+tlUph/ 名前解決まで計算時間に含めるなら
もう再帰云々じゃなくて長大な再帰なしの一つの関数で全部こなせって話になるんだがな
>>207
いや、そうはならない。
レジスタの退避が必要になるから、自己再帰するならどっちにしても同じだけpush/popは必要になる。
最適化が掛かったらその限りじゃないけど。
もう再帰云々じゃなくて長大な再帰なしの一つの関数で全部こなせって話になるんだがな
>>207
いや、そうはならない。
レジスタの退避が必要になるから、自己再帰するならどっちにしても同じだけpush/popは必要になる。
最適化が掛かったらその限りじゃないけど。
209デフォルトの名無しさん
2015/12/23(水) 09:02:09.80ID:QhR+qVh6210デフォルトの名無しさん
2015/12/23(水) 09:10:56.81ID:2F8TsTF+ >レジスタの退避が必要になるから
そうかなー
そうかなー
211デフォルトの名無しさん
2015/12/23(水) 09:15:53.17ID:fM9ORKUP >>209
スタッフフレームは再帰に必要なステップだから、再帰のペナルティとしてあえて受け入れた。
シェルスクリプトを持ち出した時点で「スタックは容量制限が厳しい(場合もある)リソース」
を自分で否定しちゃうところが再帰否定してるバカが低知能であるもう一つのエビデンス(笑)
(場合もある)を知らないのか、教わってないのか知らないが、全ての場合だと思い込んでるところもバカの、特徴だね。
スタッフフレームは再帰に必要なステップだから、再帰のペナルティとしてあえて受け入れた。
シェルスクリプトを持ち出した時点で「スタックは容量制限が厳しい(場合もある)リソース」
を自分で否定しちゃうところが再帰否定してるバカが低知能であるもう一つのエビデンス(笑)
(場合もある)を知らないのか、教わってないのか知らないが、全ての場合だと思い込んでるところもバカの、特徴だね。
212デフォルトの名無しさん
2015/12/23(水) 09:50:24.66ID:r+tlUph/ >>210
再帰で書いた何の変哲もないフィボナッチ関数をビルドしたケースを示すよ
https://gist.github.com/pixie-grasper/ba2d0ade523b8599c182
gccではr12を、clangではraxを、rbp/rbxの他に退避してるのが分かる。
再帰で書いた何の変哲もないフィボナッチ関数をビルドしたケースを示すよ
https://gist.github.com/pixie-grasper/ba2d0ade523b8599c182
gccではr12を、clangではraxを、rbp/rbxの他に退避してるのが分かる。
213デフォルトの名無しさん
2015/12/23(水) 11:20:43.15ID:2F8TsTF+ 対比先もレジスタにすればいいのにね
214デフォルトの名無しさん
2015/12/23(水) 11:25:42.60ID:r+tlUph/ そんな事をすると
既に退避させてある値を別なレジスタに退避させてから、退避させたい値を退避するコードを吐く羽目になるけど
レジスタが最低でも加算無限個無いと出来ないからね。仕方ないね。
既に退避させてある値を別なレジスタに退避させてから、退避させたい値を退避するコードを吐く羽目になるけど
レジスタが最低でも加算無限個無いと出来ないからね。仕方ないね。
215デフォルトの名無しさん
2015/12/23(水) 11:53:11.24ID:/Snk+v/P externしていないstatic関数とかならレジスタ渡しもふつうにある。
もちろんCランタイム・コンパイラによる
もちろんCランタイム・コンパイラによる
216デフォルトの名無しさん
2015/12/23(水) 12:07:45.20ID:r+tlUph/ >>215
いつの時代の話をしてるのか分からんのだけど、所謂Intel系の64bit環境(amd64)だとレジスタ渡しがデフォルトだよ。
https://en.wikipedia.org/wiki/X86_calling_conventions#List_of_x86_calling_conventions
いつの時代の話をしてるのか分からんのだけど、所謂Intel系の64bit環境(amd64)だとレジスタ渡しがデフォルトだよ。
https://en.wikipedia.org/wiki/X86_calling_conventions#List_of_x86_calling_conventions
217デフォルトの名無しさん
2015/12/23(水) 12:46:44.21ID:2bKYe5U2219デフォルトの名無しさん
2015/12/23(水) 16:35:42.36ID:u0B3Sjd8 だいたい再帰で問題が無いなんて
クイックソートで再帰が役に立たない事すら知らないってことか?
処理件数が増えたら速度の差なんて、何万倍どころじゃないし。
クイックソートで再帰が役に立たない事すら知らないってことか?
処理件数が増えたら速度の差なんて、何万倍どころじゃないし。
220デフォルトの名無しさん
2015/12/23(水) 16:37:36.04ID:xKy7nhKt >>219
何が言いたいのかわからん…
何が言いたいのかわからん…
レスを投稿する
ニュース
- 【速報】政府、与党がNISA未成年解禁を検討 ★2 [蚤の市★]
- 【TV】ファン5万人がガチで投票! プロ野球総選挙、栄えある1位は [牛丼★]
- 【*彡】巨人・坂本勇人 『流れ星に何を願うか』の質問に「結婚相手」と即答、結婚願望告白 女性ファンから歓声と悲鳴 [鉄チーズ烏★]
- へずまりゅう氏が言葉失う 街中で女性から「息子はあなたみたいな人間に育たぬよう教育しています」 [jinjin★]
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 ★2 [ぐれ★]
- 「まだ朝7時に通勤してるんですか?」人気VTuberが語った“働き方への提言”に議論沸騰 [夜のけいちゃん★]
- 高市早苗「いいから黙って全部アタシに投資しなさい!」国際金融会議で発言し周囲ドン引き [165981677]
- 【画像】このジャケット買うかポチるの迷ってる
- 今日スクリプトいなくて快適じゃん
- プラトンの「哲人政治」は正しかったのでは? アホな大衆に政治家を選ばせるとロクなことにならない [653462351]
- 【悲報】台湾有事で米中衝突、最悪のシナリオは日本人死者「4,662人」 [237216734]
- パニック障害ってどんな病気?
