プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://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/
プログラミングのお題スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
2018/09/28(金) 10:09:07.13ID:phwOkayR
2018/10/09(火) 00:09:36.06ID:lL60bjnv
IEEE754関係ないやろ
Cのdoubleも環境依存やで
Cのdoubleも環境依存やで
2018/10/09(火) 02:53:53.02ID:z616RbAo
いや関係なかったら困るだろ
バグってんだか仕様だかわからなくなるぞ
バグってんだか仕様だかわからなくなるぞ
2018/10/09(火) 07:49:23.39ID:G0ViTg21
関係ないってそういう意味ではないのでは?
>>61の指摘することとIEEE 754は関係ないってだけで。
例えば32bitか64bitでdouble型の精度が違うなんて別に珍しいことではないと思うんですけど。
>>61の指摘することとIEEE 754は関係ないってだけで。
例えば32bitか64bitでdouble型の精度が違うなんて別に珍しいことではないと思うんですけど。
2018/10/09(火) 19:02:39.94ID:jSAcVkU7
> 32bitか64bitでdouble型の
ん? 32bitのdoubleなんてありえるの?
IEEE 754以外で倍制度を決めてる何かがあるの?
ん? 32bitのdoubleなんてありえるの?
IEEE 754以外で倍制度を決めてる何かがあるの?
2018/10/09(火) 21:21:14.72ID:7Krlta4j
>>60
たかだか30行程度のループも再帰もない一本道なので具体的に示してもらえるとありがたいです。
この種のプログラムは地デジの日付情報が MJDで ARIBの規格書にも載っていて、
ごく一般的に使われているので、もし問題があるようならばなんとかしたいですよね。
>( (c-122.1)/365.25 ).to_i
浮動小数点で JD が扱える精度+αくらいならこれは問題ないと思いますが。
c は整数ですし、分母の 365.25もすでに説明しましたね。
グレゴリオ暦6239年で JD が 4000000辺りで分子が 365.25の倍数前後は
4000217.1/365.25 と 4000218.1/365.25 だから仮数部が 19bitほどあればいいわけですね。
# こんな定数のままだとコンパイラが最適化してしまいますけどね
組み込み用途などによっては考慮すべきかもしれないけれど、
最初のお題(>>55 )ってそういう意図があったのでしょうか?
>このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない
これは特定の環境に限られたものを指していたのかな?
たかだか30行程度のループも再帰もない一本道なので具体的に示してもらえるとありがたいです。
この種のプログラムは地デジの日付情報が MJDで ARIBの規格書にも載っていて、
ごく一般的に使われているので、もし問題があるようならばなんとかしたいですよね。
>( (c-122.1)/365.25 ).to_i
浮動小数点で JD が扱える精度+αくらいならこれは問題ないと思いますが。
c は整数ですし、分母の 365.25もすでに説明しましたね。
グレゴリオ暦6239年で JD が 4000000辺りで分子が 365.25の倍数前後は
4000217.1/365.25 と 4000218.1/365.25 だから仮数部が 19bitほどあればいいわけですね。
# こんな定数のままだとコンパイラが最適化してしまいますけどね
組み込み用途などによっては考慮すべきかもしれないけれど、
最初のお題(>>55 )ってそういう意図があったのでしょうか?
>このサイトに書いてあるとおりに作るとプログラムの結果は正しくならない
これは特定の環境に限られたものを指していたのかな?
2018/10/09(火) 21:40:48.90ID:BHyo+myF
精度的に問題ないって理解してれば良いのでは
よく理解してない人が小数点使う必要ない場面で使って事故って何も分かりませんみたいな事あるし
コンシューマゲームなんかだとシビアなんで、癖みたいにしておかないとハマってしまうけど
よく理解してない人が小数点使う必要ない場面で使って事故って何も分かりませんみたいな事あるし
コンシューマゲームなんかだとシビアなんで、癖みたいにしておかないとハマってしまうけど
68デフォルトの名無しさん
2018/10/09(火) 22:33:03.53ID:uKgwXIAC >>55はココからが本当の本題
@ >>58のコードでの誤記の指摘は概ね正解 ただ>>58のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい
A @のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい
B Aにうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい)
参考URL:http://maia.usno.navy.mil/ser7/tai-utc.dat
Bは普通にやったら結構めんどい課題と考えられる
力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな)
コードの一部を出力するコードをサクッと作るぐらいの力量がなければ
きっとサクッとはできないしサクッと結果の評価もできないと考えられる
@ >>58のコードでの誤記の指摘は概ね正解 ただ>>58のコードの修正だけでは紀元前に対応していない 紀元前が対応するように修正しなさい
A @のプログラムの通日を整数の通ナノ秒にして、ナノ秒までの時刻を正確に相互変換できるようにしなさい
B Aにうるう秒をいれて正確に相互変換できるようにしなさい(制約で問題が発生する場合、問題が発生する時刻を書きなさい)
参考URL:http://maia.usno.navy.mil/ser7/tai-utc.dat
Bは普通にやったら結構めんどい課題と考えられる
力技でやるなら暇人以外にはオススメしない(力技でやらないほうがいいと一応警告しておいたからな)
コードの一部を出力するコードをサクッと作るぐらいの力量がなければ
きっとサクッとはできないしサクッと結果の評価もできないと考えられる
70デフォルトの名無しさん
2018/10/09(火) 22:56:04.77ID:uKgwXIAC2018/10/09(火) 23:20:13.38ID:UrO6v+ga
>>68-70 はサマータイムスレで暴論吐いてた奴じゃない?
2018/10/10(水) 00:03:10.45ID:uHP11E7s
C言語スレとかのいろいろな所に出没してる半角先生だ
どこでも相手にされなくなったから出題しに来た
どこでも相手にされなくなったから出題しに来た
2018/10/10(水) 09:42:44.92ID:hOT3iUsl
サマータイムスレでの暴論って何なんだろう?
まさかのサマータイム賛成なんて奴だったら許せんな。
まさかのサマータイム賛成なんて奴だったら許せんな。
74デフォルトの名無しさん
2018/10/10(水) 16:39:18.23ID:slDdF7J+ お題
倍精度実数で整数部分が正確に表現できる最大値を求める
倍精度実数で整数部分が正確に表現できる最大値を求める
2018/10/10(水) 17:03:11.31ID:8BTNYbZT
浮動小数点実数型と言えど最大要素に近い
部分は、整数×2^整数という形の整数也
部分は、整数×2^整数という形の整数也
2018/10/10(水) 17:03:47.89ID:8BTNYbZT
整数×2^自然数
だた
だた
2018/10/10(水) 17:41:41.04ID:8BTNYbZT
(2^m-1)×2^n
という形
という形
2018/10/10(水) 18:05:44.00ID:TfVezTBt
区間を求めるなら仮数部だけで収まる最大値だけど、
とある数の整数部が正しく表現されているだけなら仮数部も込みで double の最大値が答え
それを std::numeric_limits<double>max() や DBL_MAX を使わずに計算せよ、ということか
とある数の整数部が正しく表現されているだけなら仮数部も込みで double の最大値が答え
それを std::numeric_limits<double>max() や DBL_MAX を使わずに計算せよ、ということか
2018/10/10(水) 19:38:40.27ID:TfVezTBt
>>74を2分探索で計算で出すコード書いてて ideone のコンパイラのバグ見つけた気がする
https://ideone.com/D3ip5M
if 文の条件式の値が1なのに実行されない
find_max<char> とか int32_t で起きる
何か間違ってるかな
https://ideone.com/D3ip5M
if 文の条件式の値が1なのに実行されない
find_max<char> とか int32_t で起きる
何か間違ってるかな
2018/10/10(水) 20:37:17.47ID:GOApHyvI
符号付き整数オーバーフロー(未定義動作)のせいで
変な最適化でもかかってるんじゃね?
変な最適化でもかかってるんじゃね?
2018/10/10(水) 21:07:51.69ID:3iBo9D9z
2018/10/10(水) 22:22:14.63ID:TfVezTBt
83デフォルトの名無しさん
2018/10/11(木) 00:30:47.35ID:p15CvoFg ものすごい頭悪いこといってるわ。。。
UTCは う る う 秒 入 れ た 時 刻 のことだぞ
マジでなんでこんな頭悪いの
天文でつかわれるユリウス日なんかはアホがいうとおり固定
1光年も固定でもないとヤバイからな
1光年は光が1ユリウス年(365.25日)進む距離になる
そもそもオレの課題ではそんなことを問題になんかしてないからな
課題どおりにやればいい
UTCは う る う 秒 入 れ た 時 刻 のことだぞ
マジでなんでこんな頭悪いの
天文でつかわれるユリウス日なんかはアホがいうとおり固定
1光年も固定でもないとヤバイからな
1光年は光が1ユリウス年(365.25日)進む距離になる
そもそもオレの課題ではそんなことを問題になんかしてないからな
課題どおりにやればいい
84デフォルトの名無しさん
2018/10/11(木) 00:34:27.93ID:p15CvoFg 低学歴知恵遅れが知ったぶりしてハジかく典型的な例といっていい
低学歴知恵遅れはいちいち自分が低学歴知恵遅れですと自白するからな
低学歴知恵遅れはいちいち自分が低学歴知恵遅れですと自白するからな
85デフォルトの名無しさん
2018/10/11(木) 01:18:58.62ID:ZbBeURnP おまえまたくっさいくっさい自演しとんのか
2018/10/11(木) 12:46:49.51ID:ZOnVTpMr
誰からも相手にされなくなったか
2018/10/11(木) 13:22:48.89ID:yY2EC70D
相手にされなくなったんで問題だせば自動的に相手にされると思い込んでいる
その辺りが半角先生の思考の限界
その辺りが半角先生の思考の限界
88デフォルトの名無しさん
2018/10/11(木) 14:46:25.14ID:MYvNBgY5 ここが適切なのかわかりませんが、知恵を頂けたら幸いです。
当方CGクリエーターで、プログラミングの知識は殆どありません。
そこで質問なのですが、
Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
Bのワールド位置を維持して、BをAのローカル座標位置へ移動させるには
どのような行列式になるでしょうか?
ネットで座標変換とか色々調べてみましたが、子のワールド位置を維持した状態で
親に該当するローカル座標へ移動させる方法がわかりませんでした。
本来の目的としては、
CGアニメーションソフトのコンストレイント機能にペアレントがありますが、
それを行列式(ノード)で行いたいのです。
(コンストレインのペアレントとは、
時間軸上の任意の位置で親子関係の接続や解除を行うことが出来る機能です。
その接続/解除時には、子は現在のワールド位置を維持します。
当方CGクリエーターで、プログラミングの知識は殆どありません。
そこで質問なのですが、
Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
Bのワールド位置を維持して、BをAのローカル座標位置へ移動させるには
どのような行列式になるでしょうか?
ネットで座標変換とか色々調べてみましたが、子のワールド位置を維持した状態で
親に該当するローカル座標へ移動させる方法がわかりませんでした。
本来の目的としては、
CGアニメーションソフトのコンストレイント機能にペアレントがありますが、
それを行列式(ノード)で行いたいのです。
(コンストレインのペアレントとは、
時間軸上の任意の位置で親子関係の接続や解除を行うことが出来る機能です。
その接続/解除時には、子は現在のワールド位置を維持します。
2018/10/11(木) 15:04:14.07ID:3Bdkvxy9
スレ違い
「3d 行列」で検索!
「3d 行列」で検索!
2018/10/11(木) 15:26:21.10ID:ZOnVTpMr
>>88
スレのルールに則れば誰か答えてくれるかもね
スレのルールに則れば誰か答えてくれるかもね
2018/10/11(木) 16:45:05.30ID:NcfxmDj4
>>88
>Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
(1,2,3) を (-1,-2,-3) からの相対値で表すということなら
(1,2,3) 引くことの (-1,-2,-3) イコール (2,4,6)
>Aのオブジェクトの座標値が(-1,-2,-3)として、Bのオブジェクトの座標値が(1,2,3)の場合、
(1,2,3) を (-1,-2,-3) からの相対値で表すということなら
(1,2,3) 引くことの (-1,-2,-3) イコール (2,4,6)
2018/10/11(木) 21:49:13.39ID:anEb94RG
>>68 >B Aにうるう秒をいれて正確に相互変換できるようにしなさい
>>83 >UTCは う る う 秒 入 れ た 時 刻 のことだぞ
うるう秒を入れるでなく、外すが正解ですね。すでに UTCには閏秒が入っていますから。
UTC(協定世界時)は TAI(国際原子時)を元に閏秒で補正して UT1(世界時)に合わせています。
7:00:00(UTC)の一日先の時間が24h+-1sec(閏秒)でも時刻は7:00:00(UTC)となるわけです。
よって JDに24hを足すと翌日になり JD/24h%7で曜日が分かります。
未来の日付も計算可能ですが、閏秒を入れないTAI(国際原子時)では地球の自転次第で変化します。
>天文でつかわれるユリウス日なんかはアホがいうとおり固定
逆です、天文計算で使うような時間は UT(世界時)を基準にしています。
それは天体の運動方程式を解くために基準の時刻からの正確な時間が必要だからです。
>>83 >UTCは う る う 秒 入 れ た 時 刻 のことだぞ
うるう秒を入れるでなく、外すが正解ですね。すでに UTCには閏秒が入っていますから。
UTC(協定世界時)は TAI(国際原子時)を元に閏秒で補正して UT1(世界時)に合わせています。
7:00:00(UTC)の一日先の時間が24h+-1sec(閏秒)でも時刻は7:00:00(UTC)となるわけです。
よって JDに24hを足すと翌日になり JD/24h%7で曜日が分かります。
未来の日付も計算可能ですが、閏秒を入れないTAI(国際原子時)では地球の自転次第で変化します。
>天文でつかわれるユリウス日なんかはアホがいうとおり固定
逆です、天文計算で使うような時間は UT(世界時)を基準にしています。
それは天体の運動方程式を解くために基準の時刻からの正確な時間が必要だからです。
93デフォルトの名無しさん
2018/10/11(木) 23:02:27.87ID:p15CvoFg 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
コレでオレの課題ができないなら
人間やめたほうがいい
・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
コレでオレの課題ができないなら
人間やめたほうがいい
94デフォルトの名無しさん
2018/10/12(金) 01:38:38.44ID:xbwLlD7o >>74
倍精度って、これでいいの?
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 になるわけでプログラムを作る必要性がないわけだが。
それとも仮数部が何ビットか分からない倍精度実数のビット数を求めるプログラムを作れってこと?
倍精度って、これでいいの?
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 になるわけでプログラムを作る必要性がないわけだが。
それとも仮数部が何ビットか分からない倍精度実数のビット数を求めるプログラムを作れってこと?
2018/10/12(金) 02:02:42.62ID:ZYTXH3K/
プログラミングのお題
「10以下の素数の和を求めよ」
答え
「17。コード書くまでもないんだがこれでいいのか?」
これはおかしいだろう
「10以下の素数の和を求めよ」
答え
「17。コード書くまでもないんだがこれでいいのか?」
これはおかしいだろう
2018/10/12(金) 02:23:49.18ID:I/tzu8NI
97デフォルトの名無しさん
2018/10/12(金) 02:35:54.36ID:xbwLlD7o え?じゃ、こんな感じ?
perl -e 'for($n=1;(2**$n)!=(2**$n+1);$n++){} printf "%d, %.0f\n", $n, 2 ** $n;'
動かすとこう出るが。
53, 9007199254740992
perl -e 'for($n=1;(2**$n)!=(2**$n+1);$n++){} printf "%d, %.0f\n", $n, 2 ** $n;'
動かすとこう出るが。
53, 9007199254740992
2018/10/12(金) 06:06:04.48ID:j3qUjmca
2018/10/12(金) 07:40:50.69ID:GdhRssFx
100デフォルトの名無しさん
2018/10/12(金) 09:39:43.72ID:1UpgDbu2 first(10)って普通は最初の10個を列挙するもんだがrubyは違うのか…
名前重要ってわりにセンスないな
名前重要ってわりにセンスないな
101デフォルトの名無しさん
2018/10/12(金) 10:33:46.63ID:oIm8hJ6E じゃあちなみにこの関数名は何ならいいんだ?
お前の考えを言ってみろよ
センスを判定してやるよ
お前の考えを言ってみろよ
センスを判定してやるよ
102デフォルトの名無しさん
2018/10/12(金) 10:49:03.90ID:6UbBSJp3 first(10)が10までってセンスは普通におかしいだろ
つーかrubyも最初の10個返すんだが…?
つーかrubyも最初の10個返すんだが…?
103デフォルトの名無しさん
2018/10/12(金) 13:22:40.26ID:+EEi3z6C 誰も動作を疑わずに書かれたものを脳死で信じるいい例だな、 >>99 のは17にはならん
104デフォルトの名無しさん
2018/10/12(金) 13:50:43.62ID:oIm8hJ6E ruby/ruby: The Ruby Programming Language
ttps://github.com/ruby/ruby
そりゃそうだろ
スクリプト言語のソースコードは公開されてて誰でも読めるが
大抵のユーザーは書かれたものを脳死で信じるしかないだろ
それともお前は使うスクリプト言語のソースコードは全部精査してるのか?
コンパイラのソースコードまで熟読してるのか?
ンなモン、脳死で信じるしかねーだろ
ttps://github.com/ruby/ruby
そりゃそうだろ
スクリプト言語のソースコードは公開されてて誰でも読めるが
大抵のユーザーは書かれたものを脳死で信じるしかないだろ
それともお前は使うスクリプト言語のソースコードは全部精査してるのか?
コンパイラのソースコードまで熟読してるのか?
ンなモン、脳死で信じるしかねーだろ
105デフォルトの名無しさん
2018/10/12(金) 13:54:46.58ID:VST6PShP 最近JavaとかC++とか少ないな
Javaは例の騒動があるから仕方ないとしてCとかC++はないんか
Javaは例の騒動があるから仕方ないとしてCとかC++はないんか
107デフォルトの名無しさん
2018/10/12(金) 18:59:19.35ID:eR+rcBR9108デフォルトの名無しさん
2018/10/12(金) 20:05:50.75ID:oyAlSwuR >>105
例の騒動って何
例の騒動って何
109デフォルトの名無しさん
2018/10/12(金) 20:13:31.37ID:jorGy8Se >>79
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
となるね
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
となるね
110デフォルトの名無しさん
2018/10/12(金) 21:22:44.25ID:+EEi3z6C ORACLEがお金取りますよってやつじゃない?
111デフォルトの名無しさん
2018/10/12(金) 21:27:58.87ID:+EEi3z6C なぜか言語自体のコード読む読まないの話になってるけど、これくらいのコードなら動かせばすぐにfirstが何してるか分かるじゃん、って思っただけだわ
112デフォルトの名無しさん
2018/10/13(土) 10:05:11.14ID:m4emGyLz お題
方程式 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 -> ?
方程式 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 -> ?
113デフォルトの名無しさん
2018/10/13(土) 11:29:08.44ID:4qDoRB+X つまんない
114デフォルトの名無しさん
2018/10/13(土) 11:32:11.63ID:QkDteBzw115デフォルトの名無しさん
2018/10/13(土) 11:52:27.26ID:QkDteBzw ごめん。>>114は勘違い無視して
116デフォルトの名無しさん
2018/10/13(土) 17:46:23.51ID:QtssFnIu117デフォルトの名無しさん
2018/10/15(月) 17:32:39.82ID:lmCCx0VP 回答一人で出題者からの返事がないとあってるかどうかわからないから困る
118デフォルトの名無しさん
2018/10/17(水) 11:31:35.00ID:UkGf74ne お題
[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を一様分布以外の分布から取ってくるとどうなる?
[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を一様分布以外の分布から取ってくるとどうなる?
119デフォルトの名無しさん
2018/10/17(水) 12:32:44.20ID:DKH+Jm9W >>118
それはプログラミングで解くお題なのか?
それはプログラミングで解くお題なのか?
120デフォルトの名無しさん
2018/10/17(水) 13:07:54.93ID:OYXuI76a >>119
シミュレーションしてみるのも面白いかなと
シミュレーションしてみるのも面白いかなと
121デフォルトの名無しさん
2018/10/17(水) 13:50:50.88ID:8efdFbKL 趣味で
122デフォルトの名無しさん
2018/10/17(水) 14:07:56.22ID:4awkQadJ これはひどい
123デフォルトの名無しさん
2018/10/17(水) 15:35:45.15ID:5mPHIqhK プログラミングで解くということに挑戦することから逃げるプログラマー
124デフォルトの名無しさん
2018/10/17(水) 15:55:41.32ID:mC+TJhph 数学に逃げちゃ駄目だ。
125デフォルトの名無しさん
2018/10/17(水) 17:12:22.62ID:DXXGfTNm 乱数全部同じパターンを引いてもその結果のみから分布を論じてかまわないというならそれでもいいがな
126デフォルトの名無しさん
2018/10/17(水) 17:34:51.31ID:slnS35LM ちょっとやってみた
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)
)
続く
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)
)
続く
127デフォルトの名無しさん
2018/10/17(水) 17:35:05.08ID:IG2KKzqQ >>118 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} "
擬似乱数発生器は 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} "
128デフォルトの名無しさん
2018/10/17(水) 17:38:20.84ID:cKcilnbV >>118 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} "
擬似乱数発生器は 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} "
129デフォルトの名無しさん
2018/10/17(水) 17:40:58.97ID:wdgUzBYj あ、誤連投&Jのにきスマン
130デフォルトの名無しさん
2018/10/17(水) 17:41:12.83ID:slnS35LM 続き
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
一様分布っぽい
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
一様分布っぽい
131デフォルトの名無しさん
2018/10/17(水) 17:43:54.06ID:slnS35LM だいぶ結果が違っててわろすw
>>127ソート忘れてないか?
>>127ソート忘れてないか?
132デフォルトの名無しさん
2018/10/17(水) 17:47:40.41ID:slnS35LM 理屈で考えると乱数がどんな分布でも a、b の分布が同じならコレの結果は常に同じ分布か
133デフォルトの名無しさん
2018/10/17(水) 19:01:16.05ID:wdgUzBYj なんか書き込めん…
>>131
たしかに^^;
pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}].
で同じ分布になった
>>131
たしかに^^;
pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}].
で同じ分布になった
134デフォルトの名無しさん
2018/10/17(水) 22:28:10.42ID:9jVKFKz5 ハローワールドの次にやる問題ってなんだろう
135デフォルトの名無しさん
2018/10/17(水) 22:28:34.01ID:Ny9Q/0jK ハローワークへ行きなさい
136デフォルトの名無しさん
2018/10/17(水) 22:47:23.45ID:ysrRFDeq >>134
echoかfizz buzzでもやれば
echoかfizz buzzでもやれば
138デフォルトの名無しさん
2018/10/18(木) 09:27:49.01ID:xtVP5nmJ139デフォルトの名無しさん
2018/10/18(木) 19:47:17.70ID:3zhbamE0 136本人が出てきて答えなさい
140デフォルトの名無しさん
2018/10/18(木) 22:31:25.80ID:qi6SRLg2 ハローワールドの次ぐらいだとすごろくとかじゃない
141デフォルトの名無しさん
2018/10/19(金) 16:49:17.22ID:F1UCQFsO お題
標準入力から入力したデータをそのまま標準出力人出力する
標準入力から入力したデータをそのまま標準出力人出力する
142デフォルトの名無しさん
2018/10/19(金) 17:05:33.84ID:veK9KPY5143デフォルトの名無しさん
2018/10/19(金) 17:15:05.14ID:gPrGaWTX >>141
cat
cat
144デフォルトの名無しさん
2018/10/19(金) 18:18:43.95ID:rCjk/mnI >>143 Brainfuck
,[.,]
,[.,]
145デフォルトの名無しさん
2018/10/19(金) 18:19:25.68ID:rCjk/mnI146デフォルトの名無しさん
2018/10/19(金) 20:16:34.44ID:qai0UNii お題
マルチバイト文字だけ文字化けさせて出力
マルチバイト文字だけ文字化けさせて出力
147デフォルトの名無しさん
2018/10/19(金) 20:39:51.48ID:5dseSh/K148デフォルトの名無しさん
2018/10/20(土) 03:08:59.15ID:gD7ZVb6v iso-8859-2を入力したら文字化けしたりUTF-7を入力したら文字化けしなかったりするのは美しくないから文字コードを指定させないといかん
149デフォルトの名無しさん
2018/10/20(土) 05:27:36.15ID:qwv4GmvH >>146
Kotlin
https://paiza.io/projects/jg9Pa-PO2UCwSLFPL3draw
入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。
つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。
化け方は2通りでサロゲートペアの文字は % になりその他は * になる。
Kotlin
https://paiza.io/projects/jg9Pa-PO2UCwSLFPL3draw
入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。
つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。
化け方は2通りでサロゲートペアの文字は % になりその他は * になる。
150デフォルトの名無しさん
2018/10/20(土) 17:10:58.56ID:hxCjYBWY >>141 Io
File standardInput contents print
File standardInput contents print
151デフォルトの名無しさん
2018/10/20(土) 17:46:57.83ID:cv2X893a お題: 超簡単なステートマシン
以下の3つのデータがランダムに入力される。
1: hi
2: wake up
3: sleep
1が入力された場合、状態がwake upであれば「hello」、状態がsleepであれば「zzz...」と出力せよ。
2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。
以下の3つのデータがランダムに入力される。
1: hi
2: wake up
3: sleep
1が入力された場合、状態がwake upであれば「hello」、状態がsleepであれば「zzz...」と出力せよ。
2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。
152デフォルトの名無しさん
2018/10/20(土) 18:05:02.67ID:Nttc2RvP153デフォルトの名無しさん
2018/10/20(土) 18:08:05.20ID:Nttc2RvP あれ、違うぞ?
hiが入力された時、「かつ」wake upだったら”hello”出力か。
んでsleepなら”zzz...”ね。
それ以外無視と。
了解。
hiが入力された時、「かつ」wake upだったら”hello”出力か。
んでsleepなら”zzz...”ね。
それ以外無視と。
了解。
154デフォルトの名無しさん
2018/10/20(土) 18:12:34.08ID:Nttc2RvP てか、1ー3の数字だけで良いわ。
状態の意味はわかったけど、状態の文字は要らんね。
状態の意味はわかったけど、状態の文字は要らんね。
155デフォルトの名無しさん
2018/10/20(土) 18:16:14.29ID:xvv7H8Vz それ以外をどう考慮すべきかは書かれてないから、
ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉
そんなことよりステートマシンなら初期状態は与えろよw
ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉
そんなことよりステートマシンなら初期状態は与えろよw
156デフォルトの名無しさん
2018/10/20(土) 18:28:45.80ID:AUqXYm6F >>151
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.")
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.")
157デフォルトの名無しさん
2018/10/20(土) 18:42:18.95ID:Nttc2RvP #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;
#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;
158デフォルトの名無しさん
2018/10/20(土) 18:43:23.41ID:Nttc2RvP case '2':
state = '2';
break;
case '3':
state = '3';
break;
default:
break;
state = '2';
break;
case '3':
state = '3';
break;
default:
break;
159デフォルトの名無しさん
2018/10/20(土) 18:43:31.11ID:Nttc2RvP }
}
return 0;
}
バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力)
conio.hは環境依存だけど、どうせWinだろ。
stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。
面倒臭かったからステータスは数字に直さず文字そのまま使った。
}
return 0;
}
バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力)
conio.hは環境依存だけど、どうせWinだろ。
stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。
面倒臭かったからステータスは数字に直さず文字そのまま使った。
160デフォルトの名無しさん
2018/10/20(土) 20:20:44.01ID:WvTfEY4N お題
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) => {}
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) => {}
161デフォルトの名無しさん
2018/10/20(土) 21:46:37.40ID:O4sbTglp >>151
ruby -nle"$_!=?1?($t=-$_.to_i):(puts %w[zzz... hello _][$t])"
ruby -nle"$_!=?1?($t=-$_.to_i):(puts %w[zzz... hello _][$t])"
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- ホテル業界、高市のせいで中国から大量キャンセル 「大変厳しい状態。一刻も早い収束を願います」 [271912485]
- 【正論】玉木雄一郎「高市さんの答弁は米軍が攻撃を受けた場合を前提としており、撤回するのは難しい」特定野党を完全論破 [519511584]
- ホリエモンが政治家達を呼んで台湾有事について議論する動画を公開したんだけどお前らはこれの内容についてどう思う [317527133]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- んなり放題🍬のお🏡
- 自閉症が「んなっしょい」と連呼するお🏡
