プログラミングのお題スレです。
【出題と回答例】
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
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でバイナリーサーチを実装してください
547デフォルトの名無しさん
2022/03/20(日) 12:30:16.47ID:nN0Ys+dW お題: トライ木を使ってサジェスト機能を実装してください
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
548デフォルトの名無しさん
2022/03/20(日) 19:32:45.03ID:Ycqbgo6j549デフォルトの名無しさん
2022/03/20(日) 19:41:12.56ID:sy393qRd お題 バッタの大冒険
a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。
↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです
入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている
入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている
入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文
a(1),a(2),⋯,a(n) を相異なる正の整数とし、M を n-1個の正の整数からなる集合と
する。また、M は s=a(1)+a(2)+⋯+a(n) を含まない。数直線の 0 の地点にいるバッタが
数直線の正の向きに n 回ジャンプする。 n 回のジャンプの距離は a(1),a(2),⋯,a(n) の並べ替えである。このとき並べ替えをうまく選べば、バッタがM の要素に対応するn-1点に一度も着地しないようにできることを証明せよ。
↑数学オリンピックの問題
もちろん証明はどうでもよろしい
お題は(ジャンプの幅のリスト、禁止点のリスト)から禁止点を交わしていく飛ぶ順を見つけるプログラムを実装せよです
入力
([3,5,8],[5,10])
出力
[8,5,3] #着地するのは8,13,16で禁止点5,10をかわしている
入力
([5,6,8,10,13,15],[2,18,24,29,45])
出力
[15,13,10,8,6,5] #着地するのは15,28,38,46,51で全ての禁止点をかわしている
入力
([3,26,30,32,36,44,53,62,68,82],[36,40,59,79,92,126,178,233,394])
出力
[82,68,62,53,44,36,32,30,26,3] #同文
550デフォルトの名無しさん
2022/03/20(日) 21:13:54.18ID:yn4DTgXG 2番目の例着地するのは
15,28,38,46,52,57
ですた
15,28,38,46,52,57
ですた
551デフォルトの名無しさん
2022/03/22(火) 20:44:30.68ID:0IfoPmot >>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている
(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている
(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき
この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)をうまく並べ替えれば全部かわすことができる
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
b(1),b(2),...,b(i-1),a,b(i),...,b(n)
とすると全ての禁止点をかわしている
(B) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えて、しかも禁止点以外に着地できるとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
解のジャンプとして
a,b(1),...,b(n-1)
とすると全ての禁止点をかわしている
(C) 一回目を最大ジャンプで飛んだとすると最初の禁止点を超えるが別の禁止点に着地してしまうとき
この状況だとa(1)〜a(n-1)のいずれかのジャンプa(i)でa(i)もa+a(i)のどちらも禁止点でないものが取れる( (∵) 全てのi:1〜n-1でa(i)かa+a(i)のどちらかが禁止点とするとこれだけでn-1個の禁止点全部尽くされてしまうけど、この中には最初の仮定である“一回目aで飛んだら禁止点”はこの中には出てこないので矛盾 )
それをa(n-1)としよう
最小の2回をa(n-1),a(n)と飛んだとしてこの時点で最初の禁止点と最初a(n)だと踏んでしまう禁止点の2点は超えているので残りの禁止点はn-3個以下しか残ってない
そこでa(1)〜a(n-2)をうまく並べ替えれば全部かわすことができる
552デフォルトの名無しさん
2022/05/03(火) 15:12:22.98ID:FP7f4hyR 問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
553デフォルトの名無しさん
2022/05/03(火) 23:10:33.84ID:JwGzWANE 説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
554デフォルトの名無しさん
2022/05/04(水) 00:16:07.90ID:0lMETj8q お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
設計は各自で考えること
555デフォルトの名無しさん
2022/05/04(水) 08:22:49.31ID:WTZHV9SY 政府公認のスカトロサークルだって!?じゅるり
556デフォルトの名無しさん
2022/05/05(木) 02:33:11.33ID:FeY8iOM4 高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
第一生命HD、副業解禁 1万5000人対象―大手生保初
IHI、国内8000人の副業解禁 重厚長大企業も転機
IHI、社外兼業を解禁 社内副業もルール化
557デフォルトの名無しさん
2022/05/05(木) 16:49:02.33ID:SGcHNlDo >>554
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
C言語
https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g
strtok_r() を strtok_r2() の名前にして自分で実装した。
strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
558デフォルトの名無しさん
2022/05/11(水) 08:28:38.45ID:zQqHPRjb 思い付きでお題考えてみた
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
検証してないんだけどどう?
お題: ランダムな部屋を移動する最短距離を求める
行列がある
任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される
この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る
通路の要素は斜めには生成されず横と縦に生成される
通路はランダムに1つの部屋から0 <= R <= 3生成される
各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する
このときAからBまでの最短経路を求めよ
559デフォルトの名無しさん
2022/05/11(水) 10:03:08.65ID:u3pPN9f9 ランダムの部分いる?
560デフォルトの名無しさん
2022/05/11(水) 19:40:13.01ID:RtJ1FIjP 日本語がよくわからんから数式で書いてくれ
561デフォルトの名無しさん
2022/05/11(水) 19:57:58.11ID:dPHs0KwZ 数式だと答えになりそうだから図で書いてくれ
562デフォルトの名無しさん
2022/05/17(火) 17:53:19.20ID:UVEhLnaE さらに、閑古鳥をよびよせるか
[お題] 多倍長では無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万)
S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる
答えは, 1000000007(10億7)の余りで出力
1) 6 8 --> 168
6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168
2) 10 30 --> 89546497
剰余前は、2329089562800
3) 2567890 3456789 --> ?
4) 1 4000000 --> ?
[お題] 多倍長では無理!?
整数 S, T が与えられる。(1 <= S <= T <= 400万)
S以上T以下の(連続する)整数の最小公倍数(LCM)をもとめる
答えは, 1000000007(10億7)の余りで出力
1) 6 8 --> 168
6,7,8 の最小公倍数、LCM(6, 7)= 42 --> LCM(42, 8)= 168
2) 10 30 --> 89546497
剰余前は、2329089562800
3) 2567890 3456789 --> ?
4) 1 4000000 --> ?
563デフォルトの名無しさん
2022/05/19(木) 21:03:46.76ID:f4mJcXLG564デフォルトの名無しさん
2022/05/19(木) 21:16:43.90ID:bqW40Z5X √T以下の素数列挙
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
各数を素因数分解して各素数の指数の最大を求める
10億7の剰余で上の乗算を行う
565デフォルトの名無しさん
2022/05/19(木) 22:51:31.74ID:vGEyxbeO566デフォルトの名無しさん
2022/05/20(金) 19:19:40.97ID:nM/DB7wD >>562
https://ideone.com/O9PQbN
想定解としては、(他の人同様)
求める最小公倍数を素因数分解した形に作るイメージ
400万以下の"素数及び素数べき乗"は、高々28.3万件。
S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
(方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
ボトルネックは素数を求める部分なので、手抜きしている。
余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
https://ideone.com/O9PQbN
想定解としては、(他の人同様)
求める最小公倍数を素因数分解した形に作るイメージ
400万以下の"素数及び素数べき乗"は、高々28.3万件。
S以上T以下で、素数べき乗が割り切れるかどうかチェックしている。
(方法は T/素数べき乗 > (S-1)/素数べき乗 ならあると, O(1)判定)
ボトルネックは素数を求める部分なので、手抜きしている。
余談)
・4)を多倍長で計算すると173万桁だった(一分程度ででた)
・10^9+7 ではなく、下9桁を出力だと、4)は 0になる(5^9が範囲にあるから)
567デフォルトの名無しさん
2022/07/01(金) 10:06:17.68ID:GRk1+wVC age
568デフォルトの名無しさん
2022/07/01(金) 15:47:14.28ID:GJ0Vg4bO お題: 循環リストを検出するプログラムを書け
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- Perfume・あ~ちゃん、一般人男性と結婚wwwwwwwwwwwwwwwwwwwwwwww
- 日本、高市のお陰で破滅に近づくwwwwwwww
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- まみちゃん
- ちっしゃーねーな。俺が習近平のアナルに武力侵攻してきてやるよ
