- 1 名前:デフォルトの名無しさん mailto:sage [2021/06/19(土) 00:02:57.84 ID:MQWrKSb7.net]
- プログラミングのお題スレです。
【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part19 https://mevius.5ch.net/test/read.cgi/tech/1606662245/
- 408 名前:蟻人間 mailto:sage [2021/11/04(木) 23:12:02.85 ID:HOYEg+v3.net]
- 現実の問題は競プロの問題よりも難しいかも知れない。教科書に書いてないような解決策を要求される。
競プロの問題が欲しいなら、ここよりも競プロへ行ってくれ。ここはそういう場所ではない。
- 409 名前:蟻人間 mailto:sage [2021/11/05(金) 18:24:25.98 ID:lMRXWOVz.net]
- 数学の組合せの問題か。まず文字の組合せから。ある単語Xのすべての文字が他の単語にないならその単語Xは連結ではない(自明)。ひとつのセルは二重に交差点になることはできない(自明)。
ある単語Xが連結でなければ、単語X上の任意の文字位置は交差点にはならない。
- 410 名前:蟻人間 mailto:sage [2021/11/05(金) 18:33:11.14 ID:lMRXWOVz.net]
- 次はクロスワードの組合せ。有限でサイズ変更可能な二次元配列によりクロスワードの盤を再現する。各要素はアルファベットか黒マスかハテナ(?)である。
文字の組合せにおいて最も接続数の多い単語を最初に盤の真ん中に置く。さらに単語の両端に黒マスを置く。次に接続数の多い単語と既に盤に置かれている単語の交差点を考えるわけだが、 交差点の位置により場合分けすると考えやすい。
- 411 名前:蟻人間 mailto:sage [2021/11/05(金) 18:35:46.93 ID:lMRXWOVz.net]
- そして配置のすべての組合せを再帰により網羅する。交差点が見つからない単語があれば失敗。というわけだ。コーディングに入ろう。
- 412 名前:デフォルトの名無しさん [2021/11/06(土) 03:47:56.08 ID:8BMCwFko.net]
- >>385
Kotlin https://paiza.io/projects/Hq-JXeNo2ZQgGbLORbCJpA GUI は java.awt ライブラリを使うように書いてある。 当然の事ながら、paiza.io のサイト上では動かない。 動かしたい人は IntelliJ Idea で Kotlin のプロジェクトを作ってソースコピペして実行させるか、 またはコマンドライン環境で kotlinc コマンドでコンパイルして kotlin コマンドで実行する。
- 413 名前:蟻人間 mailto:sage [2021/11/06(土) 23:49:16.09 ID:xVqAQy13.net]
- 交差点になり得るセルの位置を記録して可能ならばマイナス方向にもサイズを拡張すべきことがわかった。
- 414 名前:デフォルトの名無しさん mailto:sage [2021/11/07(日) 15:24:13.73 ID:qfuan/oU.net]
- document.querySelectorAll('span.name').forEach(e => {
if(e.innerText.indexOf('蟻人間') >= 0){ e.parentElement.parentElement.style.display = 'none'; } });
- 415 名前:96 mailto:sage [2021/11/08(月) 17:48:34.31 ID:+3VBQOCX.net]
- >>378
これか… ttps://math.jp/wiki/%E6%9C%89%E9%99%90%E7%BE%A4%E3%81%AE%E5%88%86%E9%A1%9E%28%E4%BD%8D%E6%95%B01~100%29 プログラム化する以前に、解法を理解・考えることが難しいお題だな
- 416 名前:蟻人間 mailto:sage [2021/11/08(月) 22:31:17.08 ID:8X+AtsKK.net]
- エアプレイじゃなくてちゃんとやっているぜ。
https://github.com/katahiromz/crossword_generation_test
- 417 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 22:34:01.71 ID:sIrE8Ymr.net]
- >>401
クソじゃん
- 418 名前:蟻人間 mailto:sage [2021/11/08(月) 23:09:09.26 ID:r2YqBk6E.net]
- >>402
どの辺が●ソか解説よろ。
- 419 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 23:19:34.67 ID:sIrE8Ymr.net]
- 金を払うなら教えてやってもいい
- 420 名前:蟻人間 mailto:sage [2021/11/08(月) 23:25:16.81 ID:r2YqBk6E.net]
- >>404
銀行振込3000円でいいか? メールで連絡よろ。 katayama.hirofumi.mz@gmail.com
- 421 名前:蟻人間 mailto:sage [2021/11/08(月) 23:35:25.59 ID:r2YqBk6E.net]
- どうせ
printf使うなstd::cout使え、だろう?
- 422 名前:蟻人間 mailto:sage [2021/11/08(月) 23:41:38.46 ID:r2YqBk6E.net]
- 確かにここはstd::pairじゃない方がいい。
他には?
- 423 名前:蟻人間 mailto:sage [2021/11/08(月) 23:46:44.17 ID:r2YqBk6E.net]
- ヘッダーオンリー・テンプレート使用はバイナリサイズが大きくなりがちだから避けるべき。それから?
- 424 名前:蟻人間 mailto:sage [2021/11/08(月) 23:48:18.18 ID:r2YqBk6E.net]
- なるほど。ありがとう。
- 425 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 23:49:02.87 ID:sIrE8Ymr.net]
- どういたしまして。
じゃあ、振り込み宜しく
- 426 名前:蟻人間 mailto:sage [2021/11/08(月) 23:51:18.07 ID:r2YqBk6E.net]
- チャリンチャリン。ガシャ。振り込み完了。
- 427 名前:蟻人間 mailto:sage [2021/11/08(月) 23:57:31.64 ID:r2YqBk6E.net]
- std::promiseを使うべき。だがやり方がわからん。
- 428 名前:蟻人間 mailto:sage [2021/11/09(火) 00:09:04.79 ID:lgtaApb2.net]
- お題: 計算時間が予測できない時間のかかる計算について、複数スレッドを立ち上げていずれかのスレッドで答えがセットできたか、キャンセル操作があれば、スレッドを終了して可能ならば答えを取得する。スレッド開始と終了、答えに対してメッセージを出力せよ。
言語: C++11以降 std::threadとstd::promise使用。
- 429 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 00:58:40.89 ID:coKFHwlH.net]
- いらっしゃいマシーンのプロミス
- 430 名前:96 mailto:sage [2021/11/09(火) 03:16:48.15 ID:Fkau/hlA.net]
- OpenMPやithreadじゃだめなのかよ
- 431 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 04:39:18.77 ID:qOqV7S2Y.net]
- お題で言語まで指定されんの?宿題スレに貼ってくれば
- 432 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 16:49:52.57 ID:EFAwjHPG.net]
- もうすぐポッキーの日
[お題] 人口合計で1がらみの数字遊び URLのページに都道府県別の人口が載っている。 URL: https://ideone.com/msZUeW 今回使用するのは、2020/10のデータ 同じ県は一回のみで、異なる県を 11 県選らぶ。 (単純な選び方は全部で 47C11 = 約174億通り) 選択した11県の人口合計を 111111 (11万1111) で割った時、 余りが 1111 になるのは何通りあるか? また、その条件で(剰余でなく生の)のべ人口合計は何人か? ※一発正解問題、実行時間2秒程度。 ※ちなみに 2015/10データだと 156561 通り(のべ 4656362060856 人) だった。
- 433 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 21:20:25.70 ID:l7cbb8DO.net]
- >>417
https://ideone.com/MusJV7 Cだけど遅い
- 434 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 00:24:34.22 ID:BKretcyA.net]
- 111111×11の配列のやつやな
- 435 名前:デフォルトの名無しさん [2021/11/11(木) 01:43:34.66 ID:rg6AJXmO.net]
- 侍エンジニアリングつーサイトの講師やりませんか?というお誘いが来た。
下準備が結構必要っぽいのに時給は生徒と応対している時のみの2000円/hだそうだ。 結局時給1000円くらいやん。 ふざけとるわ。
- 436 名前:デフォルトの名無しさん [2021/11/11(木) 09:52:21.62 ID:SpIFedoW.net]
- 生徒と応対して連絡先交換
あとは中抜き回避で青天井
- 437 名前:417 mailto:sage [2021/11/11(木) 15:33:20.12 ID:226d0X5M.net]
- >>417
回答者(>>418)が言うところの"遅い解法"ががほぼ想定解。 https://ideone.com/msZUeW 下部に追加記入 解法については、"部分和問題 数え上げ"でググって調べて 別解としては早い言語なら、さらに遅い"半分全列挙"でも間に合う。 (大雑把に(24*2^24)*2 <1億なので、c++で試したら1秒強だった)
- 438 名前:デフォルトの名無しさん mailto:sage [2021/11/11(木) 16:01:48.26 ID:aldiYpmV.net]
- >>422見てなんで>>418が遅かったか分かった
無駄な掛算やってたからだった 配列の並び直したら4倍速くなった https://ideone.com/vwPpAn
- 439 名前:デフォルトの名無しさん mailto:sage [2021/11/11(木) 16:02:43.51 ID:aldiYpmV.net]
- 掛算じゃなくてメモリの連続性かも
両方かな
- 440 名前:蟻人間 mailto:sage [2021/11/11(木) 21:32:16.11 ID:3Uao5x0L.net]
- お題:与えられたテキストの中のURLをすべて置き換える。
https://【...】 → https://jump.5ch.net/?【...】
- 441 名前:デフォルトの名無しさん mailto:sage [2021/11/11(木) 21:50:43.06 ID:PBlMMjPy.net]
- 次
- 442 名前:デフォルトの名無しさん mailto:sage [2021/11/11(木) 21:53:39.37 ID:39WaJBCl.net]
- >>425
URLとなる文字列の定義も知らねえで糞みたいな問題出すなよダニ野郎
- 443 名前:蟻人間 mailto:sage [2021/11/11(木) 21:57:33.27 ID:CgY0hHY1.net]
- >>427
URLにマッチする正規表現使えばええやろ、チャチャとやれよ。
- 444 名前:デフォルトの名無しさん mailto:sage [2021/11/11(木) 21:58:05.03 ID:39WaJBCl.net]
- URLにマッチする正規表現(笑)
- 445 名前:96 mailto:sage [2021/11/11(木) 23:57:38.62 ID:JHz34AMz.net]
- >>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こう
- 446 名前:だと思うが…
$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"; [] - [ここ壊れてます]
- 447 名前:デフォルトの名無しさん [2021/11/12(金) 20:37:34.22 ID:Y4pYQLN1.net]
- ”2021”というフォルダがある
"2020"というフォルダもある : "1950"というフォルダもある そしてそれぞれに"01"〜"12"のサブフォルダがあって そしてそのそれぞれに"01"〜"31"というサブフォルダがあって 更に"00"〜"23"という・・・・ つまり、1時間ごとのフォルダがあって そこには多くのファイルが詰まっている そのファイルのタイムスタンプに変化があったら 「どこのファイルが書き換えられたぞ」と検出するプログラムを作りたい 片っ端からタイムスタンプを調べるしかないのか これはファイルシステムの問題でしょうが なんとか、前回調べてから変化があったか、短時間で検出できる方法はありませんか ファイルに変化があったら、フォルダのタイムスタンプを変えてくれればいいんだけどね
- 448 名前:デフォルトの名無しさん [2021/11/12(金) 21:45:17.50 ID:gsBkkV8P.net]
- そういう検出機能はOSかハードウェアかについてなかったか 忘れたが
- 449 名前:デフォルトの名無しさん [2021/11/12(金) 21:49:29.72 ID:gsBkkV8P.net]
- NTFSの USN とは?
USN ジャーナルとは NTFSのUSN機能とはNTFSボリュームに対しての変更の記録です。 Cドライブ、Dドライブ、Eドライブごとなど、ドライブごとに加えられた変更を記録したものです。 USNとはUpdate Sequence Number Journalの略称です。 主に以下の目的で使用されます。 ・FRS(File Replication Service)によるファイル複製時の差分洗い出し。 ・スナップショットバックアップ時の差分洗い出し。 ・ウィルス対策ソフトによるファイル検査。 ・インデックスサービス向け。 tooljp.com/qa/what-is-USN-36BE.html
- 450 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 22:31:42.38 ID:M7lyd7nj.net]
- Ruby では、文字列の中から、URL を抜き出す関数が非推奨になった。
頻繁に規格が変わるからかな? 正規表現でも多分、何万行も掛かる。 作るのに10年ぐらい掛かるので、誰も作らない 今あるものでも、正しく判定されるかどうか、分からない
- 451 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 22:39:57.54 ID:M7lyd7nj.net]
- >>430
5ch のバグで、 そのURL をプログラム板全体で見た時は、&q とつながっているのに、 個別のスレッドで見ると、&;q と、&の直後に、;が入って、 リンクが&までになってしまう
- 452 名前:デフォルトの名無しさん [2021/11/13(土) 02:42:42.42 ID:p75HzwR9.net]
- >>433
ドライブごとに加えられた変更がログに保存されているとは知りませんでした データドライブに分けているので、ログから探すのも速いかもしれません ありがとうございました
- 453 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 00:16:09.47 ID:Xr7xQZWT.net]
- お題: JSON形式のテキストをXML形式のテキストに変換しなさい
- 454 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 21:06:19.54 ID:L/+dWr8R.net]
- >>437 C++
https://ideone.com/vkSCmj
- 455 名前:デフォルトの名無しさん [2021/11/23(火) 21:56:09.59 ID:WrxNeBf5.net]
- age
- 456 名前:デフォルトの名無しさん mailto:sage [2021/11/24
]
- [ここ壊れてます]
- 457 名前:(水) 11:45:59.40 ID:kXzWnsgO.net mailto: ideone って boost は include 出来るのか
codepad はずっと落ちてるな [] - [ここ壊れてます]
- 458 名前:ハノン mailto:sage [2021/11/24(水) 20:41:27.64 ID:CmhCtKru.net]
- >>440
もう codepad はおしまい、codepad にアップした私のコードも永遠に失われました…
- 459 名前:96 mailto:sage [2021/12/02(木) 04:03:51.64 ID:EE6BdDDo.net]
- 元のソースをローカルに保存しておかなかったのか
- 460 名前:デフォルトの名無しさん [2021/12/02(木) 12:54:02.17 ID:adrEDszf.net]
- 短いもんだから直接打ち込んじゃったんじゃないかな。
そして消滅。
- 461 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 16:48:13.78 ID:BMPRSKoA.net]
- >>442
デスクトップで書いたものはローカルのどこかに残っている(と思う) ノートで書いたものはノートPCごとどこかにいってしまった… いや、まあ、最初から書き捨てでしたけど、惜しいと思うものも多少ありますね
- 462 名前:96 mailto:sage [2021/12/02(木) 21:30:16.60 ID:m0u4nXXp.net]
- いま
codepad.org/ 復活してない? サンプルURLとして前々スレの過去の回答 プログラミングのお題スレ Part18 mevius.5ch.net/test/read.cgi/tech/1594702426/174 >174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT > >>173 > あーアホだったw > タブ消去の仕様だとPythonだと分けわからんことになるなw > ↓貼り直した > codepad.org/BWRzr8fW > ※会員未登録の為、一定期間後に自動消去 も表示されたし。 保持しておきたいcodeがあれば今のうちにsaveするか、 Internet archiveに記録しとくのも手だよ。
- 463 名前:デフォルトの名無しさん [2021/12/08(水) 14:07:00.92 ID:Bws6ftLO.net]
- お題が出なくなったので全く実用性がないと思われる頭の体操的なやつを一つ。
お題: 与えられた数値の配列の 1 になっているビットをカウントする。 例えばC言語で unsigned char の配列とか使って、処理する関数はポインタで渡された所から何要素みたいに指定されるようにする。。 それで例えば 0xde, 0x96 (11011110, 10010110) なら答えは 10。
- 464 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:14:42.64 ID:vDqYU7cZ.net]
- .replace("0", "").length
- 465 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 17:44:20.69 ID:/InaUbpT.net]
- お題: 日付が与えられるので4月ならtrueを出力しなさい
< 2021/04/01 > true < 04/01 > true < 2021/04 > true < 2021/05/01 > false
- 466 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 19:09:00.93 ID:nFeiLLyh.net]
- >>446
最適なコードが環境に大きく依存するからなあ シフトの速度とか専用命令有無とか あまり良いお題じゃないし荒れそう
- 467 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 05:41:43.04 ID:8cQ3P39Q.net]
- 英式 1/4/2021
米式 4/1/2021
- 468 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 08:53:58.33 ID:FBbu4srV.net]
- 日 21/04/01
米 04/01/21 欧 01/04/21 年2桁で入り乱れたら更にわけわかめ
- 469 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 13:38:41.08 ID:ZoIDn0OR.net]
- 逆に、年2桁の時は、
その数値で年月日が特定できるか問題があった。 02 12 29 --> 12年02月29日 と 29年02月12日 の2通りがある 02 13 29 --> 13年02月29日はないので、29年02月13日のみ
- 470 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 13:44:59.59 ID:ZoIDn0OR.net]
- >>452
特定できるかどうかだけならいいが…… 反例を間違った 02 12 29 3通りある
- 471 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 14:42:16.44 ID:b/vm8aBu.net]
- そういえば食品の賞味期限がど
- 472 名前:、読んだらいいか分からなかったことがあったなあ。
11/02/13 2013年2月11日なのか、それとも2013年11月2日なのか、まさか2011年2月13日だったりしたらどうしよう、みたいな。 普通に輸入されているものなら日本語ラベルがあるから分かるだろうけど、友達が現地のお土産屋で買ってきた お菓子みたいなものだとそのまんまだったりする(まあ、アメリカかアメリカ以外かで考えればだいたいは大丈夫 なのかも知れないが)。 日本の元号みたいな独自年号まで使われているのが混在していたら余計に分からないよな。今の日本では あまりないだろうけど昭和の頃はあったような気がするなあ。 [] - [ここ壊れてます]
- 473 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 22:53:27.33 ID:93rp7Kwc.net]
- >>446 Ruby
p [0b1110, 0b1010111].reduce(0){|s, n| s + n.digits(2).count(1)} # => 8
- 474 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 23:18:40.40 ID:2ghuDZG2.net]
- >>446
https://ideone.com/qmIeDU
- 475 名前:デフォルトの名無しさん [2021/12/10(金) 00:33:54.80 ID:Uh57IFJZ.net]
- >>446
C https://paiza.io/projects/YQ8ORfELqUt1xkKqmysViQ 入力を配列に入れてからカウントさせている。(uint32_t 型の配列) カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
- 476 名前:デフォルトの名無しさん [2021/12/10(金) 01:03:30.79 ID:Uh57IFJZ.net]
- >>448
Perl https://paiza.io/projects/o4VTdU_kK-S8T4G5HvkIRw 年月日順で年がある場合は必ず4桁でなければならない。 4だけでも4月に判定されるが、まあいいか。
- 477 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 09:12:55.36 ID:rDACCx1y.net]
- >>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
- 478 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:47:37.10 ID:kARxTGM3.net]
- >>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])); }
- 479 名前:デフォルトの名無しさん [2021/12/11(土) 20:38:05.35 ID:LF8J+dNV.net]
- >>446
Kotlin https://paiza.io/projects/7hQyycMNf5nuV5HcBg6iQg 普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。 入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
- 480 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 22:30:09.92 ID:LvGvT7a1.net]
- >>446 octave
https://ideone.com/BNjv3I f = @(a) sum(dec2bin(a)(:) - '0'); f([0xde 0x96])
- 481 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 17:40:23.45 ID:kbrFI/m0.net]
- もうすぐ、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
- 482 名前:, 3000, 3033, 3111, 3133, 3222, 3233, 3303]
2) 2021 77977796 --> 2022 3) 3000 6666566566566555 --> ? 4) 999999999889 1000000000000110 --> ? 5) 1 1000000000000000000 --> ? ※実行時間:上の5問をクエリーとし全部を2秒程度 [] - [ここ壊れてます]
- 483 名前:デフォルトの名無しさん [2021/12/16(木) 03:59:00.84 ID:p3cQ7gqk.net]
- お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、 1)加減算 2)加減算 + 乗算 3)四則演算 数字が大きいもの程上級者向けです。 演算子のオーバーロードなどは任意とします。
- 484 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 07:13:07.04 ID:iDMhxZSI.net]
- >>464
多倍長演算ライブラリ、のことですか?
- 485 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 07:37:15.94 ID:I1MQqoQo.net]
- >>465
アホ
- 486 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 20:36:30.04 ID:teZIL57B.net]
- >>463 c
https://ideone.com/SjWUYZ ・数字を数えて判定 ・範囲内の全ての整数をチェック ・想像以上に遅くてダメだった >>463 ruby https://ideone.com/JYQPIF
- 487 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 20:39:48.12 ID:iDMhxZSI.net]
- >>466
double の演算を自分で実装するという意味ですか? sum(double, double) diff(double, double) mul(double, double) div(double, double) を自分で実装する、という話でいいですか? あと double のフォーマットは IEEE754 でいいですか?
- 488 名前:デフォルトの名無しさん [2021/12/16(木) 20:57:05.50 ID:Y2CVy/MB.net]
- 問題が説明不足では?
- 489 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 21:53:18.15 ID:B45/3FnD.net]
- お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする 入力 本日は良いお日柄ですね 出力 ___本 __日は _良いお 日柄です ___ね
- 490 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 22:32:14.13 ID:iDMhxZSI.net]
- >>470
文字コードは何を仮定すればいいのですか?
- 491 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 22:34:05.93 ID:B45/3FnD.net]
- >>471
UTF-8 日本語の扱いが難しい言語では英語のみの対応も良しとする
- 492 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 00:19:35.20 ID:6Xap9yRK.net]
- >>470 octave
https://ideone.com/RseGCJ
- 493 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 04:20:32.14 ID:QblDDO27.net]
- 二種類のみの数字からなり個数比は 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 「二種類のみの数字からなる」を計算式で判定する方法ある?
- 494 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 05:36:58.41 ID:5DT5Lvck.net]
- 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 のルールで生成する方が速そう
- 495 名前:463 mailto:sage [2021/12/17(金) 16:22:06.93 ID:ssQAe3ef.net]
- >>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 列挙済み
- 496 名前:ネらば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
ちゃんとやるなら、ソートして二分探索すれば、数千単位のクエリーに対応できる。 (想定解例では後者でやっている) [] - [ここ壊れてます]
- 497 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 20:17:58.00 ID:gjoWWzuf.net]
- >>468
>>466
- 498 名前:467 mailto:sage [2021/12/17(金) 20:31:12.28 ID:llvCqHRj.net]
- >>463 c
https://ideone.com/bmYThw ・Ruby版の移植 ・組み合わせの列挙方法は丸パクリ ・Ralph William Gosper Jr. 氏に感謝
- 499 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 23:34:29.99 ID:llvCqHRj.net]
- >>463 c
https://ideone.com/oPUphG ・>>478から若干の整理 ・組み合わせ列挙用バッファ廃止
- 500 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 16:20:56.22 ID:b+l2srj7.net]
- >>464 C++
https://ideone.com/tkSsy4
- 501 名前:464 mailto:sage [2021/12/18(土) 16:29:44.66 ID:ElKfLkKB.net]
- >>465
惜しい >>468 IEEE754の倍精度(binary64)を整数演算で実装するのではありません。 binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが double-double演算です。 Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
- 502 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 16:50:56.06 ID:XqEkP9jw.net]
- > Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
- 503 名前:465,468 mailto:sage [2021/12/19(日) 00:01:36.35 ID:eP9zS7VQ.net]
- >>481
I see.
- 504 名前:デフォルトの名無しさん mailto:sage [2021/12/19(日) 21:10:50.32 ID:wQiNAkF9.net]
- >>448 octave
https://ideone.com/2NglYm
- 505 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 19:32:25.39 ID:FcpxpynD.net]
- 128ビットあるのに106ビットしか使わんの?
もったいなくね?
- 506 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 19:47:17.61 ID:1JACqwUF.net]
- 素人はだまってろ
- 507 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 21:17:48.02 ID:cWMYIacO.net]
- >>485
もったいなよ ただ、既存のdouble計算リソースが使えるという利点がある
- 508 名前:デフォルトの名無しさん mailto:sage [2021/12/22(水) 04:27:38.39 ID:5fCeD7fV.net]
- double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
|

|