プログラミングのお題スレです。
【出題と回答例】
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
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/Q19JU180デフォルトの名無しさん
2018/10/25(木) 16:24:37.58ID:aKbYC4uC181デフォルトの名無しさん
2018/10/25(木) 16:39:59.02ID:wLNEFoo1 >>176
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して
それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して
それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな
182デフォルトの名無しさん
2018/10/25(木) 16:46:00.18ID:9VVQwm/j やっぱり36進数[0-9a-z]使った横着は出来ないのか…
183デフォルトの名無しさん
2018/10/25(木) 17:18:04.60ID:BFrEhhQu perlのbasecalcだとマジカルなことができる
184デフォルトの名無しさん
2018/10/25(木) 17:29:09.19ID:/ssDOiD4 >>181
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい
185デフォルトの名無しさん
2018/10/25(木) 17:46:06.11ID:wLNEFoo1 デコードは A-Z を 1 から 26 とする 0 を持たない変則 26 進数として数値化すりゃあいいんだよ
以下J
26 #. _64 + a. i. 'ABC'
==> 731
26 #. _64 + a. i. 'ODAI'
==> 266379
エンコードはちょっと1行では説明しにくい
以下J
26 #. _64 + a. i. 'ABC'
==> 731
26 #. _64 + a. i. 'ODAI'
==> 266379
エンコードはちょっと1行では説明しにくい
186デフォルトの名無しさん
2018/10/25(木) 17:52:55.69ID:Toapoewp 27進だろ…
187デフォルトの名無しさん
2018/10/25(木) 17:53:10.85ID:hw/Q19JU188デフォルトの名無しさん
2018/10/25(木) 18:17:57.30ID:wLNEFoo1 >>186
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1〜26なんだよ
これで0以外の数は表記できる
AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1〜26なんだよ
これで0以外の数は表記できる
AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26
189デフォルトの名無しさん
2018/10/25(木) 19:37:38.82ID:gO/HWAcm190デフォルトの名無しさん
2018/10/25(木) 20:05:21.59ID:na0fZQbz 全くの素人質問で申し訳ありませんが、お知恵拝借したくお願いします。
http://www.cjh.com.cn/
の画面左まんなか辺りの
三峡水? 25日 19?00分 174.64 -(入) 15200(出)
を自動で毎日夜21時に取得して
https://egg.5ch.net/test/read.cgi/river/1507607675/
に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、
http://www.cjh.com.cn/
の画面左まんなか辺りの
三峡水? 25日 19?00分 174.64 -(入) 15200(出)
を自動で毎日夜21時に取得して
https://egg.5ch.net/test/read.cgi/river/1507607675/
に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、
191デフォルトの名無しさん
2018/10/25(木) 20:16:07.42ID:na0fZQbz192デフォルトの名無しさん
2018/10/25(木) 20:33:47.72ID:TSZxWHJ/ sssqold.htmlのソース見たが読むほうは簡単そうだな
書き込む方はしらん
書き込む方はしらん
193デフォルトの名無しさん
2018/10/25(木) 20:33:50.34ID:BSekExc/ スレタイ
194デフォルトの名無しさん
2018/10/25(木) 23:54:56.07ID:Hzy8+5Se あらしのおもちゃになるソースを公開するのはさすがにちょっとなあ
195デフォルトの名無しさん
2018/10/25(木) 23:59:06.56ID:9OC64j5F >>190
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね
$html= Invoke-WebRequest -UseBasicParsing http://nweb.cjh.com.cn/sssqold.html
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね
$html= Invoke-WebRequest -UseBasicParsing http://nweb.cjh.com.cn/sssqold.html
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}
196デフォルトの名無しさん
2018/10/26(金) 01:56:21.09ID:zqmCYDLg 無駄に一行だな
197デフォルトの名無しさん
2018/10/26(金) 03:39:31.47ID:c84xrxY5 >>171
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))
198デフォルトの名無しさん
2018/10/26(金) 19:50:36.71ID:/kG4owY9 お題
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。
0013
0123
122.
013.
0123
=> 4
9.9.9.9.9.9
.9.9.9.9.9.
=> 1
0123
3012
2301
1230
=> 0
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。
0013
0123
122.
013.
0123
=> 4
9.9.9.9.9.9
.9.9.9.9.9.
=> 1
0123
3012
2301
1230
=> 0
199デフォルトの名無しさん
2018/10/26(金) 20:45:47.09ID:yqPKU+uE >>195
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!
200デフォルトの名無しさん
2018/10/26(金) 20:51:49.05ID:8JGFizba >>198
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?
201デフォルトの名無しさん
2018/10/29(月) 19:22:44.11ID:PHNS982/ >>171
Kotlin
https://paiza.io/projects/1ZkMBpYcAWRTjh1ic8RIIQ
入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。
Kotlin
https://paiza.io/projects/1ZkMBpYcAWRTjh1ic8RIIQ
入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。
202デフォルトの名無しさん
2018/10/30(火) 17:20:53.74ID:xBpFVgTt203デフォルトの名無しさん
2018/10/30(火) 21:09:38.22ID:RM3bKAov お題: ページャーを実装してください。標準入力から以下のデータが与えられます。不正な入力にはいい感じに対応してください。
1行目: 現在のページ番号
2行目: 総ページ数
3行目: 表示するリンク数
例1
入力:
1
10
5
出力:
[1] 2 3 4 5
例2
入力:
5
10
5
出力:
3 4 [5] 6 7
例3
入力:
10
10
5
出力:
6 7 8 9 [10]
1行目: 現在のページ番号
2行目: 総ページ数
3行目: 表示するリンク数
例1
入力:
1
10
5
出力:
[1] 2 3 4 5
例2
入力:
5
10
5
出力:
3 4 [5] 6 7
例3
入力:
10
10
5
出力:
6 7 8 9 [10]
204デフォルトの名無しさん
2018/10/30(火) 22:21:08.83ID:Mk80lxDb >>203 perl
$now = shift or die $! ;
$all = shift or die $! ;
$show = shift or die $! ;
$x = 1 + int $show/2;
$y = $all - $x + 1;
if($now <= $x){
$start = 1;
}elsif($y <= $now){
$start = $all - $show + 1;
}else{
$start = $now - int $show/2;
}
$end = $start + $show - 1;
print join " ", map{ $_ == $now ? "[$_]" : "$_" }($start..$end);
$now = shift or die $! ;
$all = shift or die $! ;
$show = shift or die $! ;
$x = 1 + int $show/2;
$y = $all - $x + 1;
if($now <= $x){
$start = 1;
}elsif($y <= $now){
$start = $all - $show + 1;
}else{
$start = $now - int $show/2;
}
$end = $start + $show - 1;
print join " ", map{ $_ == $now ? "[$_]" : "$_" }($start..$end);
205デフォルトの名無しさん
2018/10/30(火) 22:51:09.23ID:N8SwgYLQ >>203
Python3
current = int(input())
total = int(input())
n_links = int(input())
assert 1 <= current <= total and n_links <= total
if current <= n_links//2:
seq = range(1, n_links+1)
elif current >= total-n_links//2:
seq = range(total-n_links+1, total+1)
else:
left = current - n_links//2
right = current + n_links//2 + (0 if n_links%2 == 0 else 1)
seq = range(left, right)
seq = ["[{}]".format(s) if s == current else str(s) for s in seq]
print(" ".join(seq))
Python3
current = int(input())
total = int(input())
n_links = int(input())
assert 1 <= current <= total and n_links <= total
if current <= n_links//2:
seq = range(1, n_links+1)
elif current >= total-n_links//2:
seq = range(total-n_links+1, total+1)
else:
left = current - n_links//2
right = current + n_links//2 + (0 if n_links%2 == 0 else 1)
seq = range(left, right)
seq = ["[{}]".format(s) if s == current else str(s) for s in seq]
print(" ".join(seq))
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- イギリス「日本でニュースに関するインフルエンサーを順位付けした」 1位ひろゆき 4位ガレソ 5位池上彰 ガチで終わってると話題に [279254606]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- 抜いたことある歴史上の人物
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
