プログラミングのお題スレ Part22 (858レス)
上下前次1-新
抽出解除 レス栞
47: デフォルトの名無しさん [sage] 2023/08/18(金) 10:27:20.40 ID:Rd3M1fjh(1) AAS
可視光は globe.0 だな
しかも夜のデータ無いやん
69: デフォルトの名無しさん [sage] 2023/08/26(土) 14:14:02.40 ID:EQIr/PqP(1) AAS
世界で最初の月曜日ってどうやって決まったの?
156(10): デフォルトの名無しさん [sage] 2023/11/25(土) 20:07:06.40 ID:zpqT0hBE(1) AAS
お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする
ruby
外部リンク:ideone.com
require 'set'
r = 1..9999
c = r.to_a.fill(0)
s = r.to_set
while !s.empty?
n = rand(r)
c[n - r.first] += 1
s.delete n
end
p c.sum
↓
84736
282(16): ◆QZaw55cn4c [sage] 2024/02/24(土) 14:25:41.40 ID:NZEL8Kud(1) AAS
異なる自然数 a, b (a > b) における a^3 - b^3 を「a, b の三乗差」と呼ぶことにする。
異なる5通りの組(a, b) (c, d) ... (j, k) について三乗差がすべて相等しいとき
その組(a, b)...(j, k) および三乗差自体を求めよ
異なる6通りの組で三乗差が相等しい場合があるかも検討せよ
541: 9 [sage] 2025/02/07(金) 23:04:01.40 ID:dMuAEB5V(4/4) AAS
>>540 527 じゃなくて 537ね。スマソ
593(2): デフォルトの名無しさん [] 2025/02/12(水) 22:44:39.40 ID:Qtl/TEf6(2/2) AAS
>>561561(15): デフォルトの名無しさん [] 2025/02/11(火) 10:54:21.93 ID:E5oVpL7o(1/5) AAS
お題
数列が入力されます
ニ番目に小さい数を出力してください
入力:4, 5, 1, 7, 1, 2, 8, 9, 2, 7
出力:2
571
>>570のC++のf3をint型の最大値を含むデータにも対応させた。
C#にはint?型があるのですっきり書けるが、
外部リンク:ideone.com
C++ではまあまあすっきり書くにはintへのポインタを返すしかないか。
外部リンク:ideone.com
(該当値が複数の位置に存在する場合にそれらのうちのどれへのポインタを返すかについては
こだわらないものとする)
692: デフォルトの名無しさん [] 2025/03/19(水) 21:08:24.40 ID:VtmjGkS9(1) AAS
>>689167個で最大値は697786638998562641695629924526065234
>>691691(1): 9 [sage] 2025/03/19(水) 16:33:58.47 ID:kDrq13vm(1) AAS
>>686
> ・桁数が同じ場合、16進数と10進数が同じということはあり得ない、自明
大間違い。16進数と10進数で桁数が同じ値のうち、一桁のものは、16進も10審も同じだった…orz
結局、高速解放はあるんだろうか?
あるいはコラッツ予想みたいに「無いかもしれない」類の、考えるだけ無駄な問題なのだろうか?
時間をかけて64桁以下で解いたら、405個で最大値は
2714476666993915057605587441263923823484611431446449961712093492
だった。これはナイーヴな解法ではC++ですら到底求められない値だから、高速解法が
実在する証になっているだろう。
解答例は1週間くらい経ったら載せるので、それまでよく考えてみて下さい。
705(1): デフォルトの名無しさん [] 2025/03/25(火) 17:30:47.40 ID:Yc/egiP0(3/3) AAS
>>697-698をBigIntに変えるのはどうしたらいいのか分かんなかったので
>>700700(4): デフォルトの名無しさん [] 2025/03/23(日) 23:00:51.13 ID:pi1bImlR(1) AAS
>>680から1週間経ったので解答例を掲載
>>685を書いたときに作ってあった2つのC++プログラム
外部リンク:ideone.com
外部リンク:ideone.com
1番目ではsolve関数の再帰呼び出しの対象とするx[p]の下限と上限を線形探索するが、
2番目では二分探索する。要素数10では二分探索の効果は薄いと思いきや、大分速くなった。
2番目を読み返していたらバグを発見してしまった。i = N - 1のとき63行目のa[i + 1]はa[N]となり
配列の添字範囲外アクセス。0との比較だけだし、if文の評価がどっちでも以降の処理は結局同じだから、
実害も解への影響もないが、厳格さが必要ならif ((i + 1 < N ? a[i + 1] : 0) >= 0) {と書き換えるべきだな。
実行時間への影響は無視できる。
それぞれのPowerShellへの移植版
外部リンク:ideone.com
外部リンク:ideone.com
完全な逐語訳ではなく、PowerShellで書くと遅くなったり煩雑になったりする箇所は適宜改変した。
15桁以下の場合は64ビット整数でも桁溢れしないので、BigIntの代わりにInt64を使えば少し速くなる。
の方を boost::multiprecision::cpp_int から boost::multiprecision::int128_t に変えてみた
改変版 | オリジナル
外部リンク:ideone.com 0.12s | 外部リンク:ideone.com 0.43s
外部リンク:ideone.com 0.11s | 外部リンク:ideone.com 0.23s
827: デフォルトの名無しさん [sage] 2025/08/29(金) 20:09:32.40 ID:VEuLqGzD(1) AAS
>>812812(5): デフォルトの名無しさん [] 2025/08/21(木) 23:15:48.39 ID:0KQ1xtxb(1) AAS
>>799 の逆変換プログラム
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
問題A, 問題Bとは違って、順列に出現するユニークな整数は1〜nの連番でなくても良いし、
出現回数はすべて同じでなくても良い。例えば、入力は [3, 1, 4, 1, 5, 9] でも良い
(ユニークな整数は1, 3, 4, 5, 9で、出現回数は1が2回、その他が1回)。
ruby 2.5.5
外部リンク:ideone.com
・tallyあるのは2.7以降
>>812 octave
外部リンク:ideone.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.413s*