プログラミングのお題スレです。
【出題と回答例】
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
425253
2020/08/31(月) 21:54:06.64ID:pmRcaHIk >>393 Perl5、単にmapで値個数要素のリストに展開
$n = 3;
@a = map{($_) x $_} 1..$n;
print "@a\n";
j実行結果
~ $ perl 18_393_inc_ary_map.pl
1 2 2 3 3 3
$n = 3;
@a = map{($_) x $_} 1..$n;
print "@a\n";
j実行結果
~ $ perl 18_393_inc_ary_map.pl
1 2 2 3 3 3
426デフォルトの名無しさん
2020/08/31(月) 23:33:38.47ID:0jcGZySh427デフォルトの名無しさん
2020/09/01(火) 00:01:02.40ID:1mY8ta+4428デフォルトの名無しさん
2020/09/01(火) 00:18:24.24ID:vTrOzHSW429デフォルトの名無しさん
2020/09/01(火) 14:16:37.60ID:3qKfeSqF 全く知らない構文の言語でカンでいじっても構文エラーも止められずに
動かない機械ガチャガチャしてるだけ感すごいよな
動かない機械ガチャガチャしてるだけ感すごいよな
430蟻人間 ◆T6xkBnTXz7B0
2020/09/01(火) 18:47:08.83ID:4meeAMMW お題: テキストファイル「input.txt」の中の" dot "を"."に置換し、さらに" at "を"@"に置換したときに、RFCに従ったメールアドレスになる部分文字列を抽出し、そのメールアドレスのリストを改行区切りで出力せよ。
431デフォルトの名無しさん
2020/09/01(火) 18:47:54.44ID:Y09tsFBY432デフォルトの名無しさん
2020/09/01(火) 18:48:39.88ID:PZXbhIm5 >>430
テスト用のinput.txtちょーだい!
テスト用のinput.txtちょーだい!
433蟻人間 ◆T6xkBnTXz7B0
2020/09/01(火) 18:54:57.84ID:4meeAMMW >>432
「これはテキトーなテキストデータである。
例えば
user at example dot com
とか
user at example dot co dot jp
とか
katayama dot hirofumi dot mz at example dot net
とかあるでしょ。
詐欺メールに引っ掛からないためには、URLのドメインを確認することが一番。
google.com
google.co.jp
まあ、いろいろあるっしょ。」
「これはテキトーなテキストデータである。
例えば
user at example dot com
とか
user at example dot co dot jp
とか
katayama dot hirofumi dot mz at example dot net
とかあるでしょ。
詐欺メールに引っ掛からないためには、URLのドメインを確認することが一番。
google.com
google.co.jp
まあ、いろいろあるっしょ。」
434デフォルトの名無しさん
2020/09/01(火) 18:57:45.00ID:PZXbhIm5 >>433
あざーす!
あざーす!
435デフォルトの名無しさん
2020/09/01(火) 19:10:04.73ID:y/wdSyKD >>430
Mail::RFC822::Address: regexp-based address validatio
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Mail::RFC822::Address: regexp-based address validatio
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
436蟻人間 ◆T6xkBnTXz7B0
2020/09/01(火) 20:18:24.49ID:4meeAMMW ヒント: 文字列置換と正規表現
437デフォルトの名無しさん
2020/09/01(火) 22:43:25.27ID:PZXbhIm5438デフォルトの名無しさん
2020/09/01(火) 22:55:31.34ID:PZXbhIm5439253
2020/09/02(水) 00:54:35.54ID:GpxOT2yi >>393 Python3
(n, a) = (3, [])
for i in range(1, n+1):
a.extend([i] * i)
print(a)
実行結果
~ $ python 18_393_incary.py
[1, 2, 2, 3, 3, 3]
(n, a) = (3, [])
for i in range(1, n+1):
a.extend([i] * i)
print(a)
実行結果
~ $ python 18_393_incary.py
[1, 2, 2, 3, 3, 3]
440デフォルトの名無しさん
2020/09/02(水) 23:08:34.85ID:KTyhBksd441デフォルトの名無しさん
2020/09/02(水) 23:31:10.43ID:KTyhBksd442デフォルトの名無しさん
2020/09/03(木) 16:10:13.26ID:dE9fk8zR >>395 Ruby
def f(s,d)
eval("['"+s.gsub(d,"','")+"']")
end
p f("1 2 3 4"," ")
実行結果
["1", "2", "3", "4"]
def f(s,d)
eval("['"+s.gsub(d,"','")+"']")
end
p f("1 2 3 4"," ")
実行結果
["1", "2", "3", "4"]
443蟻人間 ◆T6xkBnTXz7B0
2020/09/03(木) 19:41:51.27ID:0EoV326K お題: バイナリファイルを読み込んで各バイトの各ビットについて、上位ビットから順に、ゼロをシフトJISの半角カナの「タ」に、いち(1)を同じくの「ヒ」に変換する変換器。
445デフォルトの名無しさん
2020/09/03(木) 21:11:58.06ID:97aiR77+ >>443 Ruby
Fpath = 'test.bin'
File.open( Fpath, 'wb' ){|fh| fh.write "Hello word\n" }
Tbl10 = "\xC0\xCB".force_encoding(Encoding::BINARY)
tb = (0..255).to_a.map{|x| ('%08b' % x).tr( '10', Tbl10 ) }
buff = File.open( Fpath, 'rb' ).each_byte.map{|x| tb[x] }
puts buff.join().encode( Encoding::UTF_8, Encoding::CP932 )
print buff.map{|x| x.tr( Tbl10, '10' ).to_i(2).chr }.join
#=> ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒヒタヒヒヒヒヒヒタヒタヒ
#=> Hello word
Fpath = 'test.bin'
File.open( Fpath, 'wb' ){|fh| fh.write "Hello word\n" }
Tbl10 = "\xC0\xCB".force_encoding(Encoding::BINARY)
tb = (0..255).to_a.map{|x| ('%08b' % x).tr( '10', Tbl10 ) }
buff = File.open( Fpath, 'rb' ).each_byte.map{|x| tb[x] }
puts buff.join().encode( Encoding::UTF_8, Encoding::CP932 )
print buff.map{|x| x.tr( Tbl10, '10' ).to_i(2).chr }.join
#=> ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒヒタヒヒヒヒヒヒタヒタヒ
#=> Hello word
446デフォルトの名無しさん
2020/09/03(木) 23:01:51.02ID:ZdR77D/Z >>442
f("'", ?,)
# =>SyntaxError: (eval):1: unterminated string meets end of file
[''']
^
(eval):1: syntax error, unexpected end-of-input, expecting ']'
f("'", ?,)
# =>SyntaxError: (eval):1: unterminated string meets end of file
[''']
^
(eval):1: syntax error, unexpected end-of-input, expecting ']'
447253
2020/09/04(金) 00:01:38.15ID:7q8p4uRD >>443 Perl5
print map{qw(ヒ タ)[$_]} map{split '', sprintf '%08b', ord} split'','Hello word';
実行結果
~ $ perl 18_443_タヒ.pl
ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒヒタヒヒ
print map{qw(ヒ タ)[$_]} map{split '', sprintf '%08b', ord} split'','Hello word';
実行結果
~ $ perl 18_443_タヒ.pl
ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒヒタヒヒ
448デフォルトの名無しさん
2020/09/04(金) 00:03:39.28ID:0wfgbo8M450デフォルトの名無しさん
2020/09/04(金) 14:52:11.79ID:Wl7qFIBb >>443
Elixir。CP932 が無いので、途中までしか出来ません!
# 8桁・2進数・0埋め
_ = 'abc'
|> Enum.map( fn char -> :io.format( "~8.2.0B", [ char ] ) end )
# 01100001_01100010_01100011
Elixir。CP932 が無いので、途中までしか出来ません!
# 8桁・2進数・0埋め
_ = 'abc'
|> Enum.map( fn char -> :io.format( "~8.2.0B", [ char ] ) end )
# 01100001_01100010_01100011
451デフォルトの名無しさん
2020/09/04(金) 23:27:10.30ID:1jfeDIRi >>443
POSIX sh
変換 (https://paiza.io/projects/Yk6wcUtik7BZZ0AHspdZFw?language=bash)
for _b in $(od -v -A n -t d1); do
printf '%b' \
"\\$(( $_b & 128 ? 300 : 313 ))" \
"\\$(( $_b & 64 ? 300 : 313 ))" \
"\\$(( $_b & 32 ? 300 : 313 ))" \
"\\$(( $_b & 16 ? 300 : 313 ))" \
"\\$(( $_b & 8 ? 300 : 313 ))" \
"\\$(( $_b & 4 ? 300 : 313 ))" \
"\\$(( $_b & 2 ? 300 : 313 ))" \
"\\$(( $_b & 1 ? 300 : 313 ))"
done
逆変換 (https://paiza.io/projects/AN6vfPgtdJODnYL9jW8MDQ?language=bash)
od -v -A n -t o1 |
fold -b -w 32 |
while read _b8 _b7 _b6 _b5 _b4 _b3 _b2 _b1; do
printf '%b' "\\$((
($_b8 == 300 ? 200 : 0) +
($_b7 == 300 ? 100 : 0) +
($_b6 == 300 ? 40 : 0) +
($_b5 == 300 ? 20 : 0) +
($_b4 == 300 ? 10 : 0) +
($_b3 == 300 ? 4 : 0) +
($_b2 == 300 ? 2 : 0) +
($_b1 == 300 ? 1 : 0) ))"
done
POSIX sh
変換 (https://paiza.io/projects/Yk6wcUtik7BZZ0AHspdZFw?language=bash)
for _b in $(od -v -A n -t d1); do
printf '%b' \
"\\$(( $_b & 128 ? 300 : 313 ))" \
"\\$(( $_b & 64 ? 300 : 313 ))" \
"\\$(( $_b & 32 ? 300 : 313 ))" \
"\\$(( $_b & 16 ? 300 : 313 ))" \
"\\$(( $_b & 8 ? 300 : 313 ))" \
"\\$(( $_b & 4 ? 300 : 313 ))" \
"\\$(( $_b & 2 ? 300 : 313 ))" \
"\\$(( $_b & 1 ? 300 : 313 ))"
done
逆変換 (https://paiza.io/projects/AN6vfPgtdJODnYL9jW8MDQ?language=bash)
od -v -A n -t o1 |
fold -b -w 32 |
while read _b8 _b7 _b6 _b5 _b4 _b3 _b2 _b1; do
printf '%b' "\\$((
($_b8 == 300 ? 200 : 0) +
($_b7 == 300 ? 100 : 0) +
($_b6 == 300 ? 40 : 0) +
($_b5 == 300 ? 20 : 0) +
($_b4 == 300 ? 10 : 0) +
($_b3 == 300 ? 4 : 0) +
($_b2 == 300 ? 2 : 0) +
($_b1 == 300 ? 1 : 0) ))"
done
452253
2020/09/04(金) 23:39:14.02ID:tinAGSqp >>443>>444 Perl5、バイナリコード(ln)を含むデータをファイルから読み込み、変換》逆変換
undef $/; # slurp
$s = <>;
@b = map{qw(ヒ タ)[$_]} split'', unpack 'B*', $s;
print @b, "\n";
%h = qw(ヒ 0 タ 1);
$t = pack 'B*', join '', map{$h{$_}} @b;
print $t;
実行結果
$ od -xc Hello_world_ln.txt
0000000 6548 6c6c 206f 6f77 6c72 0a64
H e l l o w o r l d \n
$ cat Hello_world_ln.txt
Hello world
$ perl 18_443_444_ヒタ.pl < Hello_world_ln.txt
ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒタタヒヒヒタタヒヒタヒヒヒヒヒヒタヒタヒ
Hello world
undef $/; # slurp
$s = <>;
@b = map{qw(ヒ タ)[$_]} split'', unpack 'B*', $s;
print @b, "\n";
%h = qw(ヒ 0 タ 1);
$t = pack 'B*', join '', map{$h{$_}} @b;
print $t;
実行結果
$ od -xc Hello_world_ln.txt
0000000 6548 6c6c 206f 6f77 6c72 0a64
H e l l o w o r l d \n
$ cat Hello_world_ln.txt
Hello world
$ perl 18_443_444_ヒタ.pl < Hello_world_ln.txt
ヒタヒヒタヒヒヒヒタタヒヒタヒタヒタタヒタタヒヒヒタタヒタタヒヒヒタタヒタタタタヒヒタヒヒヒヒヒヒタタタヒタタタヒタタヒタタタタヒタタタヒヒタヒヒタタヒタタヒヒヒタタヒヒタヒヒヒヒヒヒタヒタヒ
Hello world
453デフォルトの名無しさん
2020/09/05(土) 15:41:23.97ID:dAk5cbFF お題
UTF-8 は以下のように、先頭ニブル・4ビットで、1〜4バイト文字を判別しています。
この法則を使って、この文字列のバイト数を求めよ
あaθ💀xΩ死🄫
1バイト文字: 0000〜0111: 0〜7
多バイト文字の2バイト目以降
1000〜1011: 8〜11(8〜B)
2バイト文字: 1100〜1101: 12〜13(C〜D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)
Unicode
https://seiai.ed.jp/sys/text/csd/cf14/c14a070.html
UTF-8 は以下のように、先頭ニブル・4ビットで、1〜4バイト文字を判別しています。
この法則を使って、この文字列のバイト数を求めよ
あaθ💀xΩ死🄫
1バイト文字: 0000〜0111: 0〜7
多バイト文字の2バイト目以降
1000〜1011: 8〜11(8〜B)
2バイト文字: 1100〜1101: 12〜13(C〜D)
3バイト文字: 1110: 14(E)
4バイト文字: 1111: 15(F)
Unicode
https://seiai.ed.jp/sys/text/csd/cf14/c14a070.html
454デフォルトの名無しさん
2020/09/05(土) 15:42:06.74ID:gCThzAly お題:
左から右へ、1から10までの番号が付いたマスが順番に隙間なく並んでいます。
今日、訪問者N人があなたに会いにやってきます。各訪問者i(1≦i≦N)は時刻TiにマスPiを訪れます。
ここで、あなたが時刻TiにマスPiに居たのならば「訪問者iは満足した」とします。
最大で何人の訪問者を満足させられるか求めてください。
制約:
最初、時刻は0とする。
あなたは最初、マス1にいる。
あなたは隣り合うマスへの移動手段しか持たない。
1マス移動した場合にも、移動せずに現在マスに留まった場合にも時間1を消費する。
Ti == Tj で Pi == Pj ならば i == j
1≦N ≦10^5
1≦Ti≦10^5
1≦Pi≦10
入力:
N
T1 P1
T2 P2
...
TN PN
出力:
(最大で何人を満足させられるか)
例1:
入力:
5
5 4
2 3
3 2
3 4
4 4
出力:
4
左から右へ、1から10までの番号が付いたマスが順番に隙間なく並んでいます。
今日、訪問者N人があなたに会いにやってきます。各訪問者i(1≦i≦N)は時刻TiにマスPiを訪れます。
ここで、あなたが時刻TiにマスPiに居たのならば「訪問者iは満足した」とします。
最大で何人の訪問者を満足させられるか求めてください。
制約:
最初、時刻は0とする。
あなたは最初、マス1にいる。
あなたは隣り合うマスへの移動手段しか持たない。
1マス移動した場合にも、移動せずに現在マスに留まった場合にも時間1を消費する。
Ti == Tj で Pi == Pj ならば i == j
1≦N ≦10^5
1≦Ti≦10^5
1≦Pi≦10
入力:
N
T1 P1
T2 P2
...
TN PN
出力:
(最大で何人を満足させられるか)
例1:
入力:
5
5 4
2 3
3 2
3 4
4 4
出力:
4
455デフォルトの名無しさん
2020/09/05(土) 15:55:10.03ID:gCThzAly 前回のお題はC++の方からしか回答を頂けなかったので、他の言語の方も考えていただけると嬉しいです
456デフォルトの名無しさん
2020/09/05(土) 17:01:13.99ID:4vfoT7Xn Tが10^5のそれぞれのマスにいたときの点数を求める(客がいた場合1、いなかったら0)
Tが10^5-1のときのマスの点数を求める(そこに客がいたなら1、いなかったら0
更にそこから次の時間に移動可能なマスの最大の点数のものを加える)
Tが1までくり返す
これで良さそうな気がするけど書くのがめんどくさい
Tが10^5-1のときのマスの点数を求める(そこに客がいたなら1、いなかったら0
更にそこから次の時間に移動可能なマスの最大の点数のものを加える)
Tが1までくり返す
これで良さそうな気がするけど書くのがめんどくさい
457デフォルトの名無しさん
2020/09/05(土) 17:35:24.39ID:s0GYNWbk458デフォルトの名無しさん
2020/09/05(土) 18:43:21.60ID:EHHCviTW 文字コードまわりの難しさにぶつかったことないから何が何やら
459デフォルトの名無しさん
2020/09/05(土) 19:37:20.09ID:PsWvtVS4 >>453 Ruby
文字数とバイト数を適当に出力
require "cgi"
require "cgi"
str = CGI.unescapeHTML( "あaθ💀xΩ死🄫" )
sbs = str.bytes
i = n = 0
while i < sbs.size
case sbs[i] >> 4
when 0..7; i += 1
when 8..11; warn "Error"
when 12,13; i += 2
when 14; i += 3
when 15
case sbs[i] & 0xF
when 0..7; i += 4
when 8..11; i += 5
when 12,13; i += 6
else warn "Error"
end
end
n += 1
end
puts "#{n} chars\n#{str.size} chars"
puts "#{str.force_encoding( Encoding::BINARY ).size} bytes\n#{sbs.size} bytes"
puts str.bytes.map{|x| '%02X' % x }.join(' ')
#=>
8 chars
8 chars
20 bytes
20 bytes
E3 81 82 61 CE B8 F0 9F 92 80 78 CE A9 E6 AD BB F0 9F 84 AB
文字数とバイト数を適当に出力
require "cgi"
require "cgi"
str = CGI.unescapeHTML( "あaθ💀xΩ死🄫" )
sbs = str.bytes
i = n = 0
while i < sbs.size
case sbs[i] >> 4
when 0..7; i += 1
when 8..11; warn "Error"
when 12,13; i += 2
when 14; i += 3
when 15
case sbs[i] & 0xF
when 0..7; i += 4
when 8..11; i += 5
when 12,13; i += 6
else warn "Error"
end
end
n += 1
end
puts "#{n} chars\n#{str.size} chars"
puts "#{str.force_encoding( Encoding::BINARY ).size} bytes\n#{sbs.size} bytes"
puts str.bytes.map{|x| '%02X' % x }.join(' ')
#=>
8 chars
8 chars
20 bytes
20 bytes
E3 81 82 61 CE B8 F0 9F 92 80 78 CE A9 E6 AD BB F0 9F 84 AB
460デフォルトの名無しさん
2020/09/05(土) 19:47:45.16ID:EHHCviTW 普通に処理系がchar配列にしたときサイズを入れてくれるからそれでわかっちゃうw
461453
2020/09/05(土) 21:41:42.84ID:dAk5cbFF 書いてある条件だけで、求めて下さい!
他の方法では、簡単すぎるので
他の方法では、簡単すぎるので
462デフォルトの名無しさん
2020/09/05(土) 21:46:41.80ID:qef5ttAc それだったら宿題スレで頼みなよ
463デフォルトの名無しさん
2020/09/05(土) 22:24:40.63ID:s0GYNWbk >>461
もう一度訊くけど,
ほんとに「バイト数」を求めたいの?
だったら
$ echo ' あaθ💀xΩ死🄫 ' | wc -c
これで一瞬だけど。
文字数なら,UTF-8を扱える言語で数えるか,
POSIX shでやるなら……面倒だな……。
https://gist.github.com/cmplstofB/0b0ce2bf052b3bb64d091fc83504fc32#file-u8dec-sh
こういうの使えばいいかな。
なお,wc -mはPOSIXでは必ずしも
UTF-8文字列を扱えるとは既定されていないので今回の目的には適さない。
もう一度訊くけど,
ほんとに「バイト数」を求めたいの?
だったら
$ echo ' あaθ💀xΩ死🄫 ' | wc -c
これで一瞬だけど。
文字数なら,UTF-8を扱える言語で数えるか,
POSIX shでやるなら……面倒だな……。
https://gist.github.com/cmplstofB/0b0ce2bf052b3bb64d091fc83504fc32#file-u8dec-sh
こういうの使えばいいかな。
なお,wc -mはPOSIXでは必ずしも
UTF-8文字列を扱えるとは既定されていないので今回の目的には適さない。
464デフォルトの名無しさん
2020/09/05(土) 22:25:44.48ID:s0GYNWbk465デフォルトの名無しさん
2020/09/05(土) 22:49:41.81ID:BjVkDMA6466253
2020/09/06(日) 00:11:00.10ID:Lo+HJN6n >>380 Perl5
($H, $W) = split' ',<DATA>; @a = map{[split/\s*/]} <DATA>;
for $h (0..$H-1) { for $w (0..$W-1) {
$c = $a[$h][$w];
$S = "$h,$w" if $c eq 'S'; $G = "$h,$w" if $c eq 'G';
if ($c ne '#') {
$e{($h-1).",$w $h,$w"}++ if $h and $a[$h-1][$w] =~ /[.SG]/;
$e{"$h,".($w-1)." $h,$w"}++ if $w and $a[$h][$w-1] =~ /[.SG]/;
}}}
use feature qw{current_sub say}; no warnings 'experimental';
sub {
my $p = @_[-1];
for my $q (map{s/ *$p *//; $_} grep{/$p/} keys %e) {
if ($q eq $G) { $h{"@{[@_, $q]}"}++ }
else { __SUB__->(@_, $q) unless grep{/$q/} @_ }
}
}->($S);
say scalar keys %h;
__DATA__
5 5
S....
##.#.
...#.
...#.
....G
実行結果
~ $ perl 18_380_maze_paths.pl
12
($H, $W) = split' ',<DATA>; @a = map{[split/\s*/]} <DATA>;
for $h (0..$H-1) { for $w (0..$W-1) {
$c = $a[$h][$w];
$S = "$h,$w" if $c eq 'S'; $G = "$h,$w" if $c eq 'G';
if ($c ne '#') {
$e{($h-1).",$w $h,$w"}++ if $h and $a[$h-1][$w] =~ /[.SG]/;
$e{"$h,".($w-1)." $h,$w"}++ if $w and $a[$h][$w-1] =~ /[.SG]/;
}}}
use feature qw{current_sub say}; no warnings 'experimental';
sub {
my $p = @_[-1];
for my $q (map{s/ *$p *//; $_} grep{/$p/} keys %e) {
if ($q eq $G) { $h{"@{[@_, $q]}"}++ }
else { __SUB__->(@_, $q) unless grep{/$q/} @_ }
}
}->($S);
say scalar keys %h;
__DATA__
5 5
S....
##.#.
...#.
...#.
....G
実行結果
~ $ perl 18_380_maze_paths.pl
12
467253
2020/09/06(日) 00:30:27.55ID:WEZ/j7UH468デフォルトの名無しさん
2020/09/06(日) 00:34:53.48ID:T9SJW9BR >>395
Kotlin
https://paiza.io/projects/N9X2CVAQj3NJ0RXPrk7i0g
区切りは文字列で指定出来るとか、大文字小文字無視とか、最大分割数を決められるだとか、色々と機能を追加してしまった。
Kotlin
https://paiza.io/projects/N9X2CVAQj3NJ0RXPrk7i0g
区切りは文字列で指定出来るとか、大文字小文字無視とか、最大分割数を決められるだとか、色々と機能を追加してしまった。
469デフォルトの名無しさん
2020/09/06(日) 03:34:19.13ID:0eLnTbkJ お題
4999の逆数を小数点 以下48桁まで求める。
4999の逆数を小数点 以下48桁まで求める。
470デフォルトの名無しさん
2020/09/06(日) 07:27:16.04ID:+WaXk/Ri471デフォルトの名無しさん
2020/09/06(日) 08:14:24.88ID:CxoRMtYI472デフォルトの名無しさん
2020/09/06(日) 09:37:57.61ID:yqdZF37w473デフォルトの名無しさん
2020/09/06(日) 10:17:30.08ID:uXWEOXeO474デフォルトの名無しさん
2020/09/06(日) 10:30:03.37ID:r+7yP+3C475デフォルトの名無しさん
2020/09/06(日) 10:58:30.52ID:5MBR0P77 1京くらいのループで解けるなら実用性はかろうじてある
競技性は無い
競技性は無い
476デフォルトの名無しさん
2020/09/06(日) 11:04:38.70ID:OF7UMaiS 最悪でも2^n組みしかなくね
477デフォルトの名無しさん
2020/09/06(日) 11:07:12.07ID:uXWEOXeO >>465 はlast_time(10^5)回のループの中でCOL(10)回ループ入れてるし、10^6では?
478デフォルトの名無しさん
2020/09/06(日) 11:29:22.40ID:r+7yP+3C >>476
いや,総当たりなら,3^(10^5)。
時刻が1--10^5までの間に,
「留まる」「右/左に移動する」の計3通りを
互いに独立に(以前の行動に影響されずに)
行うから。
書いていて思ったけど,端に居るときは
行動可能性が2通りに減るけど,
それでも2^N通りでは済まない。
いや,総当たりなら,3^(10^5)。
時刻が1--10^5までの間に,
「留まる」「右/左に移動する」の計3通りを
互いに独立に(以前の行動に影響されずに)
行うから。
書いていて思ったけど,端に居るときは
行動可能性が2通りに減るけど,
それでも2^N通りでは済まない。
480デフォルトの名無しさん
2020/09/06(日) 12:31:12.27ID:OF7UMaiS >>478
1人が満足することで1点得るとする
点数の最大値は入力されたnの数しかないからn点で
それぞれについて1点得るか得ないかの2^nしかない
あとはそれを実現できるか移動があるかどうかが焦点になる
なので全移動経路を総当りする必要性はない
1人が満足することで1点得るとする
点数の最大値は入力されたnの数しかないからn点で
それぞれについて1点得るか得ないかの2^nしかない
あとはそれを実現できるか移動があるかどうかが焦点になる
なので全移動経路を総当りする必要性はない
481デフォルトの名無しさん
2020/09/06(日) 13:12:26.24ID:GcXxHJb3 >>469 C++
#include <iostream>
int main(){
const int d = 4999;
int n = 1;
std::cout << "0b0.";
for( int i = 1; i <= 48; ++ i ){
n <<= 1;
if( n >= d ){
n -= d;
std::cout << '1';
} else {
std::cout << '0';
}
}
std::cout << std::endl;
return 0;
}
// STDOUT
0b0.000000000000110100011100000111010100101011010001
#include <iostream>
int main(){
const int d = 4999;
int n = 1;
std::cout << "0b0.";
for( int i = 1; i <= 48; ++ i ){
n <<= 1;
if( n >= d ){
n -= d;
std::cout << '1';
} else {
std::cout << '0';
}
}
std::cout << std::endl;
return 0;
}
// STDOUT
0b0.000000000000110100011100000111010100101011010001
482デフォルトの名無しさん
2020/09/06(日) 13:48:19.34ID:r+7yP+3C >>480
I see! Thanks.
I see! Thanks.
483デフォルトの名無しさん
2020/09/06(日) 15:12:48.21ID:JPL9qi8o484デフォルトの名無しさん
2020/09/06(日) 15:20:10.24ID:JPL9qi8o でその状態数の方が全経路数より圧倒的に少ないので
経路に沿ってではなくて状態について解いていく
経路に沿ってではなくて状態について解いていく
485デフォルトの名無しさん
2020/09/06(日) 16:31:54.76ID:SNogxihD486デフォルトの名無しさん
2020/09/06(日) 16:34:17.02ID:r+7yP+3C487デフォルトの名無しさん
2020/09/06(日) 16:57:26.53ID:JPL9qi8o だから遡って計算していくときは隣り合うマスの結果しか参照しないよ
488デフォルトの名無しさん
2020/09/06(日) 17:01:50.06ID:SNogxihD489デフォルトの名無しさん
2020/09/06(日) 17:02:55.61ID:JPL9qi8o >>465のコードは多分バグがある気がする
51行目と57行目を
a = score[j-1] + bit_test(timeline + i, j);
a = score[j+1] + bit_test(timeline + i, j);
こう変えて
43行目を
for(i = last_time-1; i >= 0; i--){
こうするのが正しいと思う
51行目と57行目を
a = score[j-1] + bit_test(timeline + i, j);
a = score[j+1] + bit_test(timeline + i, j);
こう変えて
43行目を
for(i = last_time-1; i >= 0; i--){
こうするのが正しいと思う
490253
2020/09/06(日) 18:02:02.21ID:EhLQImvS >>454 Perl5、人の訪問を待ち受け得るすべての場合を愚直に総当りで最大満足数を探す
$T = <DATA>;
use feature qw{signatures say}; no warnings 'experimental';
chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<DATA>;
use List::Util 'max';
sub f($t, $p, $s) {
if ($t++ < $T) {
if (0 < $p and $p < 11) {
$s++ if grep/$p/, @{$p{$t}};
$s += max(f($t, $p-1, $s), f($t, $p, $s), f($t, $p+1, $s))
}
return $s
}
0
}
say f(0, 1, 0);
__DATA__
5
5 4
2 3
3 2
3 4
4 4
~ $ perl 18_454_N_vztr.pl
4
$T = <DATA>;
use feature qw{signatures say}; no warnings 'experimental';
chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<DATA>;
use List::Util 'max';
sub f($t, $p, $s) {
if ($t++ < $T) {
if (0 < $p and $p < 11) {
$s++ if grep/$p/, @{$p{$t}};
$s += max(f($t, $p-1, $s), f($t, $p, $s), f($t, $p+1, $s))
}
return $s
}
0
}
say f(0, 1, 0);
__DATA__
5
5 4
2 3
3 2
3 4
4 4
~ $ perl 18_454_N_vztr.pl
4
491デフォルトの名無しさん
2020/09/06(日) 18:12:25.67ID:OF7UMaiS492デフォルトの名無しさん
2020/09/06(日) 18:13:41.84ID:65q5IvB9494253
2020/09/06(日) 19:04:52.54ID:EhLQImvS >>490 Perl5、>>489 のBug Fix、同じ所を何度も通るので漸化式かメモ化使って動的計画法で解けるようにできるかもしれない
use feature qw{signatures say}; no warnings 'experimental';
$T = <DATA>; chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<DATA>;
use List::Util 'max';
sub f($t, $p) {
my $s = 0;
if ($t <= $T) {
if (0 < $p and $p < 11) {
$s++ if grep{$_ eq $p} @{$p{$t}};
$t++;
$s += max(f($t, $p-1), f($t, $p), f($t, $p+1));
}
}
$s
}
say f(0, 1);
__DATA__
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
use feature qw{signatures say}; no warnings 'experimental';
$T = <DATA>; chomp $T;
push @{$p{$$_[0]}}, $$_[1] for map{[split' ']}<DATA>;
use List::Util 'max';
sub f($t, $p) {
my $s = 0;
if ($t <= $T) {
if (0 < $p and $p < 11) {
$s++ if grep{$_ eq $p} @{$p{$t}};
$t++;
$s += max(f($t, $p-1), f($t, $p), f($t, $p+1));
}
}
$s
}
say f(0, 1);
__DATA__
11
3 2
2 3
3 4
4 4
5 4
4 7
5 7
6 7
7 7
8 7
7 10
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
草
草
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【悲報】吉兆ささやき女将(頭が真っ白になって)高市早苗「頭が真っ白になって・・・」 [616817505]
- 【朗報】高市経済ブレーン「経済対策の執行で来春には内需が大復活。3月頃利上げ可能に」 [237216734]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【高市有事】高市早苗が就任一ヶ月でやったこと一覧wwwwwwwwwwwwwww [603416639]
