プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part15
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
プログラミングのお題スレ Part16
■ このスレッドは過去ログ倉庫に格納されています
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
623デフォルトの名無しさん
2020/01/13(月) 19:38:23.04ID:cBNIohlK x87で遊んでた頃は
将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど
まさか単精度や半精度の時代になるとは
将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど
まさか単精度や半精度の時代になるとは
624デフォルトの名無しさん
2020/01/14(火) 21:06:38.50ID:vjAz2zAO625デフォルトの名無しさん
2020/01/14(火) 21:13:25.69ID:vjAz2zAO 20命令で4個のdoubleのexpm1の計算が出来ます
8パラにしてレイテンシを隠蔽すれば
1個あたり2.5クロックくらい
8パラにしてレイテンシを隠蔽すれば
1個あたり2.5クロックくらい
626デフォルトの名無しさん
2020/01/15(水) 12:05:09.83ID:z1LU+PP1 将来、行列演算もFPU化されると、逆行列の桁落ちが問題になるだろうな・・・・
それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね?
それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね?
627デフォルトの名無しさん
2020/01/15(水) 13:12:03.91ID:BnAK3ul/ 思想がどんなに優れてても使われなきゃしょうがない
レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし
メモリに80bit保存するのも使いにくい
互換性の問題もあって
コンパイラや最適化で値がかわってしまうのも都合が悪い
だから演算にx87命令を使ったとしても内部64bit精度がデフォ
x87全盛期に作られたSuperPIも64bit精度の演算を使ってる
80bit精度で計算すれば速度アップ出来るにも関わらず
レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし
メモリに80bit保存するのも使いにくい
互換性の問題もあって
コンパイラや最適化で値がかわってしまうのも都合が悪い
だから演算にx87命令を使ったとしても内部64bit精度がデフォ
x87全盛期に作られたSuperPIも64bit精度の演算を使ってる
80bit精度で計算すれば速度アップ出来るにも関わらず
628デフォルトの名無しさん
2020/01/15(水) 17:38:16.89ID:xp2qVCg5629デフォルトの名無しさん
2020/01/15(水) 21:04:20.76ID:/kpg6gtq お題:
9つの物がある。
重さが20以下で価値の合計が最大になる組み合わせを求めなさい。
(Part7から再出)
[重さ, 価値]
[
[3, 5],
[5, 6],
[6, 3],
[3, 5],
[5, 9],
[2, 1],
[7, 5],
[4, 6],
[8, 3],
]
9つの物がある。
重さが20以下で価値の合計が最大になる組み合わせを求めなさい。
(Part7から再出)
[重さ, 価値]
[
[3, 5],
[5, 6],
[6, 3],
[3, 5],
[5, 9],
[2, 1],
[7, 5],
[4, 6],
[8, 3],
]
630デフォルトの名無しさん
2020/01/15(水) 21:18:06.99ID:1ZW9vAE3 ナップサック問題か
631デフォルトの名無しさん
2020/01/15(水) 21:27:46.82ID:woCrNz65 重さ < 価値
となる物を集めると丁度重さが20だから
これが解
となる物を集めると丁度重さが20だから
これが解
632デフォルトの名無しさん
2020/01/16(木) 21:02:25.92ID:ZS18thyn 【お題】以下の31個の数の下6桁を求めよ。
20200101の1, 2, 3, ..., 20200101乗の総和
20200102の1, 2, 3, ..., 20200102乗の総和
20200103の1, 2, 3, ..., 20200103乗の総和
:
20200131の1, 2, 3, ..., 20200131乗の総和
20200101の1, 2, 3, ..., 20200101乗の総和
20200102の1, 2, 3, ..., 20200102乗の総和
20200103の1, 2, 3, ..., 20200103乗の総和
:
20200131の1, 2, 3, ..., 20200131乗の総和
633デフォルトの名無しさん
2020/01/17(金) 06:54:23.06ID:bFwt3c1k634デフォルトの名無しさん
2020/01/17(金) 12:14:19.25ID:onsz9c/m >>629
16, 7: 0 0 1 0 0 1 0 0 1
17, 9: 0 0 0 0 0 1 1 0 1
18, 26: 1 1 0 1 1 1 0 0 0
19, 27: 1 1 0 0 1 1 0 1 0
20, 31: 1 1 0 1 1 0 0 1 0
16, 7: 0 0 1 0 0 1 0 0 1
17, 9: 0 0 0 0 0 1 1 0 1
18, 26: 1 1 0 1 1 1 0 0 0
19, 27: 1 1 0 0 1 1 0 1 0
20, 31: 1 1 0 1 1 0 0 1 0
635デフォルトの名無しさん
2020/01/17(金) 18:26:22.50ID:KcAYJrW8636デフォルトの名無しさん
2020/01/17(金) 20:33:32.20ID:VgNyCBhj >>635
正解。
Rによる2種類の解答例
(1) https://ideone.com/7B7IhY
(2) https://ideone.com/Y8jx8o
(1)は等比数列の総和の公式を利用しているので分かりやすいが、途中計算の最大値が
(20200130 * 1000000 - 1) ^ 2 ≒ 2 ^ 88.4 になるかも知れず、64ビット整数の
範囲に収まらないため、Cでは手軽に書けない。Rでは多倍長整数パッケージgmpを
使って書ける。
(2)は部分和をちまちま足していく方式で、途中計算の最大値が (1000000 - 1) ^ 2
≒ 2 ^ 39.9 で済むため、Cでも64ビット整数で計算できる。Rでも多倍長計算が必要な
(1)より速い (正味の実行時間が(1)は0.016秒、(2)は0.004秒)。
正解。
Rによる2種類の解答例
(1) https://ideone.com/7B7IhY
(2) https://ideone.com/Y8jx8o
(1)は等比数列の総和の公式を利用しているので分かりやすいが、途中計算の最大値が
(20200130 * 1000000 - 1) ^ 2 ≒ 2 ^ 88.4 になるかも知れず、64ビット整数の
範囲に収まらないため、Cでは手軽に書けない。Rでは多倍長整数パッケージgmpを
使って書ける。
(2)は部分和をちまちま足していく方式で、途中計算の最大値が (1000000 - 1) ^ 2
≒ 2 ^ 39.9 で済むため、Cでも64ビット整数で計算できる。Rでも多倍長計算が必要な
(1)より速い (正味の実行時間が(1)は0.016秒、(2)は0.004秒)。
637デフォルトの名無しさん
2020/01/17(金) 21:12:46.79ID:KcAYJrW8 お題
f(n) = n^1 + n^2 + ... + n^n の時
f^20200117 (20200117) の下9桁を求めよ
※ f^n (x) = f(f(f(....f(x)))...) 【fがn個】
f(n) = n^1 + n^2 + ... + n^n の時
f^20200117 (20200117) の下9桁を求めよ
※ f^n (x) = f(f(f(....f(x)))...) 【fがn個】
638デフォルトの名無しさん
2020/01/18(土) 00:45:25.84ID:meR2Lc88639デフォルトの名無しさん
2020/01/18(土) 05:21:08.23ID:et7QELfi640デフォルトの名無しさん
2020/01/18(土) 22:25:47.12ID:uIn7pF9I >>637
https://ideone.com/WvoPeq
Rでは時間が掛かりすぎるのでコンパイラ言語を使うが、C/C++だと出題者と同じで
つまらないから、Fortranで書いてみた。nが奇数の場合にしか求められないし、
合っているかどうか分からない。
https://ideone.com/WvoPeq
Rでは時間が掛かりすぎるのでコンパイラ言語を使うが、C/C++だと出題者と同じで
つまらないから、Fortranで書いてみた。nが奇数の場合にしか求められないし、
合っているかどうか分からない。
641デフォルトの名無しさん
2020/01/18(土) 23:02:35.37ID:/9q/+LXn642デフォルトの名無しさん
2020/01/18(土) 23:12:37.20ID:/9q/+LXn >>641だと偶数でもOKです
643デフォルトの名無しさん
2020/01/18(土) 23:31:05.83ID:uIn7pF9I >>641
時間は掛かるがRで下9桁の値を順々にいくつか求めて配列rに記録してから、
プロンプトで any(duplicated(r)) や which(duplicated(r)) と入力して
周期性を見つけただけ。理論的な根拠はない。
時間は掛かるがRで下9桁の値を順々にいくつか求めて配列rに記録してから、
プロンプトで any(duplicated(r)) や which(duplicated(r)) と入力して
周期性を見つけただけ。理論的な根拠はない。
644デフォルトの名無しさん
2020/01/18(土) 23:34:38.18ID:/9q/+LXn thx
周期が既知なら
mod(20200117, 312500) 回だけで済むのでは?
周期が既知なら
mod(20200117, 312500) 回だけで済むのでは?
645デフォルトの名無しさん
2020/01/18(土) 23:45:49.85ID:uIn7pF9I >>644
まあそうだが、それではあまりにもマジックナンバーすぎるので、周期が本当に
312500であるかチェックするコードを31行目に念のため入れた。周期性が
確認できなければ、STOP Errorと表示してプログラムを中断する。
まあそうだが、それではあまりにもマジックナンバーすぎるので、周期が本当に
312500であるかチェックするコードを31行目に念のため入れた。周期性が
確認できなければ、STOP Errorと表示してプログラムを中断する。
646デフォルトの名無しさん
2020/01/19(日) 00:38:02.65ID:msO9WicL 【お題】
無向グラフGが入力として与えられ、Gがサイクルを持てば、
Gの中の最小サイクルの経路とそのコストを出力するプログラムをかけ
*条件
・グラフサイズ(頂点数)は10頂点程度(任意でよい)
・各辺の重みはランダムとする
・入力は隣接行列表現とする
無向グラフGが入力として与えられ、Gがサイクルを持てば、
Gの中の最小サイクルの経路とそのコストを出力するプログラムをかけ
*条件
・グラフサイズ(頂点数)は10頂点程度(任意でよい)
・各辺の重みはランダムとする
・入力は隣接行列表現とする
647デフォルトの名無しさん
2020/01/19(日) 08:33:00.83ID:r8dbXOf2 お題: 文字列aの真ん中に文字列bを挿入する関数chopを定義しなさい
648デフォルトの名無しさん
2020/01/19(日) 08:40:19.34ID:dOSa/ZjO >>647 Ruby
def chop(str); str.tap{|s| s[s.size / 2, 0] = ?b}; end
puts chop('hogefuga') # => hogebfuga
def chop(str); str.tap{|s| s[s.size / 2, 0] = ?b}; end
puts chop('hogefuga') # => hogebfuga
649デフォルトの名無しさん
2020/01/19(日) 08:42:44.39ID:dOSa/ZjO 問題誤読してた
def chop(a, b)
a.tap{|s| s[s.size / 2, 0] = b}
end
puts chop('hogehoge', 'HOGE') # => hogeHOGEhoge
def chop(a, b)
a.tap{|s| s[s.size / 2, 0] = b}
end
puts chop('hogehoge', 'HOGE') # => hogeHOGEhoge
650デフォルトの名無しさん
2020/01/19(日) 10:33:55.37ID:9NcxNk8h お題 (>>346)
1〜1000 の整数の内、3の倍数または5の倍数であるものだけを選んで、その合計を求めよ。
1〜1000 の整数の内、3の倍数または5の倍数であるものだけを選んで、その合計を求めよ。
651デフォルトの名無しさん
2020/01/19(日) 10:37:40.30ID:9NcxNk8h 3の倍数
[1000/3] = 333個
S(3) = 3+6+9+・・・・+999 = 333 * (3+999)/2 = 166833,
5の倍数
[1000/5] = 200個
S(5) = 5+10+15+・・・・+1000 = 200 * (5+1000)/2 = 100500,
3の倍数かつ5の倍数 (15の倍数)
[1000/15] = 66個
S(15) = 15+30+45+・・・・+990 = 66 * (15+990)/2 = 33165,
∴ S(3) + S(5) - S(15) = 100500 + 166833 - 33165 = 234168.
[1000/3] = 333個
S(3) = 3+6+9+・・・・+999 = 333 * (3+999)/2 = 166833,
5の倍数
[1000/5] = 200個
S(5) = 5+10+15+・・・・+1000 = 200 * (5+1000)/2 = 100500,
3の倍数かつ5の倍数 (15の倍数)
[1000/15] = 66個
S(15) = 15+30+45+・・・・+990 = 66 * (15+990)/2 = 33165,
∴ S(3) + S(5) - S(15) = 100500 + 166833 - 33165 = 234168.
652デフォルトの名無しさん
2020/01/19(日) 13:04:07.51ID:CR4NZ4aH 15の倍数含めないんじゃないの?
https://paiza.io/projects/EeMOFbswluii2y-uytbeqA
https://paiza.io/projects/EeMOFbswluii2y-uytbeqA
653デフォルトの名無しさん
2020/01/19(日) 18:23:22.44ID:t01ujcAX >>629 Perl5
use List::Util qw{max};
$W = 20;
$n = @wv = ([3, 5],[5, 6],[6, 3],[3, 5],[5, 9],[2, 1],[7, 5],[4, 6],[8, 3]);
@w = map{$$_[0]} @wv;
@v = map{$$_[1]} @wv;
$wt[$n][$_] = 0 for 0..$W;
for ($i = $n - 1; $i >= 0; $i--) {
for $j (0..$W) {
$ws = $wt[$i + 1][$j];
$ws = max($wt[$i + 1][$j - $w[$i]] + $v[$i], $ws) if $j >= $w[$i];
$wt[$i][$j] = $ws;
}
}
print "価値合計最大: $wt[0][$W]\n";
$j = $W;
for $i (0..$n-1) {
$ws = $wt[$i][$j];
if ($wt[$i + 1][$j] != $ws) {
print "[$w[$i], $v[$i]] ";
$ws -= $v[$i];
for (; 0 <= $j; $j--) { last if $wt[$i + 1][$j] == $ws; }
}
}
$ perl 16_629_nsp_dp.pl
価値合計最大: 31
[3, 5]
[5, 6]
[3, 5]
[5, 9]
[4, 6]
use List::Util qw{max};
$W = 20;
$n = @wv = ([3, 5],[5, 6],[6, 3],[3, 5],[5, 9],[2, 1],[7, 5],[4, 6],[8, 3]);
@w = map{$$_[0]} @wv;
@v = map{$$_[1]} @wv;
$wt[$n][$_] = 0 for 0..$W;
for ($i = $n - 1; $i >= 0; $i--) {
for $j (0..$W) {
$ws = $wt[$i + 1][$j];
$ws = max($wt[$i + 1][$j - $w[$i]] + $v[$i], $ws) if $j >= $w[$i];
$wt[$i][$j] = $ws;
}
}
print "価値合計最大: $wt[0][$W]\n";
$j = $W;
for $i (0..$n-1) {
$ws = $wt[$i][$j];
if ($wt[$i + 1][$j] != $ws) {
print "[$w[$i], $v[$i]] ";
$ws -= $v[$i];
for (; 0 <= $j; $j--) { last if $wt[$i + 1][$j] == $ws; }
}
}
$ perl 16_629_nsp_dp.pl
価値合計最大: 31
[3, 5]
[5, 6]
[3, 5]
[5, 9]
[4, 6]
654デフォルトの名無しさん
2020/01/19(日) 20:22:32.64ID:MJwntUeD >>652
PowerShellには論理XOR演算子があるので簡潔に書けるな。
(1..1000 |? {$_ % 3 -xor $_ % 5} | measure -sum).sum
-- 実行結果 --
201003
PowerShellには論理XOR演算子があるので簡潔に書けるな。
(1..1000 |? {$_ % 3 -xor $_ % 5} | measure -sum).sum
-- 実行結果 --
201003
655デフォルトの名無しさん
2020/01/19(日) 21:28:24.55ID:RfLx+x9F >>652
なぜそう思った?
なぜそう思った?
656デフォルトの名無しさん
2020/01/19(日) 21:32:35.60ID:CR4NZ4aH >>655
だけ と強調してたから15を含めない意図があったのかと思った
だけ と強調してたから15を含めない意図があったのかと思った
657デフォルトの名無しさん
2020/01/19(日) 21:35:30.71ID:RrNuywTU 「3の倍数または5の倍数であるものだけ」という文言をそう理解するのは宇宙でお前だけだと思う
658デフォルトの名無しさん
2020/01/19(日) 22:24:05.06ID:RfLx+x9F 妊娠してるか体が不自由な人だけ使ってください
659デフォルトの名無しさん
2020/01/19(日) 23:13:47.04ID:xkwic4JQ >>658
妊娠してる障害者はすわれないやんけ!
妊娠してる障害者はすわれないやんけ!
660デフォルトの名無しさん
2020/01/20(月) 07:26:08.24ID:MadDRkAO 日本語の選択が排他的かどうかは状況しだいだから難しいところだと思うけどね
レストランで「コーヒーか紅茶が付きます」と言えばどちらか一方でしょ
ケースバイケース
こう解釈したらこういうプログラムになるというふうに思考を広げることはできるっしょ
レストランで「コーヒーか紅茶が付きます」と言えばどちらか一方でしょ
ケースバイケース
こう解釈したらこういうプログラムになるというふうに思考を広げることはできるっしょ
661デフォルトの名無しさん
2020/01/20(月) 08:18:28.86ID:ItoFGwWk662デフォルトの名無しさん
2020/01/20(月) 10:07:25.78ID:DzK/Jy6Q 0個選んで答えは0
コンピュータ言語読み書きしてたらこういう
発想が自然に感じられるが
日常言語の世界ではナンセンス杉
コンピュータ言語読み書きしてたらこういう
発想が自然に感じられるが
日常言語の世界ではナンセンス杉
663デフォルトの名無しさん
2020/01/20(月) 14:10:00.56ID:gT/yNp+O >651 のようにした
common lisp
(loop for i from 1 to 1000 when (= (* (mod i 3) (mod i 5)) 0) sum i)
234168
common lisp
(loop for i from 1 to 1000 when (= (* (mod i 3) (mod i 5)) 0) sum i)
234168
664デフォルトの名無しさん
2020/01/20(月) 15:41:16.18ID:/G9h8LiI >>651 Ruby
def si(n,m); n.step(m,n).inject(:+); end
p n3 = si( 3, 1000 ) #=> 166833
p n5 = si( 5, 1000 ) #=> 100500
p n15 = si( 15, 1000 ) #=> 33165
p n3 + n5 - 2 * n15 #=> 201003
def si(n,m); n.step(m,n).inject(:+); end
p n3 = si( 3, 1000 ) #=> 166833
p n5 = si( 5, 1000 ) #=> 100500
p n15 = si( 15, 1000 ) #=> 33165
p n3 + n5 - 2 * n15 #=> 201003
665デフォルトの名無しさん
2020/01/20(月) 21:46:25.06ID:eV9B9Eib >>629
Rで全探索
https://ideone.com/XDwD7C
物が9個しかないので512通りの組み合わせを全探索してもすぐ終わるし、
上のプログラムの2番目の問題のように、合計価値が最大となる組み合わせが
複数ある場合でもすべて挙げられるし、重さが小数や大きな整数の場合でも
同様に解けるから、全探索が時間的に可能なら全探索の方が良いんじゃないか?
Rで全探索
https://ideone.com/XDwD7C
物が9個しかないので512通りの組み合わせを全探索してもすぐ終わるし、
上のプログラムの2番目の問題のように、合計価値が最大となる組み合わせが
複数ある場合でもすべて挙げられるし、重さが小数や大きな整数の場合でも
同様に解けるから、全探索が時間的に可能なら全探索の方が良いんじゃないか?
666デフォルトの名無しさん
2020/01/20(月) 22:42:22.14ID:vyZs8dgX667デフォルトの名無しさん
2020/01/20(月) 23:01:52.63ID:kEPXORSp 問題に適した解法なら>>631が最強
668デフォルトの名無しさん
2020/01/20(月) 23:10:30.44ID:vyZs8dgX (´・ω・`)「・・・・・」
669デフォルトの名無しさん
2020/01/21(火) 14:48:52.44ID:/dftakVp >>650
Kotlin script
KotlinもBooleanのxor使えたよ。こういう場合は優先順位の問題で括弧が必要になるけどね。
println((1..1000).filter { (it % 3 == 0) xor (it % 5 == 0) }.sum())
Kotlin script
KotlinもBooleanのxor使えたよ。こういう場合は優先順位の問題で括弧が必要になるけどね。
println((1..1000).filter { (it % 3 == 0) xor (it % 5 == 0) }.sum())
670デフォルトの名無しさん
2020/01/21(火) 16:44:59.42ID:TMO7rdDn !=でいんじゃ、、、
671デフォルトの名無しさん
2020/01/21(火) 21:56:37.25ID:q8k+mYw1 ["A -> B" , "A -> D", "B -> E", "D -> E"]
を
A
B
E
D
E
このようにツリー状に表現する際に計算量が少ない書き出し方ってどうなりますか。言語問いません。
を
A
B
E
D
E
このようにツリー状に表現する際に計算量が少ない書き出し方ってどうなりますか。言語問いません。
672デフォルトの名無しさん
2020/01/21(火) 21:57:01.85ID:q8k+mYw1 スペースきえた…
673デフォルトの名無しさん
2020/01/21(火) 21:58:36.68ID:5H3OckH4 D -> B のようなループできるかもね
674デフォルトの名無しさん
2020/01/22(水) 03:28:09.12ID:HNO/xGn/ >>670
それを言っちゃあおしめえよ
それを言っちゃあおしめえよ
675デフォルトの名無しさん
2020/01/22(水) 10:29:09.24ID:Oj6zQLXh676デフォルトの名無しさん
2020/01/22(水) 11:00:25.26ID:8VKZzbv1 >>671
dot
dot
677デフォルトの名無しさん
2020/01/22(水) 19:16:47.36ID:0ayd3B3Q678デフォルトの名無しさん
2020/01/22(水) 19:50:15.23ID:k+w34kNu ["A -> B" , "B -> A]
これで循環参照のチェックいれるコードがない再帰っぽい感じなら無限に出力だ
これで循環参照のチェックいれるコードがない再帰っぽい感じなら無限に出力だ
679デフォルトの名無しさん
2020/01/22(水) 19:55:17.74ID:F1N+c+gr 閉路と多重辺は無しで
辺の無い点も表現出来ないので無し
辺の無い点も表現出来ないので無し
680デフォルトの名無しさん
2020/01/22(水) 20:19:19.31ID:3jquT0bn >>677
20個ならループしない限りは内容が何だろうが20行にしかならないのでは?
20個ならループしない限りは内容が何だろうが20行にしかならないのでは?
681デフォルトの名無しさん
2020/01/22(水) 20:23:02.50ID:1i745hKi 最大は21行だよ
682デフォルトの名無しさん
2020/01/22(水) 20:40:06.51ID:3jquT0bn あー。そうか。21だね。
683デフォルトの名無しさん
2020/01/22(水) 20:43:02.80ID:F1N+c+gr >>671に "E -> C" を加えると?
684デフォルトの名無しさん
2020/01/22(水) 21:13:37.75ID:pXdYyKNl685デフォルトの名無しさん
2020/01/23(木) 01:12:44.95ID:LqZxq9h8 >>683
分岐か。そうすれば増えるね。
分岐か。そうすれば増えるね。
686デフォルトの名無しさん
2020/01/23(木) 18:13:14.12ID:AdSJ3UeH [] 0行
["A -> B"] 2行
["A -> C", "B -> C"] 4行
["A -> D", "B -> D", "C -> D"] 6行
["A -> D", "B -> D", "C -> D", "D -> E"] 9行
["A -> B"] 2行
["A -> C", "B -> C"] 4行
["A -> D", "B -> D", "C -> D"] 6行
["A -> D", "B -> D", "C -> D", "D -> E"] 9行
687デフォルトの名無しさん
2020/01/23(木) 18:45:00.25ID:AdSJ3UeH n≧12 の時、以下を四捨五入した行数になるかな
偶数
4 * exp(n*0.24060591252980172375)
奇数
4.0137530980362538594 * exp(n*0.24060591252980172375)
偶数
4 * exp(n*0.24060591252980172375)
奇数
4.0137530980362538594 * exp(n*0.24060591252980172375)
688デフォルトの名無しさん
2020/01/24(金) 23:55:14.11ID:qxZ+oily >>671 Perl5 (goto 関数を使っていますが、perl5ではこれはcontinuationです)
use feature qw{current_sub signatures};
no warnings 'experimental::signatures';
@sx = (A => B, A => D, B => E, D => E);
sub {
if (@_) {
($a, $b) = (shift, shift);
push @lx, $a unless $h{$a};
push @{$h{$a}}, $b;
$r{$b}{$a} = 1;
goto __SUB__;
}
}->(@sx);
@ax = grep{! $r{$_}} @lx;
sub ($a, $d) {
print "$d$a\n";
__SUB__->($b, "_$d") while $b = shift @{$h{$a}};
}->($_, '') for @ax;
実行結果
$ perl 16_671.pl
A
_B
__E
_D
__E
use feature qw{current_sub signatures};
no warnings 'experimental::signatures';
@sx = (A => B, A => D, B => E, D => E);
sub {
if (@_) {
($a, $b) = (shift, shift);
push @lx, $a unless $h{$a};
push @{$h{$a}}, $b;
$r{$b}{$a} = 1;
goto __SUB__;
}
}->(@sx);
@ax = grep{! $r{$_}} @lx;
sub ($a, $d) {
print "$d$a\n";
__SUB__->($b, "_$d") while $b = shift @{$h{$a}};
}->($_, '') for @ax;
実行結果
$ perl 16_671.pl
A
_B
__E
_D
__E
689デフォルトの名無しさん
2020/01/25(土) 02:34:16.23ID:XZtTnZKV690デフォルトの名無しさん
2020/01/25(土) 02:36:37.70ID:XZtTnZKV つか、無向グラフの最小サイクル検出って
いいアルゴリズムあったっけ
いいアルゴリズムあったっけ
691デフォルトの名無しさん
2020/01/25(土) 06:09:52.81ID:Fgzm1LAC 最小サイクルとは?
コストが最小?通る辺の数が最小?
コストとは?
通る辺の重みの和?
点のコストはゼロ?
出題者しかわからない前提が色々とあるお題
コストが最小?通る辺の数が最小?
コストとは?
通る辺の重みの和?
点のコストはゼロ?
出題者しかわからない前提が色々とあるお題
692デフォルトの名無しさん
2020/01/25(土) 06:22:55.26ID:Fgzm1LAC >>688
gotoを使っちゃいけないローカルルールとかあるの?
gotoを使っちゃいけないローカルルールとかあるの?
693デフォルトの名無しさん
2020/01/25(土) 08:11:44.03ID:O6wUvbi6 tsort(1) ?
694デフォルトの名無しさん
2020/01/25(土) 10:35:48.88ID:ZrgQFiPc >>692
そんなルールはないけれど、制御構造の構文の代わりに安直に
goto分岐を使ったヘッポココードではなくて、perl5のgoto 関数名構文が持つ
continuationの機能を使って、動的環境を維持したまま末尾再帰的な
loopを表現したと言いたかったのよ
そんなルールはないけれど、制御構造の構文の代わりに安直に
goto分岐を使ったヘッポココードではなくて、perl5のgoto 関数名構文が持つ
continuationの機能を使って、動的環境を維持したまま末尾再帰的な
loopを表現したと言いたかったのよ
695デフォルトの名無しさん
2020/01/25(土) 10:38:39.91ID:icKJvqvk なるほど
お前はなかなかやるじゃねえか
お前はなかなかやるじゃねえか
696デフォルトの名無しさん
2020/01/25(土) 11:05:32.17ID:mLh1vP4R お題
.bash_history には、入力したコマンドが、1行ずつ追記されていくが、
同じコマンドが出てくると面倒なので、古い(上にある)方をすべて消してください
入力
5
3
1
4
2
5
3
4
5
出力
1
2
3
4
5
.bash_history には、入力したコマンドが、1行ずつ追記されていくが、
同じコマンドが出てくると面倒なので、古い(上にある)方をすべて消してください
入力
5
3
1
4
2
5
3
4
5
出力
1
2
3
4
5
697デフォルトの名無しさん
2020/01/25(土) 11:14:27.65ID:wxh/zNmo698デフォルトの名無しさん
2020/01/25(土) 12:48:36.66ID:dgvYVRBF699デフォルトの名無しさん
2020/01/25(土) 13:56:27.24ID:yjSryLut >>696 Perl5
$h{$_} = $. while <>;
print for sort{$h{$a} <=> $h{$b}} keys %h;
実行結果
~ $ cat .bash_history
5
3
1
4
2
5
3
4
5
~ $ perl 16_696.pl .bash_history
1
2
3
4
5
$h{$_} = $. while <>;
print for sort{$h{$a} <=> $h{$b}} keys %h;
実行結果
~ $ cat .bash_history
5
3
1
4
2
5
3
4
5
~ $ perl 16_696.pl .bash_history
1
2
3
4
5
700デフォルトの名無しさん
2020/01/25(土) 18:59:55.00ID:xXb4DuHd701デフォルトの名無しさん
2020/01/25(土) 19:19:17.51ID:i4ScOGkF702デフォルトの名無しさん
2020/01/25(土) 19:26:44.09ID:eYyvJiZZ703デフォルトの名無しさん
2020/01/25(土) 20:22:19.72ID:J6xo1Vbp >>696 Emacs Lisp
(with-temp-buffer-window #1="*odai-pt16-696*" nil nil
(switch-to-buffer #1#)
(insert-file-contents "~/.bash_history")
(delete-duplicate-lines (point-min) (point-max) t))
(with-temp-buffer-window #1="*odai-pt16-696*" nil nil
(switch-to-buffer #1#)
(insert-file-contents "~/.bash_history")
(delete-duplicate-lines (point-min) (point-max) t))
704デフォルトの名無しさん
2020/01/26(日) 00:01:21.24ID:4S7WZkam >>701 ナイス
705デフォルトの名無しさん
2020/01/26(日) 00:02:23.79ID:4S7WZkam706696
2020/01/26(日) 00:35:54.22ID:2jcz6vHU >>702
スレ違いで、スマンが、
erasedups で、現在の行と一致する履歴を、保存前にすべて削除するけど、
WSL, Ubuntu 18.04, bash では、削除されなかった!
これは難しい
tmuxとかの仮想端末で複数の画面間で、Bashのコマンド履歴を共有すると、
同じ履歴が何度も記録されてしまう問題を解決する
https://piro.sa@kura.ne.jp/latest/blosxom/webtech/2018-03-04_history-nodup-with-tmux.htm
スレ違いで、スマンが、
erasedups で、現在の行と一致する履歴を、保存前にすべて削除するけど、
WSL, Ubuntu 18.04, bash では、削除されなかった!
これは難しい
tmuxとかの仮想端末で複数の画面間で、Bashのコマンド履歴を共有すると、
同じ履歴が何度も記録されてしまう問題を解決する
https://piro.sa@kura.ne.jp/latest/blosxom/webtech/2018-03-04_history-nodup-with-tmux.htm
707デフォルトの名無しさん
2020/01/26(日) 01:20:33.64ID:4S7WZkam >>706
モチツケ
モチツケ
708696
2020/01/26(日) 01:39:31.40ID:2jcz6vHU history の仕組みが難しいから、
定期的に、ここのスクリプトで、履歴ファイルを上書きした方が良いかも
定期的に、ここのスクリプトで、履歴ファイルを上書きした方が良いかも
709デフォルトの名無しさん
2020/01/26(日) 01:43:44.81ID:HPdacZve rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
710デフォルトの名無しさん
2020/01/26(日) 02:08:32.67ID:4S7WZkam711696
2020/01/26(日) 05:19:41.93ID:2jcz6vHU712696
2020/01/26(日) 06:05:44.52ID:2jcz6vHU >>696
Ruby で作った。
コマンドは「ruby script.rb 入力ファイル名」
# ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ary = ARGF.readlines # 1行ずつ配列に入れる
# ! が付く破壊的メソッドは、メソッドチェーンしない!
ary.reverse!
ary.uniq! # 連続していないものも削除する
ary.reverse! # 元に戻す
print ary.join
Ruby で作った。
コマンドは「ruby script.rb 入力ファイル名」
# ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ary = ARGF.readlines # 1行ずつ配列に入れる
# ! が付く破壊的メソッドは、メソッドチェーンしない!
ary.reverse!
ary.uniq! # 連続していないものも削除する
ary.reverse! # 元に戻す
print ary.join
714デフォルトの名無しさん
2020/01/26(日) 09:38:26.36ID:6CyPsFJq お題: 入力された整数を因数分解し、因数の数だけ「どんだけぇ〜♪」と表示せよ
in < 24
因数分解: 2 2 2 3
out > どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
in < 24
因数分解: 2 2 2 3
out > どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
715デフォルトの名無しさん
2020/01/26(日) 10:24:47.39ID:mBsLdcGX >>709
121 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v)[] 投稿日:2020/01/25(土) 15:52:45.46 ID:WZ3Oswhu0
rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
121 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v)[] 投稿日:2020/01/25(土) 15:52:45.46 ID:WZ3Oswhu0
rubyXLでエクセルいじってるが
印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
716デフォルトの名無しさん
2020/01/26(日) 10:35:06.75ID:OyPCa8uu717デフォルトの名無しさん
2020/01/26(日) 11:45:57.12ID:pipfilQo718蟻人間 ◆T6xkBnTXz7B0
2020/01/26(日) 15:31:19.81ID:QR2U0M8L お題: どこかの国に競馬があった。そこの競馬場のルールでは馬券一枚に対して単勝の馬一頭しか選べない。
その日の各ゲームのそれぞれの出場馬について、名前と勝率とオッズが掲示されている。
【今日の競馬】
ゲーム1:
馬A, 0.5, 2.0
馬B, 0.8, 1.2
馬C, 0.9, 0.2
ゲーム2:
馬D, 0.3, 4.0
馬E, 0.5, 3.0
馬F, 0.8, 1.4
予算50,000円で獲得期待金額が最大になるように馬券を購入せよ。馬券の購入において、小数点以下は切り捨てとし、馬券には税金が掛からないものと仮定する。
その日の各ゲームのそれぞれの出場馬について、名前と勝率とオッズが掲示されている。
【今日の競馬】
ゲーム1:
馬A, 0.5, 2.0
馬B, 0.8, 1.2
馬C, 0.9, 0.2
ゲーム2:
馬D, 0.3, 4.0
馬E, 0.5, 3.0
馬F, 0.8, 1.4
予算50,000円で獲得期待金額が最大になるように馬券を購入せよ。馬券の購入において、小数点以下は切り捨てとし、馬券には税金が掛からないものと仮定する。
719デフォルトの名無しさん
2020/01/26(日) 15:44:50.09ID:uQg9mh+n 勝率の和が1を越えてるけど勝率って言うのは勝つ確率のことではなくて何かしらの競馬用語なのか?
720蟻人間 ◆T6xkBnTXz7B0
2020/01/26(日) 15:46:20.30ID:TOQ25Lx5 ここでは、払戻金の倍率(賭けた金が何倍になって払い戻されるか)のことをオッズと呼ぶことにする。払戻金は小数点以下切り捨てとする。
721デフォルトの名無しさん
2020/01/26(日) 15:47:57.17ID:uQg9mh+n てよく見たらいつもの糞コテやん
解散
解散
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- 地震 [Hitzeschleier★]
- 変な人「俺は正しい!お前らは間違っている!」←大体こいつのほうが迷惑で間違ってる件について
- 好きなAA貼ってけ!!!!!!!!!!!!!!!!!!!!!!!!!!!!(´・ω・`)
- ココアさん好き好き大好き
- そろそろ地球も旅立たないの?
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 「妨」という字が女へんという事実…
