1 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 10:09:07.13 ID:phwOkayR.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 前スレ プログラミングのお題スレ Part10 https://mevius.5ch.net/test/read.cgi/tech/1514772904/ プログラミングのお題スレ Part11 https://mevius.5ch.net/test/read.cgi/tech/1524570314/
75 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 00:03:10.45 ID:uHP11E7s.net] C言語スレとかのいろいろな所に出没してる半角先生だ どこでも相手にされなくなったから出題しに来た
76 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 09:42:44.92 ID:hOT3iUsl.net] サマータイムスレでの暴論って何なんだろう? まさかのサマータイム賛成なんて奴だったら許せんな。
77 名前:デフォルトの名無しさん [2018/10/10(水) 16:39:18.23 ID:slDdF7J+.net] お題 倍精度実数で整数部分が正確に表現できる最大値を求める
78 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 17:03:11.31 ID:8BTNYbZT.net] 浮動小数点実数型と言えど最大要素に近い 部分は、整数×2^整数という形の整数也
79 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 17:03:47.89 ID:8BTNYbZT.net] 整数×2^自然数 だた
80 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 17:4
] [ここ壊れてます]
81 名前:1:41.04 ID:8BTNYbZT.net mailto: (2^m-1)×2^n という形 [] [ここ壊れてます]
82 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 18:05:44.00 ID:TfVezTBt.net] 区間を求めるなら仮数部だけで収まる最大値だけど、 とある数の整数部が正しく表現されているだけなら仮数部も込みで double の最大値が答え それを std::numeric_limits<double>max() や DBL_MAX を使わずに計算せよ、ということか
83 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 19:38:40.27 ID:TfVezTBt.net] >>75 を2分探索で計算で出すコード書いてて ideone のコンパイラのバグ見つけた気がする https://ideone.com/D3ip5M if 文の条件式の値が1なのに実行されない find_max<char> とか int32_t で起きる 何か間違ってるかな
84 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 20:37:17.47 ID:GOApHyvI.net] 符号付き整数オーバーフロー(未定義動作)のせいで 変な最適化でもかかってるんじゃね?
85 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 21:07:51.69 ID:3iBo9D9z.net] >>69 通常 JDは UTCを元にするので閏秒は考慮しないと思いますよ、 天文計算などする場合は必要に応じて UT1とかに変換しているのじゃないかと?
86 名前:デフォルトの名無しさん mailto:sage [2018/10/10(水) 22:22:14.63 ID:TfVezTBt.net] >>81 なるほど。 オーバフローが未定義動作だとすると符号付整数の最大値を求めるのは難しそうだな。
87 名前:デフォルトの名無しさん [2018/10/11(木) 00:30:47.35 ID:p15CvoFg.net] ものすごい頭悪いこといってるわ。。。 UTCは う る う 秒 入 れ た 時 刻 のことだぞ マジでなんでこんな頭悪いの 天文でつかわれるユリウス日なんかはアホがいうとおり固定 1光年も固定でもないとヤバイからな 1光年は光が1ユリウス年(365.25日)進む距離になる そもそもオレの課題ではそんなことを問題になんかしてないからな 課題どおりにやればいい
88 名前:デフォルトの名無しさん [2018/10/11(木) 00:34:27.93 ID:p15CvoFg.net] 低学歴知恵遅れが知ったぶりしてハジかく典型的な例といっていい 低学歴知恵遅れはいちいち自分が低学歴知恵遅れですと自白するからな
89 名前:デフォルトの名無しさん [2018/10/11(木) 01:18:58.62 ID:ZbBeURnP.net] おまえまたくっさいくっさい自演しとんのか
90 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 12:46:49.51 ID:ZOnVTpMr.net] 誰からも相手にされなくなったか
91 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 13:22:48.89 ID:yY2EC70D.net] 相手にされなくなったんで問題だせば自動的に相手にされると思い込んでいる その辺りが半角先生の思考の限界
92 名前:デフォルトの名無しさん [2018/10/11(木) 14:46:25.14 ID:MYvNBgY5.net] ここが適切なのかわかりませんが、知恵を頂けたら幸いです。 当方CGクリエーターで、プログラミングの知識は殆どありません。 そこで質問なのですが、 Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、 Bのワールド位置を維持して、BをAのローカル座標位置へ移動させるには どのような行列式になるでしょうか? ネットで座標変換とか色々調べてみましたが、子のワールド位置を維持した状態で 親に該当するローカル座標へ移動させる方法がわかりませんでした。 本来の目的としては、 CGアニメーションソフトのコンストレイント機能にペアレントがありますが、 それを行列式(ノード)で行いたいのです。 (コンストレインのペアレントとは、 時間軸上の任意の位置で親子関係の接続や解除を行うことが出来る機能です。 その接続/解除時には、子は現在のワールド位置を維持します。
93 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 15:04:14.07 ID:3Bdkvxy9.net] スレ違い 「3d 行列」で検索!
94 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 15:26:21.10 ID:ZOnVTpMr.net] >>89 スレのルールに則れば誰か答えてくれるかもね
95 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 16:45:05.30 ID:NcfxmDj4.net] >>89 >Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、 (1,2,3) を (-1,-2,-3) からの相対値で表すということなら (1,2,3) 引くことの (-1,-2,-3) イコール (2,4,6)
96 名前:デフォルトの名無しさん mailto:sage [2018/10/11(木) 21:49:13.39 ID:anEb94RG.net] >>69 >B Aにうるう秒をいれて正確に相互変換できるようにしなさい >>84 >UTCは う る う 秒 入 れ た 時 刻 のことだぞ うるう秒を入れるでなく、外すが正解ですね。すでに UTCには閏秒が入っていますから。 UTC(協定世界時)は TAI(国際原子時)を元に閏秒で補正して UT1(世界時)に合わせています。 7:00:00(UTC)の一日先の時間が24h+-1sec(閏秒)でも時刻は7:00:00(UTC)となるわけです。 よって JDに24hを足すと翌日になり JD/24h%7で曜日が分かります。 未来の日付も計算可能ですが、閏秒を入れないTAI(国際原子時)では地球の自転次第で変化します。 >天文でつかわれるユリウス日なんかはアホがいうとおり固定 逆です、天文計算で使うような時間は UT(世界時)を基準にしています。 それは天体の運動方程式を解くために基準の時刻からの正確な時間が必要だからです。
97 名前:デフォルトの名無しさん [2018/10/11(木) 23:02:27.87 ID:p15CvoFg.net] https://warwick.ac.uk/fac/sci/physics/research/astro/people/steeghs/mpags-as2/mpags_techniques_2012_1b.pdf ・International Atomic Time (TAI) - SI second defined by frequency of hyperfine transition of cesium133 - Measured and counted with international network of atomic clocks ・Co-ordinated Universal Time (UTC) - Our civil time (in winter) - Based on SI second, with 86400s/day - Kept synchronised with UT1 since 1972 by addition of leap seconds - Leap seconds not added to TAI, so TAI-UTC is not constant - Currently (Nov 2012) TAI - UTC = 35s - Use of leap secs currently under discussion (inconvenient for astro) ・Co-ordinated Universal Time (UTC) - Currently (Nov 2012) TAI - UTC = 35s ・Calendar is independent of time system, so state both, e.g. - 2011 November 11 11:00:00.0 UTC - 2011 November 11 11:00:34.0 TAI - JD 2455876.958333 UTC - JD 2455876.958727 TAI コレでオレの課題ができないなら 人間やめたほうがいい
98 名前:デフォルトの名無しさん [2018/10/12(金) 01:38:38.44 ID:xbwLlD7o.net] >>75 倍精度って、これでいいの? https://ja.wikipedia.org/wiki/%E5%80%8D%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0 とすると -2^53 〜 2^53 になるわけでプログラムを作る必要性がないわけだが。 それとも仮数部が何ビットか分からない倍精度実数のビット数を求めるプログラムを作れってこと?
99 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 02:02:42.62 ID:ZYTXH3K/.net] プログラミングのお題 「10以下の素数の和を求めよ」 答え 「17。コード書くまでもないんだがこれでいいのか?」 これはおかしいだろう
100 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 02:23:49.18 ID:I/tzu8NI.net] >>96 ruby n = 10 Prime.reduce(0){|s, i|break(s) if i > n; s + i}
101 名前:デフォルトの名無しさん [2018/10/12(金) 02:35:54.36 ID:xbwLlD7o.net] え?じゃ、こんな感じ? perl -e 'for($n=1;(2**$n)!=(2**$n+1);$n++){} printf "%d, %.0f\n", $n, 2 ** $n;' 動かすとこう出るが。 53, 9007199254740992
102 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 06:06:04.48 ID:j3qUjmca.net] >>96 Pharo/Squeak Smalltalk (Integer primesUpTo: 10) sum
103 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 07:40:50.69 ID:GdhRssFx.net] >>96 ruby -rPrime 'p Prime.first(10).sum' #=> 17
104 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 09:39:43.72 ID:1UpgDbu2.net] first(10)って普通は最初の10個を列挙するもんだがrubyは違うのか… 名前重要ってわりにセンスないな
105 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 10:33:46.63 ID:oIm8hJ6E.net] じゃあちなみにこの関数名は何ならいいんだ? お前の考えを言ってみろよ センスを判定してやるよ
106 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 10:49:03.90 ID:6UbBSJp3.net] first(10)が10までってセンスは普通におかしいだろ つーかrubyも最初の10個返すんだが…?
107 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 13:22:40.26 ID:+EEi3z6C.net] 誰も動作を疑わずに書かれたものを脳死で信じるいい例だな、 >>100 のは17にはならん
108 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 13:50:43.62 ID:oIm8hJ6E.net] ruby/ruby: The Ruby Programming Language ttps://github.com/ruby/ruby そりゃそうだろ スクリプト言語のソースコードは公開されてて誰でも読めるが 大抵のユーザーは書かれたものを脳死で信じるしかないだろ それともお前は使うスクリプト言語のソースコードは全部精査してるのか? コンパイラのソースコードまで熟読してるのか? ンなモン、脳死で信じるしかねーだろ
109 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 13:54:46.58 ID:VST6PShP.net] 最近JavaとかC++とか少ないな Javaは例の騒動があるから仕方ないとしてCとかC++はないんか
110 名前:デフォルトの名無しさん [2018/10/12(金) 16:36:53.91 ID:OhxorjMK.net] >>106 >>80 はC++だね。
111 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 18:59:19.35 ID:eR+rcBR9.net] >>96 ruby require 'prime' p Prime.take_while {|i| i < 10}.inject(:+)
112 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 20:05:50.75 ID:oyAlSwuR.net] >>106 例の騒動って何
113 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 20:13:31.37 ID:jorGy8Se.net] >>80 gcc8.1だと char (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 0 (!(n > d && is_usual_num(n))) 1 (!(n > d && is_usual_num(n))) 0 break calculated = -128 numeric_limits = 127 128 127 となるね
114 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 21:22:44.25 ID:+EEi3z6C.net] ORACLEがお金取りますよってやつじゃない?
115 名前:デフォルトの名無しさん mailto:sage [2018/10/12(金) 21:27:58.87 ID:+EEi3z6C.net] なぜか言語自体のコード読む読まないの話になってるけど、これくらいのコードなら動かせばすぐにfirstが何してるか分かるじゃん、って思っただけだわ
116 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 10:05:11.14 ID:m4emGyLz.net] お題 方程式 1/n = 1/x + 1/y (ただし、n,x,yは正整数でx≦y)について考える 例えばn=4のとき、1/4 = 1/5 + 1/20 = 1/6 + 1/12 = 1/8 + 1/8 より解の個数は3である 上限Mが与えられたとき、上の方程式の解の個数がMを超える最小のnの値を求めよ 2 -> 4 5 -> 12 10 -> 24 100 -> 1260 1000 -> 180180 10000 -> 116396280 250000000000 -> ?
117 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 11:29:08.44 ID:4qDoRB+X.net] つまんない
118 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 11:32:11.63 ID:QkDteBzw.net] >>113 n = 2の時 1/4 + 1/4 = 1/2 1/3 + 1/6 = 1/2 だけだから結果は2だよ n=4の時より大きくなることはあり得ないし
119 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 11:52:27.26 ID:QkDteBzw.net] ごめん。>>115 は勘違い無視して
120 名前:デフォルトの名無しさん mailto:sage [2018/10/13(土) 17:46:23.51 ID:QtssFn
] [ここ壊れてます]
121 名前:Iu.net mailto: >>113 Java https://ideone.com/Y57fPl [] [ここ壊れてます]
122 名前:デフォルトの名無しさん mailto:sage [2018/10/15(月) 17:32:39.82 ID:lmCCx0VP.net] 回答一人で出題者からの返事がないとあってるかどうかわからないから困る
123 名前:デフォルトの名無しさん [2018/10/17(水) 11:31:35.00 ID:UkGf74ne.net] お題 [0,1]の一様乱数をN個発生させ、小さい順に並べてa(1), ..., a(N)とする 同様にもうN個作って小さい順にb(1), ..., b(N)とする 同じ順位同士で(a(1), b(1)), ..., (a(N), b(N)) とペアを作った時、a>bとなるペアの個数は0〜N個になるが、その分布は? またa, bを一様分布以外の分布から取ってくるとどうなる?
124 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 12:32:44.20 ID:DKH+Jm9W.net] >>119 それはプログラミングで解くお題なのか?
125 名前:デフォルトの名無しさん [2018/10/17(水) 13:07:54.93 ID:OYXuI76a.net] >>120 シミュレーションしてみるのも面白いかなと
126 名前:デフォルトの名無しさん [2018/10/17(水) 13:50:50.88 ID:8efdFbKL.net] 趣味で
127 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 14:07:56.22 ID:4awkQadJ.net] これはひどい
128 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 15:35:45.15 ID:5mPHIqhK.net] プログラミングで解くということに挑戦することから逃げるプログラマー
129 名前:デフォルトの名無しさん [2018/10/17(水) 15:55:41.32 ID:mC+TJhph.net] 数学に逃げちゃ駄目だ。
130 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:12:22.62 ID:DXXGfTNm.net] 乱数全部同じパターンを引いてもその結果のみから分布を論じてかまわないというならそれでもいいがな
131 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:34:51.31 ID:slnS35LM.net] ちょっとやってみた J で NB. monadic sort operator sort=: /:~ NB. monadic operator returns count of a_n > b_n NB. where a and b is sorted y-length array of rand(1000) do1=: verb define a =. sort ?y$1000 b =. sort ?y$1000 +/ (a>b) ) NB. dyad operator returns count of number x in array y count=: dyad define +/ (x = y) ) 続く
132 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:35:05.08 ID:IG2KKzqQ.net] >>119 Squeak/Pharo Smalltalkでシミュレーションのみ 擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller) | N M random bag | N := 10. M := 1e6. random := Random new. bag := Bag new. M timesRepeat: [ | pairs count | pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}]. count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair]. bag add: count ]. bag sortedElements "Squeak =>{ 0->981. 1->9873. 2->44008. 3->117136. 4->205258. 5->246203. 6->204286. 7->117345. 8->44247. 9->9702. 10->961} "
133 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:38:20.84 ID:cKcilnbV.net] >>119 Squeak/Pharo Smalltalkでシミュレーションのみ 擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller) | N M random bag | N := 10. M := 1e6. random := Random new. bag := Bag new. M timesRepeat: [ | pairs count | pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}]. count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair]. bag add: count ]. bag sortedElements "Squeak =>{ 0->981. 1->9873. 2->44008. 3->117136. 4->205258. 5->246203. 6->204286. 7->117345. 8->44247. 9->9702. 10->961} "
134 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:40:58.97 ID:wdgUzBYj.net] あ、誤連投&Jのにきスマン
135 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:41:12.83 ID:slnS35LM.net] 続き NB. 長さ100の配列で100000回試行 r =: (do1 "0) 100000$100 NB. r を表示 r => 43 77 58 31 23 36 59 26 85 15 73 72 4 34 0 26 22 26 85 70 95 2 64 46 22 84 22 86 78 39 51 34 92 94 68 98 47 38 68 92 48 43 19 97 80 18 13 65 76 79 17 88 19 39 72 74 16 54 32 11 99 3 80 32 94 25 87 91 ... NB. 0...100 の各数値の出現数 (i. 101) (count "0 1) r => 109 107 118 94 104 93 98 100 76 87 97 102 93 98 101 94 94 90 112 107 92 103 109 97 112 89 113 118 97 108 96 81 86 103 87 102 107 101 95 90 96 102 96 87 100 88 108 115 97 119 129 104 94 100 104 101 114... NB. グラフ化 plot (i. 101) (count "0 1) r https://i.imgur.com/QSKqVC6.jpg 一様分布っぽい
136 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:43:54.06 ID:slnS35LM.net] だいぶ結果が違っててわろすw >>128 ソート忘れてないか?
137 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 17:47:40.41 ID:slnS35LM.net] 理屈で考えると乱数がどんな分布でも a、b の分布が同じならコレの結果は常に同じ分布か
138 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 19:01:16.05 ID:wdgUzBYj.net] なんか書き込めん… >>132 たしかに^^; pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}]. で同じ分布になった
139 名前:デフォルトの名無しさん [2018/10/17(水) 22:28:10.42 ID:9jVKFKz5.net] ハローワールドの次にやる問題ってなんだろう
140 名前:デフォルトの名無しさん [2018/10/17(水) 22:28:34.01 ID:Ny9Q/0jK.net] ハローワークへ行きなさい
141 名前:デフォルトの名無しさん mailto:sage [2018/10/17(水) 22:47:23.45 ID:ysrRFDeq.net] >>135 echoかfizz buzzでもやれば
142 名前: mailto:sage [2018/10/17(水) 23:45:01.56 ID:DyWl92+N.net] >>137 >echo ?
143 名前:デフォルトの名無しさん [2018/10/18(木) 09:27:49.01 ID:xtVP5nmJ.net] >>138 echoコマンドの実装ってことじゃない? \0xxx や \n も解釈するようなの作ると初心者には結構勉強になるかも。
144 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 19:47:17.70 ID:3zhbamE0.net] 136本人が出てきて答えなさい
145 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 22:31:25.80 ID:qi6SRLg2.net] ハローワールドの次ぐらいだとすごろくとかじゃない
146 名前:デフォルトの名無しさん [2018/10/19(金) 16:49:17.22 ID:F1UCQFsO.net] お題 標準入力から入力したデータをそのまま標準出力人出力する
147 名前:デフォルトの名無しさん [2018/10/19(金) 17:05:33.84 ID:veK9KPY5.net] 3dnchu.com/archives/tree-it/ このようなソフトはvisual studioで作るんですか? なんの言語がいいか教えてください
148 名前:デフォルトの名無しさん [2018/10/19(金) 17:15:05.14 ID:gPrGaWTX.net] >>142 cat
149 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 18:18:43.95 ID:rCjk/mnI.net] >>144 Brainfuck ,[.,]
150 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 18:19:25.68 ID:rCjk/mnI.net] 安価ミス >>144 -> >>142
151 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 20:16:34.44 ID:qai0UNii.net] お題 マルチバイト文字だけ文字化けさせて出力
152 名前:デフォルトの名無しさん [2018/10/19(金) 20:39:51.48 ID:5dseSh/K.net] >>147 Python https://ideone.com/sT2p2O
153 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 03:08:59.15 ID:gD7ZVb6v.net] iso-8859-2を入力したら文字化けしたりUTF-7を入力したら文字化けしなかったりするのは美しくないから文字コードを指定させないといかん
154 名前:デフォルトの名無しさん [2018/10/20(土) 05:27:36.15 ID:qwv4GmvH.net] >>147 Kotlin https://paiza.io/projects/jg9Pa-PO2UCwSLFPL3draw 入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。 つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。 化け方は2通りでサロゲートペアの文字は % になりその他は * になる。
155 名前:デフォルトの名無しさん [2018/10/20(土) 17:10:58.56 ID:hxCjYBWY.net] >>142 Io File standardInput contents print
156 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 17:46:57.83 ID:cv2X893a.net] お題: 超簡単なステートマシン 以下の3つのデータがランダムに入力される。 1: hi 2: wake up 3: sleep 1が入力された場合、状態がwake up
157 名前:であれば「hello」、状態がsleepであれば「zzz...」と出力せよ。 2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。 [] [ここ壊れてます]
158 名前:デフォルトの名無しさん [2018/10/20(土) 18:05:02.67 ID:Nttc2RvP.net] >>152 つまり、hi以外で2、3に該当しない奴も無視で良いの?(hiは無視で良いんだよね) データは勝手に標準入力にするけど。 (リダイレクトでファイルからに出来るし)
159 名前:デフォルトの名無しさん [2018/10/20(土) 18:08:05.20 ID:Nttc2RvP.net] あれ、違うぞ? hiが入力された時、「かつ」wake upだったら”hello”出力か。 んでsleepなら”zzz...”ね。 それ以外無視と。 了解。
160 名前:デフォルトの名無しさん [2018/10/20(土) 18:12:34.08 ID:Nttc2RvP.net] てか、1ー3の数字だけで良いわ。 状態の意味はわかったけど、状態の文字は要らんね。
161 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 18:16:14.29 ID:xvv7H8Vz.net] それ以外をどう考慮すべきかは書かれてないから、 ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉 そんなことよりステートマシンなら初期状態は与えろよw
162 名前:デフォルトの名無しさん [2018/10/20(土) 18:28:45.80 ID:AUqXYm6F.net] >>152 python3 state = "sleep" while True: x = input("> ") if x == "hi": print("zzz..." if state == "sleep" else "hello") elif x == "wake up": state = "wake up" elif x == "sleep": state = "sleep" else: print("invalid input.")
163 名前:デフォルトの名無しさん [2018/10/20(土) 18:42:18.95 ID:Nttc2RvP.net] #include <stdio.h> #include <conio.h> int main(void) { char c,state = 0; while(1) { c = getchar(); switch(c) { case '1': if(state == '2') { printf("hello"); } else if(state == '3') { printf("zzz..."); } break;
164 名前:デフォルトの名無しさん [2018/10/20(土) 18:43:23.41 ID:Nttc2RvP.net] case '2': state = '2'; break; case '3': state = '3'; break; default: break;
165 名前:デフォルトの名無しさん [2018/10/20(土) 18:43:31.11 ID:Nttc2RvP.net] } } return 0; } バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力) conio.hは環境依存だけど、どうせWinだろ。 stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。 面倒臭かったからステータスは数字に直さず文字そのまま使った。
166 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 20:20:44.01 ID:WvTfEY4N.net] お題 2つの区間の共通部分を出力せよ [1,3] [2,4] => [2,3] (1,2) [1,2] => (1,2) [0,100) (5,+inf) => (5,100) (-inf,2] [1,+inf) => [1,2] [1,2) [2,3) => {}
167 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 21:46:37.40 ID:O4sbTglp.net] >>152 ruby -nle"$_!=?1?($t=-$_.to_i):(puts %w[zzz... hello _][$t])"
168 名前:デフォルトの名無しさん [2018/10/21(日) 04:42:48.87 ID:sz/a4USN.net] >>152 Kotlin https://paiza.io/projects/RpML2-t6V1kplmMq_f0usw 初期状態は sleep にした。 wake up と sleep 以外の入力に対しては ERROR を出力して状態は変化させないようにした。 入力が何だったか分かるようにするために行頭に >> を付けて入力文字列を出すようにした。
169 名前:デフォルトの名無しさん [2018/10/21(日) 04:53:27.38 ID:sz/a4USN.net] >>152 Perl の1行プログラム perl -ne 'BEGIN{$s=0;%x=("sleep"=>0,"wake up"=>1);%r=(0=>"zzz...",1=>"hello")}print ">> $_";chomp;\ if(defined($x{$_})){$s=$x{$_}}elsif($_ eq "hi"){print"$r{$s}\n"}else{print "ERROR\n"}' 仕様は>>163 と同じ。 1行が長くなったので1行目の行末に \ を入れて2行に分けて書いてある。
170 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 09:26:11.61 ID:3Rh2KUxU.net] >>152 java https://ideone.com/fp
171 名前:KVdM [] [ここ壊れてます]
172 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 09:40:05.59 ID:UVDgsDD7.net] >>152 GNU Smalltalk 入力は、数値ではなくメッセージで 状態推移は、クラスチェンジで(つまりインスタンス変数なし&条件分岐なし) …な感じで、他言語では思いつきにくい実装で遊んでみました Object subclass: Machine [ wakeUp [ ^self ] sleep [ ^self ] hi [ self subclassResponsibility ] state [ ^self class displayNl ] Other := nil. ] Machine class extend [ new [ ^WakeUp basicNew ] ] Machine subclass: WakeUp [ hi [ 'hello' displayNl ] ] Machine subclass: Sleep [ hi [ 'zzz...' displayNl ] ] Machine extend [ Other := Sleep basicNew ] WakeUp extend [ sleep [ ^self become: Other ] ] Sleep extend [ wakeUp [ ^self become: Other ] ] | machine | machine := Machine new. machine state. "=> WakeUp " machine hi. "=> hello " machine sleep; state. "=> Sleep " machine hi. "=> zzz... " machine wakeUp; state. "=> WakeUp " machine wakeUp; state. "=> WakeUp " machine sleep; state. "=> Sleep " machine sleep; state. "=> Sleep " https://ideone.com/vyCRfq
173 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 11:09:36.22 ID:S2kctYlU.net] >>152 PowerShell、初期状態は 'Sleep' function StateMachine { param([parameter(ValueFromPipeline=$true)][string]$Event) begin { $InSleep = $true } process { switch($Event){ 'hi'{ Write-Host "$(if($InSleep){'zzz...'}else{'hellow'})"} 'wake up'{$InSleep=$false} 'sleep'{$InSleep=$true} } } } 'hi','sleep','hi','wake up','hi' | StateMachine
174 名前:デフォルトの名無しさん [2018/10/21(日) 18:51:44.61 ID:7SU77e8C.net] >>161 Python3 https://ideone.com/BBteSk infは対応してないので1億とか適当な大きい値で代用
175 名前:デフォルトの名無しさん [2018/10/21(日) 22:29:32.21 ID:4ZLg1Jin.net] >>142 Lua io.write(io.read("*a"))