プログラミングのお題スレ Part20

■ このスレッドは過去ログ倉庫に格納されています
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
プログラミングのお題スレです。

【出題と回答例】
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/
2021/11/08(月) 23:57:31.64ID:r2YqBk6E
std::promiseを使うべき。だがやり方がわからん。
2021/11/09(火) 00:09:04.79ID:lgtaApb2
お題: 計算時間が予測できない時間のかかる計算について、複数スレッドを立ち上げていずれかのスレッドで答えがセットできたか、キャンセル操作があれば、スレッドを終了して可能ならば答えを取得する。スレッド開始と終了、答えに対してメッセージを出力せよ。
言語: C++11以降 std::threadとstd::promise使用。
2021/11/09(火) 00:58:40.89ID:coKFHwlH
いらっしゃいマシーンのプロミス
41596
垢版 |
2021/11/09(火) 03:16:48.15ID:Fkau/hlA
OpenMPやithreadじゃだめなのかよ
2021/11/09(火) 04:39:18.77ID:qOqV7S2Y
お題で言語まで指定されんの?宿題スレに貼ってくれば
2021/11/09(火) 16:49:52.57ID:EFAwjHPG
もうすぐポッキーの日
[お題] 人口合計で1がらみの数字遊び

URLのページに都道府県別の人口が載っている。
 URL: https://ideone.com/msZUeW
 今回使用するのは、2020/10のデータ

 同じ県は一回のみで、異なる県を 11 県選らぶ。
 (単純な選び方は全部で 47C11 = 約174億通り)
 選択した11県の人口合計を 111111 (11万1111) で割った時、
 余りが 1111 になるのは何通りあるか?
 
 また、その条件で(剰余でなく生の)のべ人口合計は何人か?

※一発正解問題、実行時間2秒程度。
※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。
2021/11/09(火) 21:20:25.70ID:l7cbb8DO
>>417
https://ideone.com/MusJV7
Cだけど遅い
2021/11/10(水) 00:24:34.22ID:BKretcyA
111111×11の配列のやつやな
420デフォルトの名無しさん
垢版 |
2021/11/11(木) 01:43:34.66ID:rg6AJXmO
侍エンジニアリングつーサイトの講師やりませんか?というお誘いが来た。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。
結局時給1000円くらいやん。
ふざけとるわ。
421デフォルトの名無しさん
垢版 |
2021/11/11(木) 09:52:21.62ID:SpIFedoW
生徒と応対して連絡先交換
あとは中抜き回避で青天井
422417
垢版 |
2021/11/11(木) 15:33:20.12ID:226d0X5M
>>417

回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。
 https://ideone.com/msZUeW 下部に追加記入

解法については、"部分和問題 数え上げ"でググって調べて


別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。
(大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)
2021/11/11(木) 16:01:48.26ID:aldiYpmV
>>422見てなんで>>418が遅かったか分かった
無駄な掛算やってたからだった
配列の並び直したら4倍速くなった
https://ideone.com/vwPpAn
2021/11/11(木) 16:02:43.51ID:aldiYpmV
掛算じゃなくてメモリの連続性かも
両方かな
2021/11/11(木) 21:32:16.11ID:3Uao5x0L
お題:与えられたテキストの中のURLをすべて置き換える。

https://【...】

https://jump.5ch.net/?【...】
2021/11/11(木) 21:50:43.06ID:PBlMMjPy
2021/11/11(木) 21:53:39.37ID:39WaJBCl
>>425
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎
2021/11/11(木) 21:57:33.27ID:CgY0hHY1
>>427
URLにマッチする正規表現使えばええやろ、チャチャとやれよ。
2021/11/11(木) 21:58:05.03ID:39WaJBCl
URLにマッチする正規表現(笑)
43096
垢版 |
2021/11/11(木) 23:57:38.62ID:JHz34AMz
>>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こうだと思うが…

