プログラミングのお題スレです。
前スレ
プログラミングのお題スレ 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
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 てすと
562デフォルトの名無しさん
2017/10/18(水) 11:15:59.21ID:xwRaz5Kx563デフォルトの名無しさん
2017/10/18(水) 11:35:57.38ID:bG8m3FQp ああ。なんとなくわかった。10の桁数乗の値で割るとそっくりそのまま小数点以下になるが
1足りないから循環するのか。ああ、しかし、数学的にどう表現したらいいかわからない。w
1足りないから循環するのか。ああ、しかし、数学的にどう表現したらいいかわからない。w
564デフォルトの名無しさん
2017/10/18(水) 15:51:59.37ID:+Osy4cjh お題:顔文字(^o^)があります。この(^o^)を左右に動かしながら出力します。(^o^)は左から右へ一文字ずつ動き、端に到達した瞬間だけ(^o^)から(>_<)に変化し、また(^o^)に戻って左端へ行き、同じように繰り返します。
端から端までは最初80文字分の幅がありますが、(^o^)が端に達した回数だけ1文字ずつ狭くなっていき、最終的に(^o^)の端まで狭くなり、(^o^)が動けなくなります。(^o^)が動けなくなったらプログラムを終了してください。
端から端までは最初80文字分の幅がありますが、(^o^)が端に達した回数だけ1文字ずつ狭くなっていき、最終的に(^o^)の端まで狭くなり、(^o^)が動けなくなります。(^o^)が動けなくなったらプログラムを終了してください。
565デフォルトの名無しさん
2017/10/18(水) 17:36:32.86ID:jSYDae9q566デフォルトの名無しさん
2017/10/18(水) 19:53:42.77ID:4F2aMcKp ウインドウズでエスケープシーケンス扱うのにおまじないいるからメンドクセー。
567デフォルトの名無しさん
2017/10/18(水) 21:05:28.73ID:xwRaz5Kx568デフォルトの名無しさん
2017/10/19(木) 01:56:08.11ID:Lj1i7npR569デフォルトの名無しさん
2017/10/19(木) 03:35:28.31ID:CNJYIyj0 じゃ、とりあえず CR 出力版。Perl プログラム。
但し、待ち時間入れないと速すぎて見えないので適当に usleep を入れた。
テストした環境は Linux で端末は Windows の TeraTerm。
TERM=xterm の状態。
但し、プログラムを貼り付けたサイト(paiza.io)での出力はおかしくなる。
何故なら端末として動いてないから。
試したい場合はプログラムをコピーして自分の環境のエディタ等にペーストして保存後に実行して。
https://paiza.io/projects/rQDCQizcsrydlcrkxylR1w
但し、待ち時間入れないと速すぎて見えないので適当に usleep を入れた。
テストした環境は Linux で端末は Windows の TeraTerm。
TERM=xterm の状態。
但し、プログラムを貼り付けたサイト(paiza.io)での出力はおかしくなる。
何故なら端末として動いてないから。
試したい場合はプログラムをコピーして自分の環境のエディタ等にペーストして保存後に実行して。
https://paiza.io/projects/rQDCQizcsrydlcrkxylR1w
570デフォルトの名無しさん
2017/10/19(木) 05:11:39.88ID:sgSfn4oM2017/10/22(日) 11:49:54.00ID:/Umsqxkx
お題:A〜Z、1〜9で出来たランダムな文字列がある(文字列はプログラム開始時に自動的に決めてよい)
キーを2つ決めて(←→キーが自然かも)例えば→キーを押すと、文字列のうち2〜9があるか
どうかを調べ、あればそのうち一つをランダムに選び、数字を一つ減らし(9なら8へ)、左右ランダムに
1を置く
つまり2以上の数字文字があればそこがゴムのような役目をして文字列が伸びる
全部の数字文字が1になったら何もしない
逆に例えば←キーを押すと、文字列のうち1〜8があるかどうかを調べ、そのうちランダムに一つを
選び、その左右どちらかに数字文字がないかを調べ、足した合計が9を超えないようなら足し合わせて
数字文字をその合計値にし、文字列を1つ縮める
足し合わせた合計が9を超えるようなら他の数字文字もランダムに同様に一つ選び、足し合わせて
9を超えない数字文字の部分が見つかったらそれを一つだけ足し合わせて縮める
全部の数字文字が9になるか、9に満たないが足し合わせると9を超えるようになったら何もしない
キーを2つ決めて(←→キーが自然かも)例えば→キーを押すと、文字列のうち2〜9があるか
どうかを調べ、あればそのうち一つをランダムに選び、数字を一つ減らし(9なら8へ)、左右ランダムに
1を置く
つまり2以上の数字文字があればそこがゴムのような役目をして文字列が伸びる
全部の数字文字が1になったら何もしない
逆に例えば←キーを押すと、文字列のうち1〜8があるかどうかを調べ、そのうちランダムに一つを
選び、その左右どちらかに数字文字がないかを調べ、足した合計が9を超えないようなら足し合わせて
数字文字をその合計値にし、文字列を1つ縮める
足し合わせた合計が9を超えるようなら他の数字文字もランダムに同様に一つ選び、足し合わせて
9を超えない数字文字の部分が見つかったらそれを一つだけ足し合わせて縮める
全部の数字文字が9になるか、9に満たないが足し合わせると9を超えるようになったら何もしない
572デフォルトの名無しさん
2017/10/23(月) 04:21:48.29ID:sHZ1Pe4U >>571
https://ideone.com/pjZbOc
C++。デバッグ難しくてやる気がしないのでバグってるかも。
カーソルキー取るの面倒だからASキーにしておいた。
こんな感じでいいのか?
何のシミュレータかしらんけどめんどくせーな。
https://ideone.com/pjZbOc
C++。デバッグ難しくてやる気がしないのでバグってるかも。
カーソルキー取るの面倒だからASキーにしておいた。
こんな感じでいいのか?
何のシミュレータかしらんけどめんどくせーな。
573デフォルトの名無しさん
2017/10/23(月) 04:35:24.25ID:sHZ1Pe4U あ、それと、文字列で計算するのめんどくさかったから、数字でやった。
そっち事情なんか知ったこっちゃない。
そっち事情なんか知ったこっちゃない。
574デフォルトの名無しさん
2017/10/23(月) 05:46:30.69ID:iFI38Dlw %%%%1000%%%%
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
575デフォルトの名無しさん
2017/10/23(月) 17:28:50.67ID:f/2PkHQ/ >>574
全く読めねぇw
全く読めねぇw
576デフォルトの名無しさん
2017/10/23(月) 20:53:32.54ID:burVCZw1 ランダムの分布は指定なし?
577デフォルトの名無しさん
2017/10/23(月) 23:01:59.68ID:sHZ1Pe4U いろんなところでたまに見かけるけど、>>547 ってPGなの?
578デフォルトの名無しさん
2017/10/24(火) 06:49:36.20ID:kt50Dt6N PGとは?
579デフォルトの名無しさん
2017/10/24(火) 07:14:59.91ID:Ohc+APnW プロパンガス
580デフォルトの名無しさん
2017/10/24(火) 08:55:25.49ID:TzjXrYm3 パーフェクトグレイド
581デフォルトの名無しさん
2017/10/24(火) 11:04:02.33ID:2qWQgTrR582デフォルトの名無しさん
2017/10/24(火) 21:14:43.61ID:6ceRFBNE >>581
さんくす。
さんくす。
583デフォルトの名無しさん
2017/10/25(水) 20:13:14.36ID:gieh1Z5o お題
())())のように括弧のみからなる文字列が与えられるので
すべての括弧が正しく対応付けされるためには
最低で何箇所の括弧を逆向きに変更すればよいか求めよ
例えば上の例では2文字目か3文字目を変更すればよいので1を出力せよ
何文字変更しても正しく対応付けできない場合は-1を出力せよ
) -> -1
())()) -> 1
)()()( -> 2
)))((( -> 4
(())())((())(()( -> 3
())((())()))()(((()))()((((((((()()(())) -> ?
())())のように括弧のみからなる文字列が与えられるので
すべての括弧が正しく対応付けされるためには
最低で何箇所の括弧を逆向きに変更すればよいか求めよ
例えば上の例では2文字目か3文字目を変更すればよいので1を出力せよ
何文字変更しても正しく対応付けできない場合は-1を出力せよ
) -> -1
())()) -> 1
)()()( -> 2
)))((( -> 4
(())())((())(()( -> 3
())((())()))()(((()))()((((((((()()(())) -> ?
584デフォルトの名無しさん
2017/10/25(水) 21:21:26.00ID:/TQ9iqwZ585デフォルトの名無しさん
2017/10/26(木) 00:42:38.67ID:0Gn/TXrF586デフォルトの名無しさん
2017/10/26(木) 07:09:40.17ID:vEkFybta587デフォルトの名無しさん
2017/10/26(木) 08:33:36.44ID:8oLfrbud おむ
588デフォルトの名無しさん
2017/10/26(木) 08:35:57.56ID:8oLfrbud 誤爆
>>583 Ruby
def calc str
return -1 if str.size.odd?
ary = optimise str.scan(/(?=.)(\(*)(\)*)/).map{|a, b| a.size - b.size}
(-ary[0] + ary[1].to_i).abs/2 + ary[0]%2
end
def optimise ary
a = ary.reject(&:zero?).chunk(&:positive?).to_a.transpose[1].map(&:sum)
return a if a.size < 3
a.unshift(0) if a[0] < 0
optimise a.each_slice(2).map(&:sum)
end
STR = %w{
)
())())
)()()(
)))(((
(())())((())(()(
())((())()))()(((()))()((((((((()()(()))
}
STR.each{|s| puts "%s -> %d"%[s, calc(s)]} #=>
) -> -1
())()) -> 1
)()()( -> 2
)))((( -> 4
(())())((())(()( -> 3
())((())()))()(((()))()((((((((()()(())) -> 5
>>583 Ruby
def calc str
return -1 if str.size.odd?
ary = optimise str.scan(/(?=.)(\(*)(\)*)/).map{|a, b| a.size - b.size}
(-ary[0] + ary[1].to_i).abs/2 + ary[0]%2
end
def optimise ary
a = ary.reject(&:zero?).chunk(&:positive?).to_a.transpose[1].map(&:sum)
return a if a.size < 3
a.unshift(0) if a[0] < 0
optimise a.each_slice(2).map(&:sum)
end
STR = %w{
)
())())
)()()(
)))(((
(())())((())(()(
())((())()))()(((()))()((((((((()()(()))
}
STR.each{|s| puts "%s -> %d"%[s, calc(s)]} #=>
) -> -1
())()) -> 1
)()()( -> 2
)))((( -> 4
(())())((())(()( -> 3
())((())()))()(((()))()((((((((()()(())) -> 5
589デフォルトの名無しさん
2017/10/26(木) 19:12:02.71ID:MqWL4ZqL590デフォルトの名無しさん
2017/10/27(金) 22:31:59.57ID:sfTuRN3o591デフォルトの名無しさん
2017/11/04(土) 00:05:20.36ID:4+O3ouw4 Quineの派生ということで、コードそれ自身を反転させたものを出力せよ
反転とは文字列"abc\ndef"を"fed\ncba"にすること
反転とは文字列"abc\ndef"を"fed\ncba"にすること
592デフォルトの名無しさん
2017/11/04(土) 01:52:41.37ID:P09Vk2Mx 数列 6,66,666,6666,66666.....
これをダミアン数列と呼ぶことにしましょう
nを自然数としたときn^n(^はべき乗)の桁数(10進数で)が
ダミアン数列のどれかになることはあるか?
初歩的な計算で7^7=823543が6桁になることがわかります
問 このような不吉な数は
7のみである
有限個存在する
無限に存在する
ここまで書いてみたけどこの問題だとプログラミングのお題じゃないね
数論で解けるのかなあ?
改めてお題
ダミアン数列の最初の10項につながる不吉な自然数はあるか、あるとすれば
その数はいくつか
力技では時間が掛かりすぎると思うので工夫してみてください
これをダミアン数列と呼ぶことにしましょう
nを自然数としたときn^n(^はべき乗)の桁数(10進数で)が
ダミアン数列のどれかになることはあるか?
初歩的な計算で7^7=823543が6桁になることがわかります
問 このような不吉な数は
7のみである
有限個存在する
無限に存在する
ここまで書いてみたけどこの問題だとプログラミングのお題じゃないね
数論で解けるのかなあ?
改めてお題
ダミアン数列の最初の10項につながる不吉な自然数はあるか、あるとすれば
その数はいくつか
力技では時間が掛かりすぎると思うので工夫してみてください
593デフォルトの名無しさん
2017/11/04(土) 03:18:31.96ID:RXqoYVvx 意味不明
594デフォルトの名無しさん
2017/11/04(土) 03:39:51.41ID:pxF/c+yt >>591
https://ideone.com/1bQnxO
C++。VCオンリー。
ウニコード対応しようと思って色々やってたけど、なんかうまくいかねー。
一応VCではうまくいってるっぽいけど、GCCと共通のコードはまだ規格的にきつそうだ。
うへー。大変だったわ。やっぱ、文字列は鬼門。
https://ideone.com/1bQnxO
C++。VCオンリー。
ウニコード対応しようと思って色々やってたけど、なんかうまくいかねー。
一応VCではうまくいってるっぽいけど、GCCと共通のコードはまだ規格的にきつそうだ。
うへー。大変だったわ。やっぱ、文字列は鬼門。
595デフォルトの名無しさん
2017/11/04(土) 04:34:35.38ID:tUO6oLmA596デフォルトの名無しさん
2017/11/04(土) 08:04:59.76ID:bqd73Ayh >>591 Squeak/Pharo Smalltalk
thisContext method getSource reversed allButLast: 8
"=> '8 :tsaLtuBlla desrever ecruoSteg dohtem txetnoCsiht' "
thisContext method getSource reversed allButLast: 8
"=> '8 :tsaLtuBlla desrever ecruoSteg dohtem txetnoCsiht' "
597デフォルトの名無しさん
2017/11/04(土) 10:09:48.41ID:VZ1zDZPp598デフォルトの名無しさん
2017/11/05(日) 14:54:08.02ID:rWIlHQ+T >>597 ruby
d="]esrever.d,d[%'d=p%;s%' stup";puts '%s;%p=d'%[d,d.reverse]
#=> ]esrever.d,d[%'d=p%;s%' stup;"puts '%s;%p=d'%[d,d.reverse]"=d
d="]esrever.d,d[%'d=p%;s%' stup";puts '%s;%p=d'%[d,d.reverse]
#=> ]esrever.d,d[%'d=p%;s%' stup;"puts '%s;%p=d'%[d,d.reverse]"=d
599デフォルトの名無しさん
2017/11/05(日) 14:54:35.06ID:rWIlHQ+T 安価ミスったorz
600デフォルトの名無しさん
2017/11/05(日) 22:47:04.05ID:Pt23fyK7 >>595
2で割らずにシフトしてたり芸が細かいですな
2で割らずにシフトしてたり芸が細かいですな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【学術団体】高市総理の台湾有事に関する発言を巡り、学者らが日中関係修復を求める緊急声明を発表… [BFU★]
- 中国と対話で良い関係つくるのが責任と首相 ★4 [少考さん★]
- 「脅迫だ」国分太一に同情論 音声データ削除要求など日テレの対応を疑問視する声ネットに噴出「それこそコンプラ違反では」 [muffin★]
- 生クリームだけの真っ白なクリスマスケーキ 大手メーカーが販売、その理由は…フルーツなしで価格は半額以下に ★3 [おっさん友の会★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★4 [Ailuropoda melanoleuca★]
- ぽっちゃりインフルエンサー藤田シオンさん(32) 「こう見えて76キロあります」→「サバ読むな」「どう見ても90kg」と批判受け謝罪 [muffin★]
- 【実況】博衣こよりのえちえちSSholox4周年切り抜き鑑賞🧪★2
- 【実況】博衣こよりのえちえちSSholox4周年切り抜き鑑賞🧪★3
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ167
- 【悲報】野田佳彦、高市さんの『存立危機事態』答弁を撤回 [519511584]
- 〇〇〇&〇〇〇の香水
- 高市早苗さん「私も具体的なことは話したくなかったの!しつこく聞いてくるから…」 [271912485]
