[過去ログ] プログラミングのお題スレ Part20 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
457: 2021/12/10(金)00:33 ID:Uh57IFJZ(1/2) AAS
>>446
C
外部リンク:paiza.io
入力を配列に入れてからカウントさせている。(uint32_t 型の配列)
カウント部分は>>456に似てる。しかし最初に引くのは思いつかなかった。
458: 2021/12/10(金)01:03 ID:Uh57IFJZ(2/2) AAS
>>448
Perl
外部リンク:paiza.io
年月日順で年がある場合は必ず4桁でなければならない。
4だけでも4月に判定されるが、まあいいか。
459: 2021/12/10(金)09:12 ID:rDACCx1y(1) AAS
>>446
Haskell
sumCntBits = id
. length
. filter odd
. ( >>= ( takeWhile ( /= 0 ) . iterate ( flip div 2 ) ) )
main = do
print $ sumCntBits [ 0xde, 0x96 ]
print $ sumCntBits [ 0x12345, 0x6789a,0xbcdef ]
----
省2
460: 2021/12/11(土)11:47 ID:kARxTGM3(1) AAS
>>446 rust
外部リンク:ideone.com
fn main() {
let f = |a: &[u32]| a.iter().map(|n| n.count_ones()).sum::<u32>();
println!("{}", f(&[0xde, 0x96]));
}
461: 2021/12/11(土)20:38 ID:LF8J+dNV(1) AAS
>>446
Kotlin
外部リンク:paiza.io
普通に作るのは出尽くした感があるのでちょっと変わったやり方にした。
入力から Int の List を作り、それを 1 ビットづつの Boolean のリスト(というか Iterator) にしてから true のみをカウントしている。
462: 2021/12/11(土)22:30 ID:LvGvT7a1(1) AAS
>>446 octave
外部リンク:ideone.com
f = @(a) sum(dec2bin(a)(:) - '0');
f([0xde 0x96])
463(4): 2021/12/14(火)17:40 ID:kbrFI/m0(1) AAS
もうすぐ、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
省6
464(5): 2021/12/16(木)03:59 ID:p3cQ7gqk(1) AAS
お題:自分用double-double演算ライブラリ
最低限、通常のdoubleとの相互変換は可能であること。それに加えて、
1)加減算
2)加減算 + 乗算
3)四則演算
数字が大きいもの程上級者向けです。
演算子のオーバーロードなどは任意とします。
465(2): 2021/12/16(木)07:13 ID:iDMhxZSI(1/3) AAS
>>464
多倍長演算ライブラリ、のことですか?
466(2): 2021/12/16(木)07:37 ID:I1MQqoQo(1) AAS
>>465
アホ
467(1): 2021/12/16(木)20:36 ID:teZIL57B(1) AAS
>>463 c
外部リンク:ideone.com
・数字を数えて判定
・範囲内の全ての整数をチェック
・想像以上に遅くてダメだった
>>463 ruby
外部リンク:ideone.com
468(2): 2021/12/16(木)20:39 ID:iDMhxZSI(2/3) AAS
>>466
double の演算を自分で実装するという意味ですか?
sum(double, double)
diff(double, double)
mul(double, double)
div(double, double)
を自分で実装する、という話でいいですか?
あと double のフォーマットは IEEE754 でいいですか?
469: 2021/12/16(木)20:57 ID:Y2CVy/MB(1) AAS
問題が説明不足では?
470(2): 2021/12/16(木)21:53 ID:B45/3FnD(1/2) AAS
お題: テキストを読み込みそれをクリスマスツリーにして出力しなさい
クリスマスツリーに見えれば形は自由とする
入力
本日は良いお日柄ですね
出力
___本
__日は
_良いお
日柄です
___ね
471(1): 2021/12/16(木)22:32 ID:iDMhxZSI(3/3) AAS
>>470
文字コードは何を仮定すればいいのですか?
472: 2021/12/16(木)22:34 ID:B45/3FnD(2/2) AAS
>>471
UTF-8
日本語の扱いが難しい言語では英語のみの対応も良しとする
473: 2021/12/17(金)00:19 ID:6Xap9yRK(1) AAS
>>470 octave
外部リンク:ideone.com
474: 2021/12/17(金)04:20 ID:QblDDO27(1) AAS
二種類のみの数字からなり個数比は 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
「二種類のみの数字からなる」を計算式で判定する方法ある?
475: 2021/12/17(金)05:36 ID:5DT5Lvck(1) AAS
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 のルールで生成する方が速そう
476: 463 2021/12/17(金)16:22 ID:ssQAe3ef(1) AAS
>>463
外部リンク:ideone.com
想定解は、事前に4,8,12,16桁の"x3y1"数を全列挙して作っておく。
プログラミング的には、各言語の順列や組合せを使って、作れるだろう。
(想定解例では組合せは2ベキとpopcountから作っている)
「それは、全列挙数が小さいとわかっているからでは..?」に対して
プログラムで出すのなら、雑に最も大きい16桁が4つあるとして計算
10P2 * 16C4 * 4 < 70万 なので、全列挙可能
まじめに計算すると 10P2 * (16C4 + 12C3 + 8C4 + 4C1) * 9 /10 = 167,832
列挙済みならば、クエリー5件程度なら、16.7万*5 チェックで間に合う。
省2
477: 2021/12/17(金)20:17 ID:gjoWWzuf(1) AAS
>>468
>>466
478(1): 467 2021/12/17(金)20:31 ID:llvCqHRj(1/2) AAS
>>463 c
外部リンク:ideone.com
・Ruby版の移植
・組み合わせの列挙方法は丸パクリ
・Ralph William Gosper Jr. 氏に感謝
479: 2021/12/17(金)23:34 ID:llvCqHRj(2/2) AAS
>>463 c
外部リンク:ideone.com
・>>478から若干の整理
・組み合わせ列挙用バッファ廃止
480: 2021/12/18(土)16:20 ID:b+l2srj7(1) AAS
>>464 C++
外部リンク:ideone.com
481(2): 464 2021/12/18(土)16:29 ID:ElKfLkKB(1) AAS
>>465
惜しい
>>468
IEEE754の倍精度(binary64)を整数演算で実装するのではありません。
binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
double-double演算です。
Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
482: 2021/12/18(土)16:50 ID:XqEkP9jw(1) AAS
> Wikipediaの「四倍精度浮動小数点数」の項に少しだけ載ってますです。
一般的な用語じゃないんだから初めからこれ書いとけよ
483: 465,468 2021/12/19(日)00:01 ID:eP9zS7VQ(1) AAS
>>481
I see.
484: 2021/12/19(日)21:10 ID:wQiNAkF9(1) AAS
>>448 octave
外部リンク:ideone.com
485(1): 2021/12/21(火)19:32 ID:FcpxpynD(1) AAS
128ビットあるのに106ビットしか使わんの?
もったいなくね?
486(1): 2021/12/21(火)19:47 ID:1JACqwUF(1) AAS
素人はだまってろ
487: 2021/12/21(火)21:17 ID:cWMYIacO(1) AAS
>>485
もったいなよ
ただ、既存のdouble計算リソースが使えるという利点がある
488(1): 2021/12/22(水)04:27 ID:5fCeD7fV(1) AAS
double-doubleはFMAがFMAとして役立つ数少ない用途だな
積和じゃなくて3個の和のfused命令も欲しくなる
489(4): 2021/12/23(木)07:32 ID:Xd/JFvMa(1) AAS
お題: 1つの整数から規則性のある複数の整数を生成せよ
生成される整数は再現性がなければならない
490: 2021/12/23(木)07:37 ID:GwakKG68(1) AAS
>>489
function f: Integer -> Integer{
return 0;
}
491: 2021/12/23(木)09:01 ID:S2rGJ6tV(1) AAS
>>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]
492: 2021/12/23(木)19:26 ID:KAa76evj(1/2) AAS
>>486 ocaml
外部リンク:ideone.com
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
493: 2021/12/23(木)19:27 ID:KAa76evj(2/2) AAS
>>489 ocaml
外部リンク:ideone.com
let f =
let rec fib = function
0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)
and aux acc = function
-1 -> acc | m -> aux (fib m :: acc) (m - 1)
in aux []
494(1): 2021/12/24(金)17:16 ID:Xt+LQVaD(1) AAS
>>488
Juliaのhypot()でもFMA使ってますです
495: 2021/12/24(金)22:51 ID:Y/w+woHG(1) AAS
>>494
ただ積と和を1命令にして高速化しただけの積和
の効果だけじゃなくて
融合(fused)の効果が効く用途の話
496: 2021/12/25(土)03:52 ID:62MjaTIU(1) AAS
>>489
Kotlin
外部リンク:paiza.io
何も考えずにただ Random 使っただけ。
497(2): 2021/12/27(月)20:25 ID:7ybeEGfH(1) AAS
[お題] 平均が2022な素数数列
5000以下のあい異なる素数で、加算平均がぴったり 2022 の数列を作る。
数列の項数(要素数)を最大化する、最大はいくつか。
最大数と数列を表示する。
※解答例(もちろん4以上がある)
4
[1747, 2099, 2113, 2129]
※実行時間は素数生成を含めて、4秒以内
最大な数列は複数通りあると思うので、一例のみで
498(1): 2021/12/29(水)15:58 ID:czxFIFL7(1) AAS
答えは595個?
計算機+理詰めで595個っぽいけど
499: 2021/12/29(水)16:38 ID:cOaqDcVM(1) AAS
「Log4j」2.17.0にもリモートコード実行の脆弱性
500: 497 2021/12/29(水)20:37 ID:GN7CzEgH(1) AAS
>>497 c++
外部リンク:ideone.com
"素数-2022"で適当に最大化DPすれば、合計0相当の所に答えが……。
個人的には他の復元方法を見たかった。
pythonは遅いのであきらめた(高速化方法を知らない)
>>498
595個でした。手作業でできるレベルなら……
501(1): 2021/12/29(水)22:36 ID:d+UhR9Ru(1) AAS
オレがやったのは
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]から一個消すのはダメ
省3
502(3): 2021/12/30(木)12:24 ID:sGmJGaqc(1/3) AAS
何個取り除いたら平均2022にできるか考えると
確か74個だったけな?
JavaScriptで1秒もかかんなかったか
503: 502 2021/12/30(木)12:30 ID:sGmJGaqc(2/3) AAS
表示時間除いたら1秒かかってないな
探索はほぼ一回でボトムまで到達して
発見された
504: 502 2021/12/30(木)12:38 ID:sGmJGaqc(3/3) AAS
可能と不可能が極端に分かれている問題なので
事前のブランチカットだけが重要なヘンなお題w
>>352はまだ未解決
505: 2021/12/30(木)20:10 ID:jVgYGZiS(1) AAS
>>502
最大の個数を求めよやろ?
506: 2021/12/30(木)20:24 ID:JL7tAErK(1) AAS
千葉興業銀行、4月から副業解禁 県内地銀初
南都銀行、4月から行員の副業制度導入 ウェブ制作など
荘内銀、行員の副業・兼業解禁
フィデアHD、副業・兼業制度を導入
横浜銀行、10月から従業員の副業・兼業解禁
省2
507: 2021/12/31(金)15:04 ID:bqUePCKa(1/2) AAS
>>497
haskell
外部リンク:ideone.com
>>501のアルゴリズムを自動化してみた
すげー簡単なところでどハマりして半日かかった
まだ解なしの場合とかの動作チェックとかしてないけどもうどうでもいい
508: 2021/12/31(金)15:09 ID:bqUePCKa(2/2) AAS
ちなみに出力形式は
(最大個数、最大素数の通し番号、最大素数までの間での素数で除外する素数のリスト)
try 67%5
→(5,8,[2,3,5])
は最初の個数8個[2,3,5,7,11,13,17,19]から[2,3,5]を抜いた[7,11,13,17,19]の5個が平均が67/5になる素数のリストの一つ
長さ
6以上はない
509(9): 2022/01/08(土)11:42 ID:B5P29Cqv(1) AAS
お題:
xをゼロ以上の浮動小数点数として
2^floor(log2(x))
の計算。ただし、x == 0 の場合はゼロとする。
510(2): 2022/01/08(土)18:45 ID:qvdwzZse(1) AAS
>>481
>binary64を二つ使って、上位53ビットと下位53ビットとで106ビットの浮動小数に見立てたものが
>double-double演算です。
現在検討中ですが、binary64 中には仮数部に使用できるビット幅は 52 bits しかありません。つまりケチビット表現です
53+53 とのことですが、実際には 53 + 52 = 105 しか格納できないのではないでしょうか?
511(1): 464 2022/01/08(土)21:07 ID:Xrz2Tlot(1) AAS
>>510
上位の±1/2ulp相当が下位になります
512(2): 2022/01/09(日)01:28 ID:/FHAAuzb(1) AAS
>>509
perlでワンライナー。入力は標準入力からする。
perl -MPOSIX -ne 'chomp;$n=$_?2**floor(log($_)/log(2)):0;print "$n\n"'
でも、こんなので良いの?自分ではほとんど何も考えてないんだが。
(log2()がないからlog(n)/log(2)でやるって所ぐらいしか工夫がない)
513(1): 2022/01/09(日)07:56 ID:9G1CcY2f(1) AAS
>>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" );
省2
514: 2022/01/09(日)07:59 ID:+WoQnCHD(1/2) AAS
2進表記した時に先頭のビット以外を0にすればいいだけだがワンライナーで書ける気がしない
515: 2022/01/09(日)08:00 ID:+WoQnCHD(2/2) AAS
先頭のビットというより「(存在するなら)0じゃない一番位の大きいビット」だな
516(1): 2022/01/09(日)08:27 ID:Gu7/igUi(1) AAS
ビットいじる方法だと、非正規化数が0に、NaNが無限大になる
そういえば、無限大やNaNはどうすればいいのだろうか
517: 509 2022/01/09(日)09:16 ID:42F2CcU6(1/2) AAS
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
518: 509 2022/01/09(日)09:53 ID:42F2CcU6(2/2) AAS
>>512
log2(n)をlog(n)/log(2)で近似した際の「誤差」
(ぴったり整数値になって欲しいのにそれよりも数ulp小さい値になったとか、
数ulp大きくて、ぎりぎりfloor()で切り捨てられる筈の値が1大きくなったとか)
を補償するコードが欲しい。
519: 2022/01/09(日)15:38 ID:DwVfG/qv(1) AAS
そこは性能とトレードオフになるしかない気はする
例えばfloor( log 32 / log2 ) = 5が使用上の動作だけど
log 32/log2 =4.9999999999978 × 10^0が返されて答えが4になってしまうのを避けるならおそらく大きすぎる場合は無視していいから
res' = floor( log x / log2 )
if (2^res'* 1.5) < x
// (1.5倍でも届かないなら不当な丸め誤差が出たと判断)
then res = res' + 1
else res = res'
とかちょっと汚い書き方するしかない希ガス
520: 2022/01/09(日)21:50 ID:sZC3oXej(1) AAS
なんか変なこと書いた
res' = floor( log x / log2 )
if 2^res' < x
then res = res' + 1
else res = res'
やな
res'の算出で丸め誤差は-1までと仮定して補正する
しかしもちろんlog(x)とか2^nハード的にFPUとかで高速にやってくれてしかも整数演算は誤差なしでやってくれる前提
この辺は高級言語プログラマレベルの話でなんとかなるもんではない
やるならアセンブリ言語レベルでやるしかない
521: 2022/01/10(月)00:03 ID:gj6cLR2i(1) AAS
>>509 C
外部リンク:ideone.com
非正規化数、NaN、無限大とかはそのまま返すようにした
やり方は>>513と変わらない
522(1): 509 2022/01/10(月)00:53 ID:MGxmK4tZ(1/2) AAS
いまどきのコンパイラなら、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)
523: 512 2022/01/10(月)01:47 ID:av6tewvz(1/2) AAS
>>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以上の値の入力で多分うまく動かない。
524(1): 509 2022/01/10(月)02:23 ID:MGxmK4tZ(2/2) AAS
>>522の修正
from math import frexp, ldexp
def foo(x): return 0.0 if x == 0 else ldexp(0.5, frexp(x)[1])
525: 2022/01/10(月)03:27 ID:av6tewvz(2/2) AAS
>>509
またまたPerlでワンライナー。
perl -MPOSIX -ne 'chomp;if($_==0.0){print"0\n"}else{print ldexp(0.5,(frexp($_))[1]),"\n"}'
これは>>524の真似(ていうかやってること同じ)。
526(1): 2022/01/10(月)12:43 ID:SgLm6fjp(1) AAS
>>511
それは答えになっていないかと
質問を変えます。下位側の指数部も意味を持つようにインプリメントするべきでしょうか?
527(2): 464 2022/01/11(火)02:38 ID:i2HiBm5J(1) AAS
>>526
先人の実装例だと、
上位 + 下位 = double doubleの数値
という事になってますね(上位側の指数が決まると、下位側の指数も決まる)。
外部リンク[pdf]:na-inet.jp
勿論、そう実装しないのもあり。
528: 2022/01/11(火)03:06 ID:Y9TTYX77(1/2) AAS
>>527
となると、
>>510
>binary64 中には仮数部に使用できるビット幅は 52 bits しかありません
よって下位側指数部無視なら 53bit + 52 bit = 105bit の実装となりますが?
下位側指数部有意ならば、下位側にもケチビットを適用できますが、今度は仮数部が 106 ビットとはいいきれなくなりますね(数によって変わる)
529: 2022/01/11(火)03:08 ID:Y9TTYX77(2/2) AAS
>>527
失礼 pdf が紹介されていることを見落としていました、精査します、紹介ありがとうございます
530(3): 2022/01/30(日)18:02 ID:Np8aVX2s(1) AAS
お題: 1より小さい実数を1以上2より下にせよ
< 0.123
> 1.23
< 0.0000123
> 1.23
531: 2022/01/30(日)18:25 ID:A8jovols(1) AAS
>>530
x / 10^[log10(x)]
532: 蟻人間 ◆T6xkBnTXz7B0 2022/01/30(日)20:39 ID:DZg7owi9(1/2) AAS
お題: 質量0.2 kgの直方体の物体が摩擦のある水平な床の上にある。
物体の初速を右向きの0.5 [m/s]とすると、物体は転倒することなく底面が床に接したまま、約x秒後に自然停止した。xより垂直抗力F[N]と動摩擦係数kを求めよ。
重力加速度を 9.8 [m/s^2]とする。
533: 蟻人間 ◆T6xkBnTXz7B0 2022/01/30(日)20:58 ID:DZg7owi9(2/2) AAS
お題(HTML/JavaScript): ユーザがGoogleから訪問した場合は、3秒間ブラウザを停止させるようにせよ。
534(1): 2022/02/01(火)07:45 ID:/+irRzAS(1/2) AAS
>>530
負の数や2以上の数は?
535: 2022/02/01(火)16:02 ID:zoPPBktH(1/2) AAS
>>534
・・・!
536(2): 2022/02/01(火)18:02 ID:zoPPBktH(2/2) AAS
お題: -1 < n < 1 の実数nを-10 < m < 10の実数m(ただし1桁目が0を除く)に桁上げせよ(>>530の改良)
< 0.123
> 1.23
< -0.00056
> -5.6
537: 2022/02/01(火)20:01 ID:TQ6+L4kb(1) AAS
負だったらabsolute取るだけのことじゃん
538: 2022/02/01(火)23:48 ID:/+irRzAS(2/2) AAS
>>536
perl
ワンライナー。以下はbashのコマンドラインから実行して試した。
入力は標準入力で一つづつ改行する。
perl -ne 'chomp;$n=$_;while(int(abs($n))<1){$n*=10}print "$n\n";'
やってることは見ての通り殆ど何も考えず10倍し続けるだけ。
539(1): 2022/02/21(月)17:49 ID:QCKFV9kK(1) AAS
もうすぐ22日、今年は "22/2/22"といつもより多め
[お題] 偶数ゾロ目
URLのページに都道府県別の人口が載っている。
URL: 外部リンク:ideone.com
今回使用するのは、2020/10のデータ
同じ県は一回のみで、異なる県を 22 県選らぶ。
(単純な選び方は全部で NCR(47, 22) = 約14.8兆通り)
整数A,Bが与えられる(1<=A<=B<=1億)
選択した22県の人口合計が A以上B以下となるのは何通りか?
1) 44444444 44444444 --> 214209
省5
540(1): 2022/02/23(水)19:08 ID:jKeAH0Dy(1) AAS
>>536
やぱしn==0は除外?
541: 2022/02/24(木)00:35 ID:5B3hmiET(1) AAS
>>540
一桁目が0は除外してね
542: 2022/02/24(木)08:38 ID:GiducjAN(1) AAS
難しい、こんなの小学生が解けるのか?
今年の中学受験の算数で一番の良問がこれらしい [976717553]
2chスレ:news
543(1): 539 2022/02/25(金)17:25 ID:STd/IFZD(1) AAS
>>539
旬だと思って出題
外部リンク:ideone.com 下部に追加
半分全列挙 + 尺取り法
早い言語でしかできない解答例でした
544: 2022/02/25(金)19:14 ID:RZ7O9d2K(1) AAS
>>543
乙
時間取れなくてやれてないが季節感あるネタ好き
545(1): 2022/02/26(土)19:41 ID:4VT1Qgxn(1) AAS
haskellでやったらやっぱり5秒はきつかった
546: 2022/02/27(日)02:34 ID:VdMMR1Xg(1) AAS
お題: RustかGoでバイナリーサーチを実装してください
547(1): 2022/03/20(日)12:30 ID:nN0Ys+dW(1) AAS
お題: トライ木を使ってサジェスト機能を実装してください
$ prog
> w
world
would
will
wish
辞書は任意の大きさとする
入力は英語、または日本語とする
548: 2022/03/20(日)19:32 ID:Ycqbgo6j(1) AAS
>>545
なんかHaskellってGHCのオプションに-O2とか指定すれば結構早くなった記憶がある
あとListじゃなくVector使うとか
549(1): 2022/03/20(日)19:41 ID:sy393qRd(1) AAS
お題 バッタの大冒険
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])
出力
省9
550: 2022/03/20(日)21:13 ID:yn4DTgXG(1) AAS
2番目の例着地するのは
15,28,38,46,52,57
ですた
551: 2022/03/22(火)20:44 ID:0IfoPmot(1) AAS
>>549
は数学の問題としても面白いけどココはプログラムのお題スレなのでアルゴリズムそのもの考えるのは嫌な人のためにアルゴリズムひとつ紹介しておきます
以下の探索で線形オーダーで解を見つけられます
自分で考えたい人は無視してください
以下aを最大ジャンプとします
a=a(n)としておく
(A)一回目を最大ジャンプで飛んだとして最初の禁止点に届かないかギリギリ届くとき
一回目のジャンプが最大ジャンプしたと想定して残りのn-1回ジャンプで最初の禁止点を無視したn-2個の禁止点を交わしたジャンプ順b(1)...b(n-1)を作る
この順番でとんて行って最初に最初の禁止点をi回目に超えたとする
解のジャンプとして
省12
552: 2022/05/03(火)15:12 ID:FP7f4hyR(1) AAS
問題がよくわからなくて解く以前の所で停止。そしてやる気消滅。
553: 2022/05/03(火)23:10 ID:JwGzWANE(1) AAS
説明不足で申し訳ない
問題文は数オリの紹介サイトからそのままコピペしてきたのでわかりにくかったかもしれない
1番最初の例
([3,5,8],[5,10])
だとバッタは最初x=0の地点にいて+3,+5,+8のジャンプでx=16の地点に行こうとしている
しかしx=5,x=10の地点は着地禁止地点で着地できない
飛び方は全部で6通りあるがその中から禁止地点に着地しないものを選んで下さいという問題
3回くらいなら総当たりで答え出せるけどジャンプ10回禁止地点9ヶ所だと全数検索すると10!通り必要になって実用にならない
どうしますかというテーマだけどもちろん数学オリンピックの問題なので中々自分で答え出すのは難しい
でここは数学板ではないので同じ数オリサイトにあった解答を転記して「こんなアルゴリズムが知られているけどアルゴリズムをインプリメントできますか」がお題です
554(1): 2022/05/04(水)00:16 ID:0lMETj8q(1) AAS
お題: C/C++でスレッドセーフなstrtok関数を作れ
設計は各自で考えること
555: 2022/05/04(水)08:22 ID:WTZHV9SY(1) AAS
政府公認のスカトロサークルだって!?じゅるり
556: 2022/05/05(木)02:33 ID:FeY8iOM4(1) AAS
高度IT人材、富士通は最大年収3500万円へ
AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
来年度から副業解禁 人材多様化へ―大同生命次期社長
第一生命HD、副業解禁 約1万5000人対象
省3
上下前次1-新書関写板覧索設栞歴
あと 446 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.383s*