トップページ > プログラム > 2015年12月02日 > SG5bn8pD

書き込み順位&時間帯一覧

3 位/171 ID中時間01234567891011121314151617181920212223Total
書き込み数10001000020111010200000010



使用した名前一覧書き込んだスレッド一覧
◆tAo.kQ2STk
デフォルトの名無しさん
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
Ruby 初心者スレッド Part 57©2ch.net [転載禁止]©2ch.net
C++14/C++1z 20
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
C++相談室 part120 [転載禁止]©2ch.net

書き込みレス一覧

なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
85 : ◆tAo.kQ2STk [sage]:2015/12/02(水) 00:55:46.45 ID:SG5bn8pD
再帰で書かれた超有名な関数をループにするだけの簡単なお仕事なのに
何ですぐに出来ないんだろうね?

# 全然簡単じゃないからです
Ruby 初心者スレッド Part 57©2ch.net [転載禁止]©2ch.net
704 :デフォルトの名無しさん[sage]:2015/12/02(水) 04:33:58.56 ID:SG5bn8pD
rubyで、ぷよぷよの最大連鎖数を計算するプログラムを組もうかと思ったらどう書く?
https://ideone.com/qMs43L
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
94 : ◆tAo.kQ2STk [sage]:2015/12/02(水) 09:39:29.64 ID:SG5bn8pD
>>89
問題のすり替えはいけないな。
俺は「難しくないならやってみて?」って言っただけで
そもそも「再帰のほうがループより圧倒的に簡潔に書けるよね?」って文脈だろ。
君が「難しいから出来るもんならやってみろ」って捉えたかどうかなんざ知らんがおつかれさん
うんうん、言いたいことは分かった。
それで、そのコードのどこら辺が綺麗なの?

ちなみに機械的に変換したのがこちら(rubyじゃなくてごめんよ)
https://ideone.com/XsZh4c
fとhは機械的に変換したという意味では等価だし君のコードとほぼ同じ事をしてるのだけど、
h関数をパッと見て>>69式と等しいって言うのは凄く度胸が居るよね?

>>92
そもそも再帰をどうやってソフトウェア実装してるかというとコールスタック+ジャンプ≒スタック+ループな訳で

# ちなみにスタックの正しいスペルはstack。stackuなんて子は知りませんね。
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
95 : ◆tAo.kQ2STk [sage]:2015/12/02(水) 09:48:27.56 ID:SG5bn8pD
s/69/67/
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
99 : ◆tAo.kQ2STk [sage]:2015/12/02(水) 11:28:01.97 ID:SG5bn8pD
>>97
アセンブリ言語によくあるcall系命令の挙動を正確に言えるようになれば
どんな再帰もスタックとループで書けるようになるよ
何しろスタックとループで再帰を表現してるのがcall系命令だからね。

それをそのまま書くとこんな具合に超汚くなるけど。
https://ideone.com/0QXd8O
C++14/C++1z 20
803 :デフォルトの名無しさん[sage]:2015/12/02(水) 12:28:07.16 ID:SG5bn8pD
>>801
Effective Modern C++の第一章項目4から転載するけど、
template <typename T>
class TD;
というクラスを宣言しておけば、
TD<decltype(y)> _;
した時にコンパイラのエラーメッセージに型が表示される。

うちの環境だと、
struct S {double m;};
foo(&S::m);
の時、
R = double
T = S
pm = double S::*&
になるっぽい。

いつから書けるようになってるのかは今調べてる・・・・・・
C++14/C++1z 20
805 :デフォルトの名無しさん[sage]:2015/12/02(水) 13:34:30.03 ID:SG5bn8pD
C++98の文法と格闘した結果、
template<class R,class T>
foo(R T::* pm)
は受理される事が分かった。
http://sites.cs.queensu.ca/gradseries/help/stuff/cpp98.pdf

詳細はこんな感じ(template-parameter-listの展開は省略)
template-declaration -> export(opt) template < template-parameter-list > . declaration
declaration -> function-definition -> decl-specifier-seq(opt) . declarator ctor-initializer(opt) function-body
declarator -> direct-declarator -> . direct-declarator ( parameter-declaration-clause ) cv-qualifier-seq(opt) exception-specification(opt)
direct-declarator -> declarator-id -> id-expression -> unqualified-id -> identifier -> foo

direct-declarator ( . parameter-declaration-clause ) cv-qualifier-seq(opt) exception-specification(opt)
parameter-declaration-clause -> . parameter-declaration-list(opt) ...(opt)
parameter-declaration-list -> parameter-declaration -> . decl-specifier-seq declarator
decl-specifier-seq -> decl-specifier-seq(opt) . decl-specifier
decl-specifier -> type-specifier -> simple-type-specifier -> ::(opt) nested-name-specifier(opt) . type-name
type-name -> typedef-name -> identifier -> R

decl-specifier-seq . declarator
declarator -> . ptr-operator declarator
ptr-operator -> ::(opt) . nested-name-specifier * cv-qualifier-seq(opt)
nested-name-specifier -> . class-or-namespace-name :: nested-name-specifier(opt)
class-or-namespace-name -> class-name -> identifier -> T

ptr-operator . declarator
declarator -> direct-declarator -> declarator-id -> id-expression -> unqualified-id -> identifier -> pm
Ruby 初心者スレッド Part 57&#169;2ch.net [転載禁止]©2ch.net
707 :デフォルトの名無しさん[sage]:2015/12/02(水) 15:27:49.31 ID:SG5bn8pD
>>705
なんつー無駄な処理をww

>>706
2つだけなら全探索でも良いんだけど、10個20個になるとだんだん辛くなってくる
スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©2ch.net
23 :デフォルトの名無しさん[sage]:2015/12/02(水) 17:51:28.60 ID:SG5bn8pD
>>22
単なるint型は整数型で、整数が入る
INT_PTR型はポインタ型に等しい幅を持つ整数型で、ポインタ型をどうしても整数型にキャストしたい時に使うらしい。

以下引用

ポインタは int、LONG、ULONG、DWORD のいずれの型にもキャストしないでください。
ビットのテスト、ビットの設定とクリア、またはポインタの内容の操作のためにポインタを
キャストする必要がある場合は、UINT_PTR 型または INT_PTR 型を使用します。
これらの型は、32 ビット版の Windows と 64 ビット版の Windows の両方のポインタに合わせて
サイズが変更される整数型です (たとえば、32 ビット版の Windows の場合は ULONG 型、
64 ビット版の Windows の場合は _int64 型に変更されます)。
https://msdn.microsoft.com/ja-jp/library/aa384242.aspx
C++相談室 part120 [転載禁止]©2ch.net
909 :デフォルトの名無しさん[sage]:2015/12/02(水) 17:54:06.75 ID:SG5bn8pD
>>908
どんな静的チェック掛けてるか知らんけど、何事にも基本と例外があるのよ


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。