プログラミングのお題スレです。
【出題と回答例】
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/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])"
162デフォルトの名無しさん
2018/10/21(日) 04:42:48.87ID:sz/a4USN >>151
Kotlin
https://paiza.io/projects/RpML2-t6V1kplmMq_f0usw
初期状態は sleep にした。
wake up と sleep 以外の入力に対しては ERROR を出力して状態は変化させないようにした。
入力が何だったか分かるようにするために行頭に >> を付けて入力文字列を出すようにした。
Kotlin
https://paiza.io/projects/RpML2-t6V1kplmMq_f0usw
初期状態は sleep にした。
wake up と sleep 以外の入力に対しては ERROR を出力して状態は変化させないようにした。
入力が何だったか分かるようにするために行頭に >> を付けて入力文字列を出すようにした。
163デフォルトの名無しさん
2018/10/21(日) 04:53:27.38ID:sz/a4USN164デフォルトの名無しさん
2018/10/21(日) 09:26:11.61ID:3Rh2KUxU165デフォルトの名無しさん
2018/10/21(日) 09:40:05.59ID:UVDgsDD7 >>151 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
入力は、数値ではなくメッセージで
状態推移は、クラスチェンジで(つまりインスタンス変数なし&条件分岐なし)
…な感じで、他言語では思いつきにくい実装で遊んでみました
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
166デフォルトの名無しさん
2018/10/21(日) 11:09:36.22ID:S2kctYlU >>151
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
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
167デフォルトの名無しさん
2018/10/21(日) 18:51:44.61ID:7SU77e8C168デフォルトの名無しさん
2018/10/21(日) 22:29:32.21ID:4ZLg1Jin >>141 Lua
io.write(io.read("*a"))
io.write(io.read("*a"))
169デフォルトの名無しさん
2018/10/22(月) 01:45:31.26ID:mc31Kn/b >>2
これおかしくね?
これおかしくね?
170デフォルトの名無しさん
2018/10/23(火) 19:00:32.44ID:eWhef4/P171デフォルトの名無しさん
2018/10/23(火) 21:37:05.53ID:HCMpmlk6 お題
Excel列番号の数字表記とアルファベット表記を相互変換せよ
A => 1
AA => 27
ABC => ?
26 => Z
266379 => ?
Excel列番号の数字表記とアルファベット表記を相互変換せよ
A => 1
AA => 27
ABC => ?
26 => Z
266379 => ?
172デフォルトの名無しさん
2018/10/23(火) 22:19:55.60ID:kr01ah20 >>171
Part6の754ですでに通った道だった
https://peace.5ch.net/test/read.cgi/tech/1418278634/754
そしてその時の俺の回答はこれだ
http://ideone.com/SM0HXt
Part6の754ですでに通った道だった
https://peace.5ch.net/test/read.cgi/tech/1418278634/754
そしてその時の俺の回答はこれだ
http://ideone.com/SM0HXt
173デフォルトの名無しさん
2018/10/23(火) 22:19:56.82ID:UJUp/CV/ >>171 Ruby
f=->n{n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+?Z}.delete ?@}
g=->s{s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-1)/25}
puts '%s => %s'%[$_.chop!,~/\d/?f[$_.to_i]:g[$_]]while gets
# =>
A => 1
AA => 27
ABC => 731
26 => Z
266379 => ODAI
f=->n{n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+?Z}.delete ?@}
g=->s{s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-1)/25}
puts '%s => %s'%[$_.chop!,~/\d/?f[$_.to_i]:g[$_]]while gets
# =>
A => 1
AA => 27
ABC => 731
26 => Z
266379 => ODAI
174デフォルトの名無しさん
2018/10/23(火) 22:31:11.04ID:fVBjYNqz iか何かが無かったような?
175デフォルトの名無しさん
2018/10/23(火) 23:51:06.93ID:H259Ae8g var trans = alpha => parseInt((parseInt(alpha, 36) - parseInt('9'.repeat(alpha.length), 36)).toString(36), 26)
trans('A')
//=> 1
trans('AA')
//=> 27
trans('ABC')
//=> 731
順変換だけやってみたけどすごい不安…
Aがゼロ的な物なのか1的な物なのかこんがらがる…
trans('A')
//=> 1
trans('AA')
//=> 27
trans('ABC')
//=> 731
順変換だけやってみたけどすごい不安…
Aがゼロ的な物なのか1的な物なのかこんがらがる…
176デフォルトの名無しさん
2018/10/24(水) 00:17:51.17ID:n2SwZ/Io >>175
Aは0扱いでよい。
与えられた文字列を str にとして x = str[A-Zの26進数] に対して
求める数 f(x) f N\{0} -> N\{0} は
f(x) = x + (26**g(x) - 1)/25
(g(x) := x == 0 ? 1 : [log_26(x)] + 1).
f は全単射なので逆写像f^(-1)が存在するので
f と f^(-1) が答え.
Aは0扱いでよい。
与えられた文字列を str にとして x = str[A-Zの26進数] に対して
求める数 f(x) f N\{0} -> N\{0} は
f(x) = x + (26**g(x) - 1)/25
(g(x) := x == 0 ? 1 : [log_26(x)] + 1).
f は全単射なので逆写像f^(-1)が存在するので
f と f^(-1) が答え.
177デフォルトの名無しさん
2018/10/24(水) 00:19:21.73ID:kOQJNkO6 マジカルインクリメント!マジカルインクリメントじゃないか!!
178デフォルトの名無しさん
2018/10/25(木) 11:51:35.92ID:3ObU9lli >>171 Pharo/Squeak Smalltalk
| fromExcelColm toExcelColm |
fromExcelColm := [:str | str asByteArray reversed - 64 polynomialEval: 26].
toExcelColm := [:n |
| nn digits |
nn := n.
digits := OrderedCollection new.
[(nn := nn - 1) >= 0] whileTrue: [digits addFirst: nn \\ 26. nn := nn // 26].
(digits asByteArray + 65) asString
].
fromExcelColm value: 'A'. "=> 1 "
fromExcelColm value: 'AA'. "=> 27 "
fromExcelColm value: 'ABC'. "=> 731 "
toExcelColm value: 26. "=> 'Z' "
toExcelColm value: 266379. "=> 'ODAI' "
fromExcelColm value: 'EXCEL'. "=> 2708874 "
toExcelColm value: 2788185942068. "=> 'MICROSOFT' "
| fromExcelColm toExcelColm |
fromExcelColm := [:str | str asByteArray reversed - 64 polynomialEval: 26].
toExcelColm := [:n |
| nn digits |
nn := n.
digits := OrderedCollection new.
[(nn := nn - 1) >= 0] whileTrue: [digits addFirst: nn \\ 26. nn := nn // 26].
(digits asByteArray + 65) asString
].
fromExcelColm value: 'A'. "=> 1 "
fromExcelColm value: 'AA'. "=> 27 "
fromExcelColm value: 'ABC'. "=> 731 "
toExcelColm value: 26. "=> 'Z' "
toExcelColm value: 266379. "=> 'ODAI' "
fromExcelColm value: 'EXCEL'. "=> 2708874 "
toExcelColm value: 2788185942068. "=> 'MICROSOFT' "
179デフォルトの名無しさん
2018/10/25(木) 12:50:39.12ID:hw/Q19JU■ このスレッドは過去ログ倉庫に格納されています