$uri = 'https://www.google.com/search?client=firefox-b-e&;q=%E8%9F%BB%E4%BA%BA%E9%96%93+%E3%83%8F%E3%82%B2';
use URI::Split qw(uri_split uri_join);
@a = uri_split($uri);
$a[1] = 'jump.5ch.net';
$a[2] = '/';
$a[3] = $uri;
print uri_join(@a), "\n";
431デフォルトの名無しさん
垢版 |
2021/11/12(金) 20:37:34.22ID:Y4pYQLN1
”2021”というフォルダがある
"2020"というフォルダもある
 :
"1950"というフォルダもある
そしてそれぞれに"01"〜"12"のサブフォルダがあって
そしてそのそれぞれに"01"〜"31"というサブフォルダがあって
更に"00"〜"23"という・・・・

つまり、1時間ごとのフォルダがあって
そこには多くのファイルが詰まっている

そのファイルのタイムスタンプに変化があったら
「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい
片っ端からタイムスタンプを調べるしかないのか
これはファイルシステムの問題でしょうが
なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか

ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね
432デフォルトの名無しさん
垢版 |
2021/11/12(金) 21:45:17.50ID:gsBkkV8P
そういう検出機能はOSかハードウェアかについてなかったか 忘れたが
433デフォルトの名無しさん
垢版 |
2021/11/12(金) 21:49:29.72ID:gsBkkV8P
NTFSの USN とは?
USN ジャーナルとは
NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。
Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。

USNとはUpdate Sequence Number Journalの略称です。
主に以下の目的で使用されます。
・FRS(File Replication Service)によるファイル複製時の差分洗い出し。
・スナップショットバックアップ時の差分洗い出し。
・ウィルス対策ソフトによるファイル検査。
・インデックスサービス向け。

http://tooljp.com/qa/what-is-USN-36BE.html
2021/11/12(金) 22:31:42.38ID:M7lyd7nj
Ruby では、文字列の中から、URL を抜き出す関数が非推奨になった。
頻繁に規格が変わるからかな?

正規表現でも多分、何万行も掛かる。
作るのに10年ぐらい掛かるので、誰も作らない

今あるものでも、正しく判定されるかどうか、分からない
2021/11/12(金) 22:39:57.54ID:M7lyd7nj
>>430
5ch のバグで、

そのURL をプログラム板全体で見た時は、&q とつながっているのに、

個別のスレッドで見ると、&;q と、&の直後に、;が入って、
リンクが&までになってしまう
436デフォルトの名無しさん
垢版 |
2021/11/13(土) 02:42:42.42ID:p75HzwR9
>>433
ドライブごとに加えられた変更がログに保存されているとは知りませんでした
データドライブに分けているので、ログから探すのも速いかもしれません
ありがとうございました
2021/11/15(月) 00:16:09.47ID:Xr7xQZWT
お題: JSON形式のテキストをXML形式のテキストに変換しなさい
2021/11/15(月) 21:06:19.54ID:L/+dWr8R
>>437 C++
https://ideone.com/vkSCmj
439デフォルトの名無しさん
垢版 |
2021/11/23(火) 21:56:09.59ID:WrxNeBf5
age
2021/11/24(水) 11:45:59.40ID:kXzWnsgO
ideone って boost は include 出来るのか
codepad はずっと落ちてるな
2021/11/24(水) 20:41:27.64ID:CmhCtKru
>>440
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…
44296
垢版 |
2021/12/02(木) 04:03:51.64ID:EE6BdDDo
元のソースをローカルに保存しておかなかったのか
443デフォルトの名無しさん
垢版 |
2021/12/02(木) 12:54:02.17ID:adrEDszf
短いもんだから直接打ち込んじゃったんじゃないかな。
そして消滅。
2021/12/02(木) 16:48:13.78ID:BMPRSKoA
>>442
デスクトップで書いたものはローカルのどこかに残っている(と思う)
ノートで書いたものはノートPCごとどこかにいってしまった…
いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね
44596
垢版 |
2021/12/02(木) 21:30:16.60ID:m0u4nXXp
いま
http://codepad.org/
復活してない?

サンプルURLとして前々スレの過去の回答

プログラミングのお題スレ Part18
http://mevius.5ch.net/test/read.cgi/tech/1594702426/174
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
> ↓貼り直した
> http://codepad.org/BWRzr8fW
> ※会員未登録の為、一定期間後に自動消去

も表示されたし。

保持しておきたいcodeがあれば今のうちにsaveするか、
Internet archiveに記録しとくのも手だよ。
446デフォルトの名無しさん
垢版 |
2021/12/08(水) 14:07:00.92ID:Bws6ftLO
お題が出なくなったので全く実用性がないと思われる頭の体操的なやつを一つ。

お題: 与えられた数値の配列の 1 になっているビットをカウントする。

例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。

それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。
2021/12/08(水) 17:14:42.64ID:vDqYU7cZ
.replace("0", "").length
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/12/08(水) 19:09:00.93ID:nFeiLLyh
>>446
最適なコードが環境に大きく依存するからなあ
シフトの速度とか専用命令有無とか

あまり良いお題じゃないし荒れそう
2021/12/09(木) 05:41:43.04ID:8cQ3P39Q
英式 1/4/2021
米式 4/1/2021
2021/12/09(木) 08:53:58.33ID:FBbu4srV
日 21/04/01
米 04/01/21
欧 01/04/21
年2桁で入り乱れたら更にわけわかめ
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日のみ
2021/12/09(木) 13:44:59.59ID:ZoIDn0OR
>>452
特定できるかどうかだけならいいが……
反例を間違った 02 12 29 3通りある
2021/12/09(木) 14:42:16.44ID:b/vm8aBu
そういえば食品の賞味期限がどう読んだらいいか分からなかったことがあったなあ。

11/02/13

2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。
普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた
お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫
なのかも知れないが)。
日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では
あまりないだろうけど昭和の頃はあったような気がするなあ。
2021/12/09(木) 22:53:27.33ID:93rp7Kwc
>>446 Ruby

p [0b1110, 0b1010111].reduce(0){|s, n| s + n.digits(2).count(1)}

# => 8
2021/12/09(木) 23:18:40.40ID:2ghuDZG2
>>446
https://ideone.com/qmIeDU
457デフォルトの名無しさん
垢版 |
2021/12/10(金) 00:33:54.80ID:Uh57IFJZ
>>446
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月に判定されるが、まあいいか。
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
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]));
}
461デフォルトの名無しさん
垢版 |
2021/12/11(土) 20:38:05.35ID:LF8J+dNV
>>446
Kotlin
https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg

普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
2021/12/11(土) 22:30:09.92ID:LvGvT7a1
>>446 octave
https://ideone.com/BNjv3I
f = @(a) sum(dec2bin(a)(:) - '0');
f([0xde 0x96])
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秒程度
464デフォルトの名無しさん
垢版 |
2021/12/16(木) 03:59:00.84ID:p3cQ7gqk
お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。

演算子のオーバーロードなどは任意とします。
2021/12/16(木) 07:13:07.04ID:iDMhxZSI
>>464
多倍長演算ライブラリ、のことですか?
2021/12/16(木) 07:37:15.94ID:I1MQqoQo
>>465
アホ
2021/12/16(木) 20:36:30.04ID:teZIL57B
>>463 c
https://ideone.com/SjWUYZ
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった

>>463 ruby
https://ideone.com/JYQPIF
2021/12/16(木) 20:39:48.12ID:iDMhxZSI
>>466
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
問題が説明不足では?
2021/12/16(木) 21:53:18.15ID:B45/3FnD
お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする

入力

本日は良いお日柄ですね

出力

___本
__日は
_良いお
日柄です
___ね
2021/12/16(木) 22:32:14.13ID:iDMhxZSI
>>470
文字コードは何を仮定すればいいのですか?
2021/12/16(木) 22:34:05.93ID:B45/3FnD
>>471
UTF-8
日本語の扱いが難しい言語では英語のみの対応も良しとする
2021/12/17(金) 00:19:35.20ID:6Xap9yRK
>>470 octave
https://ideone.com/RseGCJ
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

「二種類のみの数字からなる」を計算式で判定する方法ある?
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 のルールで生成する方が速そう
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 チェックで間に合う。
 ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。
 (想定解例では後者でやっている)
