プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1549160513/
探検
プログラミングのお題スレ Part14
■ このスレッドは過去ログ倉庫に格納されています
2019/05/18(土) 17:33:29.45ID:BWmpW4IF
615蟻人間 ◆T6xkBnTXz7B0
2019/06/25(火) 18:52:08.76ID:CrMrKXln お題: あみだくじを解け。n本の縦線を上下に平行に引き、上から順番に二つの縦線を結ぶ形でいくつかm本の横線を引く。下側の縦線の端の一つにゴールを設定するとき、あみだくじの
ルールに従ってゴールに到達する縦線の端のスタート地点を求めよ。
ルールに従ってゴールに到達する縦線の端のスタート地点を求めよ。
617デフォルトの名無しさん
2019/06/25(火) 19:02:19.01ID:UDO8hU+H >>616
そうなるか。ふむふむ。
そうなるか。ふむふむ。
618デフォルトの名無しさん
2019/06/25(火) 19:17:59.99ID:4Msitu63 >>616 おいこら、出題ペースが早すぎるぞ。解答もほとんど出ていない状態で次のなんて出すなよ。
619デフォルトの名無しさん
2019/06/25(火) 19:51:46.12ID:/33lsov2 >>611
日付に対する前置詞はonだぞ
日付に対する前置詞はonだぞ
620デフォルトの名無しさん
2019/06/25(火) 19:56:07.32ID:Y04/VZ6Y >>619
thanks
thanks
621蟻人間 ◆T6xkBnTXz7B0
2019/06/25(火) 20:43:10.45ID:ayyd1Kg3 面白い動画たーくさん作って早く労働者階級を卒業しよっぜ。
622デフォルトの名無しさん
2019/06/25(火) 23:32:34.03ID:hlLFLgMF623蟻人間 ◆T6xkBnTXz7B0
2019/06/25(火) 23:47:01.47ID:ayyd1Kg3 多角形の問題は、最小包含円問題というらしい。
624デフォルトの名無しさん
2019/06/26(水) 01:05:18.27ID:fhfivptN625デフォルトの名無しさん
2019/06/26(水) 01:11:38.67ID:QUl0UMlC >>600 Perl5
@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %h{$_}]}\n" for @b;
実行結果
~ $ perl 14_600.pl
keys on reference is experimental at 14_600.pl line 6.
2019/07/10 B A
2019/07/15 C A
2019/07/20 B A C
@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %h{$_}]}\n" for @b;
実行結果
~ $ perl 14_600.pl
keys on reference is experimental at 14_600.pl line 6.
2019/07/10 B A
2019/07/15 C A
2019/07/20 B A C
626蟻人間 ◆T6xkBnTXz7B0
2019/06/26(水) 01:12:45.72ID:FZmH/DTQ627デフォルトの名無しさん
2019/06/26(水) 01:16:52.13ID:QUl0UMlC >>625 スマソ「keys on reference is experimental at 14_600.pl line 6.」が出ちゃってた…orz
>>600 Perl5 チョット修正
@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %{$h{$_}}]}\n" for @b;
実行結果
~ $ perl 14_600.pl
2019/07/10 B A
2019/07/15 A C
2019/07/20 B C A
>>600 Perl5 チョット修正
@a = map{sprintf"2019/07/%02d",$_} 1..31;
$h{$_}{A}=1 for qw{2019/07/05 2019/07/10 2019/07/15 2019/07/20};
$h{$_}{B}=1 for qw{2019/07/08 2019/07/10 2019/07/20};
$h{$_}{C}=1 for qw{2019/07/15 2019/07/20 2019/07/25};
@b = grep{1<keys %{$h{$_}}} @a;
print "$_ @{[keys %{$h{$_}}]}\n" for @b;
実行結果
~ $ perl 14_600.pl
2019/07/10 B A
2019/07/15 A C
2019/07/20 B C A
628蟻人間 ◆T6xkBnTXz7B0
2019/06/26(水) 04:24:04.79ID:FZmH/DTQ 日本とゐう国は労使から朽ちていつたんだなあ。
629デフォルトの名無しさん
2019/06/26(水) 04:36:53.79ID:wPd2Gy/W >>628
旧仮名なら「日本と云(い)ふ」だろボケカス
旧仮名なら「日本と云(い)ふ」だろボケカス
630デフォルトの名無しさん
2019/06/26(水) 08:13:01.09ID:Qt7BED0r >>555 Lua
prrint("ん")
prrint("ん")
631デフォルトの名無しさん
2019/06/26(水) 09:27:43.17ID:4ftm39hn632デフォルトの名無しさん
2019/06/26(水) 10:05:25.43ID:I0iq5RkX 整数が複数与えられて、そのうちの5つの積が最大になるものってどうやって選べばいいの?
絶対数でソートしても、負数が奇数個だとマイナスだし頭がこんがらがる
絶対数でソートしても、負数が奇数個だとマイナスだし頭がこんがらがる
633デフォルトの名無しさん
2019/06/26(水) 10:27:17.99ID:qQlb55ju 正数の大きい方から5個
正数の大きい方から3個と負数の絶対数の大きい方から2個
正数の大きい方から1個と負数の絶対数の大きい方から4個
で比較すれば?
正数の大きい方から3個と負数の絶対数の大きい方から2個
正数の大きい方から1個と負数の絶対数の大きい方から4個
で比較すれば?
634デフォルトの名無しさん
2019/06/26(水) 10:35:24.88ID:qQlb55ju 別に正数とか負数とか気にしないでも良いか
ソートして、上から5個 上から3個と下から2個 上から1個と下から4個 の中で最大のものを選べば
ソートして、上から5個 上から3個と下から2個 上から1個と下から4個 の中で最大のものを選べば
635デフォルトの名無しさん
2019/06/26(水) 12:11:39.42ID:4ftm39hn636デフォルトの名無しさん
2019/06/26(水) 12:18:02.87ID:Hr9hv0Xe 古典的スタートレックゲーム
言語はなんでもよし
言語はなんでもよし
637デフォルトの名無しさん
2019/06/26(水) 12:52:21.84ID:4t4MRNDi >>632
思考停止して全パターン出して最大値を取る。
あえて5個以下だとエラー。
対策するなら関数fで長さが5個以下か判定すれば良い。
昔、似た様な問題でリスト内包表記と再帰を組み合わせて、
スマートな方法を誰か書いてたの見たけど忘れた。
Haskell
main = f [(-1),4,(-2),1,3,2]
f xs = maximum [product [a,b,c,d,e]|
a <- xs, b <- xs, c <- xs, d <- xs, e <- xs,
a /= b, a /= c, a /= d, a /= e, b /= c, b/= d, b /= e, c /= d, c /= e, d /= e]
思考停止して全パターン出して最大値を取る。
あえて5個以下だとエラー。
対策するなら関数fで長さが5個以下か判定すれば良い。
昔、似た様な問題でリスト内包表記と再帰を組み合わせて、
スマートな方法を誰か書いてたの見たけど忘れた。
Haskell
main = f [(-1),4,(-2),1,3,2]
f xs = maximum [product [a,b,c,d,e]|
a <- xs, b <- xs, c <- xs, d <- xs, e <- xs,
a /= b, a /= c, a /= d, a /= e, b /= c, b/= d, b /= e, c /= d, c /= e, d /= e]
638デフォルトの名無しさん
2019/06/26(水) 15:36:37.02ID:GwE3QISY >>637 おいおい、いくつの中から5個取り出すかわからないんだぞ。 100000個の中から5個取り出すと結構な時間がかかるだろ。
どんだけの組み合わせになるんだよ。
どんだけの組み合わせになるんだよ。
639デフォルトの名無しさん
2019/06/26(水) 15:53:36.43ID:4t4MRNDi >>638
だから思考停止っって書いてるんよ^^;
だから思考停止っって書いてるんよ^^;
640デフォルトの名無しさん
2019/06/26(水) 16:01:02.80ID:4t4MRNDi >>632
Listモジュールに関数あった。。。
Haskell
import Data.List
main = print $ f [(-1),4,(-2),1,3,2]
f = maximum.map product.permutations
Listモジュールに関数あった。。。
Haskell
import Data.List
main = print $ f [(-1),4,(-2),1,3,2]
f = maximum.map product.permutations
641デフォルトの名無しさん
2019/06/26(水) 18:21:48.58ID:D6IEM3tk 全部負なら、必ず答えも負になるんだから選ぶのは上から5個で良くないか
つまり634で合ってると思う
0も問題無いな、どこにあっても網羅されてる
つまり634で合ってると思う
0も問題無いな、どこにあっても網羅されてる
642デフォルトの名無しさん
2019/06/27(木) 01:55:36.37ID:sxRhjDp7 >>600
perl5 ワンライナー
perl -ne 'if(/^(.*?),(.*)$/){$d{$2}{$1}=1}END{for(sort keys%d){if(keys%{$d{$_}}>=2){print"$_ ".join(",",sort keys%{$d{$_}})."\n"}}}'
入力
A,2019/07/05
A,2019/07/10
A,2019/07/15
A,2019/07/20
B,2019/07/08
B,2019/07/10
B,2019/07/20
C,2019/07/15
C,2019/07/20
C,2019/07/25
出力
2019/07/10 A,B
2019/07/15 A,C
2019/07/20 A,B,C
perl5 ワンライナー
perl -ne 'if(/^(.*?),(.*)$/){$d{$2}{$1}=1}END{for(sort keys%d){if(keys%{$d{$_}}>=2){print"$_ ".join(",",sort keys%{$d{$_}})."\n"}}}'
入力
A,2019/07/05
A,2019/07/10
A,2019/07/15
A,2019/07/20
B,2019/07/08
B,2019/07/10
B,2019/07/20
C,2019/07/15
C,2019/07/20
C,2019/07/25
出力
2019/07/10 A,B
2019/07/15 A,C
2019/07/20 A,B,C
643デフォルトの名無しさん
2019/06/27(木) 07:16:25.32ID:ken8tLFo >>635
oh...全て負の場合は数値が大きい方(絶対値が小さい方)から5個だな
oh...全て負の場合は数値が大きい方(絶対値が小さい方)から5個だな
644デフォルトの名無しさん
2019/06/27(木) 07:17:36.65ID:ken8tLFo と、それは上から5個か…寝起き死んでるww
645デフォルトの名無しさん
2019/06/27(木) 10:12:29.88ID:kVdr/MgG >>637
試した限りじゃ上手く動いてる。
もっとスマートな書き方出来ないものか。。。
Haskell
import Data.List
main = (print.f) [9,(-5),3,2,1,8,(-4)]
f xs |(odd.length) b && (length.filter (<0)) xs > 1 =
promax
((map snd.f') a ++ (map snd.take (5 - (length.f') a)) b')
((map snd.take 5.abslst) xs)
where
a = (filter ((>=0).snd).take 5.abslst) xs
a' = (filter ((>=0).snd).abslst) xs
b = (filter ((< 0).snd).take 5.abslst) xs
b' = (filter ((< 0).snd).abslst) xs
f' xs |length a > length b = init xs
f' _ = (take (5 - (length.init) b)) a'
f xs = promax ((take 5.reverse.sort) xs) ((map snd.take 5.abslst) xs)
promax xs ys |product xs > product ys = xs
promax _ ys = ys
abslst xs = reverse.sort $ zip (map abs xs) xs
試した限りじゃ上手く動いてる。
もっとスマートな書き方出来ないものか。。。
Haskell
import Data.List
main = (print.f) [9,(-5),3,2,1,8,(-4)]
f xs |(odd.length) b && (length.filter (<0)) xs > 1 =
promax
((map snd.f') a ++ (map snd.take (5 - (length.f') a)) b')
((map snd.take 5.abslst) xs)
where
a = (filter ((>=0).snd).take 5.abslst) xs
a' = (filter ((>=0).snd).abslst) xs
b = (filter ((< 0).snd).take 5.abslst) xs
b' = (filter ((< 0).snd).abslst) xs
f' xs |length a > length b = init xs
f' _ = (take (5 - (length.init) b)) a'
f xs = promax ((take 5.reverse.sort) xs) ((map snd.take 5.abslst) xs)
promax xs ys |product xs > product ys = xs
promax _ ys = ys
abslst xs = reverse.sort $ zip (map abs xs) xs
646デフォルトの名無しさん
2019/06/27(木) 10:13:36.13ID:kVdr/MgG promax xs ys |product xs > product ys = xs
promax _ ys = ys
abslst xs = reverse.sort $ zip (map abs xs) xs
promax _ ys = ys
abslst xs = reverse.sort $ zip (map abs xs) xs
647蟻人間 ◆T6xkBnTXz7B0
2019/06/27(木) 16:22:58.68ID:nAZ+iPIM だれかあみだくじ解けない?
648デフォルトの名無しさん
2019/06/27(木) 16:37:32.78ID:cEwto4HN I can, but I won't.
649デフォルトの名無しさん
2019/06/27(木) 17:17:24.80ID:fA/gCr42 >>632 Sqeueak Smalltalk
| data stream selection set numNegs |
data := #(9 -5 -3 2 1 8 -4).
stream := ((data copyWithout: 0) sortBy: #abs descending) readStream.
set := Set with: (selection := (stream next: 5) asArray).
numNegs := selection count: #negative.
(numNegs > 0 and: [numNegs odd]) ifTrue: [
| nextNeg nextPos lastPosIdx lastNegIdx |
nextNeg := nextPos := nil.
lastPosIdx := selection findLast: #positive.
lastNegIdx := selection findLast: #negative.
[(nextNeg isNil or: [nextPos isNil]) and: [stream atEnd not]] whileTrue: [
| next |
next := stream next.
(lastPosIdx > 0 and: [nextNeg isNil] and: [next negative])
ifTrue: [set add: (selection copyWithoutIndex: lastPosIdx), {nextNeg := next}].
(lastNegIdx > 0 and: [nextPos isNil] and: [next positive])
ifTrue: [set add: (selection copyWithoutIndex: lastNegIdx), {nextPos :=next}]
].
].
set detectMax: [:xs | xs reduce: #*]
"=> #(9 8 -5 -4 2) "
Pharo Smalltalk版 → http://ws.stfx.eu/OK6PHG96QEY8
| data stream selection set numNegs |
data := #(9 -5 -3 2 1 8 -4).
stream := ((data copyWithout: 0) sortBy: #abs descending) readStream.
set := Set with: (selection := (stream next: 5) asArray).
numNegs := selection count: #negative.
(numNegs > 0 and: [numNegs odd]) ifTrue: [
| nextNeg nextPos lastPosIdx lastNegIdx |
nextNeg := nextPos := nil.
lastPosIdx := selection findLast: #positive.
lastNegIdx := selection findLast: #negative.
[(nextNeg isNil or: [nextPos isNil]) and: [stream atEnd not]] whileTrue: [
| next |
next := stream next.
(lastPosIdx > 0 and: [nextNeg isNil] and: [next negative])
ifTrue: [set add: (selection copyWithoutIndex: lastPosIdx), {nextNeg := next}].
(lastNegIdx > 0 and: [nextPos isNil] and: [next positive])
ifTrue: [set add: (selection copyWithoutIndex: lastNegIdx), {nextPos :=next}]
].
].
set detectMax: [:xs | xs reduce: #*]
"=> #(9 8 -5 -4 2) "
Pharo Smalltalk版 → http://ws.stfx.eu/OK6PHG96QEY8
650デフォルトの名無しさん
2019/06/28(金) 01:49:16.31ID:Vk0oU0Nl >>632 haskell
import Data.List
f xs = if length xs < 5 then undefined else (maximumBy(\ x y ->compare(product x)(product y))$zipWith(++)(reverse.inits.(take 5).reverse.sort$xs)(inits.(take 5).sort$xs))
f [9,-5,-3,2,1,8,-4]
-- > [9,8,2,-5,-4]
import Data.List
f xs = if length xs < 5 then undefined else (maximumBy(\ x y ->compare(product x)(product y))$zipWith(++)(reverse.inits.(take 5).reverse.sort$xs)(inits.(take 5).sort$xs))
f [9,-5,-3,2,1,8,-4]
-- > [9,8,2,-5,-4]
651デフォルトの名無しさん
2019/06/29(土) 05:03:25.69ID:BpIUWIWl お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
652デフォルトの名無しさん
2019/06/29(土) 07:48:16.22ID:FqBWYLWj あまりにも簡単すぎる問題は控えて欲しいな、たまになら休憩として良いけど。
653デフォルトの名無しさん
2019/06/29(土) 11:18:10.70ID:HRfvRfYw printed("World, Hello!");
654デフォルトの名無しさん
2019/06/29(土) 11:36:54.32ID:t9YicpKG >>651 Perl5 簡単だけれども、解いてみた
<>=~/(\w+)(\W+)(\w+)(\W+)/;
print "$3$2$1$4\n";
実行結果
~ $ echo 'Hello, World!' | perl 14_651.pl
World, Hello!
※英単語部は任意です
<>=~/(\w+)(\W+)(\w+)(\W+)/;
print "$3$2$1$4\n";
実行結果
~ $ echo 'Hello, World!' | perl 14_651.pl
World, Hello!
※英単語部は任意です
655デフォルトの名無しさん
2019/06/29(土) 13:00:42.80ID:Rvf+oTMW お題:全単射を満足する最小桁数を求める
任意の整数域(-10000..10000とか)を引数とする単調増加/減少関数f(x)に対して、
その計算結果を有効数字n桁で丸めたものをy=round(f(x), n)とする。
xとyの関係が全単射になる(異なるxに対して、同じyにならない事)
最小のnを求めよ。
ttps://ja.wikipedia.org/wiki/%E5%85%A8%E5%8D%98%E5%B0%84
xの値域及びf(x)は回答者が適切と思われるものでよい。
任意の整数域(-10000..10000とか)を引数とする単調増加/減少関数f(x)に対して、
その計算結果を有効数字n桁で丸めたものをy=round(f(x), n)とする。
xとyの関係が全単射になる(異なるxに対して、同じyにならない事)
最小のnを求めよ。
ttps://ja.wikipedia.org/wiki/%E5%85%A8%E5%8D%98%E5%B0%84
xの値域及びf(x)は回答者が適切と思われるものでよい。
656デフォルトの名無しさん
2019/06/29(土) 13:27:37.67ID:HRfvRfYw fは2^N → Rでいいの?
2^Nは自然数の冪集合ね
てか括弧内で全射が無視されてんのが謎
2^Nは自然数の冪集合ね
てか括弧内で全射が無視されてんのが謎
657デフォルトの名無しさん
2019/06/29(土) 14:03:41.17ID:YzN8MsSb echo Hello, World! | perl -pe 's/ (\w+) , \N{SPACE} (\w+) ! /$2, $1!/x'
World, Hello!
World, Hello!
658デフォルトの名無しさん
2019/06/29(土) 14:38:46.06ID:LAXJlpSi イプシロン間際。
659655
2019/06/29(土) 14:50:05.50ID:Rvf+oTMW >>656
f(x)=x/1e4+42 但し xは整数で x∈[-10000, 10000]
とかの、もっと単純なヤツです(この例だとn=6)。
f(x)=10^x
とかだと、n=1なのは自明だし、
f(x)=c 但し cは任意の実定数
とかだと解は存在しないので、これらは除外して下さい。
f(x)=x/1e4+42 但し xは整数で x∈[-10000, 10000]
とかの、もっと単純なヤツです(この例だとn=6)。
f(x)=10^x
とかだと、n=1なのは自明だし、
f(x)=c 但し cは任意の実定数
とかだと解は存在しないので、これらは除外して下さい。
660デフォルトの名無しさん
2019/06/29(土) 14:51:20.55ID:HRfvRfYw >>659
任意の整数域を定義域とする関数に、なんで整数渡してんの?
任意の整数域を定義域とする関数に、なんで整数渡してんの?
661デフォルトの名無しさん
2019/06/29(土) 15:37:47.69ID:mF/+Te8R お題
与えられた画像ファイルを
適当なサイズに縮小・拡大
しモノクローム画像に変換
しアスキーアートに変換す
る
与えられた画像ファイルを
適当なサイズに縮小・拡大
しモノクローム画像に変換
しアスキーアートに変換す
る
662デフォルトの名無しさん
2019/06/29(土) 16:00:34.20ID:S1v50lfX ss = "Hello, World!".split(', ')
print( f'{ss[1]}, {ss[0]}' )
# World!, Hello
print( f'{ss[1]}, {ss[0]}' )
# World!, Hello
663デフォルトの名無しさん
2019/06/29(土) 16:06:20.54ID:YzN8MsSb split のたぐいだと ! の位置がおかしなことになるんだよな
664デフォルトの名無しさん
2019/06/29(土) 16:25:44.25ID:S1v50lfX >>663 おかしいかどうか知らんよ。 問題が細かな事を言っていないんだから。
665デフォルトの名無しさん
2019/06/29(土) 16:30:35.89ID:S1v50lfX >>664 悪い悪い、問題を読み直したら、単語の入れ替えだけで記号の位置はそのままというような感じだな。
666デフォルトの名無しさん
2019/06/29(土) 16:31:18.75ID:/qzOxQgj お題と回答
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359
>>5 : 6 10 32 36 44
>>9 : 15 34 35 79
>>11=>>575 : 48 (78) 138-139 (140) 142 146 151 154
>>19 :
>>50, https://mevius.5ch.net/test/read.cgi/tech/1549160513/920 : 4 85 89
https://mevius.5ch.net/test/read.cgi/tech/1549160513/988 == >>164 : 59 61 167 169 189 192 201 202
>>90 : 95 96
>>99 :
>>200 : 214 219
>>215 : 227
>>220 : 232 240 248 256 268
>>235 : 236 237 238 239 247 249 259 342 353
>>320 : 321 323 327 330 340
>>322 : 325 328 329 331 332 339 341 358 359
>>362 : 367 369 370 371 374 379 380 382 414
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627
>>615,626 :
>>632 : 637 640 645 649 650
>>368 : 390
>>388 : 487 (488) 553 559
>>400 : 401
>>408 :
>>417 : 418 419 421 426 432 433 436 438 442 446 451 452 456 471 474 480 482 489 492 495 498 528 530 540
>>479 :
>>555 : 556 558 564 565
>>557 : 560 562 568 569
>>570 : 574 577
>>573 : 604 622
>>600 : 605 607 611 613 627
>>615,626 :
>>632 : 637 640 645 649 650
670デフォルトの名無しさん
2019/06/29(土) 16:41:45.64ID:dLka8n6Z >>669
ごめん迷惑だからそれやめて
ごめん迷惑だからそれやめて
671デフォルトの名無しさん
2019/06/29(土) 16:59:14.03ID:S1v50lfX >>669 安静にしてた方が良いと思うよ。 反発のない世界で触れ合うのは良いと思うけど、2ch/5ch みたいなところに出てくると、傷つくのは目に見えてる。
みるのが楽しければ、みるだけにとどめるとか。
みるのが楽しければ、みるだけにとどめるとか。
672デフォルトの名無しさん
2019/06/29(土) 20:21:36.23ID:YzN8MsSb w3m https://mevius.5ch.net/test/read.cgi/tech/1558168409/ \
|perl -ne 'if (/^1/m){++$body};if (/^ ? \d+コメント$/m){$body=0} ; print if ($body)'\
| ./select_word_and_ancher.pl お題 \
| less
perl はこれ
https://paste.fedoraproject.org/paste/6R~aAhHAd3dYBSH0R8Dfhw
出力はこんなかんじだ
お題のレスが見れて、それにアンカしたレスが続くのを1フィールドとして
全部のお題に大してループする
https://i.imgur.com/WVCFus7.jpg
|perl -ne 'if (/^1/m){++$body};if (/^ ? \d+コメント$/m){$body=0} ; print if ($body)'\
| ./select_word_and_ancher.pl お題 \
| less
perl はこれ
https://paste.fedoraproject.org/paste/6R~aAhHAd3dYBSH0R8Dfhw
出力はこんなかんじだ
お題のレスが見れて、それにアンカしたレスが続くのを1フィールドとして
全部のお題に大してループする
https://i.imgur.com/WVCFus7.jpg
673デフォルトの名無しさん
2019/06/29(土) 20:24:28.47ID:YzN8MsSb 1 のテンプレを順守してればこのコードの漏れはなくなる
674デフォルトの名無しさん
2019/06/29(土) 22:27:44.56ID:SeYudeXv >>667
お前個人の備忘録なんてホントにチラシの裏にでも書いとけよ
お前個人の備忘録なんてホントにチラシの裏にでも書いとけよ
675デフォルトの名無しさん
2019/06/29(土) 22:43:35.91ID:XRcaFM4Y >>651のお題は
> お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
なので、Hello, World!以外が入力されたら無視するかエラーを出すのが正しいのでは?w
> お題: Hello, World!が入力されるのでHelloとWorldを入れ替えて表示せよ
なので、Hello, World!以外が入力されたら無視するかエラーを出すのが正しいのでは?w
677デフォルトの名無しさん
2019/06/29(土) 22:56:34.59ID:SeYudeXv678デフォルトの名無しさん
2019/06/29(土) 23:05:06.71ID:/qzOxQgj679デフォルトの名無しさん
2019/06/30(日) 01:26:45.54ID:V7r21EI6681デフォルトの名無しさん
2019/06/30(日) 01:59:36.72ID:3kywsUGB682デフォルトの名無しさん
2019/06/30(日) 02:25:30.30ID:8mJPxIjl683デフォルトの名無しさん
2019/06/30(日) 08:04:20.61ID:uuDJgtvu お題
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
684デフォルトの名無しさん
2019/06/30(日) 08:39:27.77ID:XM+o4kuM >>683
$ head text hash.sedscr
==> text <==
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
==> hash.sedscr <==
s/#1234/◆gdyb21LQTc/
s/#abcd/◆4vxxTEcn7p/
s/#あいうえお/◆rXz1zlMT-L/
$ cat text | sed -f hash.sedscr
◆gdyb21LQTc→◆gdyb21LQTc
◆4vxxTEcn7p→◆4vxxTEcn7p
◆rXz1zlMT-L→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
$ head text hash.sedscr
==> text <==
#1234→◆gdyb21LQTc
#abcd→◆4vxxTEcn7p
#あいうえお→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
==> hash.sedscr <==
s/#1234/◆gdyb21LQTc/
s/#abcd/◆4vxxTEcn7p/
s/#あいうえお/◆rXz1zlMT-L/
$ cat text | sed -f hash.sedscr
◆gdyb21LQTc→◆gdyb21LQTc
◆4vxxTEcn7p→◆4vxxTEcn7p
◆rXz1zlMT-L→◆rXz1zlMT-L
左のトリップキーから右のトリップを返すアルゴリズムを探せ
685デフォルトの名無しさん
2019/06/30(日) 09:03:57.63ID:AuhBLaKB686デフォルトの名無しさん
2019/06/30(日) 09:33:15.89ID:uuDJgtvu >>685
Magnificent !!
Magnificent !!
687デフォルトの名無しさん
2019/06/30(日) 18:48:21.28ID:TQbu+/Q+ >>678 Perl5(組合せ計算のモジュールはCPANにあるが言語処理系に標準で含まれるCOREモジュールではないので使わずに実装した)
@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a); # 大きい方から5個と小さい方から4個,計最長9個
sub combi { # 組合せ
my @s;
if (my $n = shift) {
while ($n <= @_) {
my $t = shift;
push @s, map{[$t, @$_]} combi($n - 1, @_);
}
} else {
@s = ([]);
}
@s
}
@d = combi(5, @c); # 126個
use List::Util 'product';
@e = sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;
print "@{$e[0][1]} => $e[0][0]\n";
実行結果
~ $ perl 14_632.pl
9 8 4 -4 -5 => 5760
@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a); # 大きい方から5個と小さい方から4個,計最長9個
sub combi { # 組合せ
my @s;
if (my $n = shift) {
while ($n <= @_) {
my $t = shift;
push @s, map{[$t, @$_]} combi($n - 1, @_);
}
} else {
@s = ([]);
}
@s
}
@d = combi(5, @c); # 126個
use List::Util 'product';
@e = sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;
print "@{$e[0][1]} => $e[0][0]\n";
実行結果
~ $ perl 14_632.pl
9 8 4 -4 -5 => 5760
688デフォルトの名無しさん
2019/06/30(日) 18:49:06.96ID:TQbu+/Q+689デフォルトの名無しさん
2019/07/01(月) 01:03:55.45ID:2xJWXsNl >>632 Perl5 (CPANのMath::Combinatoricsモジュール使用)
use Math::Combinatorics;
use List::Util 'product';
@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a);
@d=combine 5, @c;
@e=sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;
実行結果
~ $ perl 14_632_2.pl
9 4 8 -5 -4 => 5760
use Math::Combinatorics;
use List::Util 'product';
@a=sort{$b<=>$a} qw{9 -5 -3 2 1 8 0 -4 -1 4 -2 1 3 2};
@b=splice @a,0,5;
splice @a,0,-4;
@c=(@b, @a);
@d=combine 5, @c;
@e=sort{$$b[0]<=>$$a[0]} map{[product(@$_), $_]} @d;
実行結果
~ $ perl 14_632_2.pl
9 4 8 -5 -4 => 5760
690デフォルトの名無しさん
2019/07/01(月) 01:17:22.86ID:2xJWXsNl691600
2019/07/01(月) 12:51:23.31ID:O1pDJEnN >>600
Ruby で、
require 'date'
ary_A = %w(2019/07/05 2019/07/10 2019/07/15 2019/07/20)
ary_B = %w(2019/07/08 2019/07/10 2019/07/20)
ary_C = %w(2019/07/15 2019/07/20 2019/07/25)
# 文字列の配列から、ハッシュを作る。Date#jd は、ユリウス日。整数型
def make_hash( ary, name )
ary.each_with_object( { } ) {
| str, h | h[ Date.parse( str ).jd ] = [ str, name ] }
end
# ハッシュをマージする。h_1 を上書きする。slice で、位置1 から、1つだけ
def merge_hash( h_1, h_2 )
h_1.merge!( h_2 ) { |key, v_1, v_2| v_1 + v_2.slice( 1, 1 ) }
end
hash_A = make_hash( ary_A, "A" )
hash_B = make_hash( ary_B, "B" )
hash_C = make_hash( ary_C, "C" )
merge_hash( hash_A, hash_B )
merge_hash( hash_A, hash_C )
hash_A.select { |k, v| v.length >= 3 }.sort.each { |elem|
puts elem.last.join( ", " ) }
Ruby で、
require 'date'
ary_A = %w(2019/07/05 2019/07/10 2019/07/15 2019/07/20)
ary_B = %w(2019/07/08 2019/07/10 2019/07/20)
ary_C = %w(2019/07/15 2019/07/20 2019/07/25)
# 文字列の配列から、ハッシュを作る。Date#jd は、ユリウス日。整数型
def make_hash( ary, name )
ary.each_with_object( { } ) {
| str, h | h[ Date.parse( str ).jd ] = [ str, name ] }
end
# ハッシュをマージする。h_1 を上書きする。slice で、位置1 から、1つだけ
def merge_hash( h_1, h_2 )
h_1.merge!( h_2 ) { |key, v_1, v_2| v_1 + v_2.slice( 1, 1 ) }
end
hash_A = make_hash( ary_A, "A" )
hash_B = make_hash( ary_B, "B" )
hash_C = make_hash( ary_C, "C" )
merge_hash( hash_A, hash_B )
merge_hash( hash_A, hash_C )
hash_A.select { |k, v| v.length >= 3 }.sort.each { |elem|
puts elem.last.join( ", " ) }
692デフォルトの名無しさん
2019/07/02(火) 00:55:09.45ID:l8Ho6rg6 乙
693デフォルトの名無しさん
2019/07/03(水) 05:29:13.40ID:/Fyb2XSg >>570 Lua
prrint("(X)")
prrint("(X)")
694デフォルトの名無しさん
2019/07/03(水) 13:00:21.17ID:0rGzsSa9 >>570
exho 八
exho 八
695デフォルトの名無しさん
2019/07/03(水) 23:21:16.00ID:S/aBv8fE お題
直線状の(配列を使った)ライフゲームがある。ルールは、
1. 両隣が生きていれば、暑苦しいので死ぬ
2. 両隣が死んでいれば、寂しいので死ぬ
3. 両隣の内、片方だけが生きていれば、生きる
4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ
5. すべてのマスの状態の変更は、同時にすること
下の初期値(1 ターン目)から初めて、状態が変わらなくなるのは、何ターン目か?
nターン目と、( n + 1 )ターン目が同じなら、nターン目を答える
ただし、漏れは検証していないので、100ターンを超えたら、終了してくださいw
* は生、. は死を表す
.*...**.*.***..
直線状の(配列を使った)ライフゲームがある。ルールは、
1. 両隣が生きていれば、暑苦しいので死ぬ
2. 両隣が死んでいれば、寂しいので死ぬ
3. 両隣の内、片方だけが生きていれば、生きる
4. 両端の2つについては、隣が生きていれば生きるし、隣が死んでいれば死ぬ
5. すべてのマスの状態の変更は、同時にすること
下の初期値(1 ターン目)から初めて、状態が変わらなくなるのは、何ターン目か?
nターン目と、( n + 1 )ターン目が同じなら、nターン目を答える
ただし、漏れは検証していないので、100ターンを超えたら、終了してくださいw
* は生、. は死を表す
.*...**.*.***..
696デフォルトの名無しさん
2019/07/04(木) 00:54:11.99ID:j53oJnyj >>695 Pharo/Squeak Smalltalk
| map next turn |
map := '.*...**.*.***..' asArray collect: [:x | (x = $*) asBit].
next := [map allButFirst, {0} + ({0}, map allButLast) collect: [:x | (x = 1) asBit]].
turn := 1.
[map = (map := next value) or: [(turn := turn + 1) >= 100]] whileFalse.
^turn "=> 13 "
| map next turn |
map := '.*...**.*.***..' asArray collect: [:x | (x = $*) asBit].
next := [map allButFirst, {0} + ({0}, map allButLast) collect: [:x | (x = 1) asBit]].
turn := 1.
[map = (map := next value) or: [(turn := turn + 1) >= 100]] whileFalse.
^turn "=> 13 "
697デフォルトの名無しさん
2019/07/04(木) 01:48:41.98ID:3GgPlSpw698デフォルトの名無しさん
2019/07/04(木) 02:56:15.33ID:GH7xphp0 プログラムしてないけど、そういう結果になると思う。
699デフォルトの名無しさん
2019/07/04(木) 07:37:27.36ID:Ic4+qAXv 増える条件ナインかこれ
700デフォルトの名無しさん
2019/07/04(木) 08:19:44.93ID:k4YTb8Ao LifeGameなら生まれる条件つけないと。
701デフォルトの名無しさん
2019/07/04(木) 08:35:23.83ID:11vlC8ZO >>695 ruby 13ターンで全滅
life = ' .*...**.*.***.. '
puts "%4d %s" % [1, life]
100.times{|gene|
life2 = ' ' * life.size
(life.size-2).times{|i| life2[i+1] = ((life[i] == '*') ^ (life[i+2] == '*'))? '*' : '.' } # rule 1, 2, 3, 4
break if life == life2
puts "%4d %s" % [gene+2, life2]
life = life2 # rule 5
}
life = ' .*...**.*.***.. '
puts "%4d %s" % [1, life]
100.times{|gene|
life2 = ' ' * life.size
(life.size-2).times{|i| life2[i+1] = ((life[i] == '*') ^ (life[i+2] == '*'))? '*' : '.' } # rule 1, 2, 3, 4
break if life == life2
puts "%4d %s" % [gene+2, life2]
life = life2 # rule 5
}
702デフォルトの名無しさん
2019/07/04(木) 09:15:04.08ID:49DxGPOe プログラム組むまでもなく3ターンで終わりなんだけど解釈間違ってんのかな
703デフォルトの名無しさん
2019/07/04(木) 11:47:20.51ID:oZa6FYcv >>695 Java
https://ideone.com/8cforf
生きるってのが誕生も含める場合13ターン >>696 >>701
生きるってのが生存のみの場合3ターン >>697
ってことだな
https://ideone.com/8cforf
生きるってのが誕生も含める場合13ターン >>696 >>701
生きるってのが生存のみの場合3ターン >>697
ってことだな
704695
2019/07/04(木) 16:13:36.89ID:vGw4d28b 生きるとは、新たに誕生する場合も、含めてください!
705デフォルトの名無しさん
2019/07/04(木) 16:51:48.26ID:NOiQUdad ジョジョくさいセリフ
706デフォルトの名無しさん
2019/07/04(木) 17:41:32.68ID:UVclwvu+ 居ないときは両隣が生きていれば生まれる
(生きているときは 1. に従い死ぬ)
とかの方がいいんじゃない?
(生きているときは 1. に従い死ぬ)
とかの方がいいんじゃない?
707デフォルトの名無しさん
2019/07/04(木) 17:59:22.42ID:oZa6FYcv >>695,704
つまりルール90の1次元セルオートマトンってことでいいのかの? (誕生無しの場合ルール18になる)
セル・オートマトン#1次元セル・オートマトン
https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3#1%E6%AC%A1%E5%85%83%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3
つまりルール90の1次元セルオートマトンってことでいいのかの? (誕生無しの場合ルール18になる)
セル・オートマトン#1次元セル・オートマトン
https://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3#1%E6%AC%A1%E5%85%83%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3
708デフォルトの名無しさん
2019/07/04(木) 22:15:57.84ID:Otr1Y9/T お題: コマンド「stack」を実装しなさい
stackの仕様
$ stack push hoge
で文字列hogeをスタックにプッシュする
$ stack pop
hoge
でスタックに積んだ文字列をポップする
スタックが空の場合は何も表示しない
stackの仕様
$ stack push hoge
で文字列hogeをスタックにプッシュする
$ stack pop
hoge
でスタックに積んだ文字列をポップする
スタックが空の場合は何も表示しない
709デフォルトの名無しさん
2019/07/04(木) 23:07:41.19ID:3GgPlSpw ライフゲームだけど、生まれる話は聞いてないなぁ。
主が生まれる条件書いてねー気がする。
主が生まれる条件書いてねー気がする。
710デフォルトの名無しさん
2019/07/05(金) 00:22:45.10ID:cLn1h7ts >>702
手計算したら同じく3手だった
手計算したら同じく3手だった
711デフォルトの名無しさん
2019/07/05(金) 00:31:50.12ID:4z1quspY >>695,704 Perl5
sub f {
@a = map{'*' eq $_} split '', '.*...**.*.***..';
for ($t = 2; $t <= 100; $t++) {
@b = $_[0]->();
$t--, last if "@b" eq "@a";
@a = @b;
}
@a = map{$_ ? '*' : '.'} @b;
}
f(sub{$a[1], (map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 1..$#a-1), $a[$#a-1]});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";
実行結果
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生含む 13: ...............
sub f {
@a = map{'*' eq $_} split '', '.*...**.*.***..';
for ($t = 2; $t <= 100; $t++) {
@b = $_[0]->();
$t--, last if "@b" eq "@a";
@a = @b;
}
@a = map{$_ ? '*' : '.'} @b;
}
f(sub{$a[1], (map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 1..$#a-1), $a[$#a-1]});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";
実行結果
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生含む 13: ...............
712デフォルトの名無しさん
2019/07/05(金) 00:33:12.20ID:4z1quspY713デフォルトの名無しさん
2019/07/05(金) 00:41:15.13ID:4z1quspY >>711 たびたびゴメン、微妙に間違えていた、この入力の場合答えは変わらないけど
sub f {
@a = map{'*' eq $_} split '', '.*...**.*.***..';
for ($t = 2; $t <= 100; $t++) {
@b = $_[0]->();
$t--, last if "@b" eq "@a";
@a = @b;
}
@a = map{$_ ? '*' : '.'} @b;
}
f(sub{map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 0..$#a});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生あり 13: ...............
sub f {
@a = map{'*' eq $_} split '', '.*...**.*.***..';
for ($t = 2; $t <= 100; $t++) {
@b = $_[0]->();
$t--, last if "@b" eq "@a";
@a = @b;
}
@a = map{$_ ? '*' : '.'} @b;
}
f(sub{map{$a[$_] and ($a[$_-1] xor $a[$_+1])} 0..$#a});
print "生存のみ $t: ", @a, "\n";
f(sub{$a[1], (map{$a[$_-1] xor $a[$_+1]} 1..$#a-1), $a[$#a-1]});
print "誕生あり $t: ", @a, "\n";
~ $ perl 14_695.pl
生存のみ 3: .....**........
誕生あり 13: ...............
714デフォルトの名無しさん
2019/07/05(金) 07:06:17.78ID:8ZiX2Qqp■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 【悲報】安倍晋三、弟子である高市早苗の暴走を止めずにひたすら静観。一体なぜ‥‥ [153736977]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
