1 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 16:58:30.97 ID:gTkHDluD.net] プログラミングのお題スレです。 前スレ プログラミングのお題スレ Part8©2ch.net echo.2ch.net/test/read.cgi/tech/1444216746/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode runnable.com/ code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。
449 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:27:22.69 ID:B3p9Yl5S.net] ていうか、いい加減Fareyはもういいでしょ 他の課題の方が
450 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:30:15.15 ID:EQKnHSgY.net] フィボナッチって素数何だっけ?
451 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:44:33.08 ID:B3p9Yl5S.net] 1, 1, 2, 3, 5, 8, ... 違うよね
452 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:47:15.18 ID:EQKnHSgY.net] だよねー。>>422 ってフィボナッチ使ってない? あんまり深く考えてないだけど。Orz
453 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:47:30.85 ID:B3p9Yl5S.net] じゃあ、任意の二個の数からはじまるフィボナッチ数列で、はじめから連続する素数の数が多い物を探す って課題で
454 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:48:36.68 ID:B3p9Yl5S.net] >>440 フィボナッチではない wikipediaにのってるレベルの知識で作った
455 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:49:05.29 ID:EQKnHSgY.net] あれ?俺とんちんかんなこと言ってるか? >>422 が数列としてあってるのかよくわからない。Orz どう考えればいいんだろう。
456 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:53:04.00 ID:EQKnHSgY.net] まぁ、俺のもあってるかどうかはしらんけど。><;
457 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 12:56:43.60 ID:EQKnHSgY.net] 頭悪くてゴメン。爆発しそう。。。
458 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 13:01:05.96 ID:EQKnHSgY.net] 引っ込む。すまんかった。
459 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 14:17:22.65 ID:t+CfDp82.net] >>431 Java ideone.com/9AXdRV
460 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 19:16:10.29 ID:LizATlBz.net] >>431 Ruby def farey(n, k) return [0r, 1r][k] if n == 1 farey(n - 1, 0..-1).each_cons(2).inject([0r]){|s, (a, b)| x = a.denominator + b.denominator s << 1r*(a.numerator + b.numerator)/x if x == n s << b }[k] end
461 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 07:36:01.80 ID:cLWzUq7C.net] お題:ミンコフスキーの疑問符関数の実装 ttps://en.wikipedia.org/wiki/Minkowski%27s_question_mark_function ttp://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html
462 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 10:39:36.15 ID:ONmyLPuf.net] WIKIぺにコード乗ってますが。
463 名前:デフォルトの名無しさん mailto:sage [2017/08/03(木) 10:48:34.50 ID:ONmyLPuf.net] >>449 のWIKIより。 /* Minkowski's question mark function */ double minkowski(double x) { long p=x; if ((double)p>x) --p; /* p=floor(x) */ long q=1, r=p+1, s=1, m, n; double d=1, y=p; if (x<(double)p||(p<0)^(r<=0)) return x; /* out of range ?(x) =~ x */ for (;;) /* invariants: q*r-p*s==1 && (double)p/q <= x && x < (double)r/s */ { d/=2; if (y+d==y) b
464 名前:reak; /* reached max possible precision */ m=p+r; if ((m<0)^(p<0)) break; /* sum overflowed */ n=q+s; if (n<0) break; /* sum overflowed */ if (x<(double)m/n) r=m, s=n; else y+=d, p=m, q=n; } return y+d; /* final round-off */ } [] [ここ壊れてます]
465 名前:デフォルトの名無しさん mailto:sage [2017/08/05(土) 17:44:11.83 ID:40G0sflG.net] >>375 のほかの実装はでてこないねぇ‥
466 名前:デフォルトの名無しさん [2017/08/12(土) 18:46:00.57 ID:953va2dM.net] 寿司のオーダーNのやつを理解しようとしたけどまだやってない。 その仕組みと、ほんとに正解してるのかとか。いたら誰が解説して。
467 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:04:22.18 ID:Bi4KH0eW.net] >>413 です もちろん合っているつもりのコードです 作者が言っても何の説得力もありませんが
468 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:07:04.34 ID:4r/z/Qd5.net] 会社に帰ってこない巡回セールスマンだよね 寿司の乗った皿がノード、計算量はO(n!)
469 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:10:18.10 ID:Bi4KH0eW.net] それぞれの寿司を食べている期間をレーン上の線分で表します この線の重なり具合をpileで表しました 効率良く食べられた場合はレーンがpile_max周するまでの間に食べきることが出来ます 170行目の判定がそれで、trueの場合は効率良く食べられない場合です
470 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:12:06.32 ID:4r/z/Qd5.net] >>456 もしそれで最適解が得られるなら巡回セールスマンも可能じゃないかな?
471 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:17:11.73 ID:6XNTCj+p.net] 巡回セールスマン問題とけたら色々応用範囲アルヨ。 マジでどっかに売り込んでもいいくらい。 天才か。
472 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:18:34.85 ID:6XNTCj+p.net] 社会的に言うと交通統制とかもそれじゃないかな? 信号の待ち時間問題。よくしらんけど。
473 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:19:17.76 ID:Bi4KH0eW.net] 効率良く食べられない方が簡単なのでその場合から お寿司を以下のグループに分けます ---- 各グループのお寿司は、レーンの特定の位置から食べ始めた場合、pile[グループ]周以内で食べ終わることが出来る このとき、pile_max = Σ pile[グループ] となる --- このようなグループの分け方の最小の物が存在します
474 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:22:56.16 ID:Bi4KH0eW.net] 同じグループのお寿司は連続して食べます 開始時と、各グループのお寿司を食べ終わった後、最初に来るお寿司から食べはじめ、pile[グループ]以内で食べられる食べ方でそのグループを食べ終える ということを繰り返せば最小の時間で食べ終えることが出来ます
475 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:26:29.79 ID:Bi4KH0eW.net] グループ分けした時に1個のグループになった場合は、 効率良く食べられることになります つまり、pile_max周以下で食べ終えることが出来ます この時は、コード上にあるダミーのお寿司を追加してから最小時間を求め、ダミーのお寿司を食べてる時間を引けば求められます
476 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:28:18.79 ID:4r/z/Qd5.net] うーん、よくわからん セールスマンの巡回先を一次元にマッピングできれば同じことできそうな 無理か
477 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:30:27.01 ID:Bi4KH0eW.net] グループの分け方は少し難しいです レーンの各整数位置に対して、 お寿司の線の両端にあたる点同士 線の重なりがpile_max未満である区間の点(両端を含む) を同じグループの点とし、 これらを続けることで最小のグループ分けが出来ます 線の両端の点のグループが、そのお寿司のグループになります
478 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:31:42.19 ID:Bi4KH0eW.net] それぞれ、証明は出来ているつもりです
479 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:32:49.51 ID:Bi4KH0eW.net] もちろん、一般の巡回問題はこの方法では無理です
480 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:37:29.23 ID:4r/z/Qd5.net] 全ノードを巡回する最短時間の問題だから、できそうな気がするけどね
481 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:39:44.61 ID:2Yw2XYfL.net] 372仕様書無しさん2017/08/11(金) 10:31:43.41 フリーランスで検索すると引っかかる零細ITがやっている
482 名前:フリーランスのサイトはだめだ。 高額に見せているけど実際は50万前後 JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。 ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト 473非決定性名無しさん2017/08/03(木) 15:21:30.71 JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる 自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の 間でやらしている。 446非決定性名無しさん2017/08/02(水) 22:12:48.95 JIETに毎月5千円払えば3次から入場できるだろ? 高額をうたうフリーランスのサイトはだいたい5次から45万円 JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした 高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした 自称エージェントはJIETから流れてくる案件を転売してるだけだった。 JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む [] [ここ壊れてます]
483 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:40:20.63 ID:Bi4KH0eW.net] pile_maxとその位置から下限が得られますが、 >>296 の例では98秒の物以外はすべてその下限になっています 一個その下限になるような例を見つければ答えがわかるのですが、 自力で検索してみればわかると思いますがそのような例はあっさり見つかります 98秒の例は効率良く食べられない場合になります 効率良く食べられる側のなかでも、pileから得られる下限値より大きくなる場合もあります
484 名前:デフォルトの名無しさん mailto:sage [2017/08/12(土) 19:43:06.99 ID:Bi4KH0eW.net] いずれの場合も、PCを使わなくても手計算で十分可能です
485 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 10:14:33.05 ID:lRMsxOf0.net] お題: N次元で1辺のマス目がM個の魔法陣を作る N>3(任意)、M>=3(任意)の超立方体
486 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 10:20:33.77 ID:lRMsxOf0.net] 参考 magcube.la.coocan.jp/magcube/jp/ nadamath2012.web.fc2.com/bushi/2004_mas2.pdf
487 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 16:38:38.03 ID:DSKC3zx4.net] 魔方陣は1個作ればいいの? Mが奇数か4の倍数は簡単 4で割って2余るのは検索するしかないのかな?
488 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 16:55:04.37 ID:fthJj6jv.net] バックトラックで組もうかと思ったけど、重そうだったからやめた。 数独より重そう。 それに一列合計をどの数字にするのかちょっとわからなかった。
489 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:20:36.13 ID:DSKC3zx4.net] 一列合計は、M*[数字の平均] になる つまり M*(M^N+1)/2
490 名前:片山博文MZ mailto:sage [2017/09/18(月) 21:53:54.06 ID:iMidYxoH.net] お題: URLから適当なサムネイルを生成するWebプログラム。
491 名前:デフォルトの名無しさん [2017/09/18(月) 23:06:01.10 ID:FC5+Wne9.net] お題 0以上90未満の整数nを入力として タンジェントn°の値が有理数ならば真 そうでなければ偽を返す
492 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 23:29:46.49 ID:45aelXxs.net] bool f(int n){return n==0 || n == 45;}
493 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 23:33:52.62 ID:ILsR+BHw.net] sed -r -e "s/^(0|45)\$/True/" -e "s/[1-8][0-9]*/False/"
494 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 01:13:30.78 ID:zMNLdsjY.net] tanの計算しないのはどうかと
495 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 01:57:23.24 ID:Ten4kOds.net] 計算で有理数かどうか確
496 名前:F? それは非常に難しいな by 東大数学科卒 [] [ここ壊れてます]
497 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 02:28:36.10 ID:SyuGyzWY.net] >>480 そう思うなら他者を批判するより行動で示せばいいと思うよ
498 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 03:58:59.82 ID:KVkpgN/c.net] tan1°が無理数であることの証明すら面倒くせえのに一体どんな回答を求めているんだ
499 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 06:37:25.45 ID:Ten4kOds.net] >>483 面倒くさい? てことは出来るの? やってみて
500 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 07:41:26.64 ID:KVkpgN/c.net] >>484 確か京大の過去問にあったでしょう 説明めんどいからは解法は自分で調べて
501 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 08:13:59.26 ID:Ten4kOds.net] いや、おれは出来るよ >>483 の実力で出来るのか?と疑問に思っただけ 実力じゃなくてカンニングね
502 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 08:21:42.19 ID:KVkpgN/c.net] 何言ってんだこいつ
503 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 08:49:35.38 ID:q1kL6yRz.net] 問題が悪いな 与えられた有理数rに対し、 tan(πr)が有理数かどうか判別するプログラムを書け ならテーブルは使えない
504 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 09:06:24.19 ID:emxMAzY1.net] また、多倍長精度演算のないC++にはきつい問題を・・・。
505 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 11:09:01.37 ID:q1kL6yRz.net] >>488 すいません 結果を知っていたらこれでも簡単でした
506 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 11:10:19.22 ID:q1kL6yRz.net] >>489 多倍長を使っても解決しないでしょ
507 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 12:53:02.28 ID:RSOddfRB.net] そもそも出題者はどういう回答を期待してるんだ? 数学の知識無しでは作れないし、数学の知識を使えば>>478 になる
508 名前:デフォルトの名無しさん [2017/09/19(火) 14:38:36.12 ID:LvSRuVZD.net] tan()の加法定理 tan(α+β)=(tanα+tanβ)/(1-tanαtanβ) により もしtan(α)が有理数なら tan(nα) (n = 1,2,3,4・・・) も全て有理数 このため 整数nにより tan(n)が無理数なら nの約数全てによるtan()が無理数 ここで tan(60)=√3 が無理数なのは簡単に証明されるため、 tan(1) も無理数 証明終わり
509 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 14:54:56.80 ID:RSOddfRB.net] >>476 を解くにはあとtan(18度)が無理数であることを証明しないと
510 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 14:55:28.25 ID:RSOddfRB.net] >>476 じゃなくて>>477
511 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 16:11:41.85 ID:HSXd4/vW.net] >>493 なるほど面白いねw
512 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 19:41:00.46 ID:Ten4kOds.net] >>493 tan(π/4)は有理数だけど tan(π/2)は有理数じゃない
513 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 20:13:34.35 ID:KVkpgN/c.net] tan1(rad)が超越数であることを証明せよ
514 名前:デフォルトの名無しさん [2017/09/19(火) 22:25:08.25 ID:FbLYus+p.net] >>492 WolframAlphaが is tan(pi * 1 / 180) a rational number? → not a rational number と返す仕組みを知りたかった
515 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 22:57:34.84 ID:Ten4kOds.net] xが有理数、tan(πx)が有理数 ====> xは1/4の倍数 って覚えてるだけかと
516 名前:デフォルトの名無しさん [2017/09/20(水) 14:48:00.57 ID:jgmli1ek.net] >>493 は加法定理で(1-tanαtanβ)が0になってはまずいので 0度以上90未満の範囲内に限定しないといけないな。 tan()の加法定理 tan(α+β)=(tanα+tanβ)/(1-tanαtanβ) により もしtan(α)が有理数で、かつ 0 <= nα < 90なら tan(nα) (n = 1,2,3,4・・・) も全て有理数 このため 整数 n ( 0 <= n < 90 ) により tan(n)が無理数なら nの約数全てによるtan()が無理数 ここで tan(60)=√3 が無理数なのは簡単に証明されるため、 tan(1) も無理数
517 名前:デフォルトの名無しさん [2017/09/20(水) 14:51:06.46 ID:jgmli1ek.net] tan(1)だけじゃなくて >>477 >>478 も証明できるかな??? つまり整数 n ( 0 <= n < 90 ) において tan(n)が有理数になるのはn=0,45に限ることの証明 tan(90-n) = 1/tan(n) なので n ( 0 <= n < 45 ) の範囲で証明されればOK またtan(45)が有理数で加法定理で減算し tan(45-n):有理数 ⇔ tan(n):有理数 ( 0 <= n < 45 ) も成立
518 名前:デフォルトの名無しさん [2017/09/20(水) 14:51:42.84 ID:jgmli1ek.net] 60の約数 はtan(n)無理数 1,2,3,4,5,6,10,12,15,20,30
519 名前: これの45-n もtan(n)無理数 44,43,42,41,40,39,35,33,25,15 この約数で、まだ含まれていないもの 11,22,21,8,13,7 45-nにより 34,23,24,37,32,38 この約数で、まだ含まれていないもの 17,16,19 45-nにより 28,29,26 この約数で、まだ含まれていないもの 14 45-nにより 31 ここまでの数を並べると 01,02,03,04,05,06,07,08,**,10, 11,12,13,14,15,16,17,**,19,20, 21,22,23,24,25,26,**,28,29,30, 31,32,33,34,35,**,37,38,39,40, 41,42,43,44 9度の倍数の証明のみが残された [] [ここ壊れてます]
520 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 16:48:28.32 ID:UU/UGcdT.net] だから>>494 と書いたんだけど
521 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 21:20:48.49 ID:8kWE0pQL.net] tan(1 rad)が超越数であることは誰も証明できないの
522 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 21:27:13.08 ID:UU/UGcdT.net] プログラムに証明させる問題?
523 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:23:37.78 ID:vEoThqNS.net] なぜラジアン? 話の流れ的にはtan(1度)だろ
524 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 22:25:37.42 ID:vEoThqNS.net] と思ったけど、簡単すぎた
525 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 16:21:06.33 ID:na02B6ss.net] [1] 授業単元名:FizzBuzzクイズ [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々)特に問わない [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)特に問わない [3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない kohada.2ch.net/test/read.cgi/prog/1209467166/401 FizzBuzzクイズ 1.fizz.buzz #=> 1 3.fizz.buzz #=> "Fizz" 5.fizz.buzz #=> "Buzz" 15.fizz.buzz #=> "FizzBuzz" 999.fizz.buzz #=> 999 となるようなメソッドfizz、buzzは定義可能か? 可能である場合、同様にgizzを追加定義し、 7.fizz.buzz.gizz #=> "Gizz" 21.fizz.buzz.gizz #=> "FizzGizz" 35.fizz.buzz.gizz #=> "BuzzGizz" 105.fizz.buzz.gizz #=> "FizzBuzzGizz" 105.fizz.gizz.buzz #=> "FizzGizzBuzz" と拡張・応用ができるか? メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。 オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。
526 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 19:58:51.31 ID:+ykHPOb/.net] まともに仕様を書けない出題者
527 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 07:02:49.79 ID:aD9oWCn2.net] これ普通の発想では無理
528 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 07:14:29.33 ID:eEMHecr4.net] >>509 修正 ×999.fizz.buzz #=> 999 ○997.fizz.buzz #=> 997
529 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 07:55:33.84 ID:FtjqsiSd.net] >>509 C++版 https://ideone.com/JdTeeD
530 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:00:39.43 ID:pX6TouLp.net] 仕様が謎
531 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 08:13:32.67 ID:FtjqsiSd.net] >>509 C言語 https://ideone.com/eWR8Pl
532 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 09:43:07.90 ID:eeRMTLx0.net] 外部出力を伴う関数(あるいはメソッド)なら簡単 たぶん関数(あるいはメソッド)の返値がそうなるようにって意味かと (じゃないと普通に書けてクイズにならない) たしか数理学的にはこういう関数は書けないことになっていたはず
533 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 12:43:18.77 ID:qmG6L9xB.net] >>509 や >>516 みたいなのとは絶対に一緒に仕事をしたくない
534 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 12:43:56.86 ID:qmG6L9xB.net] 別に戻り値にしても大して変わらんけど
535 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 12:51:02.25 ID:qmG6L9xB.net] C言語だとトリッキーな技を使わないと出来ない 同じ関数名で複数関数を作れないから 2段や3段重ねて、intを受けて文字列を返すのは普通には無理 C++だと簡単 大きく分けて2つの方法がある C++でも数値によって戻り値の型を変えるのは無理 数値がconstexprで
536 名前:良いなら出来るだろうけど [] [ここ壊れてます]
537 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 14:57:30.68 ID:eEMHecr4.net] >>513 >int l_ = 3 これ、なんとかならないか?
538 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 16:30:21.56 ID:W1Y66+yK.net] >>520 関数インターフェース的にはその値を与えることが出来ない 別の関数か何かで変えるかインターフェースを変えるしか
539 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 16:41:43.04 ID:W1Y66+yK.net] >>516 戻り値を文字列にする方法 方法1 段階によって引数と戻り値の型を変える S1 fizz(int n); S2 fizz(S1 s); std::string fizz(S2 s); ※テンプレートを使うと楽 方法2 戻り値をstd::string固定にしてなんとかする 方法2-1 戻り値は常に結果の文字列にし、パラメーター以外で情報を渡す 方法2-2 文字列に情報をエンコードして入れる 最終型段だけ結果を返すようにする 方法3 戻り値を結果文字列そのままではなく、文字列情報を含む情報とする (これは反則かな?)
540 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 16:44:03.80 ID:W1Y66+yK.net] 方法2-1であれば >>520 の問題は解決する ただし、そのままだとスレッドセーフじゃなくて気持ち悪い
541 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 16:48:22.63 ID:eEMHecr4.net] >>509 #=> これって ruby の記法だったかな?評価値を変えたいようだ
542 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 18:17:47.82 ID:eeRMTLx0.net] 例えばRubyだと文字列を含め組み込み型にインスタンス変数を仕込めるので たぶんそれで次のメソッドに情報を渡せる
543 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:04:29.86 ID:FtjqsiSd.net] >>522 の方法2-1 C++版 https://ideone.com/ZavKGg 外部情報は「n」のみ 複数スレッドや割り込みハンドラからコールする時はこのnが問題になるんで なんとかしてstd::stringに埋め込めれば良いんだけど >>525 問題を変えちゃダメだよね > [3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない
544 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:08:43.22 ID:FtjqsiSd.net] 8行目、なんとなく文字列から判別してみたけど、 素直にnと同じように外部にフラグを持てば条件が減る (文字列の最後が数字にならないとか文字コードが連続してるとか)
545 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:09:11.03 ID:pX6TouLp.net] 「(C/C++/どちらでも可 のいずれか)特に問わない」って日本語がまず謎 有限個の具体例しか与えられていないので仕様も謎
546 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:26:24.34 ID:FtjqsiSd.net] 出題者の選択枝が [C/C++/どちらでも可] の3個あって、出題者がその「いずれか」を選ぶ というフォーマットを使った出題 出題者は回答者に対し『その3個のどれでも良いよ』という意味で「特に問わない」と と私は解釈した つまり、回答者の選択枝はCかC++のどちらかだと 出力する文字列のルールはリンク先を見れば大体わかる gizzが7の倍数かどうかは実際には不明で、実は14で割ると7余る数かもしれないが... リンク先に「プリントする」とあるので printfなどで標準出力に出せば良いのかと思ったが、 >>516 の解釈は違うらしい 数値の場合だけ""でくくってないので、 文字列の場合は""をくっつける必要があるのか、 型を変えろと言っているのかはよくわからん いずれにしろ、CやC++では値によって戻り値の型を変えるのは不可能
547 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:32:11.08 ID:FtjqsiSd.net] いずれにしろ、 >>510 >>514 >>517
548 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:33:47.07 ID:eEMHecr4.net] >>529 >回答者の選択枝はCかC++のどちらかだと いや、そうじゃなくて、本当に「特に問わない」、どういったらいいかな、このテンプレはC宿題スレのものを、そのまま頂戴しただけじゃない?
549 名前:デフォルトの名無しさん mailto:sage [2017/09/22(金) 19:36:43.23 ID:FtjqsiSd.net] >>531 君は出題者なのか?違うのか? 立場をはっきりと