2021/12/17(金) 20:17:58.00ID:gjoWWzuf
>>468
>>466
478467
垢版 |
2021/12/17(金) 20:31:12.28ID:llvCqHRj
>>463 c
https://ideone.com/bmYThw
・Ruby版の移植
・組み合わせの列挙方法は丸パクリ
・Ralph William Gosper Jr. 氏に感謝
2021/12/17(金) 23:34:29.99ID:llvCqHRj
>>463 c
https://ideone.com/oPUphG
>>478から若干の整理
・組み合わせ列挙用バッファ廃止
2021/12/18(土) 16:20:56.22ID:b+l2srj7
>>464 C++
https://ideone.com/tkSsy4
481464
垢版 |
2021/12/18(土) 16:29:44.66ID:ElKfLkKB
>>465
惜しい

>>468
IEEE754の倍精度(binary64)を整数演算で実装するのではありません。
binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
double-double演算です。

Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
2021/12/18(土) 16:50:56.06ID:XqEkP9jw
> Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
483465,468
垢版 |
2021/12/19(日) 00:01:36.35ID:eP9zS7VQ
>>481
I see.
2021/12/19(日) 21:10:50.32ID:wQiNAkF9
>>448 octave
https://ideone.com/2NglYm
2021/12/21(火) 19:32:25.39ID:FcpxpynD
128ビットあるのに106ビットしか使わんの?
もったいなくね?
2021/12/21(火) 19:47:17.61ID:1JACqwUF
素人はだまってろ
2021/12/21(火) 21:17:48.02ID:cWMYIacO
>>485
もったいなよ
ただ、既存のdouble計算リソースが使えるという利点がある
2021/12/22(水) 04:27:38.39ID:5fCeD7fV
double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
2021/12/23(木) 07:32:47.64ID:Xd/JFvMa
お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない
2021/12/23(木) 07:37:01.70ID:GwakKG68
>>489

function f: Integer -> Integer{
return 0;
}
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]
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 []
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 []
494デフォルトの名無しさん
垢版 |
2021/12/24(金) 17:16:46.67ID:Xt+LQVaD
>>488
Juliaのhypot()でもFMA使ってますです
2021/12/24(金) 22:51:57.83ID:Y/w+woHG
>>494
ただ積と和を1命令にして高速化しただけの積和
の効果だけじゃなくて
融合(fused)の効果が効く用途の話
496デフォルトの名無しさん
垢版 |
2021/12/25(土) 03:52:36.33ID:62MjaTIU
>>489
Kotlin
https://paiza.io/projects/xmMY6y8BGb8zlhn5QEmKvQ

何も考えずにただ Random 使っただけ。
2021/12/27(月) 20:25:00.12ID:7ybeEGfH
[お題] 平均が2022な素数数列

 5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
 数列の項数(要素数)を最大化する、最大はいくつか。
 最大数と数列を表示する。
 
※解答例(もちろん4以上がある)
 4
 [1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
 最大な数列は複数通りあると思うので、一例のみで
498デフォルトの名無しさん
垢版 |
2021/12/29(水) 15:58:08.20ID:czxFIFL7
答えは595個?
計算機+理詰めで595個っぽいけど
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個でした。手作業でできるレベルなら……
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となる
完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
2021/12/30(木) 12:24:49.52ID:sGmJGaqc
何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
503502
垢版 |
2021/12/30(木) 12:30:19.06ID:sGmJGaqc
表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された
504502
垢版 |
2021/12/30(木) 12:38:50.05ID:sGmJGaqc
可能と不可能が極端に分かれている問題なので
事前のブランチカットだけが重要なヘンなお題w
>>352はまだ未解決
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月から
507デフォルトの名無しさん
垢版 |
2021/12/31(金) 15:04:12.13ID:bqUePCKa
>>497
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以上はない
2022/01/08(土) 11:42:09.36ID:B5P29Cqv
お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
2022/01/08(土) 18:45:49.69ID:qvdwzZse
>>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
511464
垢版 |
2022/01/08(土) 21:07:22.52ID:Xrz2Tlot
>>510
上位の±1/2ulp相当が下位になります
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)でやるって所ぐらいしか工夫がない)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況