プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part19
https://mevius.5ch.net/test/read.cgi/tech/1606662245/
探検
プログラミングのお題スレ Part20
■ このスレッドは過去ログ倉庫に格納されています
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
447デフォルトの名無しさん
2021/12/08(水) 17:14:42.64ID:vDqYU7cZ .replace("0", "").length
448デフォルトの名無しさん
2021/12/08(水) 17:44:20.69ID:/InaUbpT お題: 日付が与えられるので4月ならtrueを出力しなさい
< 2021/04/01
> true
< 04/01
> true
< 2021/04
> true
< 2021/05/01
> false
< 2021/04/01
> true
< 04/01
> true
< 2021/04
> true
< 2021/05/01
> false
449デフォルトの名無しさん
2021/12/08(水) 19:09:00.93ID:nFeiLLyh450デフォルトの名無しさん
2021/12/09(木) 05:41:43.04ID:8cQ3P39Q 英式 1/4/2021
米式 4/1/2021
米式 4/1/2021
451デフォルトの名無しさん
2021/12/09(木) 08:53:58.33ID:FBbu4srV 日 21/04/01
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
452デフォルトの名無しさん
2021/12/09(木) 13:38:41.08ID:ZoIDn0OR 逆に、年2桁の時は、
その数値で年月日が特定できるか問題があった。
02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ
その数値で年月日が特定できるか問題があった。
02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある
02 13 29 --> 13年02月29日はないので、29年02月13日のみ
453デフォルトの名無しさん
2021/12/09(木) 13:44:59.59ID:ZoIDn0OR454デフォルトの名無しさん
2021/12/09(木) 14:42:16.44ID:b/vm8aBu そういえば食品の賞味期限がどう読んだらいいか分からなかったことがあったなあ。
11/02/13
2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
11/02/13
2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
455デフォルトの名無しさん
2021/12/09(木) 22:53:27.33ID:93rp7Kwc456デフォルトの名無しさん
2021/12/09(木) 23:18:40.40ID:2ghuDZG2457デフォルトの名無しさん
2021/12/10(金) 00:33:54.80ID:Uh57IFJZ >>446
C
https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
C
https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
458デフォルトの名無しさん
2021/12/10(金) 01:03:30.79ID:Uh57IFJZ >>448
Perl
https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
Perl
https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
459デフォルトの名無しさん
2021/12/10(金) 09:12:55.36ID:rDACCx1y >>446
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
10
32
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
10
32
460デフォルトの名無しさん
2021/12/11(土) 11:47:37.10ID:kARxTGM3 >>446 rust
https://ideone.com/9yFeU3
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
https://ideone.com/9yFeU3
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
461デフォルトの名無しさん
2021/12/11(土) 20:38:05.35ID:LF8J+dNV >>446
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
462デフォルトの名無しさん
2021/12/11(土) 22:30:09.92ID:LvGvT7a1463デフォルトの名無しさん
2021/12/14(火) 17:40:23.45ID:kbrFI/m0 もうすぐ、2022年
[お題] 2022は"x3y1数"(造語)?
以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1
該当例:1112, 2212, 2022, 32222223, 999999999888
ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)
整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
制約: 0 < A <= B <= 10^18
1) 2923 3311 --> 8
該当は [2999, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022
3) 3000 6666566566566555 --> ?
4) 999999999889 1000000000000110 --> ?
5) 1 1000000000000000000 --> ?
※実行時間:上の5問をクエリーとし全部を2秒程度
[お題] 2022は"x3y1数"(造語)?
以下の二つを満たす正の整数を"x3y1数"と呼ぶ
・各桁の数値が、二種類のみの数字からなる
・上の二数の個数比は 3:1
該当例:1112, 2212, 2022, 32222223, 999999999888
ダメな例:2213(種類), 4444(種類), 33232(個数比), 0222(先頭ゼロ)
整数A,Bが与えられる。A以上B以下の"x3y1数"はいくつあるか?
制約: 0 < A <= B <= 10^18
1) 2923 3311 --> 8
該当は [2999, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022
3) 3000 6666566566566555 --> ?
4) 999999999889 1000000000000110 --> ?
5) 1 1000000000000000000 --> ?
※実行時間:上の5問をクエリーとし全部を2秒程度
464デフォルトの名無しさん
2021/12/16(木) 03:59:00.84ID:p3cQ7gqk お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。
465デフォルトの名無しさん
2021/12/16(木) 07:13:07.04ID:iDMhxZSI >>464
多倍長演算ライブラリ、のことですか?
多倍長演算ライブラリ、のことですか?
466デフォルトの名無しさん
2021/12/16(木) 07:37:15.94ID:I1MQqoQo >>465
アホ
アホ
467デフォルトの名無しさん
2021/12/16(木) 20:36:30.04ID:teZIL57B >>463 c
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
https://ideone.com/JYQPIF
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
https://ideone.com/JYQPIF
468デフォルトの名無しさん
2021/12/16(木) 20:39:48.12ID:iDMhxZSI >>466
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
469デフォルトの名無しさん
2021/12/16(木) 20:57:05.50ID:Y2CVy/MB 問題が説明不足では?
470デフォルトの名無しさん
2021/12/16(木) 21:53:18.15ID:B45/3FnD お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね
471デフォルトの名無しさん
2021/12/16(木) 22:32:14.13ID:iDMhxZSI >>470
文字コードは何を仮定すればいいのですか?
文字コードは何を仮定すればいいのですか?
472デフォルトの名無しさん
2021/12/16(木) 22:34:05.93ID:B45/3FnD473デフォルトの名無しさん
2021/12/17(金) 00:19:35.20ID:6Xap9yRK474デフォルトの名無しさん
2021/12/17(金) 04:20:32.14ID:QblDDO27 二種類のみの数字からなり個数比は 3:1
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888
「二種類のみの数字からなる」を計算式で判定する方法ある?
引数の範囲は 1-10^18 = 1001-9999999999998888(16桁)
以下の範囲に限られる
1000-9998
1000 0001-9999 9988
1000 0000 0011-9999 9999 9888
1000 0000 0000 0111-9999 9999 9999 8888
「二種類のみの数字からなる」を計算式で判定する方法ある?
475デフォルトの名無しさん
2021/12/17(金) 05:36:58.41ID:5DT5Lvck 1([\d&&[^1]])\1{2} 最上位桁が比1
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう
111[\d&&[^1]],11[\d&&[^1]]1,1[\d&&[^1]]11 最上位桁が比3
一般化 (\d)(?!\1)(\d)\2{2}|(\d)\1{2}(?!\1)\d|(\d)\1(?!\1)\d\1|(\d)(?!\1)\d\1{2}
4桁ならこれでもいいけど8桁以上になると複雑化するし
地道に数えるより 4の倍数桁,数字2種,比率1:3 のルールで生成する方が速そう
476463
2021/12/17(金) 16:22:06.93ID:ssQAe3ef >>463
https://ideone.com/xTDtME
想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
(想定解例では組合せは2ベキとpopcountから作っている)
「それは、全列挙数が小さいとわかっているからでは..?」に対して
プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
10P2 * 16C4 * 4 < 70万 なので、全列挙可能
まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
(想定解例では後者でやっている)
https://ideone.com/xTDtME
想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
(想定解例では組合せは2ベキとpopcountから作っている)
「それは、全列挙数が小さいとわかっているからでは..?」に対して
プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
10P2 * 16C4 * 4 < 70万 なので、全列挙可能
まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
(想定解例では後者でやっている)
477デフォルトの名無しさん
2021/12/17(金) 20:17:58.00ID:gjoWWzuf478467
2021/12/17(金) 20:31:12.28ID:llvCqHRj479デフォルトの名無しさん
2021/12/17(金) 23:34:29.99ID:llvCqHRj480デフォルトの名無しさん
2021/12/18(土) 16:20:56.22ID:b+l2srj7481464
2021/12/18(土) 16:29:44.66ID:ElKfLkKB482デフォルトの名無しさん
2021/12/18(土) 16:50:56.06ID:XqEkP9jw > Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
一般的な用語じゃないんだから初めからこれ書いとけよ
484デフォルトの名無しさん
2021/12/19(日) 21:10:50.32ID:wQiNAkF9485デフォルトの名無しさん
2021/12/21(火) 19:32:25.39ID:FcpxpynD 128ビットあるのに106ビットしか使わんの?
もったいなくね?
もったいなくね?
486デフォルトの名無しさん
2021/12/21(火) 19:47:17.61ID:1JACqwUF 素人はだまってろ
487デフォルトの名無しさん
2021/12/21(火) 21:17:48.02ID:cWMYIacO488デフォルトの名無しさん
2021/12/22(水) 04:27:38.39ID:5fCeD7fV double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
積和じゃなくて3個の和のfused命令も欲しくなる
489デフォルトの名無しさん
2021/12/23(木) 07:32:47.64ID:Xd/JFvMa お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない
生成される整数は再現性がなければならない
490デフォルトの名無しさん
2021/12/23(木) 07:37:01.70ID:GwakKG68491デフォルトの名無しさん
2021/12/23(木) 09:01:28.76ID:S2rGJ6tV >>489 Ruby
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
def sequence( seed, number )
srand( seed )
Array.new( number ){ rand(100) }
end
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
p sequence( 123, 10 ) #=> [66, 92, 98, 17, 83, 57, 86, 97, 96, 47]
492デフォルトの名無しさん
2021/12/23(木) 19:26:32.49ID:KAa76evj >>486 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
493デフォルトの名無しさん
2021/12/23(木) 19:27:19.05ID:KAa76evj >>489 ocaml
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
https://ideone.com/NzF5f2
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
494デフォルトの名無しさん
2021/12/24(金) 17:16:46.67ID:Xt+LQVaD >>488
Juliaのhypot()でもFMA使ってますです
Juliaのhypot()でもFMA使ってますです
495デフォルトの名無しさん
2021/12/24(金) 22:51:57.83ID:Y/w+woHG496デフォルトの名無しさん
2021/12/25(土) 03:52:36.33ID:62MjaTIU497デフォルトの名無しさん
2021/12/27(月) 20:25:00.12ID:7ybeEGfH [お題] 平均が2022な素数数列
5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
数列の項数(要素数)を最大化する、最大はいくつか。
最大数と数列を表示する。
※解答例(もちろん4以上がある)
4
[1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
最大な数列は複数通りあると思うので、一例のみで
5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
数列の項数(要素数)を最大化する、最大はいくつか。
最大数と数列を表示する。
※解答例(もちろん4以上がある)
4
[1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
最大な数列は複数通りあると思うので、一例のみで
498デフォルトの名無しさん
2021/12/29(水) 15:58:08.20ID:czxFIFL7 答えは595個?
計算機+理詰めで595個っぽいけど
計算機+理詰めで595個っぽいけど
499デフォルトの名無しさん
2021/12/29(水) 16:38:34.79ID:cOaqDcVM 「Log4j」2.17.0にもリモートコード実行の脆弱性
500497
2021/12/29(水) 20:37:12.14ID:GN7CzEgH >>497 c++
https://ideone.com/UBbtWd
"素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
個人的には他の復元方法を見たかった。
pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……
https://ideone.com/UBbtWd
"素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
個人的には他の復元方法を見たかった。
pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……
501デフォルトの名無しさん
2021/12/29(水) 22:36:34.62ID:d+UhR9Ru オレがやったのは
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
p[n]をn番目の素数、
P[n]をn番目までの素数の集合、
s[n]をP[n]の和
a=2022として
まず素数のn元集合で平均が1番小さくなるのはP[n]でその平均値s[n]/nは単調増加だからs[n]/n>aの時元数n以上の解はない
s[596]/596>aは計算機で確認
なので595元集合で解があればそれが最大
s[595]/595<aなのでP[595]はダメ
s[596]-595a = 1205525 - 1203090 = 2435は素数ではないのでP[597]から一個消すのはダメ
s[597]-595a = 1209898 - 1203090 = 6808 はp597=4373以下の素数2459,4349の和で表すことができる
よってP[597]\{2459,4349}の和は595aとなる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
502デフォルトの名無しさん
2021/12/30(木) 12:24:49.52ID:sGmJGaqc 何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
503502
2021/12/30(木) 12:30:19.06ID:sGmJGaqc 表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された
探索はほぼ一回でボトムまで到達して
発見された
505デフォルトの名無しさん
2021/12/30(木) 20:10:02.90ID:jVgYGZiS >>502
最大の個数を求めよやろ?
最大の個数を求めよやろ?
506デフォルトの名無しさん
2021/12/30(木) 20:24:56.63ID:JL7tAErK 千葉興業銀行、4月から副業解禁 県内地銀初
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入
肥後銀行が副業制度導入へ 多様な働き方認める 10月から
507デフォルトの名無しさん
2021/12/31(金) 15:04:12.13ID:bqUePCKa >>497
haskell
https://ideone.com/GLMXRV
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
haskell
https://ideone.com/GLMXRV
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
508デフォルトの名無しさん
2021/12/31(金) 15:09:29.33ID:bqUePCKa ちなみに出力形式は
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
509デフォルトの名無しさん
2022/01/08(土) 11:42:09.36ID:B5P29Cqv お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
510デフォルトの名無しさん
2022/01/08(土) 18:45:49.69ID:qvdwzZse >>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
512デフォルトの名無しさん
2022/01/09(日) 01:28:46.61ID:/FHAAuzb >>509
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
513デフォルトの名無しさん
2022/01/09(日) 07:56:15.63ID:9G1CcY2f >>509 C++
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit
double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}
long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}
環境+コンパイルオプション依存 little endian, double = 64bit, long double = 128bit
double fl2( double x )
{
*( (uint64_t*) &x ) &= 0xFFF0000000000000LLU;
return x;
}
long double fl2( long double x )
{
*( (__uint128_t*) &x ) &= *( (__uint128_t*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF" );
return x;
}
514デフォルトの名無しさん
2022/01/09(日) 07:59:19.16ID:+WoQnCHD 2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない
515デフォルトの名無しさん
2022/01/09(日) 08:00:08.09ID:+WoQnCHD 先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな
516デフォルトの名無しさん
2022/01/09(日) 08:27:45.00ID:Gu7/igUi ビットいじる方法だと、非正規化数が0に、NaNが無限大になる
そういえば、無限大やNaNはどうすればいいのだろうか
そういえば、無限大やNaNはどうすればいいのだろうか
517509
2022/01/09(日) 09:16:00.82ID:42F2CcU6 Python
でかい値だとうまくいかないやつ
def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)
>>516
深く考えてませんでしたw
でかい値だとうまくいかないやつ
def foo(x):
_c = x * float(2 ** 52 + 1)
_xh = c - (c - x)
_if xh > x: return(xh * 0.5)
_return(xh)
>>516
深く考えてませんでしたw
518509
2022/01/09(日) 09:53:47.91ID:42F2CcU6 >>512
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
519デフォルトの名無しさん
2022/01/09(日) 15:38:39.37ID:DwVfG/qv そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
520デフォルトの名無しさん
2022/01/09(日) 21:50:51.38ID:sZC3oXej なんか変なこと書いた
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
521デフォルトの名無しさん
2022/01/10(月) 00:03:40.12ID:gj6cLR2i522509
2022/01/10(月) 00:53:57.15ID:MGxmK4tZ いまどきのコンパイラなら、frexp()やldexp()をいい塩梅に最適化してくれるのだろうか?
from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)
from math import frexp, ldexp
def foo(x):
_m, e = frexp(x)
_if m == 0: return 0.0
_return ldexp(0.5, e)
523512
2022/01/10(月) 01:47:47.54ID:av6tewvz >>509
またPerlでワンライナー。
perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'
今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。
またPerlでワンライナー。
perl -ne 'chomp;if($_<=0){print"0\n"}else{for(my$i=0;;$i++){if((1<<$i)>$_){print 1<<($i-1),"\n";last}}}'
今度は計算している内容から考えて結果が同じになるようにした。浮動小数点演算をしていない。
また整数値が何ビットであるかも考慮しておらず、Perlの整数が32bitだった場合は2^32以上の値を入力されたら多分うまく動かない。
当然64bitだったら2^64以上の値の入力で多分うまく動かない。
524509
2022/01/10(月) 02:23:50.20ID:MGxmK4tZ >>522の修正
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
525デフォルトの名無しさん
2022/01/10(月) 03:27:40.49ID:av6tewvz526デフォルトの名無しさん
2022/01/10(月) 12:43:53.01ID:SgLm6fjp527464
2022/01/11(火) 02:38:04.94ID:i2HiBm5J >>526
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
tps://na-inet.jp/na/qd_ja.pdf
勿論、そう実装しないのもあり。
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
tps://na-inet.jp/na/qd_ja.pdf
勿論、そう実装しないのもあり。
528デフォルトの名無しさん
2022/01/11(火) 03:06:24.10ID:Y9TTYX77529デフォルトの名無しさん
2022/01/11(火) 03:08:13.70ID:Y9TTYX77 >>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
530デフォルトの名無しさん
2022/01/30(日) 18:02:46.10ID:Np8aVX2s お題: 1より小さい実数を1以上2より下にせよ
< 0.123
> 1.23
< 0.0000123
> 1.23
< 0.123
> 1.23
< 0.0000123
> 1.23
531デフォルトの名無しさん
2022/01/30(日) 18:25:00.85ID:A8jovols532蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:39:55.64ID:DZg7owi9 お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
533蟻人間 ◆T6xkBnTXz7B0
2022/01/30(日) 20:58:19.92ID:DZg7owi9 お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
534デフォルトの名無しさん
2022/02/01(火) 07:45:34.60ID:/+irRzAS >>530
負の数や2以上の数は?
負の数や2以上の数は?
535デフォルトの名無しさん
2022/02/01(火) 16:02:38.13ID:zoPPBktH >>534
・・・!
・・・!
536デフォルトの名無しさん
2022/02/01(火) 18:02:38.08ID:zoPPBktH537デフォルトの名無しさん
2022/02/01(火) 20:01:29.11ID:TQ6+L4kb 負だったらabsolute取るだけのことじゃん
538デフォルトの名無しさん
2022/02/01(火) 23:48:43.79ID:/+irRzAS >>536
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
539デフォルトの名無しさん
2022/02/21(月) 17:49:01.62ID:QCKFV9kK もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/2w86hj
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 22 県選らぶ。
(単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
整数A,Bが与えられる(1<=A<=B<=1億)
選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?
※上の三問を全部で5秒程度で
想定解はあるが、もっとスマートな方法がありそう
「またか」と思った人、以前の問題とは想定解はかなり違う
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
URL: https://ideone.com/2w86hj
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 22 県選らぶ。
(単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
整数A,Bが与えられる(1<=A<=B<=1億)
選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
2) 22222222 44444444 --> ?
3) 44444444 66666666 --> ?
※上の三問を全部で5秒程度で
想定解はあるが、もっとスマートな方法がありそう
「またか」と思った人、以前の問題とは想定解はかなり違う
540デフォルトの名無しさん
2022/02/23(水) 19:08:44.10ID:jKeAH0Dy >>536
やぱしn==0は除外?
やぱしn==0は除外?
541デフォルトの名無しさん
2022/02/24(木) 00:35:12.16ID:5B3hmiET >>540
一桁目が0は除外してね
一桁目が0は除外してね
542デフォルトの名無しさん
2022/02/24(木) 08:38:30.17ID:GiducjAN 難しい、こんなの小学生が解けるのか?
今年の中学受験の算数で一番の良問がこれらしい [976717553]
https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
今年の中学受験の算数で一番の良問がこれらしい [976717553]
https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
543539
2022/02/25(金) 17:25:00.82ID:STd/IFZD544デフォルトの名無しさん
2022/02/25(金) 19:14:08.69ID:RZ7O9d2K545デフォルトの名無しさん
2022/02/26(土) 19:41:18.44ID:4VT1Qgxn haskellでやったらやっぱり5秒はきつかった
546デフォルトの名無しさん
2022/02/27(日) 02:34:25.32ID:VdMMR1Xg お題: RustかGoでバイナリーサーチを実装してください
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 俺が「う~寒い寒い」って言いながらお前らが寝てるお布団に潜り込んだら…
