プログラミングのお題スレです。
前スレ
プログラミングのお題スレ Part8©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1444216746/
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
http://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
http://runnable.com/
http://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/12/01(木) 16:58:30.97ID:gTkHDluD
461デフォルトの名無しさん
2017/08/12(土) 19:22:56.16ID:Bi4KH0eW 同じグループのお寿司は連続して食べます
開始時と、各グループのお寿司を食べ終わった後、最初に来るお寿司から食べはじめ、pile[グループ]以内で食べられる食べ方でそのグループを食べ終える
ということを繰り返せば最小の時間で食べ終えることが出来ます
開始時と、各グループのお寿司を食べ終わった後、最初に来るお寿司から食べはじめ、pile[グループ]以内で食べられる食べ方でそのグループを食べ終える
ということを繰り返せば最小の時間で食べ終えることが出来ます
462デフォルトの名無しさん
2017/08/12(土) 19:26:29.79ID:Bi4KH0eW グループ分けした時に1個のグループになった場合は、
効率良く食べられることになります
つまり、pile_max周以下で食べ終えることが出来ます
この時は、コード上にあるダミーのお寿司を追加してから最小時間を求め、ダミーのお寿司を食べてる時間を引けば求められます
効率良く食べられることになります
つまり、pile_max周以下で食べ終えることが出来ます
この時は、コード上にあるダミーのお寿司を追加してから最小時間を求め、ダミーのお寿司を食べてる時間を引けば求められます
463デフォルトの名無しさん
2017/08/12(土) 19:28:18.79ID:4r/z/Qd5 うーん、よくわからん
セールスマンの巡回先を一次元にマッピングできれば同じことできそうな
無理か
セールスマンの巡回先を一次元にマッピングできれば同じことできそうな
無理か
464デフォルトの名無しさん
2017/08/12(土) 19:30:27.01ID:Bi4KH0eW グループの分け方は少し難しいです
レーンの各整数位置に対して、
お寿司の線の両端にあたる点同士
線の重なりがpile_max未満である区間の点(両端を含む)
を同じグループの点とし、
これらを続けることで最小のグループ分けが出来ます
線の両端の点のグループが、そのお寿司のグループになります
レーンの各整数位置に対して、
お寿司の線の両端にあたる点同士
線の重なりがpile_max未満である区間の点(両端を含む)
を同じグループの点とし、
これらを続けることで最小のグループ分けが出来ます
線の両端の点のグループが、そのお寿司のグループになります
465デフォルトの名無しさん
2017/08/12(土) 19:31:42.19ID:Bi4KH0eW それぞれ、証明は出来ているつもりです
466デフォルトの名無しさん
2017/08/12(土) 19:32:49.51ID:Bi4KH0eW もちろん、一般の巡回問題はこの方法では無理です
467デフォルトの名無しさん
2017/08/12(土) 19:37:29.23ID:4r/z/Qd5 全ノードを巡回する最短時間の問題だから、できそうな気がするけどね
468デフォルトの名無しさん
2017/08/12(土) 19:39:44.61ID:2Yw2XYfL 372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は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万台にならなくて済む
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は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万台にならなくて済む
469デフォルトの名無しさん
2017/08/12(土) 19:40:20.63ID:Bi4KH0eW pile_maxとその位置から下限が得られますが、
>>296 の例では98秒の物以外はすべてその下限になっています
一個その下限になるような例を見つければ答えがわかるのですが、
自力で検索してみればわかると思いますがそのような例はあっさり見つかります
98秒の例は効率良く食べられない場合になります
効率良く食べられる側のなかでも、pileから得られる下限値より大きくなる場合もあります
>>296 の例では98秒の物以外はすべてその下限になっています
一個その下限になるような例を見つければ答えがわかるのですが、
自力で検索してみればわかると思いますがそのような例はあっさり見つかります
98秒の例は効率良く食べられない場合になります
効率良く食べられる側のなかでも、pileから得られる下限値より大きくなる場合もあります
470デフォルトの名無しさん
2017/08/12(土) 19:43:06.99ID:Bi4KH0eW いずれの場合も、PCを使わなくても手計算で十分可能です
471デフォルトの名無しさん
2017/09/15(金) 10:14:33.05ID:lRMsxOf0 お題:
N次元で1辺のマス目がM個の魔法陣を作る
N>3(任意)、M>=3(任意)の超立方体
N次元で1辺のマス目がM個の魔法陣を作る
N>3(任意)、M>=3(任意)の超立方体
472デフォルトの名無しさん
2017/09/15(金) 10:20:33.77ID:lRMsxOf0473デフォルトの名無しさん
2017/09/17(日) 16:38:38.03ID:DSKC3zx4 魔方陣は1個作ればいいの?
Mが奇数か4の倍数は簡単
4で割って2余るのは検索するしかないのかな?
Mが奇数か4の倍数は簡単
4で割って2余るのは検索するしかないのかな?
474デフォルトの名無しさん
2017/09/17(日) 16:55:04.37ID:fthJj6jv バックトラックで組もうかと思ったけど、重そうだったからやめた。
数独より重そう。
それに一列合計をどの数字にするのかちょっとわからなかった。
数独より重そう。
それに一列合計をどの数字にするのかちょっとわからなかった。
475デフォルトの名無しさん
2017/09/17(日) 23:20:36.13ID:DSKC3zx4 一列合計は、M*[数字の平均]
になる
つまり
M*(M^N+1)/2
になる
つまり
M*(M^N+1)/2
476片山博文MZ ◆T6xkBnTXz7B0
2017/09/18(月) 21:53:54.06ID:iMidYxoH お題: URLから適当なサムネイルを生成するWebプログラム。
477デフォルトの名無しさん
2017/09/18(月) 23:06:01.10ID:FC5+Wne9 お題
0以上90未満の整数nを入力として
タンジェントn°の値が有理数ならば真
そうでなければ偽を返す
0以上90未満の整数nを入力として
タンジェントn°の値が有理数ならば真
そうでなければ偽を返す
478デフォルトの名無しさん
2017/09/18(月) 23:29:46.49ID:45aelXxs bool f(int n){return n==0 || n == 45;}
479デフォルトの名無しさん
2017/09/18(月) 23:33:52.62ID:ILsR+BHw sed -r -e "s/^(0|45)\$/True/" -e "s/[1-8][0-9]*/False/"
480デフォルトの名無しさん
2017/09/19(火) 01:13:30.78ID:zMNLdsjY tanの計算しないのはどうかと
481デフォルトの名無しさん
2017/09/19(火) 01:57:23.24ID:Ten4kOds 計算で有理数かどうか確認?
それは非常に難しいな
by 東大数学科卒
それは非常に難しいな
by 東大数学科卒
482デフォルトの名無しさん
2017/09/19(火) 02:28:36.10ID:SyuGyzWY >>480
そう思うなら他者を批判するより行動で示せばいいと思うよ
そう思うなら他者を批判するより行動で示せばいいと思うよ
483デフォルトの名無しさん
2017/09/19(火) 03:58:59.82ID:KVkpgN/c tan1°が無理数であることの証明すら面倒くせえのに一体どんな回答を求めているんだ
484デフォルトの名無しさん
2017/09/19(火) 06:37:25.45ID:Ten4kOds485デフォルトの名無しさん
2017/09/19(火) 07:41:26.64ID:KVkpgN/c486デフォルトの名無しさん
2017/09/19(火) 08:13:59.26ID:Ten4kOds487デフォルトの名無しさん
2017/09/19(火) 08:21:42.19ID:KVkpgN/c 何言ってんだこいつ
488デフォルトの名無しさん
2017/09/19(火) 08:49:35.38ID:q1kL6yRz 問題が悪いな
与えられた有理数rに対し、
tan(πr)が有理数かどうか判別するプログラムを書け
ならテーブルは使えない
与えられた有理数rに対し、
tan(πr)が有理数かどうか判別するプログラムを書け
ならテーブルは使えない
489デフォルトの名無しさん
2017/09/19(火) 09:06:24.19ID:emxMAzY1 また、多倍長精度演算のないC++にはきつい問題を・・・。
490デフォルトの名無しさん
2017/09/19(火) 11:09:01.37ID:q1kL6yRz491デフォルトの名無しさん
2017/09/19(火) 11:10:19.22ID:q1kL6yRz >>489
多倍長を使っても解決しないでしょ
多倍長を使っても解決しないでしょ
492デフォルトの名無しさん
2017/09/19(火) 12:53:02.28ID:RSOddfRB そもそも出題者はどういう回答を期待してるんだ?
数学の知識無しでは作れないし、数学の知識を使えば>>478になる
数学の知識無しでは作れないし、数学の知識を使えば>>478になる
493デフォルトの名無しさん
2017/09/19(火) 14:38:36.12ID:LvSRuVZD 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)
も無理数
証明終わり
tan(α+β)=(tanα+tanβ)/(1-tanαtanβ)
により
もしtan(α)が有理数なら
tan(nα) (n = 1,2,3,4・・・)
も全て有理数
このため
整数nにより
tan(n)が無理数なら
nの約数全てによるtan()が無理数
ここで
tan(60)=√3
が無理数なのは簡単に証明されるため、
tan(1)
も無理数
証明終わり
494デフォルトの名無しさん
2017/09/19(火) 14:54:56.80ID:RSOddfRB >>476を解くにはあとtan(18度)が無理数であることを証明しないと
495デフォルトの名無しさん
2017/09/19(火) 14:55:28.25ID:RSOddfRB496デフォルトの名無しさん
2017/09/19(火) 16:11:41.85ID:HSXd4/vW >>493
なるほど面白いねw
なるほど面白いねw
497デフォルトの名無しさん
2017/09/19(火) 19:41:00.46ID:Ten4kOds498デフォルトの名無しさん
2017/09/19(火) 20:13:34.35ID:KVkpgN/c tan1(rad)が超越数であることを証明せよ
499デフォルトの名無しさん
2017/09/19(火) 22:25:08.25ID:FbLYus+p500デフォルトの名無しさん
2017/09/19(火) 22:57:34.84ID:Ten4kOds xが有理数、tan(πx)が有理数 ====> xは1/4の倍数
って覚えてるだけかと
って覚えてるだけかと
501デフォルトの名無しさん
2017/09/20(水) 14:48:00.57ID:jgmli1ek >>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)
も無理数
は加法定理で(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)
も無理数
502デフォルトの名無しさん
2017/09/20(水) 14:51:06.46ID:jgmli1ek503デフォルトの名無しさん
2017/09/20(水) 14:51:42.84ID:jgmli1ek 60の約数 はtan(n)無理数
1,2,3,4,5,6,10,12,15,20,30
これの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度の倍数の証明のみが残された
1,2,3,4,5,6,10,12,15,20,30
これの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度の倍数の証明のみが残された
504デフォルトの名無しさん
2017/09/20(水) 16:48:28.32ID:UU/UGcdT だから>>494と書いたんだけど
505デフォルトの名無しさん
2017/09/20(水) 21:20:48.49ID:8kWE0pQL tan(1 rad)が超越数であることは誰も証明できないの
506デフォルトの名無しさん
2017/09/20(水) 21:27:13.08ID:UU/UGcdT プログラムに証明させる問題?
507デフォルトの名無しさん
2017/09/20(水) 22:23:37.78ID:vEoThqNS なぜラジアン?
話の流れ的にはtan(1度)だろ
話の流れ的にはtan(1度)だろ
508デフォルトの名無しさん
2017/09/20(水) 22:25:37.42ID:vEoThqNS と思ったけど、簡単すぎた
509デフォルトの名無しさん
2017/09/21(木) 16:21:06.33ID:na02B6ss [1] 授業単元名:FizzBuzzクイズ
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)特に問わない
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)特に問わない
[3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない
http://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" など)で。
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)特に問わない
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)特に問わない
[3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない
http://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" など)で。
510デフォルトの名無しさん
2017/09/21(木) 19:58:51.31ID:+ykHPOb/ まともに仕様を書けない出題者
511デフォルトの名無しさん
2017/09/22(金) 07:02:49.79ID:aD9oWCn2 これ普通の発想では無理
512デフォルトの名無しさん
2017/09/22(金) 07:14:29.33ID:eEMHecr4513デフォルトの名無しさん
2017/09/22(金) 07:55:33.84ID:FtjqsiSd514デフォルトの名無しさん
2017/09/22(金) 08:00:39.43ID:pX6TouLp 仕様が謎
515デフォルトの名無しさん
2017/09/22(金) 08:13:32.67ID:FtjqsiSd516デフォルトの名無しさん
2017/09/22(金) 09:43:07.90ID:eeRMTLx0 外部出力を伴う関数(あるいはメソッド)なら簡単
たぶん関数(あるいはメソッド)の返値がそうなるようにって意味かと
(じゃないと普通に書けてクイズにならない)
たしか数理学的にはこういう関数は書けないことになっていたはず
たぶん関数(あるいはメソッド)の返値がそうなるようにって意味かと
(じゃないと普通に書けてクイズにならない)
たしか数理学的にはこういう関数は書けないことになっていたはず
517デフォルトの名無しさん
2017/09/22(金) 12:43:18.77ID:qmG6L9xB518デフォルトの名無しさん
2017/09/22(金) 12:43:56.86ID:qmG6L9xB 別に戻り値にしても大して変わらんけど
519デフォルトの名無しさん
2017/09/22(金) 12:51:02.25ID:qmG6L9xB C言語だとトリッキーな技を使わないと出来ない
同じ関数名で複数関数を作れないから
2段や3段重ねて、intを受けて文字列を返すのは普通には無理
C++だと簡単
大きく分けて2つの方法がある
C++でも数値によって戻り値の型を変えるのは無理
数値がconstexprで良いなら出来るだろうけど
同じ関数名で複数関数を作れないから
2段や3段重ねて、intを受けて文字列を返すのは普通には無理
C++だと簡単
大きく分けて2つの方法がある
C++でも数値によって戻り値の型を変えるのは無理
数値がconstexprで良いなら出来るだろうけど
520デフォルトの名無しさん
2017/09/22(金) 14:57:30.68ID:eEMHecr4521デフォルトの名無しさん
2017/09/22(金) 16:30:21.56ID:W1Y66+yK522デフォルトの名無しさん
2017/09/22(金) 16:41:43.04ID:W1Y66+yK >>516
戻り値を文字列にする方法
方法1
段階によって引数と戻り値の型を変える
S1 fizz(int n);
S2 fizz(S1 s);
std::string fizz(S2 s);
※テンプレートを使うと楽
方法2
戻り値をstd::string固定にしてなんとかする
方法2-1
戻り値は常に結果の文字列にし、パラメーター以外で情報を渡す
方法2-2
文字列に情報をエンコードして入れる
最終型段だけ結果を返すようにする
方法3
戻り値を結果文字列そのままではなく、文字列情報を含む情報とする
(これは反則かな?)
戻り値を文字列にする方法
方法1
段階によって引数と戻り値の型を変える
S1 fizz(int n);
S2 fizz(S1 s);
std::string fizz(S2 s);
※テンプレートを使うと楽
方法2
戻り値をstd::string固定にしてなんとかする
方法2-1
戻り値は常に結果の文字列にし、パラメーター以外で情報を渡す
方法2-2
文字列に情報をエンコードして入れる
最終型段だけ結果を返すようにする
方法3
戻り値を結果文字列そのままではなく、文字列情報を含む情報とする
(これは反則かな?)
523デフォルトの名無しさん
2017/09/22(金) 16:44:03.80ID:W1Y66+yK 方法2-1であれば >>520の問題は解決する
ただし、そのままだとスレッドセーフじゃなくて気持ち悪い
ただし、そのままだとスレッドセーフじゃなくて気持ち悪い
524デフォルトの名無しさん
2017/09/22(金) 16:48:22.63ID:eEMHecr4525デフォルトの名無しさん
2017/09/22(金) 18:17:47.82ID:eeRMTLx0 例えばRubyだと文字列を含め組み込み型にインスタンス変数を仕込めるので
たぶんそれで次のメソッドに情報を渡せる
たぶんそれで次のメソッドに情報を渡せる
526デフォルトの名無しさん
2017/09/22(金) 19:04:29.86ID:FtjqsiSd >>522 の方法2-1
C++版
https://ideone.com/ZavKGg
外部情報は「n」のみ
複数スレッドや割り込みハンドラからコールする時はこのnが問題になるんで
なんとかしてstd::stringに埋め込めれば良いんだけど
>>525
問題を変えちゃダメだよね
> [3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない
C++版
https://ideone.com/ZavKGg
外部情報は「n」のみ
複数スレッドや割り込みハンドラからコールする時はこのnが問題になるんで
なんとかしてstd::stringに埋め込めれば良いんだけど
>>525
問題を変えちゃダメだよね
> [3.3] 言語: (C/C++/どちらでも可 のいずれか)特に問わない
527デフォルトの名無しさん
2017/09/22(金) 19:08:43.22ID:FtjqsiSd 8行目、なんとなく文字列から判別してみたけど、
素直にnと同じように外部にフラグを持てば条件が減る
(文字列の最後が数字にならないとか文字コードが連続してるとか)
素直にnと同じように外部にフラグを持てば条件が減る
(文字列の最後が数字にならないとか文字コードが連続してるとか)
528デフォルトの名無しさん
2017/09/22(金) 19:09:11.03ID:pX6TouLp 「(C/C++/どちらでも可 のいずれか)特に問わない」って日本語がまず謎
有限個の具体例しか与えられていないので仕様も謎
有限個の具体例しか与えられていないので仕様も謎
529デフォルトの名無しさん
2017/09/22(金) 19:26:24.34ID:FtjqsiSd 出題者の選択枝が [C/C++/どちらでも可] の3個あって、出題者がその「いずれか」を選ぶ
というフォーマットを使った出題
出題者は回答者に対し『その3個のどれでも良いよ』という意味で「特に問わない」と
と私は解釈した
つまり、回答者の選択枝はCかC++のどちらかだと
出力する文字列のルールはリンク先を見れば大体わかる
gizzが7の倍数かどうかは実際には不明で、実は14で割ると7余る数かもしれないが...
リンク先に「プリントする」とあるので
printfなどで標準出力に出せば良いのかと思ったが、
>>516の解釈は違うらしい
数値の場合だけ""でくくってないので、
文字列の場合は""をくっつける必要があるのか、
型を変えろと言っているのかはよくわからん
いずれにしろ、CやC++では値によって戻り値の型を変えるのは不可能
というフォーマットを使った出題
出題者は回答者に対し『その3個のどれでも良いよ』という意味で「特に問わない」と
と私は解釈した
つまり、回答者の選択枝はCかC++のどちらかだと
出力する文字列のルールはリンク先を見れば大体わかる
gizzが7の倍数かどうかは実際には不明で、実は14で割ると7余る数かもしれないが...
リンク先に「プリントする」とあるので
printfなどで標準出力に出せば良いのかと思ったが、
>>516の解釈は違うらしい
数値の場合だけ""でくくってないので、
文字列の場合は""をくっつける必要があるのか、
型を変えろと言っているのかはよくわからん
いずれにしろ、CやC++では値によって戻り値の型を変えるのは不可能
530デフォルトの名無しさん
2017/09/22(金) 19:32:11.08ID:FtjqsiSd531デフォルトの名無しさん
2017/09/22(金) 19:33:47.07ID:eEMHecr4532デフォルトの名無しさん
2017/09/22(金) 19:36:43.23ID:FtjqsiSd533デフォルトの名無しさん
2017/09/22(金) 19:39:18.64ID:FtjqsiSd 出題者なら0点
534デフォルトの名無しさん
2017/09/22(金) 19:43:00.43ID:pX6TouLp535デフォルトの名無しさん
2017/09/22(金) 19:51:22.72ID:FtjqsiSd536デフォルトの名無しさん
2017/09/22(金) 19:54:43.95ID:FtjqsiSd そろそろ
出題者の模範解答
よろしくね
出題者の模範解答
よろしくね
537デフォルトの名無しさん
2017/09/22(金) 20:00:08.36ID:eEMHecr4 え゛
0点の出題だしー模範解答の質も推して知るべし、なんじゃないでしょうか……:−)
0点の出題だしー模範解答の質も推して知るべし、なんじゃないでしょうか……:−)
538デフォルトの名無しさん
2017/09/22(金) 20:35:12.69ID:aD9oWCn2 >>526
↓この但し書きがあるってことは、問題作成者(≠出題者)としてはC/C++限定とは考えてはいないだろう
> メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。
> オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。
そもそもここで出題する時点で [3] の縛りは意味をなさないよ
↓この但し書きがあるってことは、問題作成者(≠出題者)としてはC/C++限定とは考えてはいないだろう
> メソッドのコールに()が必須の言語では 3.fizz().buzz() 形式でも構わない。
> オープンクラス機構やメソッドのない言語では関数(buzz(fizz(3)) #=> "Fizz" など)で。
そもそもここで出題する時点で [3] の縛りは意味をなさないよ
539デフォルトの名無しさん
2017/09/22(金) 20:43:54.80ID:W1Y66+yK >>509に書いてある以上は、それに従うのが基本
540デフォルトの名無しさん
2017/09/22(金) 20:47:11.96ID:W1Y66+yK と思って私は回答しましたが、
他の人が他の解釈で回答することまで否定はしません
他の人が他の解釈で回答することまで否定はしません
541デフォルトの名無しさん
2017/09/22(金) 20:47:48.19ID:W1Y66+yK ということで、
>>538 よろしく!
>>538 よろしく!
542デフォルトの名無しさん
2017/09/23(土) 03:26:09.79ID:nBwtcNcI543デフォルトの名無しさん
2017/09/23(土) 05:00:15.00ID:FxaWa0db544デフォルトの名無しさん
2017/09/23(土) 09:40:19.02ID:9eQI4Qct545デフォルトの名無しさん
2017/09/23(土) 11:10:41.17ID:koNmB6po PerlやPythonは?
546デフォルトの名無しさん
2017/09/23(土) 11:25:56.13ID:7PRDVMsP ネタバレになるけど
このクイズはグローバル変数を使えばそれで済んでしまうシンプルな話なんだけど、それをあえて
- 各言語の機能を熟知・駆使して、面白くしたりひと工夫したりする(たとえばスレッドセーフとか)
- 前者のしくみと、7の倍数のgizzの拡張に必要な追加を最小限にすることを両立させる
というポイントが楽しみどころなんじゃないかな
このクイズはグローバル変数を使えばそれで済んでしまうシンプルな話なんだけど、それをあえて
- 各言語の機能を熟知・駆使して、面白くしたりひと工夫したりする(たとえばスレッドセーフとか)
- 前者のしくみと、7の倍数のgizzの拡張に必要な追加を最小限にすることを両立させる
というポイントが楽しみどころなんじゃないかな
547デフォルトの名無しさん
2017/09/23(土) 11:29:36.36ID:w6RxEhSu548デフォルトの名無しさん
2017/09/23(土) 17:45:33.07ID:tyQvRaHd549デフォルトの名無しさん
2017/09/23(土) 17:47:47.85ID:tyQvRaHd550デフォルトの名無しさん
2017/09/23(土) 18:26:18.44ID:80k6Tqnu 関数の入出力の型が同一である必要がある
Cならintをchar*と解釈するわけにいかないから構造体だろう
Cならintをchar*と解釈するわけにいかないから構造体だろう
551デフォルトの名無しさん
2017/09/23(土) 22:30:47.29ID:PEiEI8OX スレッドローカル変数で
書いてみている
書いてみている
552デフォルトの名無しさん
2017/09/23(土) 22:51:39.70ID:PEiEI8OX >>509 Squeak Smalltalk だけどなんとか >>547 っぽい方法で
| FizzBuzzQuiz |
FizzBuzzQuiz := Trait named: #FizzBuzzQuiz uses: #() category: 'FizzBuzz-Quiz'.
FizzBuzzQuiz compile: 'isDivisibleBy: m
^(Processor activeProcess environmentAt: #fbValue) isDivisibleBy: m'.
FizzBuzzQuiz compile: ', str Processor activeProcess environmentAt: #fbValue put: self. ^str'.
FizzBuzzQuiz compile: 'fizz ^(self isDivisibleBy: 3) ifTrue: [self, ''Fizz''] ifFalse: [self]'.
FizzBuzzQuiz compile: 'buzz ^(self isDivisibleBy: 5) ifTrue: [self, ''Buzz''] ifFalse: [self]'.
{Number. String} do: [:each | each uses: FizzBuzzQuiz].
1 fizz buzz. "=> 1 "
3 fizz buzz. "=> 'Fizz' "
5 fizz buzz. "=> 'Buzz' "
15 fizz buzz. "=> 'FizzBuzz' "
14 fizz buzz. "=> 14 "
FizzBuzzQuiz compile: 'gizz ^(self isDivisibleBy: 7) ifTrue: [self, ''Gizz''] ifFalse: [self]'.
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' "
| FizzBuzzQuiz |
FizzBuzzQuiz := Trait named: #FizzBuzzQuiz uses: #() category: 'FizzBuzz-Quiz'.
FizzBuzzQuiz compile: 'isDivisibleBy: m
^(Processor activeProcess environmentAt: #fbValue) isDivisibleBy: m'.
FizzBuzzQuiz compile: ', str Processor activeProcess environmentAt: #fbValue put: self. ^str'.
FizzBuzzQuiz compile: 'fizz ^(self isDivisibleBy: 3) ifTrue: [self, ''Fizz''] ifFalse: [self]'.
FizzBuzzQuiz compile: 'buzz ^(self isDivisibleBy: 5) ifTrue: [self, ''Buzz''] ifFalse: [self]'.
{Number. String} do: [:each | each uses: FizzBuzzQuiz].
1 fizz buzz. "=> 1 "
3 fizz buzz. "=> 'Fizz' "
5 fizz buzz. "=> 'Buzz' "
15 fizz buzz. "=> 'FizzBuzz' "
14 fizz buzz. "=> 14 "
FizzBuzzQuiz compile: 'gizz ^(self isDivisibleBy: 7) ifTrue: [self, ''Gizz''] ifFalse: [self]'.
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' "
553デフォルトの名無しさん
2017/09/24(日) 08:25:43.37ID:wOaJDXIV554デフォルトの名無しさん
2017/09/24(日) 08:49:01.13ID:wOaJDXIV555デフォルトの名無しさん
2017/09/25(月) 19:17:51.82ID:WU5gUeBt556デフォルトの名無しさん
2017/10/15(日) 20:26:14.16ID:12RNBD+4 過去問を眺めていたが、もっとお気楽な問題が多かったようですね
肩慣らし問題を一つ
問題
循環小数を有理数に直せ。
循環節は括弧をつかって表現する。
例
0.[555] = 5/9
0.3[33] = 1/3
12.[345] = 4111/333
1.2[34] = 611/495
肩慣らし問題を一つ
問題
循環小数を有理数に直せ。
循環節は括弧をつかって表現する。
例
0.[555] = 5/9
0.3[33] = 1/3
12.[345] = 4111/333
1.2[34] = 611/495
557デフォルトの名無しさん
2017/10/15(日) 21:45:12.25ID:IPnwHMWa 連分数を使うのかね
558デフォルトの名無しさん
2017/10/15(日) 23:12:59.97ID:Y75uJW9z559デフォルトの名無しさん
2017/10/17(火) 15:01:04.33ID:qd6dTZ1I 循環小数は有理数な訳だが
560デフォルトの名無しさん
2017/10/17(火) 16:22:17.58ID:kN20YVKE 0.[555] = 0.[5] = 5/9
0.3[33] = 0.[3] = 3/9
12.[345] = 12+345/999
1.2[34] = 1.2+34/990
0.3[33] = 0.[3] = 3/9
12.[345] = 12+345/999
1.2[34] = 1.2+34/990
561デフォルトの名無しさん
2017/10/17(火) 18:47:49.98ID:ELG/Hivs てすと
■ このスレッドは過去ログ倉庫に格納されています
