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/
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命令も欲しくなる
509 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 07:32:47.64 ID:Xd/JFvMa.net] お題: 1つの整数から規則性のある複数の整数を生成せよ 生成される整数は再現性がなければならない
510 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 07:37:01.70 ID:GwakKG68.net] >>489 function f: Integer -> Integer{ return 0; }
511 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 09:01:28.76 ID:S2rGJ6tV.net] >>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]
512 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 19:26:32.49 ID:KAa76evj.net] >>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 []
513 名前:デフォルトの名無しさん mailto:sage [2021/12/23(木) 19:27:19.05 ID:KAa76evj.net] >>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 []
514 名前:デフォルトの名無しさん [2021/12/24(金) 17:16:46.67 ID:Xt+LQVaD.net] >>488 Juliaのhypot()でもFMA使ってますです
515 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 22:51:57.83 ID:Y/w+woHG.net] >>494 ただ積と和を1命令にして高速化しただけの積和 の効果だけじゃなくて 融合(fused)の効果が効く用途の話
516 名前:デフォルトの名無しさん [2021/12/25(土) 03:52:36.33 ID:62MjaTIU.net] >>489 Kotlin https://paiza.io/projects/xmMY6y8BGb8zlhn5QEmKvQ 何も考えずにただ R
517 名前:andom 使っただけ。 [] [ここ壊れてます]
518 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 20:25:00.12 ID:7ybeEGfH.net] [お題] 平均が2022な素数数列 5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。 数列の項数(要素数)を最大化する、最大はいくつか。 最大数と数列を表示する。 ※解答例(もちろん4以上がある) 4 [1747, 2099, 2113, 2129] ※実行時間は素数生成を含めて、4秒以内 最大な数列は複数通りあると思うので、一例のみで
519 名前:デフォルトの名無しさん [2021/12/29(水) 15:58:08.20 ID:czxFIFL7.net] 答えは595個? 計算機+理詰めで595個っぽいけど
520 名前:デフォルトの名無しさん mailto:sage [2021/12/29(水) 16:38:34.79 ID:cOaqDcVM.net] 「Log4j」2.17.0にもリモートコード実行の脆弱性
521 名前:497 mailto:sage [2021/12/29(水) 20:37:12.14 ID:GN7CzEgH.net] >>497 c++ https://ideone.com/UBbtWd "素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。 個人的には他の復元方法を見たかった。 pythonは遅いのであきらめた(高速化方法を知らない) >>498 595個でした。手作業でできるレベルなら……
522 名前:デフォルトの名無しさん [2021/12/29(水) 22:36:34.62 ID:d+UhR9Ru.net] オレがやったのは 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となる 完全に全自動で探索するプログラムも作れそうだけど答え出たらもういいかなと手が止まってしまった
523 名前:デフォルトの名無しさん mailto:sage [2021/12/30(木) 12:24:49.52 ID:sGmJGaqc.net] 何個取り除いたら平均2022にできるか考えると 確か74個だったけな? JavaScriptで1秒もかかんなかったか
524 名前:502 mailto:sage [2021/12/30(木) 12:30:19.06 ID:sGmJGaqc.net] 表示時間除いたら1秒かかってないな 探索はほぼ一回でボトムまで到達して 発見された
525 名前:502 mailto:sage [2021/12/30(木) 12:38:50.05 ID:sGmJGaqc.net] 可能と不可能が極端に分かれている問題なので 事前のブランチカットだけが重要なヘンなお題w >>352 はまだ未解決
526 名前:デフォルトの名無しさん [2021/12/30(木) 20:10:02.90 ID:jVgYGZiS.net] >>502 最大の個数を求めよやろ?
527 名前:デフォルトの名無しさん [2021/12/30(木) 20:24:56.63 ID:JL7tAErK.net] 千葉興業銀行、4月から副業解禁 県内地銀初 南都銀行、4月から行員の副業制度導入 ウェブ制作など 荘内銀、行員の副業・兼業解禁 フィデアHD、副業・兼業制度を導入 横浜銀行、10月から従業員の副業・兼業解禁 鹿児島銀、副業解禁を検討 九州FGと肥後銀は10月導入 肥後銀行が副業制度導入へ 多様な働き方認める 10月から
528 名前:デフォルトの名無しさん [2021/12/31(金) 15:04:12.13 ID:bqUePCKa.net] >>497 haskell https://ideone.com/GLMXRV >>5
529 名前:01 のアルゴリズムを自動化してみた すげー簡単なところでどハマりして半日かかった まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい [] [ここ壊れてます]
530 名前:デフォルトの名無しさん [2021/12/31(金) 15:09:29.33 ID:bqUePCKa.net] ちなみに出力形式は (最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト) 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以上はない
531 名前:デフォルトの名無しさん mailto:sage [2022/01/08(土) 11:42:09.36 ID:B5P29Cqv.net] お題: xをゼロ以上の浮動小数点数として 2^floor(log2(x)) の計算。ただし、x == 0 の場合はゼロとする。
532 名前:デフォルトの名無しさん mailto:sage [2022/01/08(土) 18:45:49.69 ID:qvdwzZse.net] >>481 >binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが >double-double演算です。 現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です 53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
533 名前:464 mailto:sage [2022/01/08(土) 21:07:22.52 ID:Xrz2Tlot.net] >>510 上位の±1/2ulp相当が下位になります
534 名前:デフォルトの名無しさん [2022/01/09(日) 01:28:46.61 ID:/FHAAuzb.net] >>509 perlでワンライナー。入力は標準入力からする。 perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"' でも、こんなので良いの?自分ではほとんど何も考えてないんだが。 (log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
535 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 07:56:15.63 ID:9G1CcY2f.net] >>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; }
536 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 07:59:19.16 ID:+WoQnCHD.net] 2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない
537 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 08:00:08.09 ID:+WoQnCHD.net] 先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな
538 名前:デフォルトの名無しさん mailto:sage [2022/01/09(日) 08:27:45.00 ID:Gu7/igUi.net] ビットいじる方法だと、非正規化数が0に、NaNが無限大になる そういえば、無限大やNaNはどうすればいいのだろうか
539 名前:509 mailto:sage [2022/01/09(日) 09:16:00.82 ID:42F2CcU6.net] 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
540 名前:509 mailto:sage [2022/01/09(日) 09:53:47.91 ID:42F2CcU6.net] >>512 log2(n)をlog(n)/log(2)で近似した際の「誤差」 (ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、 数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか) を補償するコードが欲しい。
541 名前:デフォルトの名無しさん [2022/01/09(日) 15:38:39.37 ID:DwVfG/qv.net] そこは性能とトレードオフになるしかない気はする 例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど log 32/log2 =4.
542 名前:9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから res' = floor( log x / log2 ) if (2^res'* 1.5) < x // (1.5倍でも届かないなら不当な丸め誤差が出たと判断) then res = res' + 1 else res = res' とかちょっと汚い書き方するしかない希ガス [] [ここ壊れてます]
543 名前:デフォルトの名無しさん [2022/01/09(日) 21:50:51.38 ID:sZC3oXej.net] なんか変なこと書いた res' = floor( log x / log2 ) if 2^res' < x then res = res' + 1 else res = res' やな res'の算出で丸め誤差は-1までと仮定して補正する しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提 この辺は高級言語プログラマレベルの話でなんとかなるもんではない やるならアセンブリ言語レベルでやるしかない
544 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 00:03:40.12 ID:gj6cLR2i.net] >>509 C https://ideone.com/5kDuzA 非正規化数、NaN、無限大とかはそのまま返すようにした やり方は>>513 と変わらない
545 名前:509 mailto:sage [2022/01/10(月) 00:53:57.15 ID:MGxmK4tZ.net] いまどきのコンパイラなら、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)
546 名前:512 [2022/01/10(月) 01:47:47.54 ID:av6tewvz.net] >>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以上の値の入力で多分うまく動かない。
547 名前:509 mailto:sage [2022/01/10(月) 02:23:50.20 ID:MGxmK4tZ.net] >>522 の修正 from math import frexp, ldexp def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
548 名前:デフォルトの名無しさん [2022/01/10(月) 03:27:40.49 ID:av6tewvz.net] >>509 またまたPerlでワンライナー。 perl -MPOSIX -ne 'chomp;if($_==0.0){print"0\n"}else{print ldexp(0.5,(frexp($_))[1]),"\n"}' これは>>524 の真似(ていうかやってること同じ)。
549 名前:デフォルトの名無しさん mailto:sage [2022/01/10(月) 12:43:53.01 ID:SgLm6fjp.net] >>511 それは答えになっていないかと 質問を変えます。下位側の指数部も意味を持つようにインプリメントするべきでしょうか?
550 名前:464 mailto:sage [2022/01/11(火) 02:38:04.94 ID:i2HiBm5J.net] >>526 先人の実装例だと、 上位 + 下位 = double doubleの数値 という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。 tps://na-inet.jp/na/qd_ja.pdf 勿論、そう実装しないのもあり。
551 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 03:06:24.10 ID:Y9TTYX77.net] >>527 となると、 >>510 >binary64 中には仮数部に使用できるビット幅は 52 bits しかありません よって下位側指数部無視なら 53bit + 52 bit = 105bit の実装となりますが? 下位側指数部有意ならば、下位側にもケチビットを適用できますが、今度は仮数部が 106 ビットとはいいきれなくなりますね(数によって変わる)
552 名前:デフォルトの名無しさん mailto:sage [2022/01/11(火) 03:08:13.70 ID:Y9TTYX77.net] >>527 失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
553 名前:デフォルトの名無しさん [2022/01/30(日) 18:02:46.10 ID:Np8aVX2s.net] お題: 1より小さい実数を1以上2より下にせよ < 0.123 > 1.23 < 0.0000123 > 1.23
554 名前:デフォルトの名無しさん mailto:sage [2022/01/30(日) 18:25:00.85 ID:A8jov
] [ここ壊れてます]
555 名前:ols.net mailto: >>530 x / 10^[log10(x)] [] [ここ壊れてます]
556 名前:蟻人間 mailto:sage [2022/01/30(日) 20:39:55.64 ID:DZg7owi9.net] お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。 物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。 重力加速度を 9.8 [m/s^2]とする。
557 名前:蟻人間 mailto:sage [2022/01/30(日) 20:58:19.92 ID:DZg7owi9.net] お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
558 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 07:45:34.60 ID:/+irRzAS.net] >>530 負の数や2以上の数は?
559 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 16:02:38.13 ID:zoPPBktH.net] >>534 ・・・!
560 名前:デフォルトの名無しさん [2022/02/01(火) 18:02:38.08 ID:zoPPBktH.net] お題: -1 < n < 1 の実数nを-10 < m < 10の実数m(ただし1桁目が0を除く)に桁上げせよ(>>530 の改良) < 0.123 > 1.23 < -0.00056 > -5.6
561 名前:デフォルトの名無しさん mailto:sage [2022/02/01(火) 20:01:29.11 ID:TQ6+L4kb.net] 負だったらabsolute取るだけのことじゃん
562 名前:デフォルトの名無しさん [2022/02/01(火) 23:48:43.79 ID:/+irRzAS.net] >>536 perl ワンライナー。以下はbashのコマンドラインから実行して試した。 入力は標準入力で一つづつ改行する。 perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";' やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
563 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 17:49:01.62 ID:QCKFV9kK.net] もうすぐ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秒程度で 想定解はあるが、もっとスマートな方法がありそう 「またか」と思った人、以前の問題とは想定解はかなり違う
564 名前:デフォルトの名無しさん [2022/02/23(水) 19:08:44.10 ID:jKeAH0Dy.net] >>536 やぱしn==0は除外?
565 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 00:35:12.16 ID:5B3hmiET.net] >>540 一桁目が0は除外してね
566 名前:デフォルトの名無しさん [2022/02/24(木) 08:38:30.17 ID:GiducjAN.net] 難しい、こんなの小学生が解けるのか? 今年の中学受験の算数で一番の良問がこれらしい [976717553] https://hayabusa9.5ch.net/test/read.cgi/news/1645558073/
567 名前:539 mailto:sage [2022/02/25(金) 17:25:00.82 ID:STd/IFZD.net] >>539 旬だと思って出題 https://ideone.com/2w86hj 下部に追加 半分全列挙 + 尺取り法 早い言語でしかできない解答例でした
568 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 19:14:08.69 ID:RZ7O9d2K.net] >>543 乙 時間取れなくてやれてないが季節感あるネタ好き
569 名前:デフォルトの名無しさん [2022/02/26(土) 19:41:18.44 ID:4VT1Qgxn.net] haskellでやったらやっぱり5秒はきつか
570 名前:チた [] [ここ壊れてます]
571 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 02:34:25.32 ID:VdMMR1Xg.net] お題: RustかGoでバイナリーサーチを実装してください
572 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 12:30:16.47 ID:nN0Ys+dW.net] お題: トライ木を使ってサジェスト機能を実装してください $ prog > w world would will wish 辞書は任意の大きさとする 入力は英語、または日本語とする
573 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:32:45.03 ID:Ycqbgo6j.net] >>545 なんかHaskellってGHCのオプションに-O2とか指定すれば結構早くなった記憶がある あとListじゃなくVector使うとか
574 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 19:41:12.56 ID:sy393qRd.net] お題 バッタの大冒険 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] #同文
575 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 21:13:54.18 ID:yn4DTgXG.net] 2番目の例着地するのは 15,28,38,46,52,57 ですた
576 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 20:44:30.68 ID:0IfoPmot.net] >>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)
577 名前:をうまく並べ替えれば全部かわすことができる [] [ここ壊れてます]
578 名前:デフォルトの名無しさん [2022/05/03(火) 15:12:22.98 ID:FP7f4hyR.net] 問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
579 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 23:10:33.84 ID:JwGzWANE.net] 説明不足で申し訳ない 問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない 1番最初の例 ([3,5,8],[5,10]) だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている しかしx=5,x=10の地点は着地禁止地点で着地できない 飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題 3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
580 名前:デフォルトの名無しさん [2022/05/04(水) 00:16:07 ID:0lMETj8q.net] お題: C/C++でスレッドセーフなstrtok関数を作れ 設計は各自で考えること
581 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 08:22:49.31 ID:WTZHV9SY.net] 政府公認のスカトロサークルだって!?じゅるり
582 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 02:33:11.33 ID:FeY8iOM4.net] 高度IT人材、富士通は最大年収3500万円へ AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ 【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材 来年度から副業解禁 人材多様化へ―大同生命次期社長 第一生命HD、副業解禁 約1万5000人対象 第一生命HD、副業解禁 1万5000人対象―大手生保初 IHI、国内8000人の副業解禁 重厚長大企業も転機 IHI、社外兼業を解禁 社内副業もルール化
583 名前:デフォルトの名無しさん [2022/05/05(木) 16:49:02.33 ID:SGcHNlDo.net] >>554 C言語 https://paiza.io/projects/xS5GP9DAU6KzhDsM6x7M6g strtok_r() を strtok_r2() の名前にして自分で実装した。 strsep() も paiza.io のCのライブラリには何故かなかったので strsep2() にして自分で実装した。
584 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 08:28:38.45 ID:zQqHPRjb.net] 思い付きでお題考えてみた 検証してないんだけどどう? お題: ランダムな部屋を移動する最短距離を求める 行列がある 任意の横幅Wと高さHで表現される部屋がランダムに1 <= N <= 5個生成される この部屋を部屋内の座標からランダムに選択した別の部屋の部屋内の座標まで通路を作る 通路の要素は斜めには生成されず横と縦に生成される 通路はランダムに1つの部屋から0 <= R <= 3生成される 各部屋を各通路で繋げ任意の部屋Aと任意の部屋Bを選択する このときAからBまでの最短経路を求めよ
585 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 10:03:08.65 ID:u3pPN9f9.net] ランダムの部分いる?
586 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 19:40:13.01 ID:RtJ1FIjP.net] 日本語がよくわからんから数式で書いてくれ
587 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 19:57:58.11 ID:dPHs0KwZ.net] 数式だと答えになりそうだから図で書いてくれ
588 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 17:53:19 ID:UVEhLnaE.net] さらに、閑古鳥をよびよせるか [お題] 多倍
589 名前:キでは無理!? 整数 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 --> ? [] [ここ壊れてます]
590 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:03:46.76 ID:f4mJcXLG.net] >>562 Haskell https://ideone.com/dPbmse
591 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:16:43.90 ID:bqW40Z5X.net] √T以下の素数列挙 各数を素因数分解して各素数の指数の最大を求める 10億7の剰余で上の乗算を行う
592 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 22:51:31.74 ID:vGEyxbeO.net] >>562 C https://ideone.com/IWOE9a
593 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 19:19:40.97 ID:nM/DB7wD.net] >>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が範囲にあるから)
594 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 10:06:17.68 ID:GRk1+wVC.net] age
595 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:47:14 ID:GJ0Vg4bO.net] お題: 循環リストを検出するプログラムを書け
596 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:58:00.80 ID:il671KyI.net] 循環リスト の定義を書いてください
597 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 02:10:30.75 ID:1mXsd8mZ.net] お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID
598 名前:デフォルトの名無しさん [2022/07/02(土) 04:54:46.54 ID:5fwFwNtd.net] >>570 Kotlin 自分ではほとんど何も考えていない脱力感溢れるプログラム https://paiza.io/projects/EK5QmNc2f4MgmmMLM3FcrQ
599 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 05:51:46.20 ID:y+j5RBoo.net] >>570 Ruby f = -> s { case s when /\A(?:0|[1-9]\d*)\z|\A(?:[1-9]\d{0,2})(?:,\d{3})*\z/ :INT when /\A(?:0?|[1-9]\d*)\.\d+\z/ :FLOAT else :INVALID end } %w[123 1,234 1.23 a123 12abc 1.23.435 .142857 1. 0 01 1,234,567 1234,567].each{|s| puts '%s -> %s' % [s, f[s]] } # => 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID .142857 -> FLOAT 1. -> INVALID 0 -> INT 01 -> INVALID 1,234,567 -> INT 1234,567 -> INVALID
600 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 05:58:59.35 ID:At3W7bIA.net] >>570 こう言うのは仕様をちゃんと提示してよ 123. 123.0 12,34 はどうなればいいのか
601 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:08:58.00 ID:syeRaQWQ.net] そんな文句みたいな言い方するほどか? 他の問題に比べたらケースちゃんと提示してる方だし そういうのは想定してないってなんとなくわかるだろ 競プロならちゃんと定義必要だろうけど
602 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:09:44.82 ID:syeRaQWQ.net] 123.0は確かに気になるけど
603 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:41:42.13 ID:At3W7bIA.net] >>574 > そういうのは想定してないってなんとなくわかるだろ お題なんだから想定しろよ でないとそのケースはそうじゃなくて
604 名前:こうすべきとか言う奴が出てきて荒れる元だし [] [ここ壊れてます]
605 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:58:04.16 ID:dKfad4Z0.net] はい!
606 名前:デフォルトの名無しさん [2022/07/02(土) 09:58:41.88 ID:COZLaCzb.net] 123.0はfloatだろ常考
607 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 12:04:36.48 ID:oDFjP9XJ.net] 黙って実装して自分なりの仕様を提示するテストケースを追加して提出した>>572 の勝利
608 名前:ハノン mailto:sage [2022/07/02(土) 14:55:56.14 ID:w21fdpYM.net] >>579 激しく同意
609 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 15:40:39.43 ID:ZFJdClOp.net] >>579 クールだよな
610 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 16:54:51.10 ID:RqXE55Ja.net] >>570 こういうアホがソフト仕様を書くと悲惨
611 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 17:49:49.50 ID:Vxz6zO/I.net] 久々に出題者現れたかと思ったらフルボッコでかわいそう
612 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 18:03:20.65 ID:+K04BJMF.net] もっと気楽にやれよ 普段ゴミみたいな案件で意を汲み取れず怒られ理不尽な思いしてる底辺コーダーが叩き行為で鬱憤晴らししたいんだろうけどさw 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義 その議論を「荒れる」と捉えるのは違うでしょ
613 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 20:54:40.02 ID:1mXsd8mZ.net] お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ version 1.0.1 123 -> INT 1,234 -> INT 1.23 -> FLOAT a123 -> INVALID 12abc -> INVALID 1.23.435 -> INVALID .142857 -> FLOAT 1. -> INVALID 0 -> INT 01 -> INVALID 1,234,567 -> INT 1234,567 -> INVALID 123.0 -> FLOAT
614 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 23:37:34.43 ID:12WH0HiU.net] >>568 https://ideone.com/WdXv5B
615 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 06:43:46.91 ID:/5k6Ls0P.net] .142857がOKで1.がNG なんか違和感 どの言語の流儀? 具体例だけに頼らないで 定義っぽく書けない? ---- [整数部]、[整数部].[小数部]、.[小数部] のいずれかの形 [整数部] : 0123456789の列1文字以上、もしくはこれを3桁ずつ,で区切った形 2桁以上の場合は先頭は0ではない [小数部] : 0123456789の列1文字以上 .... こんな感じ
616 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 07:10:28.62 ID:3/zKVKew.net] 0.DDD を .DDD と表記するのは欧米では情報系に限らず日常よく見られること CSSもperlも昔のrubyも対応してたんじゃなかったかな
617 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:01:07.02 ID:udoKn6Zg.net] 1. がNGなのは? どこの流儀?
618 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:17:25.30 ID:aLgpTdvv.net] >>584 > 仕様の隙間をどうするかをこういったところで一般共通認識得るのは有意義 だからその一般認識がないから揉めるって話 既に違和感と言い出す奴とか欧米ガーとか流儀ガーとか言い出してるだろ エディタの宗教戦争と同じで正解なんてないんだからお題を作った奴が決めないと収拾つかんよ
619 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:24:18.29 ID:3/zKVKew.net] >>590 1から10まで教えてもらえないとなんもできないのかよ エディタ宗教戦争を例に出してるけどあんなのにガチに捉えてるバカはお前くらいだ
620 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:34:46.48 ID:/kuq8Z/3.net] お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする INT: digit+
621 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:37:29.23 ID:/kuq8Z/3.net] お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.2 int: digits float: digits ('.' digits)? digits: digit+ digit: [0-9]+
622 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 10:08:31.69 ID:JHbRyeE7.net] >>591 ガチに捉えるもなにも今でもやってるだろw
623 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 10:15:42.92 ID:JHbRyeE7.net] >>593 カンマとかはなくなってるけど、仕様変更ですか? あと digits: [0-9]+ にしてdigitをやめるか digit: [0-9] にした方がいいかと思いますよ
624 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:27:53.93 ID:/kuq8Z/3.net] >>595 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.3 int: comma_
625 名前:digit float: comma_digit '.' digit* | '.' digit* comma_digit: digit_123 { ( ','? digit_3 ) }* digit_3: digit digit digit digit_123: digit digit? digit? digit: [0-9] どや?完璧だろこのBNF これで文句ないな [] [ここ壊れてます]
626 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:41:01.89 ID:E32cFzvb.net] >>596 "1."、"01"、"1234,567" が INVALID になりませんし "." だけでも FLOAT になるのはどうかと思いますが...
627 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:54:46.68 ID:/kuq8Z/3.net] >>597 お題: 文字列が整数だったらINT, 実数だったらFLOATと出力するプログラムを作れ 変換できない場合はINVALIDと出力せよ BNFは↓とする version 1.0.4 int: comma_digit float: comma_digit '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ( ','? digit_3 ) }* digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] どや?
628 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 14:30:14.53 ID:+vJDgzA0.net] 勉強になる
629 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:35:40.90 ID:VBJi0e3g.net] >>598 指摘された箇所すら直せないとかどう見ても向いてないからやめたら? > "1234,567" が INVALID になりませんし
630 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:38:27.96 ID:7UQlj4nA.net] ハズレ上司感
631 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:41:49.46 ID:yV0MWMu9.net] >>570 ocaml https://ideone.com/j9z2um
632 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:15:01.49 ID:/kuq8Z/3.net] >>600 めんどくせ~な~ お前やれよ
633 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:24:52.83 ID:/kuq8Z/3.net] >>600 version 1.0.5 int: comma_digit | normal_digit float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ',' digit_3 }* normal_digit: digit_19 digit_09* digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] ていうか1234,567にはならんはずだぞ
634 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:30:18.21 ID:/kuq8Z/3.net] >>600 version 1.0.6 int: comma_digit | normal_digit float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+ comma_digit: digit_123 { ',' digit_3 }* normal_digit: ( digit_19 digit_09+ ) | digit_09 digit_3: digit_09 digit_09 digit_09 digit_123: digit_19 digit_09? digit_09? digit_19: [1-9] digit_09: [0-9] おら!完璧だろ!
635 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 17:25:11.12 ID:bGSSCSEx.net] >>604 > ていうか1234,567にはならんはずだぞ しれっと変えといてさすがにそれは恥ずかしいな >>598 > comma_digit: digit_123 { ( ','? digit_3 ) }* >> 604 > comma_digit: digit_123 { ',' digit_3 }* >>605 まあ、よしとしてやろう
636 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 20:20:25.60 ID:H80x+Ni5.net] 問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
637 名前:蟻人間 mailto:sage [2022/07/03(日) 21:46:41.57 ID:wwKaul6r.net] char buf[64]; fgets(buf, 64, stdin); char *endptr; strtol(buf, &endptr, 10); if (*endptr == 0) { puts("INT"); return; } strtod(buf, &endptr); if (*endptr == 0) { puts("FLOAT"); return; } puts("INVALID");
638 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 22:09:22.65 ID:hLP3lYAM.net] >>570 dart https://ideone.com/hT8xrN
639 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 20:02:47.21 ID:N6PR1KyM.net] お題 非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。 [入力] x u l [例] 0x80 7 0 => 0x1 (8bit全体をreverse) 0xABCD 11 4 => 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D) 0x2 99 1 => 0x8000000000000000000000000 (2の99乗)
640 名前:デフォルトの名無しさん mailto:sage [2022/07/08(金) 22:06:04.39 ID:ju1TxHLl.net] >>610 Ruby f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}} ['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]} # => 0x80 7 0 -> 0x1 0xABCD 11 4 -> 0xA3DD 0x2 99 1 -> 0x8000000000000000000000000
641 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 09:28:21.31 ID:72Wr/ML/.net] >>610 octave https://ideone.com/4MacE3
642 名前:デフォルトの名無しさん [2022/07/09(土) 21:45:11.70 ID:A5P06KhI.net] >>610 Kotlin https://paiza.io/projects/hUR6DylxGsrJBWKI-gmaKg BigInteger 使ったので、ビット数がかなり多くても大丈夫。
643 名前:デフォルトの名無しさん [2022/07/24(日) 20:03:09.74 ID:RqwYi
] [ここ壊れてます]
644 名前:vmm.net mailto: あげ [] [ここ壊れてます]
645 名前:デフォルトの名無しさん [2022/07/26(火) 20:19:27.06 ID:wEdk200U.net] お題:数字をミラーリングせよ 入力 < 123 出力 > 123321 reverse系メソッドを使わなかったら加点とする
646 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 20:33:23.78 ID:gSFNKY8C.net] >>615 Ruby $><<(a=gets.scan /./)*'';$><<$a while$a=a.pop -*- input -*- 123 -*- output -*- 123321
647 名前:デフォルトの名無しさん [2022/07/26(火) 22:30:32.74 ID:LilaKoZu.net] >>615 Java static String mirror(String src) { var dest = new char[src.length() * 2]; var a = src.toCharArray(); for (var i = 0; i < a.length; i++) { dest[i] = a[i]; dest[dest.length - 1 - i] = a[i]; } return new String(dest); }
648 名前:アリ人間 mailto:sage [2022/07/26(火) 22:36:21.87 ID:SFGiBpCo.net] >>615 派生お題: 文字列処理を使わずに与えられた整数を回文にせよ。
649 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 23:38:05.85 ID:ceC8PDvA.net] >>615 octave https://ideone.com/Aa9KII f = @(a) a([1:end end:-1:1]); f('123')
650 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 23:41:29.56 ID:DU0tXUgh.net] 魔法の計算式とか無いん?
651 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 00:03:13.42 ID:MKIa5t3g.net] 俺も考えてみたけど調べても回分数のシグマ使わない一般式は無いみたいだな
652 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 00:09:31.00 ID:C/59UMec.net] >>615 JavaScript const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10); // test for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) { const answer = mirror(n); console[answer instanceof RangeError ? 'error' : 'log'](answer); }
653 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 01:46:36.04 ID:7bF+Pf0F.net] octave綺麗
654 名前:96 mailto:sage [2022/08/02(火) 01:11:31.65 ID:6KqVNIq0.net] >>615 Perl5 use feature qw{say signatures}; no warnings 'experimental'; sub f($i, @a) { $i and @a ? (f(@a), $i) : $i } @a = split'',123; say @a, f(@a); 実行結果 ~ $ perl 20_615_mirror.pl 123321
655 名前:96 mailto:sage [2022/08/02(火) 01:20:34.60 ID:6KqVNIq0.net] >>615 Perl5 (リスト処理版) @a = split '', 123; print @a, map{@a[$#a - $_]} 0..$#a; 実行結果 ~ $ perl 20_615_mirror_list.pl 123321
656 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 22:22:16.97 ID:9ppQHDnA.net] >>615 ocaml https://ideone.com/FFhxw9 let f s = let csc c s = Char.escaped c ^ s ^ Char.escaped c in let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1) in aux "" @@ String.length s let () = print_endline @@ f "123"
657 名前:デフォルトの名無しさん [2022/08/02(火) 23:32:00 ID:49BZsXJW.net] >>615 Kotlin https://paiza.io/projects/2Pe625DoTzToywf3zB2lvA わざわざ Iterator を実装して実現。
658 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 00:34:26.60 ID:xChmGTXr.net] >>615 ocaml https://ideone.com/6Y
659 名前:qGis let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i]) let () = print_endline @@ f "123" [] [ここ壊れてます]
660 名前:デフォルトの名無しさん [2022/08/05(金) 11:38:46.19 ID:1Af6TgAi.net] >>615 おもしれーことやってんじゃん じゃあperlの再帰する正規表現で行くかな https://paiza.io/projects/dxhWJaJSrcZdAFpJKe9uvQ
661 名前:デフォルトの名無しさん [2022/08/05(金) 13:16:58.45 ID:6eafuacR.net] gnuWin32を基本使っています。 で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか たとえば aaaaCB bbbBA cccccDB とかあったとき、これを bbbBA aaaaCB cccccDB としたいのです。 もし難しそうであれば、各行を反転、つまり abcde を edcba とする方法でもいいです。
662 名前:デフォルトの名無しさん [2022/08/05(金) 13:43:08.90 ID:Vk8oFh91.net] >>630 Java Arrays.sort(a, (left, right) -> { var l = left.length() - 1; var r = right.length() - 1; while (l > -1 && r > -1) { var c = Character.compare(left.charAt(l), right.charAt(r)); if (c != 0) { return c; } l--; r--; } if (l > -1) { return 1; } if (r > -1) { return -1; } return 0; });
663 名前:96 mailto:sage [2022/08/05(金) 19:36:20 ID:Rv34IsoP.net] >>630 Perl5が使える環境であれば… ~ $ cat 20_630_isort.pl chomp (@a = <>); sub f {join '', reverse split'', $_[0]} print "$_\n" for sort{f($a) cmp f($b)} @a; ~ $ cat input.txt aaaaCB bbbBA cccccDB ~ $ perl 20_630_isort.pl < input.txt > output.txt ~ $ cat output.txt bbbBA aaaaCB cccccDB
664 名前:デフォルトの名無しさん mailto:sage [2022/08/05(金) 20:52:38 ID:C4r7F682.net] >>630 ruby https://ideone.com/lQz0m2 f = ->(a) {a.sort_by &:reverse} p f.(%w(aaaaCB bbbBA cccccDB)) >>630 octave https://ideone.com/AUCxr3 function i = sorti(varargin), [~, i] = sort(varargin{:}); end f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a))); f({'aaaaCB' 'bbbBA' 'cccccDB'})
665 名前:96 mailto:sage [2022/08/05(金) 22:43:00.57 ID:Rv34IsoP.net] >>632 しまった、これだとsortの計算量 N・log N に応じた回数、比較のための文字列逆転 sub f の呼出しが起き、 データの行数が多いと遅いな
666 名前:96 mailto:sage [2022/08/06(土) 00:54:37.07 ID:pYJx8bVL.net] >>630 Perl5、計算量の抑制に配慮したバージョンと実行例 $ cat 20_630_isort2.pl print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>; $ cat input.txt aaaaCB bbbBA cccccDB $ perl 20_630_isort2.pl input.txt > output.txt $ cat output.txt bbbBA aaaaCB cccccDB
667 名前:96 mailto:sage [2022/08/06(土) 01:06:37.87 ID:pYJx8bVL.net] >>635 これ各行の行末の改行まで含めてreverseしてsortキーとするので、 もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。 そのような万が一の場合に対してもrubstさも持たすならこうか chomp(@a = <>); print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
668 名前:デフォルトの名無しさん [2022/08/06(土) 05:59:59.26 ID:UcInr7RU.net] >>630 Kotlin https://paiza.io/projects/bK5T2CQgxXwvVlcjKvw-dA ただ処理を連結しただけだな。コマンドラインでパイプ使ったみたいな感じ。
669 名前:デフォルトの名無しさん [2022/08/06(土) 06:11:51.22 ID:UcInr7RU.net] >>630 Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。 (入力文字列は input.txt に入ってい
670 名前:驍ニして)。 rev input.txt | sort | rev Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。 [] [ここ壊れてます]
671 名前:96 mailto:sage [2022/08/06(土) 08:20:40.77 ID:pYJx8bVL.net] >>610 Perl5 use Bit::Vector; $v = Bit::Vector->new(101); for (<DATA>) { ($h, $s, $e) = /0x(\S+) (\S+) (\S+)/; $v->from_Hex("$h"); $v->Interval_Reverse($e, $s); ($r) = $v->to_Hex() =~ /0+(\w+)/; print "$_ => 0x$r\n"; } __DATA__ 0x80 7 0 0xABCD 11 4 0x2 99 1 ※インデントを見易くするため全角スペースに置換しています 実行結果 $ perl 20_610_rebitfld.pl 0x80 7 0 => 0x1 0xABCD 11 4 => 0xA3DD 0x2 99 1 => 0x8000000000000000000000000
672 名前:デフォルトの名無しさん [2022/08/06(土) 10:15:53 ID:8a3zeEyr.net] >>638 Linux環境ではrevというのがあるのですね gnuWin32は全部揃ってないのですね。なんだかなあ rev以外でもLinuxにあってgnuWin32にはないのがあるのかな rev、自分で作ろうかな
673 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 11:17:00.60 ID:y9e1BfKB.net] >>630 ocaml https://ideone.com/zdWLHX let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i]) let (<<) f g x = f (g x) let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s)) let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
674 名前:96 mailto:sage [2022/08/06(土) 15:02:55.35 ID:ddLJv/Kp.net] >>640 gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが… util-linux-ng for Windows gnuwin32.sourceforge.net/packages/util-linux-ng.htm Util-Linux contains miscellaneous utilities: col: filter reverse line feeds from input colcrt: filter nroff output for CRT previewing colrm: remove columns from a file ddate: converts Gregorian dates to Discordian dates getopt: parse command options (enhanced) hexdump: ascii, decimal, hexadecimal, octal dump line: read one line rename: rename files rev: reverse lines of a file or files ← tailf: follow the growth of a log file whereis: locate the binary, source, and manual page files for a command 作りたいというなら類似のsampleソースはゴマンと転がっとるし C reverse string rev.c strrev - Google 検索 https://www.google.com/search?q=C+reverse+string+rev.c+strrev C program to reverse a string | Programming Simplified https://www.programmingsimplified.com/c-program-reverse-string C_69 C Program to Reverse a String | with strrev() and without strrev() function - YouTube https://www.youtube.com/watch?v=530jWnBMD2M … 好きにしんしゃい
675 名前:96 mailto:sage [2022/08/06(土) 15:16:53.43 ID:ddLJv/Kp.net] Cygwin などに使われている util-linux パッケージのオリジナルな現行のソースは GitHub - util-linux/util-linux https://github.com/util-linux/util-linux かな。そのうち rev.c のソースは util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub https://github.com/util-linux/util-linux/blob/master/text-utils/rev.c ちな util-linux パッケージは2006年に fork した
676 名前:ニき名前に -ng をつけて util-linux-ng になったが 2010年に util-linux に名前を戻している。 cf.) util-linux - Wikipedia https://en.wikipedia.org/wiki/Util-linux ついつい、調べ物をしてしまった…orz [] [ここ壊れてます]
677 名前:デフォルトの名無しさん [2022/08/06(土) 17:24:05.41 ID:8a3zeEyr.net] >>642 ありがとう。そんなとこにあったのか
678 名前:デフォルトの名無しさん [2022/08/07(日) 09:51:45.46 ID:UY2OKMya.net] >>642 linuxのrevでやってみました。ところが、全角日本語はやはりダメですね なので、AHK
679 名前:デフォルトの名無しさん [2022/08/07(日) 09:52:47.25 ID:UY2OKMya.net] >>642 linuxのrevでやってみました。ところが、全角日本語はやはりダメですね なので、AHKで自作で作ってみました rev input.txt | sort | rev で問題なく動きました
680 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 16:26:03 ID:BSSIjy3s.net] >>645 環境変数 LANG の設定の問題とか? こっちでは日本語での rev できたよ。 CentOS 7 で bash で LANG=ja_JP.UTF-8 の状態。そこに Windows から TeraTerm で ssh ログインして試したらできた。 $ echo $LANG ja_JP.UTF-8 $ ( echo 見城徹 ; echo 箕輪厚介 ; echo ガーシー ; echo 木原誠二官房副長官 ) | rev 徹城見 介厚輪箕 ーシーガ 官長副房官二誠原木 $
681 名前:デフォルトの名無しさん [2022/08/07(日) 18:30:22.20 ID:C65TbvUb.net] お題 0~2がランダムに8個入力されます 8個の数字を:で結合して出力してください 0が連続する場合は連続する0を::に置換してください 0の連続を::に置換できるのは1回のみです 0の連続が複数存在する場合は長い方を置換してください 長さが同じ場合は先頭の方を置換してください 1個の0は置換してはいけません 例 0, 0, 0, 1, 2, 1, 2, 2 → ::1:2:1:2:2 2, 1, 2, 0, 0, 0, 1, 1 → 2:1:2::1:1 1, 1, 2, 2, 1, 0, 0, 0 → 1:1:2:2:1:: 2, 0, 0, 2, 0, 0, 0, 2 → 2:0:0:2::2 1, 0, 0, 1, 2, 0, 0, 2 → 1::1:2:0:0:2 0, 1, 2, 0, 1, 1, 0, 2 → 0:1:2:0:1:1:0:2
682 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 19:28:27.32 ID:MpscsJR5.net] >>648 Ruby f = -> s { x = s.gsub(', ', ?:); y = x.scan(/0(?::0)+/).max&.count(?0) || 0; x.sub(/:?0(:0){#{y - 1}}+:?/, '::') } [ '0, 0, 0, 1, 2, 1, 2, 2', '2, 1, 2, 0, 0, 0, 1, 1', '1, 1, 2, 2, 1, 0, 0, 0', '2, 0, 0, 2, 0, 0, 0, 2', '1, 0, 0, 1, 2, 0, 0, 2', '0, 1, 2, 0, 1, 1, 0, 2' ].each{ |s| puts '%s -> %s' % [s, f[s]] } # => 0, 0, 0, 1, 2, 1, 2, 2 -> ::1:2:1:2:2 2, 1, 2, 0, 0, 0, 1, 1 -> 2:1:2::1:1 1, 1, 2, 2, 1, 0, 0, 0 -> 1:1:2:2:1:: 2, 0, 0, 2, 0, 0, 0, 2 -> 2:0:0:2::2 1, 0, 0, 1, 2, 0, 0, 2 -> 1::1:2:0:0:2 0, 1, 2, 0, 1, 1, 0, 2 -> 0:1:2:0:1:1:0:2
683 名前:デフォルトの名無しさん [2022/08/07(日) 19:57:31.19 ID:xO94aiKw.net] >>648 perl5 https://paiza.io/projects/5qVZ3qjP3YDPyVVywRVEEQ
684 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 20:01:42.93 ID:H+tq1Ypt.net] 正規表現のreplace一個で行けそうと思ったけど最長マッチみたいなの無理なのか
685 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 20:16:36.94 ID:MpscsJR5.net] 拡張正規表現の中にはチューリング完全なものもあるけどね
686 名前:デフォルトの名無しさん [2022/08/07(日) 20:17:47.43 ID:xO94aiKw.net] そうか 単純に s/0{$n}/::/; を連射して増やしていくだけでいいんだな 最後に成功したのを返す感じで
687 名前:デフォルトの名無しさん [2022/08/07(日) 20:58:47.87 ID:xO94aiKw.net] >>648 perl5 # sub squash0 を>653 で書き替えた https://paiza.io/projects/pNwwe9yNB_dczFaRbV3ZeA
688 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 22:19:54.37 ID:UmcKtz1r.net] >>648 octave https://ideone.com/3Udpgi function s = f(a) c = di
689 名前:ff(find([1 diff(a) 1])); e = cumsum(c); b = e - c + 1; n = arrayfun(@(i) a(i), e); [~, i] = max(c.*(n == 0)); s = arrayfun(@(n) {int2str(n)}, a); if (1 < c(i)) s(b(i):e(i)) = ':'; end s = regexprep(strjoin(s, ':'), ':::+', '::'); end [] [ここ壊れてます]
690 名前:655 mailto:sage [2022/08/07(日) 23:28:54.94 ID:UmcKtz1r.net] 結果同じだけど若干の整理可能だった n = arrayfun(@(i) a(i), e); [~, i] = max(c.*(n == 0)); ↓ [~, i] = max(c.*(a(e) == 0));
691 名前:96 [2022/08/08(月) 01:54:39.48 ID:Fkng8CYp.net] >>648 Perl5 use List::Util 'max'; for (<DATA>) { %h = map{length($_) => $_} /(,?0(?:,0)+,?)/g; $n = max keys %h; chomp($i = $_); s/$h{$n}/::/ if $n; s/,/:/g; print "$i => $_"; } __DATA__ 0,0,0,1,2,1,2,2 2,1,2,0,0,0,1,1 1,1,2,2,1,0,0,0 2,0,0,2,0,0,0,2 1,0,0,1,2,0,0,2 0,1,2,0,1,1,0,2 ※見易くするためインデントを全角スペースに置換してあります。 実行結果 $ perl 20_648.pl 0,0,0,1,2,1,2,2 => ::1:2:1:2:2 2,1,2,0,0,0,1,1 => 2:1:2::1:1 1,1,2,2,1,0,0,0 => 1:1:2:2:1:: 2,0,0,2,0,0,0,2 => 2:0:0:2::2 1,0,0,1,2,0,0,2 => 1::1:2:0:0:2 0,1,2,0,1,1,0,2 => 0:1:2:0:1:1:0:2
692 名前:デフォルトの名無しさん [2022/08/08(月) 18:20:49.05 ID:911TGIju.net] >>648 Common Lisp https://ideone.com/p9qSmC JavaScript https://ideone.com/2pXZdF
693 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 20:35:58.72 ID:xa8ST9bT.net] >>648 ocaml https://ideone.com/j7yye2
694 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 21:08:31.81 ID:xa8ST9bT.net] >>648 octave https://ideone.com/Uyr9cV ・[1, 1, 1, 1, 1, 1, 1, 1]のとき正しくなかったのを修正
695 名前:デフォルトの名無しさん [2022/08/11(木) 15:24:25.24 ID:/k5aJ7yS.net] >>648 Kotlin https://paiza.io/projects/NFrxhMlgOO7dQdW20u_-kw できたことはできたが、なんかもっと良いやり方がありそうな気もする。
696 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>648 敢えて正規表現使わずKotlinで。ややこしかったわ https://ideone.com/JZcPdU
697 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>661 別の解き方が見れておもろい
698 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 22:42:32.18 ID:lr7eXs7b.net] >>648 java https://ideone.com/f5yjN8
699 名前:661 [2022/08/12(金) 00:33:44.04 ID:DNG+vRxr.net] 全部0の時に :: にならなかったので>>661 はちょっと修正した。
700 名前:デフォルトの名無しさん [2022/08/13(土) 14:28:26.51 ID:JbrEzaSr.net] お題 1~37からランダムに重複なく7つの数を選び出して小さい順にソートしてください それを5つ出力してください 例 [2, 4, 9, 13, 20, 29, 36] [1, 4, 12, 13, 15, 20, 33] [1, 3, 5, 7, 11, 20, 24] [3, 7, 8, 21, 27, 33, 34] [1, 2, 14, 23, 26, 35, 36]
701 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 14:31:07.91 ID:JPhXlbrB.net] >>666 Ruby [*1..37].sample(7).sort # => [4, 8, 15, 20, 24, 26, 37]
702 名前:デフォルトの名無しさん [2022/08/13(土) 18:53:16.03 ID:jyB6kjuE.net] >>666 Common Lisp https://ideone.com/NMCh3O
703 名前:デフォルトの名無しさん [2022/08/13(土) 19:08:33.35 ID:jyB6kjuE.net] >>668 投稿後一部訂正、n の範囲チェックを追加 負数は弾く (check-type n (integer 0 *)) 上限はシーケンスの長さ (loop repeat n ↓ (loop (min n (length sequence))
704 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 19:54:15.55 ID:JW3gpbYe.net] >>666 octave https://ideone.com/Iml4xq f = @() sort(randperm(37, 7)); cell2mat(arrayfun(@(~) {f()}, (1:5)'))
705 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 00:39:46.54 ID:YzvfyuVN.net] >>666 Kotlin script repeat(5) { println((1..37).toList().shuffled().slice(0..6).sorted()) } 実行例 [6, 7, 9, 10, 16, 2
706 名前:2, 27] [2, 8, 9, 11, 16, 32, 33] [11, 13, 18, 25, 26, 30, 34] [2, 3, 12, 14, 20, 27, 37] [7, 13, 14, 19, 27, 30, 35] [] [ここ壊れてます]
707 名前:671 mailto:sage [2022/08/14(日) 00:41:50.08 ID:YzvfyuVN.net] >>671 はこれでも同じだった (toList() 抜き)。 repeat(5) { println((1..37).shuffled().slice(0..6).sorted()) }
708 名前:96 mailto:sage [2022/08/14(日) 01:45:55.09 ID:jl8HjsTF.net] >>666 Perl5 use List::Util 'shuffle'; @a = 1..37; $" = ', '; print "@{[(shuffle@a)[0..6]]}\n" for 1..5; 実行結果 $ perl 20_666_shuffle1-37x5.pl 3, 2, 10, 25, 9, 23, 27 35, 6, 30, 8, 37, 29, 36 20, 29, 19, 18, 37, 21, 23 12, 30, 29, 7, 3, 31, 26 34, 12, 1, 14, 28, 2, 21
709 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 01:54:16.92 ID:v+rcxIed.net] >>673 ソートされてないじゃん
710 名前:96 mailto:sage [2022/08/14(日) 01:59:26.66 ID:jl8HjsTF.net] >>666 Perl5、>>673 は sort するの忘れてた…orz use List::Util 'shuffle'; @a = 1..37; $" = ', '; print "@{[sort{$a <=> $b} ((shuffle @a)[0..6])]}\n" for 1..5; 実行結果 $ perl 20_666_shuffle1-37x5.pl 5, 9, 22, 28, 30, 32, 36 1, 2, 7, 21, 23, 26, 36 6, 14, 15, 16, 19, 26, 28 13, 14, 15, 16, 30, 35, 37 1, 3, 10, 20, 27, 29, 30
711 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:35:56.93 ID:JoIEy2rI.net] >>666 ocaml https://ideone.com/3UpGQV let seq b e = let rec aux acc n = if n < b then acc else aux (n :: acc) (pred n) in aux [] e let (<<) f g x = f (g x) let take n = let rec aux acc n = function [] -> acc | x :: xs -> if n <= 0 then acc else aux (x :: acc) (pred n) xs in List.rev << aux [] n let shuffle = List.map snd << List.sort compare << List.map (fun x -> (Random.bits (), x)) let string_of_ints = Printf.sprintf "[%s]" << String.concat "; " << List.map string_of_int let f () = string_of_ints @@ List.sort compare @@ take 7 @@ shuffle @@ seq 1 37 let () = Random.self_init (); List.iter (print_endline << f << ignore) @@ seq 1 5
712 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>666 c https://ideone.com/EHr86S
713 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 21:45:18.38 ID:b/j10zkL.net] (1) aとbからなる文字列があるときその中で部分文字列bbaが最初に完成する文字数を求める ab -> 0 aaa -> 0 bba -> 3 bbba -> 4 babbab -> 5 bbabbaa -> 3 (2) ちょうど50文字のaとbからなる全ての並びの文字列の内 50文字目(最後)にbbaが完成するのは何通りあるか? 長さ3文字で3文字目に完成するのはbbaのひとつだけ 長さ4文字で4文字目に完成するのはabbaとbbbaの二通り
714 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>678 Ruby (1) %w[ab aaa bba bbba babbab bbabbaa].each do |s| i = s =~ /bba\K/ puts '%s -> %d' % [s, i ? i + 3 : 0] end # => ab -> 0 aaa -> 0 bba -> 3 bbba -> 4 babbab -> 5 bbabbaa -> 3 (2) f = -> (n, a=[0, 0, 1]) {return a[n] if n<a.size; a<<f[n-1,a]+f[n-2,a]+1;a.last} p f[49] # => 12586269024
715 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:30:32.35 ID:z6QFcjeU.net] 行列の掛け算を実装せよ 二次正方行列 A=((1 -2) (2 3)), B = ((-2 1)(3 -1)) について AB, BA を求めよ 可能であれば二次正方行列以外の行列についても対応せよ 実装の細かい点については出題者は指定しないので良きに計らって結構。 <お願い> 行列の積において結合則成立の証明を教えてください
716 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:43:04.52 ID:0XTzAkvO.net] >>678 c https://ideone.com/hlf3c3 ・(1)(2)ともに自信なし(たぶんお題の意味わかってない)
717 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:49:01.35 ID:gf0q/4T2.net] >>680 Ruby Matrixクラス不使用 def product(a, b)
718 名前:[ [a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]], [a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]], ] end p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]]) # => [[-8, 3], [5, -1]] # 夏休みの宿題は自分でやりましょう [] [ここ壊れてます]
719 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:51:54.64 ID:7JC7m3TJ.net] >>682 >二次正方行列以外の行列についても対応せよ
720 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 23:05:21.92 ID:gf0q/4T2.net] >>680 >>683 def product(a, b) m = a.first.size c = Array.new(a.size){[]} a.size.times do |i| b.first.size.times do |j| c[j][i] = m.times.map{|k| a[k][i] * b[j][k]}.sum end end c end p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]]) # => [[0, 7], [1, -9]] p product([[-2, 1], [3, -1]], [[1, -2], [2, 3]]) # => [[-8, 3], [5, -1]]
721 名前:デフォルトの名無しさん [2022/08/14(日) 23:09:42.44 ID:ct8M+Uij.net] NxMのデータをどう定義するか だけの問題だな 毎回悩む 下は後悔してるタイプ (defparameter *position-IO* (loop for input in '(7 8 9 4 5 6 1 2 3) for pos below 9 collect (cons input pos)))
722 名前:デフォルトの名無しさん [2022/08/15(月) 00:42:19.42 ID:PTEGgn5Q.net] >>679 どういう頭してたらその法則性に気づくん???
723 名前:デフォルトの名無しさん [2022/08/15(月) 01:31:39.90 ID:b/MTJSvV.net] >>678 Kotlin script (1) listOf("ab","aaa","bba","bbba","babbab","bbabbaa").forEach { print("$it ->"); it.indexOf("bba").let { if (it >= 0) println(it + 3) else println(0) } } 実行時の出力 ab ->0 aaa ->0 bba ->3 bbba ->4 babbab ->5 bbabbaa ->3 (2) println(1L shl (50 - 3)) 実行時の出力 140737488355328
724 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 01:56:11.12 ID:RG8mAl+Q.net] (2) 出題の仕方が間違ってた 最後に唯一のbbaが現れるパターンと書くべきだった 自分の中ではこのことしか考えてなかったから >>679 さんは汲んでくれたようで、早さにも驚いたけど
725 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 09:19:59.19 ID:jWRkxbjN.net] なるほど, 再帰的に構成すればいいのか aから始まる時: a + x[n-1] baから始まる時: ba + x[n-2] bbから始まる時: bb...bba
726 名前:デフォルトの名無しさん [2022/08/15(月) 09:43:22.06 ID:90U51paY.net] >>686 そういう漸化式は普通に受験で良くでてくる
727 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 17:00:11.92 ID:ioAOBwsA.net] >>680 https://ideone.com/umJbre https://ja.wikibooks.org/wiki/%E7%B7%9A%E5%9E%8B%E4%BB%A3%E6%95%B0%E5%AD%A6/%E8%A1%8C%E5%88%97%E3%81%A8%E8%A1%8C%E5%88%97%E5%BC%8F/%E7%AC%AC%E4%B8%89%E9%A1%9E/%E8%A1%8C%E5%88%97%E3%81%AE%E7%A9%8D#matrix's-associativity
728 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 17:16:58.66 ID:RVV7PTHo.net] >>691 c https://ideone.com/47VxwF ・二次元でintのみ
729 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 17:19:53.25 ID:RVV7PTHo.net] >>680 https://ideone.com/47VxwF ・二次元でintのみ
730 名前:693 mailto:sage [2022/08/16(火) 16:05:44.79 ID:y+iYdbLW.net] >>680 c https://ideone.com/lWljpL ・>>693 から若干の整理 ・インデントも修正
731 名前:デフォルトの名無しさん [2022/08/16(火) 19:29:50.25 ID:6LZk+vGC.net] >>688 え?言ってる意味がわからない。どういうこと?
732 名前:デフォルトの名無しさん [2022/08/16(火) 20:01:21.15 ID:xodQRDI1.net] bba+gge=momo
733 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>695 末尾以外にbbaが現れる文字列を除外するってことじゃろう
734 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 21:15:34.85 ID:dhC56AkH.net] bbaが最後に達成されるんじゃなければ2^47計算するだけのなん
735 名前:フ面白みもない問題になるからそこで気付く人は気づくよね [] [ここ壊れてます]
736 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 23:04:49.04 ID:mbmTGUKF.net] ついでに50文字で今度は最後がbbaじゃなくて bbbのときとbabのときのそれぞれのパターン数を求めるって問題
737 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 01:28:19.97 ID:0f27vmNE.net] >>697 なるほど。やっと意味がわかった。
738 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 14:04:15.12 ID:UFtMHmKs.net] お題:分割されている顔文字を結合して表示してください 1つの顔文字は半角4字で構成。左右対称。2字ずつ半分に分割されてシャッフルされている 出力する顔文字の順番は自由とする 入力 < ^)(^ 出力 > (^^) 入力 < ^)(-(^-)(vv) 出力 > (^^)(--)(vv)
739 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 14:59:27.47 ID:2ZT38iyw.net] お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」をそれぞれ表示する方法を示してください 便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。 0 1 2 3 4 5 6 7 8 ... ...............80 左から1列目の9マスは
740 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 15:10:22.08 ID:2ZT38iyw.net] 途中送信してしまった お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」のマスをそれぞれ表示する方法を示してください ※便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。 0 1 2 3 4 5 6 7 8 ... ...............80 例えば左から1列目の9マスは [0 9 18 27 36 45 54 63 72] となります。 等差を利用して数字だけを表示するものは不可です。 マスに何の値が入っていても表示できるようにしてください。
741 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 21:47:42.92 ID:GkJOOerG.net] >>703 c https://ideone.com/lBKsc9
742 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 23:34:27.13 ID:yTY/OYLu.net] >>701 (><)
743 名前:デフォルトの名無しさん [2022/08/18(木) 02:15:12.90 ID:KCyiWPRI.net] >>703 perl5 https://paiza.io/projects/amKhSF3cnp1Ny5-2yWLO4g
744 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 03:07:13.35 ID:dBOjwuYR.net] >>701 JavaScript > ['^)(^', '^)(-(^-)(vv)', '<)(>'].map((R => input => Array.from(input.matchAll(/\((.)/g)).reduce((output, [l, r]) => output + l + R(r) + ')', ''))(r => r == '>' ? '<' : r)) [ '(^^)', '(--)(^^)(vv)', '(><)' ]
745 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>701 Ruby f = -> str do loop do str.sub!(/(.)\)(.*)\(\1/, '(\1\1)\2') || str.sub!(/\((.)(.+)\1\)/, '(\1\1)\2') || (break str) end end %w[ ^)(^ ^)(-(^-)(vv) (-(^-)^)].each do |s| puts '%s -> %s' % [s, f[s.b]] end # => ^)(^ -> (^^) ^)(-(^-)(vv) -> (^^)(--)(vv) (-(^-)^) -> (--)(^^)
746 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>703 Ruby PLACEHOLDER = [*0..80] field = 9.times.reduce([]) do |s, y| s << 9.times.map do |x| PLACEHOLDER[9 * y + x] end end puts field.map{|r| r.map{'%02d' % _1}.join} # => 000102030405060708 091011121314151617 181920212223242526 272829303132333435 363738394041424344 454647484950515253 545556575859606162 636465666768697071 727374757677787980
747 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>703 お題をよく読んでいなかった >>709 の続き row = -> (n, field) {field[n]} column = -> (n, field) {field.map{_1[n]}} block = -> (n, field) {9.times.map{n * 3 + n / 3 * 18 + _1 + _1 / 3 * 6}.map{field.flatten[_1]}} puts row[7, field].join(?,) # => 63,64,65,66,6
748 名前:7,68,69,70,71 puts column[7, field].join($/) # => 7 16 25 34 43 52 61 70 79 puts block[7, field].each_slice(3).map{_1.join(?,)}.join($/) # => 57,58,59 66,67,68 75,76,77 [] [ここ壊れてます]
749 名前:704 mailto:sage [2022/08/18(木) 23:38:15.48 ID:YBxy/c4L.net] >>703 c https://ideone.com/0yXRih ・>>704 から若干の整理
750 名前:デフォルトの名無しさん [2022/08/19(金) 23:42:01.44 ID:GkIv/1vJ.net] お題 <user>:<group>の数 <user>:<group> <user>:<point>の数 <user>:<point> が入力されます <group>ごとに<point>を集計して<group>順に <group>:<point>を出力してください 例) // 入力 6 UserE:GroupC UserD:GroupA UserB:GroupC UserA:GroupC UserC:GroupB UserF:GroupB 6 UserB:3 UserF:2 UserD:5 UserC:13 UserE:11 UserA:7 // 出力 GroupA:5 GroupB:15 GroupC:21
751 名前:デフォルトの名無しさん [2022/08/19(金) 23:58:05.14 ID:zRvvDV0W.net] なんで数を入力してるんだ? 後の情報であきらかではないか まさかグループ名が整数でも良いと考えている?
752 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 00:02:54.24 ID:xIohwuBb.net] >>712 Ruby g, p = str.split(/^\d+$/)[1, 2].map{_1.strip.each_line.map{|s| s.chomp.split(?:)}.to_h} puts g.reduce(Hash.new(0)){|h, (k, v)| h[v] += p[k].to_i; h}.sort.map{_1.join(?:)} # => GroupA:5 GroupB:15 GroupC:21
753 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 07:49:15.49 ID:/HXUcxOA.net] // >>712 Node.js import readline from 'node:readline'; const rl = readline.createInterface({input: process.stdin, output: process.stdout}); const all = [/* {user, group, point}, ... */]; let usergroup = false; rl.on('line', line => { line = line.trim(); if (line) { if (/^\d+$/.test(line)) { usergroup = !usergroup; } else if (usergroup) { const {groups} = line.match(/^(?<user>[^:]+):(?<group>[^:]+)$/); all.push(groups); } else { const {groups: {user, point}} = line.match(/^(?<user>[^:]+):(?<point>\d+)$/); Object.defineProperty(all.find(_ => _.user == user), 'point', {value: Number(point), enumerable: true}); } } else { rl.close(); } }); rl.on('close', () => { for (const [group, point] of Object.entries(all.reduce((gp, {group, point}) => {gp[group] = (gp[group] ?? 0) + point; return gp;}, {})).sort(([a], [b]) => a < b ? -1 : 1)) { console.log(`${group}:${point}`); } });
754 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 17:09:35.31 ID:tvd+mgyM.net] >>712 c https://ideone.com/Edol3U
755 名前:デフォルトの名無しさん [2022/08/20(土) 21:26:59.76 ID:myFbjTal.net] >>712 C# https://paiza.io/projects/IAgPLTHFbJ-HmDcLHFrNYA
756 名前:デフォルトの名無しさん [2022/08/20(土) 22:24:09.90 ID:5JSGWnVi.net] >>703 ってこれじゃだめなのかな 7行で書ける https://ideone.com/eKTMZr
757 名前:96 mailto:sage [2022/08/21(日) 02:42:00.00 ID:P6BPpVvp.net] >>712 Perl5 use feature qw{say signatures}; no warnings "experimental::signatures"; sub ($n, @a) { $h{$$_[0]} = $$_[1] for map{[/(\w+)/g]} @_[1..$n]; sub ($m, @) { $g{$h{$$_[0]}} += $$_[1] for map{[/(\w+)/g]} @_[1..$m]; }->(@a[$n..$#a]); say "$_:$g{$_}" for sort keys %g; }->(<>); ※見易くするためインデントを全角スペースに置換してあります。 実行結果: https://ideone.com/GxsRSY
758 名前:デフォルトの名無しさん [2022/08/21(日) 06:03:07.44 ID:V5T4kdVo.net] >>712 <group>順にって、何を元にして group の順序を決めるの? 入力された順?それだと例の入力のように GroupC, GroupA, GroupC の順で来ている場合はどうするの?
759 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 07:03:57.35 ID:3JIuIXQv.net] <group>毎という事だと思う サンプル見るとgroup名か集計したpointの昇順かも知れないけどそこはどうとでもなりそうだし
760 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 08:49:24.60 ID:0ZMA3aWJ.net] >>713 実際にここでも数字を使っている例が出て来てるからわかると思うけど 競プロなんかではよくあるフォーマットだよ
761 名前:デフォルトの名無しさん [2022/08/21(日) 18:07:19.66 ID:ecIOs+Jg.net] >>666 C# https://paiza.io/projects/sT_SLT3n0NNab0a-ZD7IHQ
762 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:28:38.88 ID:Y2TZP89X.net] お題:Hello, World!を出力中にプログラムを強制終了せよ Hello, World!が完全に出力されたらGAME OVERとする
763 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:45:13.28 ID:ui07Fbeq.net] >>724 Ruby Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'} Thread.new{exit} # => Hello, World!
764 名前:デフォルトの名無しさん [2022/08/21(日) 18:49:48.17 ID:ecIOs+Jg.net] >>701 C# https://paiza.io/projects/D1PZTVPBn2qnksCQnwYQmw?language=csharp
765 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:51:27.42 ID:ui07Fbeq.net] >>725 訂正 Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'} Thread.new{exit!} # => H
766 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>703 C# https://paiza.io/projects/HzrEP1l1vX4Z3JUqmHSUwg
767 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>724 c https://ideone.com/xaMOR7
768 名前:デフォルトの名無しさん [[ここ壊れてます] .net] >>648 C# https://paiza.io/projects/2cxaJzBNbukA4-EolW07Cw
769 名前:729 mailto:sage [2022/08/22(月) 19:20:01.17 ID:7CA3B9Dd.net] >>724 c https://ideone.com/k8R7TU ・>>729 どう見ても正常終了です。本当にありがとうございました。 ・子プロセスの強制終了を見届けてから自分自身も強制終了
770 名前:デフォルトの名無しさん [2022/08/25(木) 15:38:14.81 ID:bJn+zm7R.net] >>724 その強制終了って人間が Ctrl + C を押すなどしてやるという意味? 間に合わずに全部出力し切った場合は GAME OVER 出すということ?
771 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 15:52:23.73 ID:BfuXla1W.net] >>732 強制終了→exit(0)などでプログラム的に終了させる GAME OVER→お題の達成失敗
772 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 16:09:53.36 ID:6j74uL6b.net] 54.144.0.0/12といったどこかで見たことあるような形式の文字列を入力すると ^(?!(54.144.|54.145.|54.146.|54.147.|54.148.|54.149.|54.150.|54.151.|54.152.|54.153.|54.154.|54.155.|54.156.|54.157.|54.158.|54.159.)) といったいい感じの文字列が標準出力に出力されるやつ、誰か作れますか? 例の他にも54.208.0.0/13 54.216.0.0/14 54.192.0.0/12 54.160.0.0/11 54.220.0.0/15といった似た感じの文字列が入力され やはりいい感じに処理された別の文字列が出力されます できればライセンスはゼロ条項BSDライセンスでお願いします
773 名前:デフォルトの名無しさん [[ここ壊れてます] .net] ま、まあ、作れなくはないかな…
774 名前:デフォルトの名無しさん [2022/08/25(木) 18:48:07.98 ID:0xws5w3m.net] フワっとした頭の中にしか定義されてない案件なんて誰もこなせないぞ 本人以外は
775 名前:デフォルトの名無しさん [2022/08/25(木) 20:40:48.98 ID:0z7AphVM.net] >>734 Java https://paiza.io/projects/Fot4E7hZfbJ95P_hSbI3NQ
776 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 21:10:16.35 ID:/BGaqBqg.net] >>734 JavaScript function _734(ip_range) { const result = []; const as = ip_range.split(/\D/).map(_ => Number(_)); const m = as.at(-1); const q = Math.floor(m / 8
777 名前:); const r = m % 8; const e = 8 - r; const l = as[q].toString(2).padStart(8, '0').slice(0, r); for (let i = 0, sup = 2 ** e; i < sup; i++) { as.splice(q, 1, Number.parseInt(l + i.toString(2).padStart(e, '0'), 2)); result.push(as.slice(0, q + 1)); } return '^(?!(' + result.map(_ => `${_.join('\\.')}${q < 3 ? '\\.' : ''}`).join('|') + '))'; } [] [ここ壊れてます]
778 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 22:00:47.00 ID:JPPVgQ9Y.net] beer licenseでよければ書くが
779 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 04:09:37.08 ID:NIKxWs5c.net] 割とすぐに出来るもんなんですね どちらも実用上問題なさそうな、いい感じの実行結果です >738は最新の実行環境に心当たりがなかったので確認に手間どりましたが Chromeのコンソールから実行して確認できました (cscriptで実行しようとしたらat()に対応してなかったので) いやー勉強になります、ありがとう
780 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 04:49:22.52 ID:0rX9u4fb.net] >>740 スレタイも読めないアホは消えろ
781 名前:96 mailto:sage [2022/08/26(金) 05:19:52.33 ID:GgZblxs6.net] >>740 人をタダで利用してない?
782 名前:デフォルトの名無しさん [2022/08/26(金) 11:51:47.61 ID:d54FvNjc.net] >>733 マルチスレッドかマルチタスクで "Hello, world!" を出力する処理と、ランダムなタイミングでそれを強制終了させる処理が動くということで良いのか? そして出力中に停止できなかったら "GAME OVER" が最後に出ると。
783 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 14:32:15.45 ID:71YXfdUw.net] >>743 その実装でもいいよ 題意はいかにHello, World!出力中にプログラムを終了させるかだから sleep挟んでもいい
784 名前:デフォルトの名無しさん [2022/08/26(金) 18:44:07.03 ID:NQ4mbOjq.net] >>733 #!/usr/bin/env sh cat <<"EOL" | perl -ne '/(Hello, World)(?:[!])/ ? die " $1 got failed." : print' > foo > bar > baz > Hello, World > Hello, World > Hello, World! > you can't see me, right? > EOL foo bar baz Hello, World Hello, World Hello, World got failed. at -e line 1, <> line 6.
785 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 21:28:18.28 ID:NIKxWs5c.net] はて?プログラミングのお題を投げて、競技的な興味をもって答えたくなった人が答え その回答に興味があれば参照して「普段は扱ってないこの言語だとそういうやりかたなのか」 「自分とは違うスマートなやり方があったのか」と思ったりするスレ、という理解でしたが もしかして投げたときに”お題”という文字が抜けてたのが問題ありましたか? 概ね正解とするに足る実行結果を、実用上問題なさそうと表現したことが拙かったですか? もしそうなら申し訳ない、次からは気をつけます
786 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 21:31:39.94 ID:NIKxWs5c.net] ついでというかなんというか>734の自分のお題に対する自己回答です(色々と手抜きしてありますが) #!/usr/bin/ksh function proc { typeset A B C D E F N M L I IFS='.','/' read A B C D E <<XYZ $1 XYZ let N="(${E}+8)/8" let M="8-(${E}%8)" if [ $N -eq 5 ]; then echo -n "${A}.${B}.${C}.${D}"; return; fi set -A BASE dummy "" "${A}." "${A}.${B}." "${A}.${B}.${C}." set dummy $A $B $C $D; shift $N; F=$1; let L="$F-1+(1<<$M)" for I in `seq $F $L`; do echo -n "|${BASE[$N]}${I}."; done; } if [ $# -eq 0 ]; then echo "need CIDR/s"; exit 65; fi set -A CIDR dummy $@; echo -n "^(?!dummy"; for I in `seq 1 $#`; do proc ${CIDR[$I]}; done; echo ")" exit 0
787 名前:96 mailto:sage [2022/08/29(月) 02:30:43.54 ID:QAZMtAov.net] >>734 Perl5 for (<>) { print; @a = /(\d+)/g; $w = pop @a; $o = ($w - 1) >> 3; $m = $w - $o * 8; $n = 2**(8 - $m); $l = join '.', @a[0..$o-1]; $l .= '.' if '' ne $l; $h = $a[$o] & (255 << (8 - $m)); $r = $o < 3 ? '.' : ''; @b = map{$l . ($h + $_) . $r} 0..($n - 1); print '^(?!(' . join('|', @b) . "))\n"; print "\n"; } ※見易くするためインデントを全角スペースに置換しています。 実行例: https://ideone.com/VBJMMo
788 名前:96 mailto:sage [2022/08/29(月) 02:55:16.14 ID:QAZMtAov.net] >>748 128.0.0.0/1 の結果が変 バグ入りだ、ゴメンチャイ
789 名前:96 mailto:sage [2022/08/29(月) 03:01:45.22 ID:QAZMtAov.net] あれ?いいのかな? 仕様を推測して作ったけどちょっと混乱したかも… 寝るわ
790 名前:デフォルトの名無しさん [2022/09/09(金) 22:29:09.28 ID:zwPgoVui.net] お題 長方形の1辺の長さのリストと正方形の面積のリストが入力されます それぞれの正方形の面積について 長方形の1辺の長さのリストから2つを選んで掛け合わせ長方形の面積を計算します 長方形の面積が正方形の面積以上でかつ最小の面積となる組み合わせを探して出力してください 見つからなかった場合はerrorを出力してください (例) // 1辺の長さのリスト [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1] // 正方形の面積のリスト [390, 240, 37, 396, 198, 99, 242, 53, 329, 202] // 出力 390:error 240:16,17 37:3,13 396:error 198:11,18 99:6,17 242:16,17 53:3,18 329:error 202:13,16
791 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:02:00.41 ID:Un8DgV3E.net] >>751 a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1] b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202] c = a.group_by(&:itself).values.map{_1.size > 2 ? _1[0, 2] : _1}.flatten.permutation(2).map{[_1 * _2, [_1, _2].sort]}.uniq.sort.to_h b.each{|s| puts '%d: %s' % [s, c.find{_1[0] >= s}&.[](1)&.join(?,) || :error]} # => 390: error 240: 16,17 37: 3,13 396: error 198: 11,18 99: 6,17 242: 16,17 53: 3,18 329: error 202: 13,16
792 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:46:43.88 ID:3788iROh.net] >>751 ruby https://ideone.com/hBHe51 def f(as, bs) c = as.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort_by(&:first).each_cons(2) bs.map do |b| d = c.find {|e, f| e[0] < b && b <= f[0]} "#{b}:#{d ? d[1][1..2].join(',') : 'error'}" end end a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1] b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202] puts f(a, b)
793 名前:753 mailto:sage [[ここ壊れてます] .net] >>751 https://ideone.com/2UDrLT ・>>753 を若干の整理 ・>>752 さんのを見て&.を勉強 def f(a, b) c = a.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort b.map {|b| "#{b}:#{c.find {|e| b <= e[0]}&.[](1..2)&.join(',') || 'error'}"} end a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1] b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202] puts f(a, b)
794 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 00:34:04.51 ID:sDbT/M8A.net] みんな解くのはえーなぁ
795 名前:96 mailto:sage [2022/09/10(土) 02:29:07.85 ID:7pWsuKpo.net] >>751 Perl5 $ls = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]; $ss = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]; sub f {2 < @_ ? (f(@_[1..$#_]), map{[$_[0] * $_, $_[0], $_]} @_[1..$#_]) : ()} @rs = sort{$$a[0] <=> $$b[0]} f @$ls; for $aa (@$ss) { @b = grep{$aa <= $$_[0]} @rs; print @b ? "$aa:$b[0][1],$b[0][2]\n" : "$aa:error\n"; } 実行結果 $ perl 20_751.pl 390:error 240:17,16 37:3,13 396:error 198:18,11 99:17,6 242:17,16 53:3,18 329:error 202:13,16
796 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 11:29:46.54 ID:q8enYz1J.net] >>751 octave https://ideone.com/WGkm27 function c = f(a, b) u = unique(sort(nchoosek(a, 2), 2), 'rows'); p = prod(u, 2); c = cell(size(b)); for i = 1:numel(b) d = min(p(b(i) <= p)); if isempty(d) c{i} = sprintf('%d:error', b(i)); else s = strjoin(arrayfun(@(n) {num2str(n)}, u(p == d, :)), ','); c{i} = sprintf('%d:%s', b(i), s); end end end a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]; b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]; cellfun(@disp, f(a, b))
797 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 13:32:08.25 ID:q8enYz1J.net] >>751 c https://ideone.com/Cqx8M3 #include <stdio.h> void f(int *a, int *b, int na, int nb) { int i, j, k, found, min, x, y; for (i = 0; i < nb; i++) { found = 0; for (j = 0; j < na; j++) for (k = 0; k < na; k++) if (j != k && b[i] <= a[j] * a[k] && (!found || a[j] * a[k] < min)) found = 1, min = a[j] * a[k], x = a[j], y = a[k]; if (!found) printf("%d:error\n", b[i]); else printf("%d:%d,%d\n", b[i], x, y); } } int main() { int a[] = {17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1}; int b[] = {390, 240, 37, 396, 198, 99, 242, 53, 329, 202}; f(a, b, sizeof a / sizeof *a, sizeof b / sizeof *b); return 0; }
798 名前:デフォルトの名無しさん [2022/09/10(土) 19:18:11.93 ID:PLqR4TKQ.net] >>751 Kotlin 可能な限り漢字を使ったプログラムにしてみたが、余計にゴチャゴチャしてしまったかな? https://paiza.io/projects/ay4L7Wchnt6lGUvkh6h21A 240 が 16, 17 ではなく 17, 16 のように出るが、まあよかろう。 (リストの順番で覚えているのでこうなる)。
799 名前:デフォルトの名無しさん [2022/09/10(土) 22:25:19.23 ID:7X0yi8nW.net] お題 >>751 の問題について 長方形の1辺の長さをソートして縦方向と横方向に並べて交差するところに長方形の面積を入れて表にします https://downloadx.getuploader.com/g/angel556/90/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95.png この図は50を探すところを描いています 青色の斜めの値の中から正方形の面積以上かつ最小の値を見つけその場所を出発点とします 長方形の面積が正方形の面積よりも大きい場合は表を上にたどり、長方形の面積が正方形の面積よりも小さい場合は表を右にたどります 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます しゃくとり虫が動いてるように見えるのでこれをしゃくとり法と呼ぶことにします >>751 の問題をしゃくとり法で解いてください
800 名前:デフォルトの名無しさん [2022/09/10(土) 22:51:25.27 ID:7X0yi8nW.net] > 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます これは間違いかも、これだと55を見つけられない 各自で考えていただければありがたく
801 名前:デフォルトの名無しさん [2022/09/10(土) 22:52:41.16 ID:7X0yi8nW.net] いや、いいのか!? ダメだ混乱してきたもうパニックですわ
802 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 22:57:53.10 ID:sDbT/M8A.net] おちつけ
803 名前:デフォルトの名無しさん [2022/09/10(土) 23:12:42.56 ID:7X0yi8nW.net] >>760 > 右方向から上方向に切り替わるところが回答の候補でその中から最小値を探すことで効率よく回答を見つけることができます これは間違いでした、上方向から右方向に変わる直前の値が回答候補ですね 50を探す場合、56,55,51が候補です https://downloadx.getuploader.com/g/angel556/91/%E3%81%97%E3%82%83%E3%81%8F%E3%81%A8%E3%82%8A%E6%B3%95_%E8%A8%82%E6%AD%A3.png
804 名前:素数を数えるんだ [2022/09/10(土) 23:25:22.59 ID:22kPJ9rf.net] 2, 3, 5, 7, 11, 13, 17, 19......
805 名前:デフォルトの名無しさん [2022/09/11(日) 01:04:25.98 ID:/LH0BDzE.net] お題 2~19までの素数を生成し掛け算の表を出力してください
806 名前:デフォルトの名無しさん [2022/09/12(月) 01:50:52.46 ID:xawmAmgS.net] >>751 Java https://paiza.io/projects/9bNWiYGC-KndYn1QmRsYIA
807 名前:デフォルトの名無しさん [2022/09/12(月) 10:44:10.79 ID:VxR6iqOp.net] >>764 Kotlin https://paiza.io/projects/caNg1GtDFhBF9Rk6AwC52Q 出力をHTMLにするとそれっぽく表示できた。 50は正方形の面積リストの最初に入れたが例の画像と同じような見た目になった。
808 名前:デフォルトの名無しさん mailto:sage [2022/09/12(月) 18:32:56.65 ID:eGlSQ2pk.net] >>751 ttps://ideone.com/mFYcmC >>764 ttps://ideone.com/vwjQvN
809 名前:デフォルトの名無しさん [2022/09/13(火) 22:22:38.95 ID:B0VHMNYc.net] >>766 C# https://paiza.io/projects/mR6tnluHgitHnC0VJWc6Wg
810 名前:デフォルトの名無しさん [2022/09/13(火) 22:25:19.07 ID:V4Kz63G0.net] お題:OpenGLで四角形を3つ描画せよ 一番下の四角形が1番大きく赤色 その上にのってる四角形は2番目に大きく緑色 さらにその上にのってる四角形は3番目に大きく青色
811 名前:デフォルトの名無しさん [2022/09/14(水) 12:47:57.36 ID:LkrioAg+.net] お題 フェアフィールドの公式は、西暦1年1月1日から指定した日付までの日数を求めるもので次の式です 日数 = (365 * Y) + (Y / 4) - (Y / 100) + (Y / 400) + (306 * (M + 1) / 10) + D - 428 UNIX時間は、西暦1970年1月1日午前0時0分0秒からの経過秒数です フェアフィールドの公式を用いてUNIX時間から年月日を求めて出力してください (例) 1000000000 → 2001-09-09T01:46:40 1234567890 → 2009-02-13T23:31:30
812 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 15:20:59.73 ID:s+3MjQLV.net] >>772 bat @echo off &setlocal call :Conv_uTime2iso 1000000000 call :Conv_uTime2iso 1234567890 pause&exit /b :Conv_uTime2iso set /a "GD=(UT=%~1)/86400+719468, h=100+(R=UT%%86400)/3600, n=100+(R%%=3600)/60, s=100+R%%60, y=400*(GD/146097), y+=100*(i=(R=GD%%146097)/36524), y+=(R%%=36524)/1461*4, y+=j=(R%%=1461)/365, R=R%%365+365*(L=(i|j)/4), f=(k=(R*5+2)/153)/10, d=R+101-(306*k+4)/10, m=k+103-f*12, y+=f-L" echo %y%-%m:~-2%-%d:~-2%T%h:~-2%:%n:~-2%:%s:~-2%
813 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 05:31:46.38 ID:LgD4XKTt.net] //>>772 JavaScript function _772(epoch) { /**/epoch = BigInt(epoch);if (epoch < 0n) {throw new RangeError('');} /**/const lastDateOfMonth = (_ => Object.fromEntries(Array.from([, , , ..._.slice(2), _[0], _[1]].entries()).filter(([, v]) => v)))(Array.from(new Array(12).keys()).map(m => BigInt(new Date(2_022, m + 1, 0, 0, 0 - new Date().getTimezoneOffset()).getDate()))); /**/const FAIRFIELD = fairfield(1_969n, 12n, 31n) + epoch / 86_400n + 1n; /**/let [Y, M, D] = [1_969n, 13n, 1n]; /**/for (; D <= 58n; D++) {if (FAIRFIELD == fairfield(Y, M, D)) {return {Y: 1_970n, M: 1n + D / 31n, D: D % 31n};}} /**/for (Y = 1_970n; Y <= Number.MAX_SAFE_INTEGER; Y++) { /**//**/for (M = 3n, D = 1n; D <= 366n; D++) { /**//**//**/if (FAIRFIELD == fairfield(Y, M, D)) { /**//**//**//**/if (D == 366n) { /**//**//**//**//**/if (isLeapFullYear(Y + 1n)) { /**//**//**//**//**//**/
814 名前:return {Y: Y + 1n, M: 2n, D: 29n}; /**//**//**//**//**/} else { /**//**//**//**//**//**/return {Y: Y + 1n, M: 3n, D: 1n}; /**//**//**//**//**/} /**//**//**//**/} else { /**//**//**//**//**/for (; lastDateOfMonth[M] <= D; D -= lastDateOfMonth[M++]); /**//**//**//**//**/if (M <=12n) { /**//**//**//**//**//**/return {Y, M, D}; /**//**//**//**//**/} else { /**//**//**//**//**//**/return {Y: Y + 1n, M: M % 12n, D}; /**/}}}}} /**/function isLeapFullYear(Y) {return Y % 4n == 0n && Y % 100n != 0n || Y % 400n == 0;} /**/function fairfield(Y, M, D) {return Y * 365n + Y / 4n - Y / 100n + Y / 400n + 306n * (M + 1n) / 10n + D - 428n;} } [] [ここ壊れてます]
815 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 22:07:10.52 ID:AaudQZzp.net] うるう秒のテーブルがないと求められなくない?
816 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 00:34:31.77 ID:ETiYX3D6.net] 400年で146097日増えるみたいだから適当にバイアス付けて146097で割る予感
817 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 00:35:51.49 ID:ETiYX3D6.net] 違う 適当にバイアス付けて÷365.2425だ
818 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 01:05:26.42 ID:/mniU0r8.net] フェアフィールドの公式てwikipediaに書かれている出自不明な公式でも何でも無いでっち上げの記事でしょ 式の解説文がこれまた頭悪くて、なのに誰も修正しないという
819 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 01:13:35.77 ID:mMDmJ4/Z.net] グレゴリオ歴のとこに解説載ってるよ https://ja.m.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6
820 名前:デフォルトの名無しさん [2022/09/16(金) 21:18:24.66 ID:k/2PI65L.net] >>772 Java https://paiza.io/projects/GkxKdFMCsjdM1lSoxk8mhQ
821 名前:デフォルトの名無しさん [2022/09/17(土) 17:48:30.91 ID:fw6a0lZo.net] お題 2*2の整数行列がいくつか与えられる。 これらを適当な順番で掛け合わせる(行列積)ことで零行列を作ることが可能かどうか判定せよ。 ただし、同じ行列を2回以上使用してもよい。 例 [[1, 0], [0, 0]], [[0, -1], [1, 0]] =>可能(行列1*行列2*行列1==0) [[1, 2], [3, 4]], [[0, -3], [2, 4]] =>不可能(正則行列だから)
822 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 18:42:03.76 ID:ZMguHADz.net] >>781 零因子の発掘ですか、濃ゆいお題ですね…
823 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 11:34:42.07 ID:qZaavGGf.net] お題:循環参照を開放せよ。 java https://ideone.com/xe64l4 ・ガベコレの対象になったのを確認まででヨシとす c++ https://ideone.com/1gXTAX
824 名前:デフォルトの名無しさん [2022/09/18(日) 12:52:34.73 ID:BMeW7wRv.net] >>783 Java https://paiza.io/projects/KPlcyOa7-yBMKlBes0ImXg
825 名前:デフォルトの名無しさん [2022/09/18(日) 16:37:27.93 ID:BMeW7wRv.net] >>783 Python https://paiza.io/projects/xCNkUNUSXbwUSWTf8OEA-Q
826 名前:デフォルトの名無しさん [2022/09/19(月) 02:47:41.37 ID:/08McGz8.net] >>783 Kotlin https://paiza.io/projects/dZhh0NhaeEwnxD45W6V7Ng Java VM 上で動くから Java と同じで参照している変数を null にして System.gc() するだけ。
827 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 01:13:05.90 ID:uYRJl5GL.net] >>772 亀レスHaskell https://ideone.com/y7jYXr 色々考えて結局テーブル作って処理という最後の手段 わざわざ公開するほどのもんでもないけど一区切りつけるため 暦の勉強になった なんで大の月と小の月の配置はこんなみっともないことになってるんだろ? 歴史家が調べでよくわからんみたいだけど
828 名前:デフォルトの名無しさん [2022/09/24(土) 04:40:38.82 ID:6vPOYH6k.net] >>772 だめ。その式に当てはめると必ずずれる。
829 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 07:42:29.88 ID:aunrhsr3.net] うるう秒を考慮しないとずれる
830 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 09:42:29.34 ID:v3rIJe0P.net] >>788 問題には書かれていないけれどその式は条件によって前処理が必要 ・1-2月は前年として扱う。 1年を3-14月として計算 m=1 or 2 の時 y=y-1, m=m+12 >>789 UNIXTIMEにうるう秒なんて無い
831 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 11:33:11.17 ID:aunrhsr3.net] >>790 日付に変換する過程でうるう秒考慮しないとずれるでしょう
832 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 12:13:55.28 ID:v3rIJe0P.net] >>791 UNIXTIMEは「epocからの実時間の秒数」では無い 実時間から、うるう秒は加減され含まれず、1日は86400秒換算 だからそれを日時に変換しても「うるう秒の時刻を表せない」だけでズレなど発生しない
833 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 12:34:24.41 ID:aunrhsr3.net] >>792 レスありがとう。不勉強だったわ。
834 名前:デフォルトの名無しさん [2022/09/24(土) 16:57:05.53 ID:6vPOYH6k.net] >>790 出題ミスか。 これまでに作られたプログラムはその辺のことを考慮したプログラムになっていたのかな? だったら分かってたんだからその辺の事を書いておいて欲しかったな。
835 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 22:38:52.94 ID:Fvr5cAu6.net] wikiにはそこまで詳しい解説はなかったけど式みたらわかったけどな ⌊(m+1)/30.6⌋ という項 ⌊x/30.6⌋という関数は0,1,2,3,4となる値が 31,30,31,30,31,31,(繰り返し)‥① と変化してコレを周期153で繰り返す 月の長さは3月から見ると 31,30,31,30,31,31,30,31,30,31,31,28(29) となってるから①を一月分左に平行移動すれば良いとわかる からの⌊(m+1)/30.6⌋
836 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 22:45:27.51 ID:Fvr5cAu6.net] >>795 間違えた ⌊m×30.6⌋という関数は0,1,2,3,4,‥の時の値が 31,31,30,31,30 の繰り返し 件の公式のmの項はコレを一月分ずらしてる
837 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 02:17:31.98 ID:UDkh+W3M.net] お題:4回呼び出したらその内の1回が失敗する関数を書け 失敗した場合は「failed」と表示、成功した場合は「ok」と表示せよ
838 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 09:47:46.29 ID:+QlM3L0o.net] seed変数はパラメータ渡しで良いですか
839 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:05:59.31 ID:WptV1D3q.net] >>797 c https://ideone.com/PIpRmD void f() { static int i = 0, j, k = 4; if (i == 0) j = rand() % k; puts(i == j ? "failed" : "ok"); i = (i + 1) % k; }
840 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:51:23.95 ID:7XofIB3A.net] >>797 Ruby def f $f_cnt||=0 puts$f_cnt==3||(rand(4)==~-$f_cnt+=1)?:failed: :ok end
841 名前:デフォルトの名無しさん [2022/09/30(金) 04:16:06.13 ID:F2zw9Wj+.net] >>797 Kotlin https://paiza.io/projects/QipeLOxxfW3_GNBarDA-8w Int型1つ分のワークエリアを呼ぶ側から与えてそこでカウントして必ず4回の内1回が失敗になる。 乱数を使うと4回の内1回失敗ではなくなる可能性があるので使っていない。 引数としてInt型の参照を渡しても中身を変えられないのでIntArray(Java なら int[] に相当)で1要素作ってIntArrayの参照を渡している。 クラスでやっても良かったが、わざわざクラス作るほどのことでもないと思ったのでこの方式にした。
842 名前:デフォルトの名無しさん [2022/10/01(土) 01:23:09.73 ID:I5nFps2z.net] >>797 Java https://paiza.io/projects/AOePb_OJDX44jb_jRddrsw?language=java
843 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] お題: あみだ https://imgur.com/6XtTF0E.png 画像のようなマス目の上に直線を引いたあみだを次のように表現することにします。 N: 縦線の本数(列数) M: 橋が架けられている行数 B: M行N-1列の二次元配列で、橋が架けられていたら1、そうでない場合は0が格納されています。 あらかじめ、あみだの入力には左から0〜N-1までの整数が割り振られていることにします。また、同じ行に橋が二つ連続で隣り合うことは禁止されています。 一応の制約: 2 <= N <= 100, 1 <= M <= 100 あみだに橋が1つも存在しない場合、M=1となり、Bは1行N-1列の大きさで、すべての要素が0の2次元配列になることにします。 お題1: N, M, Bが与えられるので、あみだの出力を求めてください。(入出力のフォーマットは各自で適宜変更してもいいです。) 入力例(画像のもの): 4 4 1 0 1 0 1 0 1 0 0 0 1 0 出力例: 3 0 1 2 お題2: Nとあみだの出力が与えられるので、Mをできるだけ小さくしたあみだを求め、Mと Bの一例 を表示してください。 入力例: 5 2 4 0 1 3 出力例: 3 0 1 0 1 1 0 1 0 0 1 0 0 あみだ関連のお題は過去スレで何回か見かけたがろくに相手にされていなかったのであげてみる。
844 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 00:03:47.74 ID:Em47unOv.net] reduced expressionのまとめられる積を出来るだけまとめたものが必ず最短になるなら簡単なんだけどな
845 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 12:25:25.51 ID:CId/Nblu.net] Gapとか使えばいいんじゃね
846 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 15:00:17.69 ID:AiOpkeUk.net] reduced expression の長さ自体の計算は簡単だけどこの問題は"reduced expressionの長さを求めよ"ではないからそこまで数学的に単純じゃないよ
847 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 20:53:48.73 ID:uiS3Rjx/.net] >>803 お題1 ttps://paiza.io/projects/tUaZay_JvtZRkIaUhjYF7Q お題2 ttps://paiza.io/projects/1yDZy-Vx-C9Q9Z_Oc03Mtw お題1とお題2でそれぞれ入力と出力をあわせるようにした Mをできるだけ小さくって難しいな これでいいのかわからん
848 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:09:44.88 ID:TC3V9vEZ.net] アルゴリズムが存在するのは明らかだしひとつ答え見つけるアルゴリズムも簡単 でもreduced expression見つけるアルゴリズムと同程度のアルゴリズムとなると途端に難しくなる reduced expressionの場合には置換σのreduced expressionを見つけるには (1) σ = idであるか否か判定する、σ=idなら空列を返して終了 (2) そうでない場合σ(i) > σ(i+1)であるiを見つける、見つけたiに対してτ=σ(i i+1)とおいてτほreduced expression sを求める (3)
849 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:16:09.04 ID:TC3V9vEZ.net] (3) s ( i i+1 )を返して終了 でもとまる ここでミソはreduced expressionの1番右は( i i+1 )と決め打ち出来ること、コレがあるから多項式時間で終わる しかしアミダの場合1番右の初手をそんなに簡単に決定出来るかが分からん 初手の可能性は転置全部の可換な集合のうち極大であるもの全体のいずれかに最短が入る事は簡単に示せるけど、そのような極大な可換集合をどれとっても必ずうまくいくことの証明がむずかしい 多分出来るんだとは思うけど正直数学板で話題にするような話でプロ板で出すような問題じゃない気がする
850 名前:441 [2022/10/11(火) 10:43:04.37 ID:Q+yx5xdI.net] >>803 最近やっとpythonを学び始めたレベルだから合ってるかわからん コメントとかもちゃんと書いたほうがいいのだろう
851 名前:か 暇な人添削してくれると嬉しい お題1 https://ideone.com/uQ0lEu お題2 https://ideone.com/IvtRj2 [] [ここ壊れてます]
852 名前:デフォルトの名無しさん [2022/10/11(火) 12:04:38.77 ID:xv8Y5zzF.net] しゃぶれよ
853 名前:96 mailto:sage [2022/10/13(木) 07:01:45.31 ID:JNehkz2R.net] >>773 自分でやれ
854 名前:デフォルトの名無しさん [2022/10/22(土) 02:49:22.02 ID:ql0xnxKt.net] やってるやん
855 名前:デフォルトの名無しさん [2022/10/24(月) 10:24:26.56 ID:sCRx2Xsd.net] お題 プリンタAは1分間に1ページ印刷できます プリンタBは3分間に1ページ印刷できます プリンタCは5分間に1ページ印刷できます プリンタを3台同時に動かして100ページを印刷します 100ページを印刷し終わるのに何分掛かるか求めてください
856 名前:デフォルトの名無しさん [2022/10/24(月) 12:38:35.85 ID:PxuF7JuF.net] >>814 perl5 https://paiza.io/projects/6hPV0H0VMJ6oloujnOVF8w
857 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 13:32:21.38 ID:LLDppSf/.net] >>815 バグってるぞ 65分だと99枚しか印刷されない
858 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 14:17:54.79 ID:l9s5dDsa.net] >>814 cmd set /a "p=100, n=15*p/23+!!(15*p%23)"
859 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 15:31:07.39 ID:FSEywfH4.net] haskell pages n = sum $ map ( div n ) [ 1,3,5 ] main = print $ head [ n | n <- [1..], pages n >= 100 ]
860 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 20:20:16.51 ID:112hix5y.net] >>814 aow = 100 power = (1 + 1r/3 + 1r/5) printf(aow / power) // => 65.21739130434783
861 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 22:40:57.89 ID:SGYFZ2pJ.net] >>814 octave https://ideone.com/BOXjxs f = @(n) ceil(n * 15 / 23);
862 名前:デフォルトの名無しさん [2022/10/25(火) 01:46:09.54 ID:m3snEfri.net] >>814 Kotlin 何も考えずただカウントして求めるように書いた。 https://paiza.io/projects/8SWBhDQ_Bfr2ICXJpLmxhQ
863 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 06:54:39.16 ID:LZqPXT/2.net] >>817 ,820 逆算はページ数によってはダメ 例えば3ページの時、3分4ページが正解だけど (B=2/3)+(C=2/5) で1繰り上がって2分が出て来る
864 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 07:50:54.84 ID:V4E25MPr.net] A, B, Cでそれぞれ45/23, 15/23, 9/23ページ印刷すれば45/23分で3ページ印刷し終わるよ
865 名前:デフォルトの名無しさん [2022/10/25(火) 08:18:47.97 ID:5cB2OctB.net] 100ページだからセーフ
866 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 13:35:12.41 ID:xp4U3IJL.net] >>814 JavaScript https://paiza.io/projects/I8_n6kEMrNGxbh-vwbTkqQ
867 名前:デフォルトの名無しさん [2022/10/25(火) 20:38:44.30 ID:Er29dtqL.net] 甘えんな 印刷周期を一定と仮定した上で解として取りうる離散値のどれになるかを小数単位で求めるプログラムも書こうよ
868 名前:デフォルトの名無しさん [2022/10/25(火) 21:08:38.15 ID:idE58GAF.net] すまん、1分に3枚じゃなくて3分に1枚かorz
869 名前:デフォルトの名無しさん [2022/10/25(火) 22:03:54.71 ID:b0dw4lqu.net] >>814 Java https://paiza.io/projects/3CptMd1jsIwuiYqU1IQYyg?language=java
870 名前:デフォルトの名無しさん [2022/10/25(火) 22:28:13.40 ID:F6XUw+z/.net] じゃあ1分に1枚、3枚、5枚のプリンターでの印刷というお題も出すか。
871 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 22:38:49.46 ID:d0t/LHiA.net] >>814 octave https://ideone.com/0V6LlD function m = f(n, m) if nargin == 1 m = f(n, 0); elseif sum(idivide(m, [1 3 5])) < n m = f(n, m + 1); end end >>814 ocaml https://ideone.com/4iPTJS let f n = let rec aux m = if n <= (m + m / 3 + m / 5) then m else aux (m + 1) in aux 0
872 名前:デフォルトの名無しさん [2022/10/25(火) 23:47:11.01 ID:b0dw4lqu.net] >>829 Java public static void main(String[] args) { var pages = 100; var s = IntStream.of(1, 3, 5).sum(); System.out.println((pages + s - 1) / s); }
873 名前:デフォルトの名無しさん [2022/10/26(水) 13:26:51.44 ID:FciA0hc1.net] お題 オークA「ぐっふっふ…… 俺は媚薬を盛ってないぜ……」 オークB「ぐふっ…… 媚薬を盛ったやつはAかCのどちらかだぜ…」 オークC「オークBかDは嘘をついているぜ…ぐっふっふっふっ……」 オークD「ぐふふ…媚薬を盛った奴はB,Eの中にはいないぜ……ぐひっ…」 オークE「げひひっ……媚薬を盛ったやつは本当の事を言っているぞ…」 オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」 女騎士「くうぅ…誰が嘘をついて誰が私に媚薬を盛ったんだ……!」 オーク達「ぐっふっふ……」 論理演算を用いて答えを求めてください
874 名前:デフォルトの名無しさん [2022/10/26(水) 13:33:52.83 ID:FciA0hc1.net] オークCとオークEがめんどくさいな
875 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 15:30:35.63 ID:DM8ZU7Du.net] 全てが媚薬を盛って全員が嘘をついている これで全員の発言と矛盾がないと思う
876 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 16:28:02.83 ID:xzd5i3vP.net] さすがに > オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」 は正しいと仮定しないとなんでもありありになっちゃうだろ
877 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 18:06:43.51 ID:VWCwwszG.net] さすがに > オーク達「ちなみに、お前に媚薬を盛ったのはこの中の一匹で、俺たちの中で一匹が嘘をついているぞ……」 コレウソついてるのは一匹“だけ”つて意味だよね? “少なくとも一匹はウソついてる” じゃないよね?
878 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 18:20:40.38 ID:S3XzLK/s.net] このタイプの論理問題ってよく見かけるな 初出ってどこなんだろうな
879 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:23:29.30 ID:gD5qQ1ZG.net] >>836 > “少なくとも一匹はウソついてる” だと、全員嘘つきでもいいからなんでもありになっちゃう気がする
880 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 20:30:42.10 ID:dmTYCGjA.net] >>832 Haskell まだ自信なし https://ideone.com/7p50VK
881 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 21:23:18.21 ID:OrdcPqRc.net] オーク達「」が真であることは、 この世界の神である出題者が保証してるわけだな?
882 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 21:38:57.12 ID:Bjop1AC4.net] 出題者が嘘をついていて、オークがそのような発言をしていない可能性もある
883 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 01:22:34.18 ID:s7i1htqL.net] >>832 Haskell 一ヶ所間違ってたので訂正 あとウソつきはちょうど1人という条件つけたら解一個になった https://ideone.com/vAXrzD
884 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 09:19:06.82 ID:Uf+5HE/G.net] Haskell ウソつき1人としてループを5×5に 5人しかいないので大して変わらないけど https://ideone.com/zxaBcf
885 名前:デフォルトの名無しさん [2022/10/27(木) 14:26:07.23 ID:QRorZadJ.net] >>832 Java https://paiza.io/projects/VlDcOv5HhoHc1rQjRbF3dA?language=java
886 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 19:11:19.58 ID:O3TXZpYa.net] お題 Kの倍数の桁の和 自然数nに対してf(n)をnの10進表示の各桁の和とします (例 f(1024) = 1+2+4 = 7) 自然数kに対してg(k)を g(k) = { f(n) | nはkの倍数である自然数 } とします 入力kに対してg(k)を出力するコードを書いて下さい
887 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 19:33:57.73 ID:uuZ1gbyy.net] >>845 g(k)って必ずしも有限集合にならなくない?
888 名前:デフォルトの名無しさん mailto:sage [2022/10/29(土) 19:39:30.16 ID:O3TXZpYa.net] >>946 orz 訂正 g(k) = min{ f(n) | nはkの倍数である自然数 }
889 名前:デフォルトの名無しさん [2022/10/30(日) 00:28:15.63 ID:BQOGiCuF.net] お題 プレーヤーの前に閉じた3つのドアがあります 1つのドアの後ろには景品の新車があります 2つのドアの後ろにははずれを意味するヤギがいます プレーヤーは新車のドアを当てると新車がもらえます プレーヤーが1つのドアを選択したあとに司会のモンティが残りのドアのうちヤギがいるドアを開けてヤギを見せます ここでプレーヤーは「最初に選んだドアを残っている開けられていないドアに変更してもよい」と言われます ここでプレーヤーはドアを変更すべきだろうか? 乱数を使ったシミュレーションで答えを求めてください
890 名前:デフォルトの名無しさん [2022/10/30(日) 03:55:05.76 ID:KHak5nKt.net] >>848 モンティ・ホール問題だな。 Kotlin https://paiza.io/projects/8jlKawdSqlrp5JHr0uWC4w
891 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:09:55.23 ID:oF72FRjI.net] ドアを変更するかどうかのところはランダムにする必要無くない? 二択なので一方に決めていれば残りが逆側の確率
892 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 10:05:48.56 ID:Rpnmj8SE.net] まぁ 交換戦略「必ず交換する」 非交換戦略「決して交換しない」 確率交換戦略「ある分布に従って確率的に交換するかしないか決める」 で答えが変わる事を確認せよだからな ある意味最初2つの戦略も最後の戦略の特別な場合
893 名前:デフォルトの名無しさん [2022/10/30(日) 11:47:05.86 ID:0KuBg4yb.net] お題N x Nのルービックキューブのパターン数を求めよ
894 名前:デフォルトの名無しさん [2022/10/30(日) 18:39:10.46 ID:KHak5nKt.net] >>850 なるほど。
895 名前:デフォルトの名無しさん [2022/10/30(日) 18:54:42.34 ID:Sqe0pI7B.net] モンティ・ホール問題のシミュレートのように見えて実はちょっと違う モンキーホール問題だったのだ
896 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 20:02:07.15 ID:4vBwn6CZ.net] >>848 octave https://ideone.com/LGCuAh
897 名前:デフォルトの名無しさん [2022/10/31(月) 00:39:33.45 ID:MKojko7I.net] お題 ジュールトムソン効果っぽいものをシミュレーションで再現せよ
898 名前:デフォルトの名無しさん [2022/11/04(金) 07:13:30.92 ID:jLlmakBU.net] お題:1~10までの合計を求めよ *ただしライブラリ、ループ文を使わないこと
899 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 07:18:56.49 ID:yh54R4RT.net] >>857 PHP 55
900 名前:デフォルトの名無しさん [2022/11/04(金) 08:24:04.42 ID:TDQ1gw2t.net] (1+10)*5
901 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 12:00:50.88 ID:ryvUUS8Q.net] >>857 cmd set /a "A=1, B=10, (B-A+1)/2*(A+B)+(B-A+1)%2*(A+B)/2" &rem A≦B
902 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 15:50:39.28 ID:q0UsXtCi.net] 1+2+3+4+5+6+7+8+9+10
903 名前:デフォルトの名無しさん [2022/11/04(金) 15:52:05.99 ID:TBUnPbqZ.net] >>857 $ dc -e'1 10+5*p' 55 $
904 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 16:28:57.36 ID:q0UsXtCi.net] 整数とは書いてないな 三角数とか実数とか何か別のものを想定してるかもしれない
905 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 16:32:28.85 ID:q0UsXtCi.net] 高級言語なら大抵暗黙のうちにライブラリは使ってるだろうし内部的にループも使ってるかもしれない ループの定義も問題になるかと gotoは?再帰は?列挙は?...
906 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 16:36:48.58 ID:BHFqhq9y.net] >>863 その場合は > 1~10までの合計 の定義を書かないとね
907 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 16:55:47.69 ID:q0UsXtCi.net] 「その場合」に限定する理由は無いよね?
908 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 17:35:42.12 ID:u3TD418O.net] >>866 整数なら > 1~10までの合計 についてほぼ合意できる定義があると思うけど?
909 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 18:32:31.67 ID:iggZ7AM6.net] そう思ってない人もいる
910 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 18:59:46.26 ID:u3TD418O.net] 思ってない人は具体的にどう言う定義があるのか書けばいいんじゃね?
911 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:06:50.77 ID:iggZ7AM6.net] ちょっと前のレスくらい読め
912 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:18:35.30 ID:u3TD418O.net] ん? ならなにを言いたいのかわからんわ
913 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:20:02.13 ID:iggZ7AM6.net] わからないなら無理に書き込まなくていいよ
914 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:54:59.56 ID:u3TD418O.net] ごめん、説明できないならいいや
915 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 14:37:23.18 ID:wb4h3pkZ.net] >>857 octave https://ideone.com/1JUukk f = @(a, b) (a + b) * (b - a + 1) / 2;
916 名前:デフォルトの名無しさん [2022/11/05(土)
] [ここ壊れてます]
917 名前:22:37:38.99 ID:ik3uUvNv.net mailto: >>857 Java https://paiza.io/projects/qlqEQa2EzsIMTABY1ujOcg?language=java [] [ここ壊れてます]
918 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 23:35:33.60 ID:WGyFluMA.net] 10*11/2
919 名前:デフォルトの名無しさん [2022/11/06(日) 03:33:15.03 ID:V4pkDxVq.net] >>857 Kotlin https://paiza.io/projects/uWXy93c98CoNzF0o2H_wgQ ループ文は使わず再帰でなんとかした。 (1..10).sum() や (1..10).reduce { a, n -> a + n } でも結果は出るが sum() や reduce() がライブラリにある拡張関数なので没。 10 * 11 / 2 とか 55 を直接出すのはプログラム作る意味がほとんどないような感じがするので止めた。
920 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 04:47:10.33 ID:p1AlQ8ne.net] お題が、正方形や三角形の面積を求めるのと 同程度に簡単な式だしなあ
921 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 08:11:23.79 ID:l6ScHNeb.net] Haskell sum [1..10]
922 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 08:35:41.45 ID:5UCgIOa9.net] >>861 で終了じゃん 最適化して55でも良いけど 中途半端に和の公式使ってるヤツってアホなの?
923 名前:デフォルトの名無しさん [2022/11/06(日) 09:08:00.03 ID:aYMPlSSq.net] 一垓にそうは言えないのでは ループを使わないの意味が多くの数でもすぐ答えがでそうな処理を見たいのかもしれない
924 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:25:21.24 ID:p1AlQ8ne.net] 掛け算割り算だと中途半端でアホで 足し算だと利口だとおっしゃる
925 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:33:05.99 ID:5UCgIOa9.net] 和の公式を使うくらいなら55の方が良い って話 なんで中途半端な最適化をするの?
926 名前:デフォルトの名無しさん [2022/11/06(日) 09:38:06.42 ID:gK09y9Q8.net] 1^n + 2^n +・・・+(10^25)^n n=10、 n=-17 の手段選ばすとかは? 25条はぎりふつうループでは困難かとおもえる数値を適当にいまおもいついた
927 名前:デフォルトの名無しさん [2022/11/06(日) 10:54:00.31 ID:Zb5xxfES.net] = 10+(9+1)+(8+2)+(7+3)+(4+6)+5 = 10+10+ 10+ 10+ 10+ 5 = 10 + (10 * ((10/2)-1))+5 = (10 * ((10/2)-1))+10+5 = x(0.5x-1)+1.5x
928 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 12:06:08.03 ID:5iQhHwnm.net] こうどなじょうほうせん を愉しむための問題でしょ
929 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 15:29:02.07 ID:RIYDMAGE.net] と思って>>863 を書いたんだけど
930 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 15:33:43.73 ID:RIYDMAGE.net] 1~10の合計 1から10までの合計 じゃなくて 1~10までの合計 っていうのも気になった
931 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 17:04:56.12 ID:PNCv3I6p.net] 1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
932 名前:デフォルトの名無しさん [2022/11/06(日) 18:24:36.01 ID:S6zCBHE1.net] するだろ https://i.imgur.com/jPwi4sZ.jpg
933 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 18:35:07.31 ID:mzFwuoQr.net] >>890 合計にはdx関係ないぞ...
934 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 18:37:14.41 ID:PNCv3I6p.net] 低レベルすぎて草 1以上10以下の実数全体の集合をAとすると #A = ?_1 ゆえに Σ_{λ∈A}λ は有限の値を取らない
935 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 18:38:48.30 ID:PNCv3I6p.net] 文字化けしたか 「#A = 連続体濃度」
936 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 18:48:29.30 ID:qhQ571Br.net] なんか足すと一見無限になりそうだけど ある区間a<bの間にa<c<bとなるcが取れなくなることはありえないよね?
937 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:07:23.07 ID:9PA1hevU.net] >>889 和が存在しないとうならそれが答え 3を含むが3.5を含まないという説得力のある説明が出来るならよろしく
938 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:12:17.73 ID:PNCv3I6p.net] >>895 和が発散する説明はすでにしてあるんだが何を言いたいの
939 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:14:51.13 ID:9PA1hevU.net] Q:和を求めよ A:和は存在しない
940 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:15:52.52 ID:9PA1hevU.net] 発散とか収束とか 意味をわかって使わないと恥ずかしいぞ
941 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:17:22.08 ID:PNCv3I6p.net] >>895みたいなこと言う奴が解析の基礎すら理解できてるとすら思えないが
942 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:17:36.32 ID:9PA1hevU.net] >>892 が最高に恥ずかしい
943 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:19:08.56 ID:9PA1hevU.net] >>899 最高に笑える書き込みありがとう
944 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:19:25.97 ID:PNCv3I6p.net] 数学的に具体的な反論が一切ないじゃん バカなの
945 名前:デフォルトの名無しさん [2022/11/06(日) 19:21:59.86 ID:aYMPlSSq.net] ぽまえら 餅付いて >>857 を嫁
946 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:23:24.47 ID:9PA1hevU.net] >>892 を見ただけでアホだとわかる
947 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:24:24.94 ID:PNCv3I6p.net] >>904 暴言は結構なんで、数学的に反論してくれませんか? まあ頭が悪くてできないんでしょうけど
948 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:28:25.36 ID:9PA1hevU.net] >>905 何に反論してほしいの? 多分視野が狭くて何を主張されてるのかわかってないと思うんで 一回落ち着いた方がいいぞ その上で 君が主張を明確にして それに対して反対意見があれば反論してあげる
949 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:30:41.70 ID:9PA1hevU.net] 1以上10以下の実数の総和が存在しないことなんて 誰でもわかる 和が存在するなんて主張はしてないから勘違いしないように
950 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:31:28.37 ID:PNCv3I6p.net] >>906 >1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか に対してお前は>>895 みたいなクソ発言してるわけだがこのクソ発言の妥当性を説明して見ろよ
951 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:35:38.89 ID:9PA1hevU.net] 和が存在しないというならそれが答え の意味がわからなかったかな? その次の文は和の存在とは関係ない 君への宿題
952 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:37:43.37 ID:PNCv3I6p.net] >>909 任意のRの開区間に対してその元の和が有限の値になる場合何てないんだから 「和が存在しないというならそれが答え」なんて発言は問題の本質を理解していないバカの発言だろ 人に宿題出す前に算数からやり直せよ
953 名前:デフォルトの名無しさん [2022/11/06(日) 19:40:06.40 ID:eRXytuty.net] 【悲報】アスペ君、今日も元気。。。
954 名前:デフォルトの名無しさん [2022/11/06(日) 19:46:26.35 ID:Zb5xxfES.net] プログラミングのお題なんだから1+2+に決まってるだろ。 少数を含めた1から10までに考えられる数値を足すとかできるわけねえだろ。
955 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:47:59.95 ID:9PA1hevU.net] >>910 問題の本質というなら 解釈の多様性が本質 和の存在は解釈とは無関係 存在しないなら「存在しない」が答えとなるだけの話
956 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:48:45.29 ID:9PA1hevU.net] >>912 floatやdoubleなら有限だね
957 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:49:37.79 ID:PNCv3I6p.net] >>913 お気持ちで数学を語るのやめてくれませんかね はなはだ不愉快です 「任意のRの開区間に対してその元の和」に対して有限の値を取らないという以外にどんな有意味なモデルが取り得るんですかね バカすぎて日本語の意味すら理解できてなさそうだけど
958 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:49:56.13 ID:9PA1hevU.net] 決まってるといくら主張しても お題に書いてないんだから どう解釈されても出題者が悪い
959 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:51:41.99 ID:9PA1hevU.net] >>915 お前が数学の話を語りたがってるだけで 私はただ解釈の多様性の話をしてるだけ
960 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:52:43.83 ID:9PA1hevU.net] >>863 に数学っぽい話あったか?
961 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:52:59.97 ID:PNCv3I6p.net] >>917 実数の開区間の和が有限じゃないことにいちゃもん付けてきたのはオタクでしょ? 有限の値を取らない意外にどんな有意義な解釈が成り立つんですか? きちんと説明しなさい
962 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:53:54.13 ID:9PA1hevU.net] >>919 それ別の人
963 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:55:00.86 ID:9PA1hevU.net] >>890 と同一人物だと思って トンチンカンな書き込みを繰り返してたのたね 恥ずかしい
964 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:55:05.02 ID:PNCv3I6p.net] >>920 >和が存在しないとうならそれが答え って和が存在する有意義なモデルがあるって言う前提で話してますよね? もしそうじゃないならこれはどういう意図で行ったんですか? ちなみに続く3.5云々の意味もよく分かってません
965 名前:デフォルトの名無しさん [2022/11/06(日) 19:56:03.75 ID:aYMPlSSq.net] もうこりゃ発散とか収束とか言う前に就職の心配したほうがいいな
966 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:57:33.13 ID:9PA1hevU.net] >>922 落ち着いてから書き込んでね
967 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 19:59:09.36 ID:PNCv3I6p.net] >>924 敗北宣言ですか これにこりたら今後二度とお気持ちで数学を語るのはやめてください 研究者やエンジニアが迷惑するので
968 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:01:35.14 ID:9PA1hevU.net] 数学を語りたがってるのはお前と>>890 だけだって だから落ち着け
969 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:06:58.14 ID:9PA1hevU.net] おれの主張は>>863 だから もちろん本気で出題者がそう思っているという主張ではなくて 解釈の余地があるという問題提起
970 名前:デフォルトの名無しさん [2022/11/06(日) 20:07:53.80 ID:Zb5xxfES.net] 問題は出題者の意図を読み取ることが重要 1~10までの整数の和の事だろうなと考えるのが低レベルとは思えない。 常識で考えればそうなる できればその高レベルのプログラムとやらを説明してほしいものだな。
971 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:12:04.95 ID:9PA1hevU.net] 一応プログラム板なんだからさ 解釈の多様性を多少は意識しようよ プログラミング言語だったら「動作未定義」 曖昧な仕様書で中国人に発注したら 一番都合の良い解釈をされてとんでもないソフトになるぞ
972 名前:デフォルトの名無しさん [2022/11/06(日) 20:17:19.25 ID:Zb5xxfES.net] プログラムのお題なんだから、 プログラムで実現できないってのは答えにはならんよ。 国語の問題じゃねえんだから、 プログラムとして成立する答えを出せよ
973 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:24:40.28 ID:9PA1hevU.net] 国語の問題じゃねえんだから 出題者の意図を好意的に汲み取る必要はないんだよ
974 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:26:21.60 ID:mzFwuoQr.net] >>930 だからちゃんと仕様出せやってことだろ >>863 は半分ネタだと思うけど、実数だと言うなら実数について「1~10までの合計」を定義しないとお題にならんよ
975 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:32:00.92 ID:9PA1hevU.net] >>932 私は出題者じゃないし実数だなんて主張もしてない いろんな解釈があるならお題にならん 解釈の余地は可能な限り減らせ
976 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 20:38:00.65 ID:mzFwuoQr.net] >>933 お前にアンカーしてるわけでもないのに絡んでくるとかあたおかすぎる
977 名前:デフォルトの名無しさん [2022/11/06(日) 20:59:57.69 ID:Zb5xxfES.net] 1から10までの整数の和では無い可能性があるから、 その場合はプログラムでは実現できないって言いたいだけだろ 整数の和として答えてるプログラムを低レベルってどういことやねん。 素直に受け取ればいいものを曲解して不可能に持って行ってるだけだろ
978 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 21:02:11.02 ID:9PA1hevU.net] 「整数の和として答えてるプログラムを低レベルってどういことやねん。」 だれがそんなことかいた?
979 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 21:04:22.43 ID:9PA1hevU.net] >>935 >>931
980 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 21:07:02.93 ID:tOVlE3Vc.net] >>857 python: https://ideone.com/mJmWy7 やさしいお題、助かります!
981 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 06:42:16.97 ID:C4s2+P7f.net] 仕事では御免だが 解釈の余地を残すことが娯楽では大切だって良く分かる例
982 名前:デフォルトの名無しさん [2022/11/07(月) 15:08:59.94 ID:4okW5BTf.net] お題:1/1+1/2+...+1/nの合計を求め、分母と分子を整数で出力せよ。 *ただしライブラリを使わないこと
983 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 15:35:37.09 ID:Sowq9nFL.net] >>940 Ruby (1..n).map{ 1r/_1 }.sum
984 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 15:48:12.
] [ここ壊れてます]
985 名前:36 ID:wln8XcGb.net mailto: >>940 haskell https://ideone.com/DtEB7R [] [ここ壊れてます]
986 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 17:42:49.96 ID:dFD6FGsc.net] gcdとかsumとかprintはライブラリじゃないの?
987 名前:デフォルトの名無しさん [2022/11/07(月) 18:21:56.48 ID:UfWjgfnM.net] 1+・・・+1/n の小数点n桁目はいくらか
988 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 18:47:35.11 ID:Fdh4LiCB.net] >>944 こっちの方がおもしろいかも 小数第○位って昔は言ったけど今は言わない?
989 名前:デフォルトの名無しさん [2022/11/07(月) 20:48:13.34 ID:OXo72DE3.net] >>940 Java https://paiza.io/projects/cuy0WENv4Ghi-7jq9eTIbw
990 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 20:49:01.52 ID:FonngYyy.net] >>943 Pythonではprintは組み込み関数だな 他は知らんけど
991 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 21:06:30.94 ID:Fdh4LiCB.net] 組み込み関数はライブラリじゃないと ライブラリと呼ばない言語なら何でもありか
992 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 21:08:54.69 ID:Fdh4LiCB.net] C言語上のただのintの乗算でもライブラリが必要な環境もあるわけだけど
993 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 21:34:22.19 ID:q2YPtCXX.net] アルゴリズムが見たいのでしょうね
994 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 21:35:14.79 ID:kmERiYaX.net] まあ今時組込とかでもなきゃintの乗算でライブラリ呼び出す環境もあまりないけどそもそも入出力はライブラリ任せだからねぇ
995 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 23:30:13.24 ID:3GzmFPX6.net] >>943 Haskell ? だとsumやgcdはpreludeで標準関数扱い 基本import〜が必要ない奴は標準扱い
996 名前:デフォルトの名無しさん [2022/11/08(火) 01:53:36.92 ID:s644Ul/+.net] >>940 Kotlin https://paiza.io/projects/93xp9A_EpkG2QbWBuOvAoQ 分子と分母を別々に保持して足し続けただけ。約分はしていない。
997 名前:デフォルトの名無しさん mailto:sage [2022/11/08(火) 21:45:51.73 ID:dCnZkmaL.net] >>940 https://ideone.com/zNHUB9 ・「ただし」以下は無視した回答 function [n, d] = f(n) [n, d] = rat(sum(1./(1:n)), 1e-7); end
998 名前:デフォルトの名無しさん mailto:sage [2022/11/08(火) 21:46:18.88 ID:dCnZkmaL.net] >>940 octave https://ideone.com/zNHUB9 ・「ただし」以下は無視した回答 function [n, d] = f(n) [n, d] = rat(sum(1./(1:n)), 1e-7); end
999 名前:デフォルトの名無しさん [2022/11/09(水) 00:46:04.53 ID:oWTDq5DR.net] >>940 octave https://ideone.com/zNHUB9 ・「ただし」以下は無視した回答 function [n, d] = f(n) [n, d] = rat(sum(1./(1:n)), 1e-7); end
1000 名前:デフォルトの名無しさん [2022/11/09(水) 00:46:10.95 ID:oWTDq5DR.net] >>940 octave https://ideone.com/zNHUB9 ・「ただし」以下は無視した回答 function [n, d] = f(n) [n, d] = rat(sum(1./(1:n)), 1e-7); end
1001 名前:デフォルトの名無しさん [2022/11/09(水) 01:55:16.87 ID:QvIAsso6.net] なぜ同じ書き込みが4つもある?
1002 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 02:02:28.03 ID:Ewgu9c/a.net] お題スレの7不思議に加えよう
1003 名前:デフォルトの名無しさん [2022/11/09(水) 12:49:26.26 ID:AHjhHUHj.net] お題 入力した文字列を以下の4種類に分けた文字列を作成する関数を作成してください ・アルファベット大文字 ・アルファベット小文字 ・数字 ・それ以外の文字
1004 名前:デフォルトの名無しさん [2022/11/09(水) 18:55:40.68 ID:dDwxEUkd.net] Array.from(input).filter(c=>c.match(/[A-Z]/)).join("") + Array.from(input).filter(c=>c.match(/[a-z]/)).join("") + Array.from(input).filter(c=>c.match(/[0-9]/)).join("") + Array.from(input).filter(c=>c.match(/[^A-Za-z0-9]/)).join("")
1005 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 20:05:26.68 ID:1g3d+RJJ.net] >>960 octave https://ideone.com/SHPVub function c = f(s) u = isstrprop(s, 'upper'); l = isstrprop(s, 'lower'); d = isstrprop(s, 'digit'); c = {s(u) s(l) s(d) s(~(u | l | d))}; end
1006 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 01:00:36.16 ID:UXFdZVAF.net] >>960 Haskell https://ideone.com/jMHNnq isUpper = flip elem [ 'A' .. 'Z' ] isLower = flip elem [ 'a' .. 'z' ] isNum = flip elem [ '0' .. '9' ] isOthers = id . all not . zipWith ( $ ) [ isUpper, isLower, isNum ] . repeat sieve str = [ filter cond str | cond <- [ isUpper, isLower, isNum, isOthers ] ] testStr = "foldl1 :: Foldable t => (a -> a -> a) -> t a -> a" main = mapM_ print $ sieve testStr
1007 名前:デフォルトの名無しさん [2022/11/10(木) 01:50:3
] [ここ壊れてます]
1008 名前:8.82 ID:j8kXq8l6.net mailto: >>547 Java https://paiza.io/projects/Dxe5e0qmmy73WWNdzTvCbg [] [ここ壊れてます]
1009 名前:デフォルトの名無しさん [2022/11/10(木) 02:29:28.73 ID:kjI8mJgQ.net] >>961 俺も正規表現でやりたいけどこっちのほうが5倍速かった… コンパイル言語に比べたら目くそ鼻くそだがこんだけ違うと考えちゃうな const str = 'aA0!bB1@cC2#dD3$eE4%'.repeat(500); let oomoji = [], komoji = [], suuji = [], sonota = []; for (const c of str) { let cp; switch (true) { case 65 <= cp && cp <= 90: oomoji.push(c); break; case 97 <= cp && cp <= 122: komoji.push(c); break; case 48 <= cp && cp <= 57: suuji.push(c); break; default: sonota.push(c); } } [oomoji, komoji, suuji, sonota] = [oomoji, komoji, suuji, sonota] .map(a => a.join``); // console.table({oomoji, komoji, suuji, sonota});
1010 名前:デフォルトの名無しさん [2022/11/10(木) 02:37:16.98 ID:kjI8mJgQ.net] >>965 5倍じゃなくて3倍だったわ perf.linkで測ったコード、 let cp = c.codePointAt(); が let cp; になってたわ寝ぼけてた
1011 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 07:33:44.51 ID:oQpocXYl.net] >>960 ASCII のみで良い? それとも Unicode?
1012 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 07:56:41.06 ID:3FlvzqxM.net] >>960 Ruby -> s { s.scan(/[A-Z]+|[a-z]+|\d+|[\W_]+/) }
1013 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 14:11:20.86 ID:oQpocXYl.net] >>960 Kotlin https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A Unicodeで作った。サロゲートペアの文字もちゃんと扱える。 判別には Java の Character クラスのメソッドを利用している。 これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。 ローマ数字はアルファベット大文字扱い。 日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。 コントロールコードは \uXXXX 形式になるようにした。
1014 名前:デフォルトの名無しさん [2022/11/10(木) 18:57:30.40 ID:3zaWz6R+.net] >>960 PowerShell function StrClassify($s) { "\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_} } StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n" StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。" [実行結果] Κİ ωνσταντινούπολιςstanbul 1453 は年にと改称された。 CCCC ulul Ⅱ₂²2 塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
1015 名前:デフォルトの名無しさん [2022/11/10(木) 20:35:16.34 ID:V5vZiHvW.net] >>944 をやってみたらPythonで300くらいでオーバーフローになった 分子と分母をべつべつに計算してp/qだったとすると int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
1016 名前:デフォルトの名無しさん [2022/11/10(木) 20:44:38.28 ID:V5vZiHvW.net] ここで問題変更でp/qの小数点n桁目を求める問題にすればいいか オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか 忘れたがユークリッド互除法みたいな?
1017 名前:デフォルトの名無しさん [2022/11/10(木) 20:50:26.16 ID:m98zu82a.net] input.replace(/[^A-Z]/g,"") + input.replace(/[^a-z]/g,"") + input.replace(/[^0-9]/g,"") + input.replace(/[A-Za-z0-9]/g,"")
1018 名前:デフォルトの名無しさん [2022/11/10(木) 20:51:12.57
] [ここ壊れてます]
1019 名前: ID:m98zu82a.net mailto: [/[^A-Z]/g, /[^a-z]/g, /[^0-9]/g, /[A-Za-z0-9]/g] .map(r => input.replace(r,"")).join("") [] [ここ壊れてます]
1020 名前:971 [2022/11/10(木) 21:10:50.60 ID:V5vZiHvW.net] >>944 オーバーフローせずにできた https://ideone.com/EzCu8k
1021 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 21:27:26.89 ID:p27a51fr.net] >>944 Haskell https://ideone.com/2tUIFo import Data.Ratio hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ] main = print $ hnn 300
1022 名前:デフォルトの名無しさん [2022/11/10(木) 21:45:52.91 ID:KPTSzoDK.net] お題 小数点第n位を求めるプログラムを作成せよ
1023 名前:デフォルトの名無しさん mailto:sage [2022/11/10(木) 21:58:11.94 ID:JknzoKCK.net] >>977 何の?
1024 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 12:27:18.79 ID:eQP0gwqb.net] ルート4の
1025 名前:デフォルトの名無しさん mailto:sage [2022/11/11(金) 13:33:07.98 ID:XogJxnoW.net] そんなむず過ぎるお題は過疎るのだ却下
1026 名前:デフォルトの名無しさん [2022/11/11(金) 18:36:58.77 ID:Jm4DMnci.net] >>978 入力された実数
1027 名前:デフォルトの名無しさん [2022/11/11(金) 20:10:51.65 ID:+Uq9lyYZ.net] (x*10**n)%10
1028 名前:デフォルトの名無しさん [2022/11/12(土) 01:53:40.01 ID:Y/i2pfZ3.net] お題 配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ 例 aa,bb,cc 0.4,0.5,0.1 →aa 40%, bb 50%, cc 10%で出力
1029 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 08:50:36.22 ID:yCEPOpQl.net] >>983 Ruby a = %w[aa bb cc] p = [0.4, 0.5, 0.1] f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] } 10.times{ print f[a, p] } # => aabbccbbaaaaaabbbbbb
1030 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 10:10:20.03 ID:g2vYgSbJ.net] >>983 Haskell https://ideone.com/UErkR7 import System.Random import Data.List randomDbls :: StdGen -> [ Double ] randomDbls= randomRs (0,1) chooseItem is ws r = let folder a b = a : map ( + a ) b selecter r ( i, ( f, t ) ) = f <= r && r < t ts = foldr folder [ ] ws fs = 0 : ts ifts = zip is $ zip fs ts in fst $ head $ filter ( selecter r ) ifts main = do rds <- ( return . randomDbls ) =<< getStdGen print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
1031 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 10:19:35.32 ID:uOtU06vW.net] >>983 octave https://ideone.com/mIKDyu f = @(a, r) a(rand < cumsum(r))(1);
1032 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 14:34:06.57 ID:Q9bJaddO.net] >>983 ocaml https://ideone.com/aDR0Do let (<<) f g x = f (g x) let cumsum = List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.) let f xs = let r = Random.float 1. in fst << List.find ((<) r << snd) << List.combine xs << cumsum
1033 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 16:47:04.36 ID:We3Ba5Li.net] >>983 コレでよかった Haskell https://ideone.com/WtPXzw import System.Random randomDbls :: StdGen -> [ Double ] randomDbls= randomRs (0,1) chooseItem (i:is) (w:ws) r | r < w = i chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w ) main = do rds <- ( return . randomDbls ) =<< getStdGen print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
1034 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 17:19:40.29 ID:MirHjvCf.net] >>983 別名法とかいうアルゴリズム https://ideone.com/J0p12R
1035 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 19:13:20.80 ID:MirHjvCf.net] https://ideone.com/8utmEg 元からあったコードをちょっといじったんだけど変換ミスがあった
1036 名前:デフォルトの名無しさん [2022/11/13(日) 18:45:40.25 ID:zjrUNZaB.net] >>983 Kotlin https://paiza.io/projects/dh1A84MN5OxLQkw7r2yL7Q
1037 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 19:01:26.14 ID:ZCYlhUwL.net] 次スレ
1038 名前:vログラミングのお題スレ Part21 https://mevius.5ch.net/test/read.cgi/tech/1668333636/ [] [ここ壊れてます]
1039 名前:デフォルトの名無しさん [2022/11/15(火) 08:06:01.58 ID:XL64sJsG.net] うめ
1040 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 09:22:13.74 ID:x0rg5fHd.net] お題:1辺がn文字の正四角形を表示せよ 1 <= n <= 8 とする
1041 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 10:16:55.01 ID:V1sKjJZc.net] haskell https://ideone.com/4Kd3el sqStr n = "" ++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n" ++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" ) ++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n" where r = concat . replicate ( n-2 ) main = putStr $ sqStr 10
1042 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 20:16:12.10 ID:r20LvnA2.net] >>994 octave https://ideone.com/k9cAWw function s = f(n) s = repmat('#', n); s(2:end-1, 2:end-1) = ' '; end
1043 名前:デフォルトの名無しさん [2022/11/17(木) 21:39:57.15 ID:BbSHYj/y.net] うめ
1044 名前:デフォルトの名無しさん [2022/11/17(木) 21:40:03.49 ID:BbSHYj/y.net] うめ
1045 名前:デフォルトの名無しさん [2022/11/17(木) 21:40:08.22 ID:BbSHYj/y.net] うめ
1046 名前:デフォルトの名無しさん [2022/11/17(木) 23:04:00.66 ID:W9+RkUIs.net] 竹
1047 名前:1001 [Over 1000 Thread ID:Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 516日 23時間 1分 3秒
1048 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています