プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/
探検
プログラミングのお題スレ Part18
■ このスレッドは過去ログ倉庫に格納されています
2020/07/14(火) 13:53:46.47ID:jW5p6F/e
496465
2020/09/06(日) 20:59:44.84ID:I1QXsub5 >>489
ご指摘の通りバグってたので再投稿します。
https://ideone.com/VxDLwz
やりたかったことは>>456が言っていることと全く同じです。
イメージとしてはhttps://imgur.com/j0azhSf.jpg (※お題を考えたい人は閲覧注意)
>>465のコードは大抵の場合なぜかうまくいくコードのようです。
ご指摘の通りバグってたので再投稿します。
https://ideone.com/VxDLwz
やりたかったことは>>456が言っていることと全く同じです。
イメージとしてはhttps://imgur.com/j0azhSf.jpg (※お題を考えたい人は閲覧注意)
>>465のコードは大抵の場合なぜかうまくいくコードのようです。
497253
2020/09/06(日) 21:09:12.93ID:loE/lDca >>454 Perl5、>>494 を動的計画法で解くように改良(但し再帰呼び出しを使っているので10^5など規模が大きい問題を解くなら下から上に計算してくる単純ループに書き換えた方が良い)
no warnings 'experimental';
use feature qw{signatures say};
$T = <>;
chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<>;
use List::Util 'max';
sub f($t, $i) {
my $s = 0;
if (0 < $i and $i < 11) {
return $m[$t][$i] if defined $m[$t][$i];
$s++ if grep{$_ == $i} @{$p{$t}};
$s += max(f($t+1, $i-1), f($t+1, $i), f($t+1, $i+1))
if $t < $T;
$m[$t][$i] = $s;
}
$s
}
say f(0, 1);
no warnings 'experimental';
use feature qw{signatures say};
$T = <>;
chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<>;
use List::Util 'max';
sub f($t, $i) {
my $s = 0;
if (0 < $i and $i < 11) {
return $m[$t][$i] if defined $m[$t][$i];
$s++ if grep{$_ == $i} @{$p{$t}};
$s += max(f($t+1, $i-1), f($t+1, $i), f($t+1, $i+1))
if $t < $T;
$m[$t][$i] = $s;
}
$s
}
say f(0, 1);
498253
2020/09/06(日) 21:11:43.16ID:loE/lDca >>497 の実行結果
~ $ cat 18_454_ex1.txt
5
5 4
2 3
3 2
3 4
4 4
~ $ cat 18_454_ex1.txt | perl 18_454_N_vztr_DP_rec.pl
4
~ $ cat 18_454_ex2.txt
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
~ $ cat 18_454_ex2.txt | perl 18_454_N_vztr_DP_rec.pl
5
~ $ cat 18_454_ex1.txt
5
5 4
2 3
3 2
3 4
4 4
~ $ cat 18_454_ex1.txt | perl 18_454_N_vztr_DP_rec.pl
4
~ $ cat 18_454_ex2.txt
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
~ $ cat 18_454_ex2.txt | perl 18_454_N_vztr_DP_rec.pl
5
499253
2020/09/07(月) 00:59:21.14ID:5qB4CD7g >>469 Perl5、小数点以下48桁で「丸め」
use bignum(p=>-48);
print 1/4999, "\n";
実行結果
$ perl 18_468_1_4999-48p.pl
0.000200040008001600320064012802560512102420484097
use bignum(p=>-48);
print 1/4999, "\n";
実行結果
$ perl 18_468_1_4999-48p.pl
0.000200040008001600320064012802560512102420484097
500453
2020/09/07(月) 18:47:15.23ID:IF51aHwX >>453
Elixir
ary = for << byte <- "あaθ💀xΩ死🄫" >> do # 1バイトずつ、ループ
<< nibble::size( 4 ), _::size( 4 ) >> = << byte >> # 先頭の4ビット
case nibble do
n when n in 0..7 -> 1
n when n in 8..11 -> 0
n when n in 12..13 -> 2
14 -> 3
15 -> 4
end
end
res = Enum.reject( ary, fn n -> n == 0 end ) # 0 を削除する
IO.inspect res
# [3, 1, 2, 4, 1, 2, 3, 4]
IO.puts( length res ) # 8文字
IO.puts( Enum.sum res ) # 20バイト
Elixir
ary = for << byte <- "あaθ💀xΩ死🄫" >> do # 1バイトずつ、ループ
<< nibble::size( 4 ), _::size( 4 ) >> = << byte >> # 先頭の4ビット
case nibble do
n when n in 0..7 -> 1
n when n in 8..11 -> 0
n when n in 12..13 -> 2
14 -> 3
15 -> 4
end
end
res = Enum.reject( ary, fn n -> n == 0 end ) # 0 を削除する
IO.inspect res
# [3, 1, 2, 4, 1, 2, 3, 4]
IO.puts( length res ) # 8文字
IO.puts( Enum.sum res ) # 20バイト
501デフォルトの名無しさん
2020/09/08(火) 22:13:29.34ID:r41CjiKh502253
2020/09/08(火) 23:15:40.17ID:TMzoRSJV >>454 go 動的計画法
package main
import ( "fmt" )
var m [][]int
func v(t int, p int) int {
if 1 <= p && p <= 10 { return m[t][p] }; return 0 }
func max3(n1 int, n2 int, n3 int) int {
n := n1; if n < n2 { n = n2 }; if n < n3 { n = n3 }; return n }
func main() {
var n, t, p, i, T int
fmt.Scan(&n)
var a [][]int = make([][]int, n)
for i=0; i<n; i++ {
fmt.Scanf("%d %d", &t, &p)
a[i] = []int{ t, p }
if t > T { T = t }
}
m = make([][]int, T+1)
for t=0; t<=T; t++ {
m[t] = make([]int, 11)
for p=1; p<=10; p++ { m[t][p] = 0 }
}
for i=0; i<n; i++ { m[a[i][0]][a[i][1]] = 1 }
for t=T-1; 0<=t; t-- {
for p=1; p<=10; p++ {
m[t][p] += max3(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
}
}
fmt.Println(m[0][1])
}
package main
import ( "fmt" )
var m [][]int
func v(t int, p int) int {
if 1 <= p && p <= 10 { return m[t][p] }; return 0 }
func max3(n1 int, n2 int, n3 int) int {
n := n1; if n < n2 { n = n2 }; if n < n3 { n = n3 }; return n }
func main() {
var n, t, p, i, T int
fmt.Scan(&n)
var a [][]int = make([][]int, n)
for i=0; i<n; i++ {
fmt.Scanf("%d %d", &t, &p)
a[i] = []int{ t, p }
if t > T { T = t }
}
m = make([][]int, T+1)
for t=0; t<=T; t++ {
m[t] = make([]int, 11)
for p=1; p<=10; p++ { m[t][p] = 0 }
}
for i=0; i<n; i++ { m[a[i][0]][a[i][1]] = 1 }
for t=T-1; 0<=t; t-- {
for p=1; p<=10; p++ {
m[t][p] += max3(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
}
}
fmt.Println(m[0][1])
}
503253
2020/09/08(火) 23:16:27.70ID:TMzoRSJV >>502 の実行結果
~ $ cat 18_454_ex1.txt
5
5 4
2 3
3 2
3 4
4 4
~ $ cat 18_454_ex1.txt | go run 18_454_N_vztr_DP.go
4
~ $ cat 18_454_ex2.txt
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
~ $ cat 18_454_ex2.txt | go run 18_454_N_vztr_DP.go
5
~ $ cat 18_454_ex1.txt
5
5 4
2 3
3 2
3 4
4 4
~ $ cat 18_454_ex1.txt | go run 18_454_N_vztr_DP.go
4
~ $ cat 18_454_ex2.txt
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
~ $ cat 18_454_ex2.txt | go run 18_454_N_vztr_DP.go
5
504253
2020/09/09(水) 09:03:14.92ID:GqQ7+Mc6 >>454 Python3
n = int(input())
a = [list(map(int, input().split())) for i in range(n)]
T = max([a[i][0] for i in range(n)])
m = [[0] * 11 for t in range(T+1)]
for i in range(n):
m[a[i][0]][a[i][1]] = 1
def v(t, p):
return m[t][p] if 0 < p and p < 11 else 0
for t in reversed(range(T)):
for p in range(1, 11):
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
print(m[0][1])
実行結果 (>>503 と同じテキストファイル 18_454_ex1.txt, 18_454_ex2.txt を入力に使用)
~ $ cat 18_454_ex1.txt | python 18_454_N_vztr_DP.py
4
~ $ cat 18_454_ex2.txt | python 18_454_N_vztr_DP.py
5
n = int(input())
a = [list(map(int, input().split())) for i in range(n)]
T = max([a[i][0] for i in range(n)])
m = [[0] * 11 for t in range(T+1)]
for i in range(n):
m[a[i][0]][a[i][1]] = 1
def v(t, p):
return m[t][p] if 0 < p and p < 11 else 0
for t in reversed(range(T)):
for p in range(1, 11):
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
print(m[0][1])
実行結果 (>>503 と同じテキストファイル 18_454_ex1.txt, 18_454_ex2.txt を入力に使用)
~ $ cat 18_454_ex1.txt | python 18_454_N_vztr_DP.py
4
~ $ cat 18_454_ex2.txt | python 18_454_N_vztr_DP.py
5
505253
2020/09/09(水) 09:34:15.87ID:GqQ7+Mc6 >>504
for p in range(1, 11):
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
を
for p in range(1, 11):
if t+1 < p: continue
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
とか書くと、右上三角の不要な計算を省けるが10^5などtが大きいと大勢に影響はないな…
for p in range(1, 11):
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
を
for p in range(1, 11):
if t+1 < p: continue
m[t][p] += max(v(t+1, p-1), v(t+1, p), v(t+1, p+1))
とか書くと、右上三角の不要な計算を省けるが10^5などtが大きいと大勢に影響はないな…
506デフォルトの名無しさん
2020/09/10(木) 01:27:25.37ID:8z9ZctT6507453
2020/09/10(木) 16:14:51.93ID:ypm5ktrY お題
>>453
のルールに基いて、以下の3つの10進数のバイト列を、先頭(1バイト目)からチェックしていく時、
最初にルール違反となるのは、何バイト目か
129 130
120 169
240 159 146 206 184
>>453
のルールに基いて、以下の3つの10進数のバイト列を、先頭(1バイト目)からチェックしていく時、
最初にルール違反となるのは、何バイト目か
129 130
120 169
240 159 146 206 184
508デフォルトの名無しさん
2020/09/10(木) 22:23:57.36ID:8z9ZctT6509デフォルトの名無しさん
2020/09/12(土) 21:24:36.97ID:2KEhs3KT510デフォルトの名無しさん
2020/09/13(日) 00:20:13.60ID:OR+CcCGz511デフォルトの名無しさん
2020/09/13(日) 00:35:46.34ID:42xWDo9L512蟻人間 ◆T6xkBnTXz7B0
2020/09/13(日) 22:12:25.49ID:p9JSm0uj お題: 「ジャンケンすたじあむ オンライン」というソーシャルゲームのウェブサイト、もしくはソフトウェアパッケージを制作・運営せよ。
ジャンケンをしたい人が集まって、ひたすらジャンケンをして、勝ち数を競うというソーシャルゲーム。
ジャンケン試合は2人組になり、お互いに出す手を事前に申告し、両者が申告したところでシステムが自動で勝敗を判定する。
ジャンケンをしたい人が集まって、ひたすらジャンケンをして、勝ち数を競うというソーシャルゲーム。
ジャンケン試合は2人組になり、お互いに出す手を事前に申告し、両者が申告したところでシステムが自動で勝敗を判定する。
513デフォルトの名無しさん
2020/09/13(日) 22:17:50.99ID:phcl8RYj >>512
消えろ
消えろ
514デフォルトの名無しさん
2020/09/13(日) 22:22:25.86ID:lu6eiMc4 動的計画法ってちゃんと勉強しないとなかなか思いつかないよな
515デフォルトの名無しさん
2020/09/14(月) 12:06:08.48ID:u8/qg5cq >>509
Haskell
f x = head [ d | d <- [(ceiling $ sqrt $ fromInteger x)..], mod x d == 0]
main = mapM_ print [(x,f x) | x<-[100..130]]
Haskell
f x = head [ d | d <- [(ceiling $ sqrt $ fromInteger x)..], mod x d == 0]
main = mapM_ print [(x,f x) | x<-[100..130]]
516蟻人間 ◆T6xkBnTXz7B0
2020/09/14(月) 14:12:59.44ID:/Fwk/gkb お題: 沖縄の名物「シークワーサー」のことが書かれた記事のUTF-8日本語テキストファイル「input.txt」がある。
しかし、記事の執筆に多数の編集者が関わったため、シークワーサーの表記がぶれていることが分かった(次のリンクを参照)。
https://ja.m.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%AF%E3%83%AE%E3%83%BC%E3%82%B5%E3%83%BC
表記のぶれを「シークワーサー」に表記を統一したテキストファイル「output.txt」を出力せよ。
しかし、記事の執筆に多数の編集者が関わったため、シークワーサーの表記がぶれていることが分かった(次のリンクを参照)。
https://ja.m.wikipedia.org/wiki/%E3%82%B7%E3%83%BC%E3%82%AF%E3%83%AE%E3%83%BC%E3%82%B5%E3%83%BC
表記のぶれを「シークワーサー」に表記を統一したテキストファイル「output.txt」を出力せよ。
517デフォルトの名無しさん
2020/09/14(月) 17:05:19.85ID:xV8mpaUY エンジニアが書いてるならシークワーサだな
間違いない
間違いない
518蟻人間 ◆T6xkBnTXz7B0
2020/09/14(月) 17:29:10.23ID:yesAwSRz >>516 input.txtの中身:
「シークヮーサーは、別名シイークワシャーと呼ばれ、シークヮーサーの香りがするシークヮーシャーのような柑橘系の果物である。シィークアーサーはアーサー王とは関係がないと思われる。」
「シークヮーサーは、別名シイークワシャーと呼ばれ、シークヮーサーの香りがするシークヮーシャーのような柑橘系の果物である。シィークアーサーはアーサー王とは関係がないと思われる。」
519デフォルトの名無しさん
2020/09/14(月) 18:00:53.92ID:wBiJ2Dx0 "/シ(?:イ?ー|ィー?)ク[アワァヮ]ー?(?:サ|シャ)ー?/シークヮーサー/g"
520蟻人間 ◆T6xkBnTXz7B0
2020/09/14(月) 20:32:57.79ID:/Fwk/gkb お題: お使いのプログラム言語で、COBOLに負けない最強の通貨型を設計せよ。
任意の桁数の10進整数を扱えること。
任意の有効桁数の10進小数を扱えること(10進浮動小数点数)。
加減乗除、剰余、任意桁での切り捨て・切り上げ・四捨五入が可能。
10進数表記で入出力できること。
比較的高速に演算できること。
任意の桁数の10進整数を扱えること。
任意の有効桁数の10進小数を扱えること(10進浮動小数点数)。
加減乗除、剰余、任意桁での切り捨て・切り上げ・四捨五入が可能。
10進数表記で入出力できること。
比較的高速に演算できること。
521蟻人間 ◆T6xkBnTXz7B0
2020/09/14(月) 20:55:28.62ID:/Fwk/gkb 1÷3をどう扱うかという問題があるようだ。
522デフォルトの名無しさん
2020/09/14(月) 21:04:18.95ID:I0h6BMX6 割り算するときに桁数していするだけっしょ
523デフォルトの名無しさん
2020/09/14(月) 21:07:19.27ID:I0h6BMX6 蟻人間さんにお題:銀行丸めを整数型のみを使用して実装してください
524デフォルトの名無しさん
2020/09/14(月) 21:08:24.84ID:SHGAz9ig >>517
草
草
525デフォルトの名無しさん
2020/09/14(月) 21:24:52.09ID:6FD493+N 昔から思っているんだけど、分数で持っていて最後に一回だけ割り算するんじゃなんでいけないのかな?
526デフォルトの名無しさん
2020/09/14(月) 21:26:17.95ID:6FD493+N 昔から思っているんだけど、分数で持っていて最後に一回だけ割り算するんじゃなんでいけないのかな?
527デフォルトの名無しさん
2020/09/14(月) 21:49:38.28ID:SHGAz9ig 分子や分母に分数が入ってきた場合
精度の面で面倒なことになるぞ
精度の面で面倒なことになるぞ
528蟻人間 ◆T6xkBnTXz7B0
2020/09/14(月) 23:12:41.48ID:yesAwSRz529デフォルトの名無しさん
2020/09/14(月) 23:41:27.65ID:5nyvo7WN >>528
一生ここまでにしろ
一生ここまでにしろ
530デフォルトの名無しさん
2020/09/15(火) 00:21:13.43ID:2J2Mo0F/531蟻人間 ◆T6xkBnTXz7B0
2020/09/15(火) 02:31:45.89ID:39uvi0pE 現実問題では、long double型で十分な精度が出るから、独自の浮動小数点数は必要なさそう。
残りは四捨五入とか銀行丸めなどの端数処理。
残りは四捨五入とか銀行丸めなどの端数処理。
532デフォルトの名無しさん
2020/09/15(火) 09:10:08.88ID:gc4PCUOV 工エエェェ(´д`)ェェエエ工
533デフォルトの名無しさん
2020/09/15(火) 14:07:27.97ID:2J2Mo0F/ bc コマンド使えば良い。
他の言語から使いたい場合はライブラリをリンクするか、またはこっそり裏で fork(), exec() してパイプで繋いで計算させるw
他の言語から使いたい場合はライブラリをリンクするか、またはこっそり裏で fork(), exec() してパイプで繋いで計算させるw
534蟻人間 ◆T6xkBnTXz7B0
2020/09/15(火) 21:40:23.58ID:9dtbuAF3535デフォルトの名無しさん
2020/09/15(火) 21:59:54.94ID:ky+PawN1 >>534
誰も待ってないから一生滞ってろ
誰も待ってないから一生滞ってろ
538デフォルトの名無しさん
2020/09/15(火) 22:56:56.50ID:ky+PawN1 ここはお前の日記帳じゃねぇっての
スレチはお前
スレチはお前
539デフォルトの名無しさん
2020/09/16(水) 10:06:16.52ID:eJDvfDFO ぶぶ漬けどうぞと言われて、美味しくいただいてさらに食レポまで始めてるような状態かな
540デフォルトの名無しさん
2020/09/16(水) 21:28:53.90ID:XXyygoNj 嫌味なことするなよ
541デフォルトの名無しさん
2020/09/17(木) 00:07:22.39ID:jOQPl4C7 京都のおっかさんも口あんぐりやで
542デフォルトの名無しさん
2020/09/17(木) 01:09:05.65ID:FJaokp+J543デフォルトの名無しさん
2020/09/17(木) 07:37:06.63ID:Lu9ZyyRf お題: (複数行のバックグラウンド、座標テキスト、座標)から合成テキストを返す関数を作れ
座標テキストとバックグラウンドは同じサイズ(とりあえず横4縦3とする)
background
┏┓┏┓
┃┗┛┃
┗━━┛
座標テキスト
ab23
9014
8765
座標が
0なら
┏┓┏┓
┃*┛┃
┗━━┛
6なら
┏┓┏┓
┃┗┛┃
┗━*┛
11なら
┏*┏┓
┃┗┛┃
┗━━┛
あまり綺麗な実装が出来なかったから問題にした https://repl.it/@vip0/analogclock#index.js
座標テキストとバックグラウンドは同じサイズ(とりあえず横4縦3とする)
background
┏┓┏┓
┃┗┛┃
┗━━┛
座標テキスト
ab23
9014
8765
座標が
0なら
┏┓┏┓
┃*┛┃
┗━━┛
6なら
┏┓┏┓
┃┗┛┃
┗━*┛
11なら
┏*┏┓
┃┗┛┃
┗━━┛
あまり綺麗な実装が出来なかったから問題にした https://repl.it/@vip0/analogclock#index.js
544デフォルトの名無しさん
2020/09/17(木) 08:03:03.74ID:dVFtUKnH >>543 Ruby
def analogClockStr( h, bg, positions )
(clockStr = bg.dup)[ positions.index( h.to_s(16) ) ] = '*'
clockStr
end
background = '
┏┓┏┓
┃┗┛┃
┗━━┛
'.strip.freeze
positions = '
ab23
9014
8765
'.strip.freeze
puts analogClockStr( 0, background, positions )
puts analogClockStr( 6, background, positions )
puts analogClockStr( 11, background, positions )
def analogClockStr( h, bg, positions )
(clockStr = bg.dup)[ positions.index( h.to_s(16) ) ] = '*'
clockStr
end
background = '
┏┓┏┓
┃┗┛┃
┗━━┛
'.strip.freeze
positions = '
ab23
9014
8765
'.strip.freeze
puts analogClockStr( 0, background, positions )
puts analogClockStr( 6, background, positions )
puts analogClockStr( 11, background, positions )
545デフォルトの名無しさん
2020/09/17(木) 08:08:23.20ID:Lu9ZyyRf げっ確かに行ごとにreplace必要ないじゃん
何やってんだ俺
ありがとう
何やってんだ俺
ありがとう
546デフォルトの名無しさん
2020/09/17(木) 13:17:16.17ID:GTUBgTcD >>543
問題の意味がわからない。
問題の意味がわからない。
547デフォルトの名無しさん
2020/09/17(木) 13:30:29.78ID:/h1W7gqa >>543
くだらない質問スレか初心者質問スレ行け
くだらない質問スレか初心者質問スレ行け
548デフォルトの名無しさん
2020/09/17(木) 13:34:08.96ID:Lu9ZyyRf ほんとにどの問題よりもクソみたいな問題だと思っています
本当にすいませんでした
本当にすいませんでした
549デフォルトの名無しさん
2020/09/17(木) 13:42:30.73ID:Lu9ZyyRf ただ私は純粋にプログラミングが好きで
全く質問したかったわけじゃないのはわかってほしい
二次配列じゃないと処理できないものだと勘違いしていたのが甘いしシンプルにしすぎて問題が破綻してしまった
全く質問したかったわけじゃないのはわかってほしい
二次配列じゃないと処理できないものだと勘違いしていたのが甘いしシンプルにしすぎて問題が破綻してしまった
550デフォルトの名無しさん
2020/09/17(木) 13:48:33.25ID:Lu9ZyyRf 純粋にここにいる人たちが解法として書くコードは好きだし
たまに驚くべき角度から解を出す人もいるしマイナーなアルゴリズムも知れて尊敬してる
今回もスマートなコードが見れるんじゃないかと純粋に期待して問題にしてみたんだ
スレも今流れ遅かったし
たまに驚くべき角度から解を出す人もいるしマイナーなアルゴリズムも知れて尊敬してる
今回もスマートなコードが見れるんじゃないかと純粋に期待して問題にしてみたんだ
スレも今流れ遅かったし
551デフォルトの名無しさん
2020/09/17(木) 13:50:39.09ID:Lu9ZyyRf しかしお前らは牙を向いた
純粋に問題作成初心者の心を無碍にして
鋭い刃のような言葉を投げつけてきた
お前らは今日から敵とみなす
あばよ😎✋絶望しな
純粋に問題作成初心者の心を無碍にして
鋭い刃のような言葉を投げつけてきた
お前らは今日から敵とみなす
あばよ😎✋絶望しな
>>551
奏ちゃん「自意識過剰なんじゃないですか?」
奏ちゃん「自意識過剰なんじゃないですか?」
553デフォルトの名無しさん
2020/09/17(木) 22:33:12.99ID:H8Ldt8Jg お題:文字列の末尾の数字をインクリメントしてください
入力
IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO7PVcUS
出力
IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO8PVcUS
入力
IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO7PVcUS
出力
IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO8PVcUS
554デフォルトの名無しさん
2020/09/17(木) 22:56:25.54ID:ockp6LF+555デフォルトの名無しさん
2020/09/17(木) 23:01:20.65ID:ockp6LF+ >>553 Ruby
$><<gets.sub(/\d+(?=\D+$)/, &:succ)
# => IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoim
M3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOn
xhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfP
sQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuu
UBGLGuFToYptzqjkfdAoxAqqmeQO8PVcUS
$><<gets.sub(/\d+(?=\D+$)/, &:succ)
# => IB0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoim
M3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOn
xhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfP
sQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuu
UBGLGuFToYptzqjkfdAoxAqqmeQO8PVcUS
556デフォルトの名無しさん
2020/09/18(金) 01:44:05.02ID:hhldwLbP >>553
Perl
コマンドラインで以下のように入力後に標準入力から文字列を読ませると標準出力に出力される。
perl -pe 's/(\d+)(\D+)$/($1+1).$2/ge'
あるいはファイルに内容を入れておいてそのファイルを指定する。
Perl
コマンドラインで以下のように入力後に標準入力から文字列を読ませると標準出力に出力される。
perl -pe 's/(\d+)(\D+)$/($1+1).$2/ge'
あるいはファイルに内容を入れておいてそのファイルを指定する。
557デフォルトの名無しさん
2020/09/18(金) 03:22:29.90ID:Pz26zoiQ js
window.prompt().replace(/\d(?=\D+$)/,i=>i*1+1)
window.prompt().replace(/\d(?=\D+$)/,i=>i*1+1)
558デフォルトの名無しさん
2020/09/18(金) 06:23:31.29ID:QICqPxzN559デフォルトの名無しさん
2020/09/18(金) 06:53:31.48ID:5l49iFOd560デフォルトの名無しさん
2020/09/18(金) 21:10:31.47ID:JxxZTRpA561デフォルトの名無しさん
2020/09/18(金) 21:36:05.11ID:JxxZTRpA562デフォルトの名無しさん
2020/09/18(金) 21:54:28.27ID:WsEcPr9A >>553
haskell
theStr = "B0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO7PVcUS"
f x = let
(a,b) = span (\x-> (x<'0') || (x>'9')) $ reverse x
c = show $ (+1) $ read $ return $ head b
in reverse $ a++c++(tail b)
main = do
print $ f theStr
haskell
theStr = "B0AAYR8ZZcUXLxKmL1ow8RxZAAUCS1j6pYOJo9n52mwITWoimM3UArCpKAGzSRZrA1vUpAerENynuJXTYuJb9HlO9NZvHdpFvCMsThVOnxhgx3T5jCfRhanH4bJJOvjoaTMdixKg4TC90zOCwyeVKJ62KAgv47P72sfPsQaH8jaG8yWnqbwtyv0OeKZa7qISm6g2MHrOlNb8RVzt36jau1hYCqKuuUBGLGuFToYptzqjkfdAoxAqqmeQO7PVcUS"
f x = let
(a,b) = span (\x-> (x<'0') || (x>'9')) $ reverse x
c = show $ (+1) $ read $ return $ head b
in reverse $ a++c++(tail b)
main = do
print $ f theStr
563デフォルトの名無しさん
2020/09/18(金) 23:21:52.09ID:hhldwLbP >>558
そうだった。 + じゃなくて * だったな。
そうだった。 + じゃなくて * だったな。
564253
2020/09/18(金) 23:34:45.95ID:/yEGF/vF565253
2020/09/18(金) 23:36:27.35ID:/yEGF/vF いや、違うな…
因数のうちイチバン大きいものでは、ダメだわ
因数のうちイチバン大きいものでは、ダメだわ
566デフォルトの名無しさん
2020/09/19(土) 00:05:40.30ID:HLFklpM8567デフォルトの名無しさん
2020/09/19(土) 00:59:21.89ID:HX0Lirqs √n以上の最小の約数
568デフォルトの名無しさん
2020/09/19(土) 12:14:05.54ID:iLwsU5Ay 初出題
数学板の問題より
5つのサイコロの1〜6の面がそれぞれ赤白黄青緑にそれぞれ
["byrbwg", "yrgwbb", "gbrwwy", "gyrbww", "gbrybw"]
と塗り分けられている
この状態では1-6を天地の軸として2〜5の側面にはそれぞれ
["yrbyb","rgrrr","bwwby","wbwwb"]
となっている
それぞれのサイコロを適当に回転させて全ての側面にrwybgがちょうど一回ずつとなるようにしたい
そのような回転の組み合わせは何通りか
本質的に同じものを重複して数えるのを避けるために最初のサイコロの回転は
・動かさない
・1→2,2→3,3→1,4→6,5→4,6→5
・1→3,2→1,3→2,4→5,5→6,6→4
の3つのうちどれかのみを許すとする
(出力)
["yrbgbw","gbybrw","bgwryw","bygwwr","bwrygb"]
["yrbgbw","gbybrw","wywrgb","rwgwyb","bgrywb"]
["rbywgb","gyrbbw","wwgyrb","ygbrww","brwgyb"]
["rbywgb","wybrbg","wwgyrb","wgrbwy","brwgyb"]
数学板の問題より
5つのサイコロの1〜6の面がそれぞれ赤白黄青緑にそれぞれ
["byrbwg", "yrgwbb", "gbrwwy", "gyrbww", "gbrybw"]
と塗り分けられている
この状態では1-6を天地の軸として2〜5の側面にはそれぞれ
["yrbyb","rgrrr","bwwby","wbwwb"]
となっている
それぞれのサイコロを適当に回転させて全ての側面にrwybgがちょうど一回ずつとなるようにしたい
そのような回転の組み合わせは何通りか
本質的に同じものを重複して数えるのを避けるために最初のサイコロの回転は
・動かさない
・1→2,2→3,3→1,4→6,5→4,6→5
・1→3,2→1,3→2,4→5,5→6,6→4
の3つのうちどれかのみを許すとする
(出力)
["yrbgbw","gbybrw","bgwryw","bygwwr","bwrygb"]
["yrbgbw","gbybrw","wywrgb","rwgwyb","bgrywb"]
["rbywgb","gyrbbw","wwgyrb","ygbrww","brwgyb"]
["rbywgb","wybrbg","wwgyrb","wgrbwy","brwgyb"]
569デフォルトの名無しさん
2020/09/19(土) 15:12:41.86ID:BWMKzapi https://rio2016.5ch.net/test/read.cgi/math/1598637093/133-
わけわからん問題文にするなよ・・・
わけわからん問題文にするなよ・・・
570デフォルトの名無しさん
2020/09/19(土) 16:07:21.18ID:wSOXcncc 全然違って草
571デフォルトの名無しさん
2020/09/19(土) 16:29:35.90ID:HLFklpM8 >>568
君が何を言わんとしているのかが全くわからない。
君が何を言わんとしているのかが全くわからない。
572253
2020/09/19(土) 17:15:41.66ID:6KnxgpBj573デフォルトの名無しさん
2020/09/19(土) 21:37:57.70ID:HX0Lirqs574デフォルトの名無しさん
2020/09/19(土) 21:39:46.15ID:HX0Lirqs >>572
計算量減らすなら√n以下の最大の約数d求めてn/dを出力すれば計算量は減るな
計算量減らすなら√n以下の最大の約数d求めてn/dを出力すれば計算量は減るな
575デフォルトの名無しさん
2020/09/19(土) 21:40:46.29ID:wSOXcncc 減るというかそもそも計算量が同じというか
576デフォルトの名無しさん
2020/09/19(土) 21:46:21.17ID:HX0Lirqs イヤnが素数の場合に√nから上むきに探索すると計算量はnになるけど下向きなら√nになる
√n以上の約数と√n以下の約数は同数だけど整数そのものは下側には√nしかなく、上にはn-√nあるので下向きに探していった方が速い
√n以上の約数と√n以下の約数は同数だけど整数そのものは下側には√nしかなく、上にはn-√nあるので下向きに探していった方が速い
577デフォルトの名無しさん
2020/09/20(日) 00:25:54.87ID:ZGoKBb8Y ポラード・ロー法使えばもっと計算量は減る
素数判定と組み合わせればモンテカルロ法ではなくラスベガス法になるから、正当性も担保される
素数判定と組み合わせればモンテカルロ法ではなくラスベガス法になるから、正当性も担保される
578デフォルトの名無しさん
2020/09/20(日) 01:39:54.18ID:wHMtOvf4 素因数分解利用するなら素因数分解そのものが手早くできてもダメでしょ?
それを何個か使って最も√nに近いもの探すのはかなり難しいんじゃなかったっけ?
つまり素因数分解n=Πpi^eiが与えられたとして、つぎは
0≦xi≦eiを動かすときΣxi log(pi) が1/2 log(n)に最も近くなるものを決定しなければならない
コレなんか名前ついてる問題で指数オーダーのアルゴリズムしか見つかってないんじゃなかったっけ?
素因子の数はlog(n)のオーダーで増えていくから、結局exp(c log(n)) のオーダーになって、cがどれくらいに収められるか、そもそも指数オーダー必要なのかも未解決なんじゃなかったっけ?
それを何個か使って最も√nに近いもの探すのはかなり難しいんじゃなかったっけ?
つまり素因数分解n=Πpi^eiが与えられたとして、つぎは
0≦xi≦eiを動かすときΣxi log(pi) が1/2 log(n)に最も近くなるものを決定しなければならない
コレなんか名前ついてる問題で指数オーダーのアルゴリズムしか見つかってないんじゃなかったっけ?
素因子の数はlog(n)のオーダーで増えていくから、結局exp(c log(n)) のオーダーになって、cがどれくらいに収められるか、そもそも指数オーダー必要なのかも未解決なんじゃなかったっけ?
579デフォルトの名無しさん
2020/09/20(日) 06:22:49.81ID:OZ4qNDWZ >>576
素数判定はそもそも計算量少ない
素数判定はそもそも計算量少ない
580デフォルトの名無しさん
2020/09/20(日) 10:19:03.22ID:mk/D54YH >>579
√n以上の最小の約数をdとして上むき探索に必要な時間はすうがく/d-√n\、下向き探索のそれは\√n-n/d/ (/〜\と\〜/はfloorとceiling)
差は/d-√n\-\√n-n/d/ =\d+n/d-2√n/はam≧gmと\〜/の広義単調性から0以上で上むき探索は素数であるか否かに限らず常に計算量は同じかそれ以上
素数であるか予備検査しても結局上向きに探索したら計算量は同じ以上かかる
√n以上の最小の約数をdとして上むき探索に必要な時間はすうがく/d-√n\、下向き探索のそれは\√n-n/d/ (/〜\と\〜/はfloorとceiling)
差は/d-√n\-\√n-n/d/ =\d+n/d-2√n/はam≧gmと\〜/の広義単調性から0以上で上むき探索は素数であるか否かに限らず常に計算量は同じかそれ以上
素数であるか予備検査しても結局上向きに探索したら計算量は同じ以上かかる
581デフォルトの名無しさん
2020/09/20(日) 10:50:48.99ID:g28HruB5 あ、間違えた
上向き探索の探索量はd-/√n\+1=/d-√n+1\で/~\はceiling
下向き探索の探索量は\√n/-n/d+1=\√n-n/d+1/で\~/はfloor
まぁ常に上向きの方が計算量は増える
まぁもちろんnをまともに素因数分解して>>578みたいな方法で√nオーダーより真に早いのがあるなら上向きも下向きもないけど、もうそこまで行ったら研究者レベルの話でしかない気がする
上向き探索の探索量はd-/√n\+1=/d-√n+1\で/~\はceiling
下向き探索の探索量は\√n/-n/d+1=\√n-n/d+1/で\~/はfloor
まぁ常に上向きの方が計算量は増える
まぁもちろんnをまともに素因数分解して>>578みたいな方法で√nオーダーより真に早いのがあるなら上向きも下向きもないけど、もうそこまで行ったら研究者レベルの話でしかない気がする
582デフォルトの名無しさん
2020/09/20(日) 11:23:17.24ID:MLu0Cj9r >>550-551
短いこの間でダークサイドに堕ちてて草
短いこの間でダークサイドに堕ちてて草
583デフォルトの名無しさん
2020/09/20(日) 11:58:05.82ID:FaUtZa6z584デフォルトの名無しさん
2020/09/20(日) 12:47:09.77ID:MLu0Cj9r 感情豊かでかわいいw
585デフォルトの名無しさん
2020/09/20(日) 12:59:00.77ID:wHMtOvf4 気分を変えてまた数学板より
自然数nに対して格子点の集合{(a,b) | a,bは1〜nの整数}の中の相異なる4点の組みで同一円周上に並ぶものの個数を数え上げよ
n:1〜8では
[0,1,14,194,826,2491,6364,14564]
のハズ
自然数nに対して格子点の集合{(a,b) | a,bは1〜nの整数}の中の相異なる4点の組みで同一円周上に並ぶものの個数を数え上げよ
n:1〜8では
[0,1,14,194,826,2491,6364,14564]
のハズ
586デフォルトの名無しさん
2020/09/20(日) 13:05:52.02ID:wHMtOvf4587デフォルトの名無しさん
2020/09/20(日) 18:36:43.29ID:XyOg3AIQ588デフォルトの名無しさん
2020/09/20(日) 18:44:44.75ID:XyOg3AIQ589デフォルトの名無しさん
2020/09/20(日) 18:56:48.73ID:wHMtOvf4 あ、ホントだ失礼しました
590デフォルトの名無しさん
2020/09/20(日) 19:10:27.22ID:wHMtOvf4591デフォルトの名無しさん
2020/09/20(日) 22:46:33.41ID:9sb+TTLg >>585
問題がわからない。
問題がわからない。
592デフォルトの名無しさん
2020/09/21(月) 00:11:09.46ID:ZXxiMs6i >>591
n=3だと
●●◯ ◯●● ◯◯◯ ◯◯◯
●●◯ ◯●● ●●◯ ◯●●
◯◯◯ ◯◯◯ ●●◯ ◯●●
●◯● ◯◯◯ ●●◯ ◯●●
●◯● ●◯● ◯◯◯ ◯◯◯
◯◯◯ ●◯● ●●◯ ◯●●
●●◯ ◯●● ◯◯● ●◯◯
◯◯● ●◯◯ ◯◯● ●◯◯
◯◯● ●◯◯ ●●◯ ◯●●
●◯● ◯●◯
◯◯◯ ●◯●
●◯● ◯●◯
の14通り
n=3だと
●●◯ ◯●● ◯◯◯ ◯◯◯
●●◯ ◯●● ●●◯ ◯●●
◯◯◯ ◯◯◯ ●●◯ ◯●●
●◯● ◯◯◯ ●●◯ ◯●●
●◯● ●◯● ◯◯◯ ◯◯◯
◯◯◯ ●◯● ●●◯ ◯●●
●●◯ ◯●● ◯◯● ●◯◯
◯◯● ●◯◯ ◯◯● ●◯◯
◯◯● ●◯◯ ●●◯ ◯●●
●◯● ◯●◯
◯◯◯ ●◯●
●◯● ◯●◯
の14通り
593デフォルトの名無しさん
2020/09/21(月) 11:36:08.07ID:VFD1LGbi >>585のお題は、
平面上に4点を選んだとき、その4点をすべて含む円周が存在する場合としない場合がある
xy平面上に、x,yの各座標が1〜nの整数であるような、互いに異なる点を4つ選んだとき、4点すべてを含む円周が存在するものがいくつあるか?
n=1〜8についてそれぞれ数え上げよ
(註:n=1のときは異なる4点を選べないので、解は0でよい)
ってことでいいかな?
平面上に4点を選んだとき、その4点をすべて含む円周が存在する場合としない場合がある
xy平面上に、x,yの各座標が1〜nの整数であるような、互いに異なる点を4つ選んだとき、4点すべてを含む円周が存在するものがいくつあるか?
n=1〜8についてそれぞれ数え上げよ
(註:n=1のときは異なる4点を選べないので、解は0でよい)
ってことでいいかな?
594デフォルトの名無しさん
2020/09/21(月) 13:45:14.08ID:tVxoOCVr595デフォルトの名無しさん
2020/09/21(月) 14:54:29.54ID:/KyZWHiy >>594
正解だと思う
おそらくn=9までは
[0,1,14,184,762,2257,5704,13040,25996]
今作ってるのはC[n^2,4]を全数検査してるのでO(n^8)で計算量増えるので二桁以上はしんどいorz
正解だと思う
おそらくn=9までは
[0,1,14,184,762,2257,5704,13040,25996]
今作ってるのはC[n^2,4]を全数検査してるのでO(n^8)で計算量増えるので二桁以上はしんどいorz
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- するってぇと何かい?2週間前に安全を確認して輸入再開した海産物を食の安全のために輸入停止にしたってのかい?
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【超絶朗報】高市早苗、月給5万円アップを突如確定させるWWWWW
- 母ちゃんが泣くから言わないほうがいい言葉
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
