プログラミングのお題スレ Part22 (880レス)
プログラミングのお題スレ Part22 http://mevius.5ch.io/test/read.cgi/tech/1691038333/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
554: デフォルトの名無しさん [] 2025/02/09(日) 21:31:24.58 ID:do9MXosP >>510 C++ https://ideone.com/bwvs06 >>548からの変更点 ・データ構造を単純化したら速くなった http://mevius.5ch.io/test/read.cgi/tech/1691038333/554
555: デフォルトの名無しさん [] 2025/02/09(日) 21:35:08.87 ID:do9MXosP >>510 https://ideone.com/46Tb28 >>549の実行速度比較に554を追加。548は不要な2行を削除した。検索文字列が短いのと長いのの両方をテスト。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/555
556: 警備員[Lv.19] [] 2025/02/10(月) 13:21:24.86 ID:g+w4FSG9 >>510 Kotlin 出来たことは出来たが、もっと簡単に出来そうな気がしてきた。 https://paiza.io/projects/RwNXYMH6q3P6v0vx9zbZng http://mevius.5ch.io/test/read.cgi/tech/1691038333/556
557: デフォルトの名無しさん [] 2025/02/10(月) 21:24:31.20 ID:KgR1Tipz >>485 C# (IEnumerableとして列挙) https://ideone.com/UBY8bl http://mevius.5ch.io/test/read.cgi/tech/1691038333/557
558: デフォルトの名無しさん [] 2025/02/11(火) 03:27:04.16 ID:FlAqv/ML 動画再生回数、登録者数、評価数、コメント数 上2桁、下2桁に04、13、40、44、71、74など (+生年月日、IDの数字など)の組み合わせ 業者による忌み数字、不吉数字の嫌がらせ&精神攻撃がキモすぎ http://mevius.5ch.io/test/read.cgi/tech/1691038333/558
559: 警備員[Lv.20] [] 2025/02/11(火) 05:48:25.27 ID:Y4Uu1QjJ それはお題なのか?それともただの誤爆か? http://mevius.5ch.io/test/read.cgi/tech/1691038333/559
560: デフォルトの名無しさん [sage] 2025/02/11(火) 06:03:36.08 ID:h8gYOd9x 糖質でしょ 忌み数字不吉数字とか意味不明なこと言ってるし,それを業者が特定個人を狙って表示する意味も分からんし http://mevius.5ch.io/test/read.cgi/tech/1691038333/560
561: デフォルトの名無しさん [] 2025/02/11(火) 10:54:21.93 ID:E5oVpL7o お題 数列が入力されます ニ番目に小さい数を出力してください 入力:4, 5, 1, 7, 1, 2, 8, 9, 2, 7 出力:2 http://mevius.5ch.io/test/read.cgi/tech/1691038333/561
562: デフォルトの名無しさん [sage] 2025/02/11(火) 11:46:37.94 ID:A5/Zs5AB こんちゃ 質問いいでしょうけ プルダウン(ポップアップ)をUIとしてだすとして 見えている項目名と、実際にパラミータとして出す値を変えたい時はどうしたらよか http://mevius.5ch.io/test/read.cgi/tech/1691038333/562
563: 9 [sage] 2025/02/11(火) 14:53:15.78 ID:mMj2PIa8 >>561 Perl5 $h{$_} = $_ for 4, 5, 1, 7, 1, 2, 8, 9, 2, 7; @s = sort keys %h; print "$s[1]\n"; 実行結果 ~ $ perl 22_561_second.pl 2 Perl5.26以降に付属のList::Utilにはuniq関数があるのでそれを使えば: use List::Util qw(uniq); @s = uniq sort 4, 5, 1, 7, 1, 2, 8, 9, 2, 7; print "$s[1]\n"; http://mevius.5ch.io/test/read.cgi/tech/1691038333/563
564: 警備員[Lv.20] [] 2025/02/11(火) 16:33:48.19 ID:Y4Uu1QjJ >>562 環境や言語やフレームワークを書いて限定しないと色々な環境や言語やフレームワークでの答えが適当に沢山湧いて出て来る可能性あるぞ。 しかも分からない所は適当に解釈してだ。なぜならここはお題スレだから。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/564
565: デフォルトの名無しさん [sage] 2025/02/11(火) 16:37:12.05 ID:WPoAkGuN >>561 ruby https://ideone.com/OI7hWs >>561 octave https://ideone.com/36aKUO >>561 c https://ideone.com/eDmlMM http://mevius.5ch.io/test/read.cgi/tech/1691038333/565
566: デフォルトの名無しさん [sage] 2025/02/11(火) 16:40:21.13 ID:gFwXvlnz >>561 #!ruby puts $stdin.gets.chomp.split(",").map{|e| e.to_i}.uniq.sort[1] http://mevius.5ch.io/test/read.cgi/tech/1691038333/566
567: デフォルトの名無しさん [sage] 2025/02/11(火) 17:43:14.68 ID:7RexIvi8 >>510 lisp https://ideone.com/qm4PsV http://mevius.5ch.io/test/read.cgi/tech/1691038333/567
568: デフォルトの名無しさん [sage] 2025/02/11(火) 17:48:30.95 ID:7RexIvi8 >>561 lisp https://ideone.com/g6m1EK http://mevius.5ch.io/test/read.cgi/tech/1691038333/568
569: デフォルトの名無しさん [sage] 2025/02/11(火) 18:19:05.70 ID:7RexIvi8 >>568 全然だめでした 取りあえずテスト追加済 http://mevius.5ch.io/test/read.cgi/tech/1691038333/569
570: デフォルトの名無しさん [] 2025/02/11(火) 20:45:09.89 ID:hMHygfcC >>561 R https://ideone.com/3beF1j C++ https://ideone.com/A8hp2f それぞれ3通りの方法で、大きなデータでの実行時間を比較 http://mevius.5ch.io/test/read.cgi/tech/1691038333/570
571: デフォルトの名無しさん [sage] 2025/02/11(火) 23:21:03.54 ID:Vzh5cLYk 数列が入力されるので 整数の数列だけでなく浮動小数点数の数列にも対応してくださいね ニ番目に小さい数がない時 例えば同じ数しか存在しない時や数列の長さが1の時には 解がないことを返してくださいね 例えばその時にMAX値が返ってきたら失格ですよ http://mevius.5ch.io/test/read.cgi/tech/1691038333/571
572: 565 [sage] 2025/02/11(火) 23:28:05.14 ID:qmej6t15 >>561 ocaml https://ideone.com/aV59Yd >>561 java https://ideone.com/PdgusX http://mevius.5ch.io/test/read.cgi/tech/1691038333/572
573: 9 [sage] 2025/02/11(火) 23:36:31.53 ID:yxel6cu3 先に言えよって、感じw http://mevius.5ch.io/test/read.cgi/tech/1691038333/573
574: デフォルトの名無しさん [age] 2025/02/11(火) 23:48:25.56 ID:E5oVpL7o >>571は出題者ではないよ 出題者として申し上げるなら>>571は観点がダサい http://mevius.5ch.io/test/read.cgi/tech/1691038333/574
575: デフォルトの名無しさん [sage] 2025/02/11(火) 23:50:12.69 ID:HwVbkmdb 小数対応はともかく max値を返してしまう人はプログラマ失格かな あとsortを使ってしまう人は計算量を知らない初心者 http://mevius.5ch.io/test/read.cgi/tech/1691038333/575
576: デフォルトの名無しさん [age] 2025/02/11(火) 23:53:59.73 ID:E5oVpL7o そういうこだわりはアスペルガーにしか思えないな、どうでも良いじゃないですかそんなこと http://mevius.5ch.io/test/read.cgi/tech/1691038333/576
577: デフォルトの名無しさん [age] 2025/02/11(火) 23:56:29.96 ID:E5oVpL7o こだわりは自分の胸のうちに留めていただきたい、他人に求めたら回答の幅を狭めるだけ、多様性のある回答こそ美しい http://mevius.5ch.io/test/read.cgi/tech/1691038333/577
578: デフォルトの名無しさん [sage] 2025/02/11(火) 23:57:23.71 ID:HwVbkmdb >>576 多くの人はちゃんとnilとかemptyとかNoneなどを返しているよね プログラマならそこだけは守らなければならない必須事項 http://mevius.5ch.io/test/read.cgi/tech/1691038333/578
579: デフォルトの名無しさん [age] 2025/02/11(火) 23:59:56.87 ID:E5oVpL7o だからそういう、こうじゃないとダメだという態度がアスペルガー仕草なんだってばよ、君が思うのは勝手だが他人に求めるものじゃない http://mevius.5ch.io/test/read.cgi/tech/1691038333/579
580: デフォルトの名無しさん [age] 2025/02/12(水) 00:01:10.34 ID:hk2aQo3G プログラミングはもっと自由なものなんだよ、思ったとおりにかけば良い http://mevius.5ch.io/test/read.cgi/tech/1691038333/580
581: 9 [sage] 2025/02/12(水) 00:03:23.15 ID:yw0CaA/O そういう条件は回答を見て思いついた後から言わず先に書くべきでは? そうでなければ、与えられた短い文とテストデータから、 処理対象データの範囲や要求仕様を読み手が色々解釈しても仕方ないだろ。 後からいろいろ言って批判なんてでもってのほかだと思うが。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/581
582: 9 [sage] 2025/02/12(水) 00:05:30.21 ID:yw0CaA/O 出来たもの見て実はこういう条件がありましたってケチつけるのはクソクライアントと一緒だな http://mevius.5ch.io/test/read.cgi/tech/1691038333/582
583: デフォルトの名無しさん [sage] 2025/02/12(水) 00:13:52.34 ID:SJ0T1N6w ざっと見たけどmax()を返してるのはC++の人だけで他は皆まともだ 普段からまともなコード書いてるかどうかバレてしまうから自由が面白い http://mevius.5ch.io/test/read.cgi/tech/1691038333/583
584: デフォルトの名無しさん [age] 2025/02/12(水) 00:18:10.68 ID:hk2aQo3G 好きにしたら良いんやで吉田松陰もそんなこと言ってた気がする http://mevius.5ch.io/test/read.cgi/tech/1691038333/584
585: デフォルトの名無しさん [age] 2025/02/12(水) 00:20:24.72 ID:hk2aQo3G まともとかバレるとかそういう当て擦りの嫌味ったらしい言い方どこで身につけてきたのあんた、母ちゃんは悲しいよ http://mevius.5ch.io/test/read.cgi/tech/1691038333/585
586: デフォルトの名無しさん [] 2025/02/12(水) 00:22:24.96 ID:Qtl/TEf6 >>583 関数がINT_MAXを返すのはまともなコードだろ。2番目に小さい数はINT_MAXではありえないから、 返り値がINT_MAXの場合は「なし」と表示すれば良いだけ。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/586
587: 9 [sage] 2025/02/12(水) 00:28:30.94 ID:yw0CaA/O 「データが二個未満の場合にはnilを返す。」とか書いとくべき。 でもそういう細かい条件をちまちま指定した窮屈な課題は、つまんなくて回答を造る意欲が減るんだよな。 シンプルで純な課題に対してどういうエレガントでエッセンシャルな回答があるか考えるのが楽しいのであって、 細かいいろんな条件を守る周辺コードで固めるような作業はつまんないから趣味の世界ではやりたくないな http://mevius.5ch.io/test/read.cgi/tech/1691038333/587
588: デフォルトの名無しさん [sage] 2025/02/12(水) 00:31:16.47 ID:1WuTe288 普段はプログラム載せるだけだけど、みんな意外と饒舌なんだなw http://mevius.5ch.io/test/read.cgi/tech/1691038333/588
589: 9 [sage] 2025/02/12(水) 00:33:57.88 ID:yw0CaA/O ここはある意味、回答のコードでもって語るスレだからな http://mevius.5ch.io/test/read.cgi/tech/1691038333/589
590: デフォルトの名無しさん [sage] 2025/02/12(水) 00:35:35.77 ID:kQv2EDFI お題にそんな指定ないのに みんなnilなどを返してるからこのスレの住人たちはセンスいいな http://mevius.5ch.io/test/read.cgi/tech/1691038333/590
591: デフォルトの名無しさん [sage] 2025/02/12(水) 19:12:16.26 ID:FZJ50oR3 >>561 lisp (sbcl) https://ideone.com/Bct7bC >>561 lisp (clisp) https://ideone.com/yqfmzh clispだと何故かsort版の方が速い http://mevius.5ch.io/test/read.cgi/tech/1691038333/591
592: デフォルトの名無しさん [sage] 2025/02/12(水) 20:45:54.96 ID:JML0DDov >>561 ruby https://ideone.com/svMSSw >>561 sqlite https://ideone.com/W02Q5r http://mevius.5ch.io/test/read.cgi/tech/1691038333/592
593: デフォルトの名無しさん [] 2025/02/12(水) 22:44:39.40 ID:Qtl/TEf6 >>561, 571 >>570のC++のf3をint型の最大値を含むデータにも対応させた。 C#にはint?型があるのですっきり書けるが、 https://ideone.com/oRhDL1 C++ではまあまあすっきり書くにはintへのポインタを返すしかないか。 https://ideone.com/xYnTSD (該当値が複数の位置に存在する場合にそれらのうちのどれへのポインタを返すかについては こだわらないものとする) http://mevius.5ch.io/test/read.cgi/tech/1691038333/593
594: デフォルトの名無しさん [sage] 2025/02/13(木) 12:04:43.08 ID:KGk2Z9bM お題:ランダムな数列から任意の並んでいる二つの数同士を足して、その二つの数の間に挿入せよ。 その新しい数が一桁ならそのまま挿入し二桁なら桁同士を足してその二桁の間に挿入せよ。 < 123456789 3 4 > 1237456789 (3+4=7) < 123456789 6 7 > 123456143789 (6+7=13 1+3=4) http://mevius.5ch.io/test/read.cgi/tech/1691038333/594
595: デフォルトの名無しさん [sage] 2025/02/13(木) 12:31:31.25 ID:QhFtS6hw 問題文の記述が下手かよ http://mevius.5ch.io/test/read.cgi/tech/1691038333/595
596: デフォルトの名無しさん [sage] 2025/02/13(木) 13:27:16.37 ID:J5YSE8js >>594 ruby a=$stdin.gets.chomp.split(" ") b=a[1].to_i+a[2].to_i c=(b<9 ? a[1]+b.to_s+a[2] : a[1]+"#{b/10}#{b/10+b%10}#{b%10}"+a[2]) puts a[0].gsub(a[1]+a[2],c) http://mevius.5ch.io/test/read.cgi/tech/1691038333/596
597: 9 [sage] 2025/02/13(木) 17:35:13.67 ID:UAfabByi >>594 Perl5、見易くするためインデントは全角スペースに置換してあります for (<DATA>) { ($s, $a, $b) = split; $c = $a + $b; $c = $1 . ($1 + $2) . $2 if $c =~ /(\d)(\d)/; $s =~ s/$a$b/$a$c$b/g; print "$s\n"; } __DATA__ 123456789 3 4 123456789 6 7 123456789 8 9 3141592653589793238462643383279502884197169399375105820974944 9 7 実行結果 ~ $ perl 22_594.pl 1237456789 123456143789 123456781879 3141592653589176793238462643383279
502884191767169399375105820917674944 http://mevius.5ch.io/test/read.cgi/tech/1691038333/597
598: デフォルトの名無しさん [] 2025/02/13(木) 20:12:01.16 ID:3SfOseF2 >>594 題意が以下の通りだとして、PowerShell (エラーチェックは省略) 自然数x, i, j (i + 1 = jを満たす) が与えられる。xの上i桁目の数字をx[i]で表す。 x[i]とx[j]の和をyとして、 ・yが1桁のとき、yをx[i]とx[j]の間に挿入せよ ・yが2桁のとき、y[1]とy[2]の和をy[1]とy[2]の間に挿入してから、yをx[i]とx[j]の間に挿入せよ function f($x, $i, $j) { $s = [string]$x $y = [int][string]$s[$i - 1] + [int][string]$s[$j - 1] if ($y -lt
10) { $s.insert($i, $y) } else { $s.insert($i, 11 * $y) } } (123456789, 3, 4), (123456789, 6, 7) |% { "< $($_[0]) $($_[1]) $($_[2])" "> $(f $_[0] $_[1] $_[2])", "" } [実行結果] < 123456789 3 4 > 1237456789 < 123456789 6 7 > 123456143789 http://mevius.5ch.io/test/read.cgi/tech/1691038333/598
599: 9 [sage] 2025/02/13(木) 20:24:48.49 ID:UAfabByi 数学屋さんかいなw i,jの「3 4」とか「6 7」は桁の位置をしていしているのではなく数値列の中にある数字を指定するんジャマイカ とオレは解釈したが http://mevius.5ch.io/test/read.cgi/tech/1691038333/599
600: デフォルトの名無しさん [] 2025/02/13(木) 20:34:25.67 ID:3SfOseF2 >>599 そうか。だとすれば、 function f($x, $i, $j) { $s = [string]$x $y = $i + $j if ($y -ge 10) {$y *= 11} $s -replace "$i$j", "$i$y$j" } (123456789, 3, 4), (123456789, 6, 7), (123456789, 8, 9), ("3141592653589793238462643383279502884197169399375105820974944", 9, 7) |% { "< $($_[0]) $($_[1]) $($_[2])" "> $(f $_[0] $_[1] $_[2])", "" } [実行
結果] < 123456789 3 4 > 1237456789 < 123456789 6 7 > 123456143789 < 123456789 8 9 > 123456781879 < 3141592653589793238462643383279502884197169399375105820974944 9 7 > 3141592653589176793238462643383279502884191767169399375105820917674944 http://mevius.5ch.io/test/read.cgi/tech/1691038333/600
601: デフォルトの名無しさん [sage] 2025/02/13(木) 20:45:01.39 ID:KiG3F5Wd >>561 c https://ideone.com/ZyWoVM >>594 ruby https://ideone.com/gp9Fvp http://mevius.5ch.io/test/read.cgi/tech/1691038333/601
602: 9 [sage] 2025/02/13(木) 20:52:32.26 ID:UAfabByi なんでこの人はコーデイングするのがこんなに早いんだろう… http://mevius.5ch.io/test/read.cgi/tech/1691038333/602
603: デフォルトの名無しさん [sage] 2025/02/13(木) 22:58:07.29 ID:bC7pFAVH >>594 Rust fn f(input: &str, a: u32, b:u32) -> String { let src = format!("{a}{b}"); let dst = if a + b < 10 { format!("{a}{x}{b}", x = a + b) } else { format!("{a}{x}{y}{z}{b}", x = 1, y = 1 + a + b - 10, z = a + b - 10) }; use itertools::Itertools; input.split(&src).join(&dst) } fn main() { assert_eq!(f("123456789", 3, 4), "1237456789"); assert_eq!(f("123456789&q
uot;, 6, 7), "123456143789"); assert_eq!(f("3141592653589793238462643383279502884197169399375105820974944", 9, 7), "3141592653589176793238462643383279502884191767169399375105820917674944"); } http://mevius.5ch.io/test/read.cgi/tech/1691038333/603
604: デフォルトの名無しさん [sage] 2025/02/13(木) 23:47:12.83 ID:bC7pFAVH >>561 Rust fn second_smallest<T: Copy + Ord>(input: &[T]) -> Option<T> { use std::cmp::Ordering::{Equal, Greater, Less}; input .iter() .copied() .fold(None, |state, t| match state { Some((_t0, Some(t1))) if t >= t1 => state, Some((t0, _)) => match Ord::cmp(&t, &t0) { Less => Some((t, Some(t0))), Equal => state, Greater => Some((t0, Some(t))), }, None => Some((t, None)), }) .and_then(|(_t0,
t1option)| t1option) } fn main() { assert_eq!(second_smallest(&[4, 5, 1, 7, 1, 2, 8, 9, 2, 7, 1]), Some(2)); assert_eq!(second_smallest(&[1, 1, 1]), None); assert_eq!(second_smallest(&[] as &[i32]), None); } http://mevius.5ch.io/test/read.cgi/tech/1691038333/604
605: デフォルトの名無しさん [sage] 2025/02/14(金) 17:55:06.91 ID:L6dJMbYJ わけがわからん アセンブラじゃあるまいし http://mevius.5ch.io/test/read.cgi/tech/1691038333/605
606: デフォルトの名無しさん [sage] 2025/02/14(金) 18:42:18.21 ID:RXjqXFcF わからないのはどのへんなんだろう? ・型がジェネリックになっている点 ・代入文がないなど関数型プログラミングになっている点 ・パターンマッチングが使われている点 いずれも最近は対応している言語が増えてるような http://mevius.5ch.io/test/read.cgi/tech/1691038333/606
607: デフォルトの名無しさん [sage] 2025/02/14(金) 23:21:45.00 ID:bNo2F1oE 可読性の良さから高階関数を使ったメソッドチェーンが一般的になってきたね マイクロソフトがC#などでLINQ広めたのがきっかけで各言語もその有用性から導入するようになった http://mevius.5ch.io/test/read.cgi/tech/1691038333/607
608: デフォルトの名無しさん [sage] 2025/02/14(金) 23:42:29.57 ID:PVqLPxMJ お題:ランダムな英文字列が与えられる。隣り合う英文字が同じ大文字だった場合、その間にその大文字の小文字を挿入せよ In < abcDDefGG Out > abcDdDefGgG http://mevius.5ch.io/test/read.cgi/tech/1691038333/608
609: デフォルトの名無しさん [sage] 2025/02/15(土) 00:16:29.67 ID:aVKCg5xf >>608 ruby while 1 s=DATA.gets.chomp exit if s=="" t=s.gsub(%r|([A-Z])\1|){$1+$1.downcase+$1} puts "IN < #{s}\nOUT > #{t}" end __END__ abcDDefGG http://mevius.5ch.io/test/read.cgi/tech/1691038333/609
610: デフォルトの名無しさん [sage] 2025/02/15(土) 00:16:34.18 ID:f9ERvXXy >>594 dart https://ideone.com/uQxzo1 >>608 ruby https://ideone.com/pwoRRH http://mevius.5ch.io/test/read.cgi/tech/1691038333/610
611: デフォルトの名無しさん [sage] 2025/02/15(土) 00:28:45.42 ID:/PgyVRU9 >>606 正規表現みたい非人間的な書式はやめようぜっての http://mevius.5ch.io/test/read.cgi/tech/1691038333/611
612: デフォルトの名無しさん [] 2025/02/15(土) 00:39:27.81 ID:rssRTGdz >>608 PowerShell function f($s) { -join $( foreach ($i in 0..($s.length - 2)) { $s[$i] if ($s[$i] -ne $s[$i + 1]) {continue} if ($s[$i] -lt [char]"A" -or $s[$i] -gt [char]"Z") {continue} ([string]$s[$i]).ToLower() } $s[$i + 1] ) } "abcDDefGG", "abcDDDfGG" |% {"$_ → $(f $_)"} [実行結果] abcDDefGG → a
bcDdDefGgG abcDDDfGG → abcDdDdDfGgG http://mevius.5ch.io/test/read.cgi/tech/1691038333/612
613: デフォルトの名無しさん [sage] 2025/02/15(土) 01:01:01.24 ID:qzrI3kKZ >>608 Rust fn f(input: &str) -> String { let mut output = String::new(); let mut pre_uppercase = None; for char in input.chars() { if Some(char) == pre_uppercase { output.push(char.to_ascii_lowercase()); } output.push(char); pre_uppercase = char.is_ascii_uppercase().then_some(char); } output } fn main() { assert_eq!(f("abcDDefGG"), "abcDdDefGgG"); assert_eq!(f("
abcDDDfGG"), "abcDdDdDfGgG"); } http://mevius.5ch.io/test/read.cgi/tech/1691038333/613
614: デフォルトの名無しさん [sage] 2025/02/15(土) 09:21:24.60 ID:XILc/8JX >>608 ruby https://ideone.com/nHcphN >>608 dart https://ideone.com/NxwW8Y http://mevius.5ch.io/test/read.cgi/tech/1691038333/614
615: 614 [sage] 2025/02/15(土) 10:02:25.10 ID:UI50KRFJ >>608 dart https://ideone.com/2E5Rxy http://mevius.5ch.io/test/read.cgi/tech/1691038333/615
616: 9 [sage] 2025/02/15(土) 10:36:35.12 ID:1WENuqRv >>608 Perl5、肯定先読みと置換の小文字変換 s/([A-Z])(?=\1)/\1\l\1/g, print for <DATA>; __DATA__ abcDDefGG abcDDDefGGG 実行結果 C:\Home>perl 22_608_ins_l.pl abcDdDefGgG abcDdDdDefGgGgG http://mevius.5ch.io/test/read.cgi/tech/1691038333/616
617: 9 [sage] 2025/02/15(土) 10:39:20.52 ID:1WENuqRv >>611 お断り〜します〜♪ ハハ (゚ω゚) ((⊂ノ ノつ)) (_⌒ヽ εニ≡ )ノ`J http://mevius.5ch.io/test/read.cgi/tech/1691038333/617
618: デフォルトの名無しさん [sage] 2025/02/15(土) 10:40:34.16 ID:+yYMeR0h >>594 >>608 lisp https://ideone.com/W5gGfD http://mevius.5ch.io/test/read.cgi/tech/1691038333/618
619: 615 [sage] 2025/02/15(土) 13:20:38.24 ID:eC3jFbuY >>608 java https://ideone.com/YfufZz >>616 _人人人人人人人人人人人人_ > 置換の小文字変換!? <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ 勉強になりました http://mevius.5ch.io/test/read.cgi/tech/1691038333/619
620: デフォルトの名無しさん [] 2025/02/15(土) 21:05:44.70 ID:rssRTGdz >>612は文字列長が1文字の場合にバクがあった。PowerShellの0..-1は空(から)ではなく0, -1になるのが 原因 (Rの0:-1も同様)。修正するには、fの最初に if ($s.length -lt 2) {return $s} を挿入する。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/620
621: デフォルトの名無しさん [] 2025/02/15(土) 21:06:37.89 ID:rssRTGdz >>561 C++ https://ideone.com/bQBKIM C#のヌル許容型と同じ挙動のnullable型を自作し、>>593のC#のmin2関数をジェネリック化、 ポインタ参照化して移植した。 https://ideone.com/p2LNC9 593のC++のmin2関数と実行速度を比較する¹と30%ほど遅い。文字列型や可変長数値型と 違って最大値が存在する固定長数値型では、それを利用するf593の方が良い。 ── ¹ Microsoft C++では100回繰り返しテストが最適化され1回しか実行されない http://mevius.5c
h.io/test/read.cgi/tech/1691038333/621
622: デフォルトの名無しさん [sage] 2025/02/15(土) 21:52:48.39 ID:qa0m30Tb >>621 最大値をundefined代わりに使ってはいけないと指摘があったのにまだ使っているのかいな そのコードで入力数列がこうだった場合 vector<int> a = {IntMax - 1, IntMax}; 2番目に小さい数として正解のintMaxを返さなければならない http://mevius.5ch.io/test/read.cgi/tech/1691038333/622
623: デフォルトの名無しさん [] 2025/02/15(土) 22:00:12.34 ID:rssRTGdz >>622 >>593のC++プログラムの実行結果を参照。入力数列にINT_MAXが含まれる場合でも問題ない。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/623
624: デフォルトの名無しさん [sage] 2025/02/15(土) 22:09:09.66 ID:qa0m30Tb >>623 それはm1とm2を間接にポインタで持つために遅くなっているf593() m1とm2を直接に整数で持つため速いf3()はIntMaxに対応できていない http://mevius.5ch.io/test/read.cgi/tech/1691038333/624
625: デフォルトの名無しさん [] 2025/02/15(土) 22:24:28.09 ID:rssRTGdz >>624 >>621の速度比較テストに>>570のf3も追加 https://ideone.com/scnfdu ポインタで持つf593との比で、整数で持つf570は6%速いだけ。一方、null許容型のf621は29%も遅い。 最大値が存在する型ではそれを利用する方が良いという結論に変わりはない。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/625
626: デフォルトの名無しさん [] 2025/02/15(土) 22:29:41.23 ID:rssRTGdz まあ、同じ値の要素が大量に存在する入力データではf570は遅くなるが、平均的な速度はf570の方が速い。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/626
627: デフォルトの名無しさん [] 2025/02/15(土) 22:31:16.05 ID:rssRTGdz >>626はf570じゃなくてf593だった。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/627
628: デフォルトの名無しさん [sage] 2025/02/15(土) 22:42:01.35 ID:v2QOLp/q f593でローカル変数へのポインタを返し得るのは如何かと http://mevius.5ch.io/test/read.cgi/tech/1691038333/628
629: デフォルトの名無しさん [] 2025/02/15(土) 23:34:59.77 ID:rssRTGdz >>628 返しえないでしょ。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/629
630: デフォルトの名無しさん [sage] 2025/02/15(土) 23:46:12.83 ID:qa0m30Tb >>625 まずnullableのコードがおかしい 例えばoverload(op)のこれ if (y.isNull) return false; \ return x op y.value; \ Nullだとfals eとなり opの計算結果次第でもfal seとなり 両者を区別できない http://mevius.5ch.io/test/read.cgi/tech/1691038333/630
631: デフォルトの名無しさん [sage] 2025/02/15(土) 23:47:32.80 ID:qa0m30Tb >>625 あとvector扱うコードは倫理的に際どいかな 長さ0でないことを調べずに いきなりint *m1 = &a[0], m2 = &y; 今回は長さ0の時に*m1をアクセスしないから論理的にギリセーフだけど際どい そのへんのトリッキーさも含めて (もしあれば)最小値も返す場合 (もしあれば)3番目の最小値も返す場合など このIntMax方式は破綻すると思う http://mevius.5ch.io/test/read.cgi/tech/1691038333/631
632: デフォルトの名無しさん [] 2025/02/15(土) 23:52:31.08 ID:rssRTGdz >>630 >>621に書いた通り、C#のヌル許容型T? (Nullable<T>のエイリアス) の挙動に従っただけだから。 文句があるならMicrosoftに言ってくれ。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/632
633: 9 [sage] 2025/02/16(日) 06:28:07.79 ID:GnMUCCm7 qa0m30Tb の回答はどれよ? http://mevius.5ch.io/test/read.cgi/tech/1691038333/633
634: デフォルトの名無しさん [] 2025/02/16(日) 08:09:49.66 ID:v+IcfGmt いるよねえ他人の回答に文句だけつけて自分では回答しないやつ http://mevius.5ch.io/test/read.cgi/tech/1691038333/634
635: デフォルトの名無しさん [] 2025/02/16(日) 08:16:54.29 ID:v+IcfGmt 他人の回答が間違いとなるようにお題を解釈するのは知的なことではないよバカの所業だよ http://mevius.5ch.io/test/read.cgi/tech/1691038333/635
636: デフォルトの名無しさん [sage] 2025/02/16(日) 08:20:29.71 ID:eNZyrnPC そんなことより>>616のワンライナーがカッコよくてほれぼれする http://mevius.5ch.io/test/read.cgi/tech/1691038333/636
637: デフォルトの名無しさん [sage] 2025/02/16(日) 10:58:48.51 ID:EXJYkLn8 帰ったと思ったらまたやってんのw http://mevius.5ch.io/test/read.cgi/tech/1691038333/637
638: デフォルトの名無しさん [sage] 2025/02/16(日) 15:14:38.18 ID:8bpH8MuA コンパイラ警告無視するのが知的な事だと思ってそうだな http://mevius.5ch.io/test/read.cgi/tech/1691038333/638
639: 9 [sage] 2025/02/16(日) 15:45:59.98 ID:GnMUCCm7 回答のコードでもって語ってほしいなぁ http://mevius.5ch.io/test/read.cgi/tech/1691038333/639
640: デフォルトの名無しさん [sage] 2025/02/17(月) 13:08:08.60 ID:lz3iaMcC お題:ランダムな数列が与えられる。隣り合う数字が偶数同士の時、あいだに0を。奇数同士の時は1を挿入し、それ以外は何も挿入しない In < 123346 Out > 12313406 http://mevius.5ch.io/test/read.cgi/tech/1691038333/640
641: デフォルトの名無しさん [sage] 2025/02/17(月) 13:47:54.59 ID:1CKZ5rpi >>640 ruby DATA.readlines(chomp:1).map{|e| a=e.split("").map{|f| f.to_i} (0..a.size-2).each{|n| a[n]=a[n]*10 if (a[n]%2==0 && a[n+1]%2==0) a[n+1]=a[n+1]+10 if (a[n]%2==1 && a[n+1]%2==1)} puts "IN < #{e}\nOUT > #{a.map{|f| f.to_s}.join}"} __END__ 123346 http://mevius.5ch.io/test/read.cgi/tech/1691038333/641
642: デフォルトの名無しさん [sage] 2025/02/17(月) 20:02:39.61 ID:SzDlV4TD >>640 lisp https://ideone.com/DV9DeR http://mevius.5ch.io/test/read.cgi/tech/1691038333/642
643: デフォルトの名無しさん [] 2025/02/17(月) 20:47:46.22 ID:2enU2rA/ >>640 PowerShell (一般的な文字コードを想定) function f([string]$s) { $rprev = 2 -join ([char[]]$s |% { $r = $_ % 2 if ($r -eq $rprev) {$r} $rprev = $r $_ }) } 123346, 12333468, 1, "" |% {"$_ → $(f $_)"} [実行結果] 123346 → 12313406 12333468 → 123131340608 1 → 1 → http://mevius.5ch.io/test/read.cgi/tech/1691038333/643
644: デフォルトの名無しさん [] 2025/02/17(月) 20:48:16.10 ID:2enU2rA/ 正規表現置換なら、 function f($s) { $s -replace "[02468](?=[02468])", "$&0" -replace "[13579](?=[13579])", "$&1" } 1回で済ますなら、 function f($s) { [RegEx]::Replace($s, "[02468](?=[02468])|[13579](?=[13579])", {$_ = $args[0].value[0]; "$_$($_ % 2)"}) } http://mevius.5ch.io/test/read.cgi/tech/1691038333/644
645: デフォルトの名無しさん [sage] 2025/02/17(月) 20:58:11.16 ID:UxhkW11K >>640 Rust fn f(input: &[u8]) -> Vec<u8> { input.windows(2).fold(Vec::new(), |mut vec, w| { if vec.is_empty() { vec.push(w[0]); } if (w[0] ^ w[1]) & 1 == 0 { vec.push(w[0] & 1 + b'0'); } vec.push(w[1]); vec }) } fn main() { assert_eq!(f(b"123346"), b"12313406"); assert_eq!(f(b"12333468"), b"123131340608"); } http://mevius.5ch.io/tes
t/read.cgi/tech/1691038333/645
646: デフォルトの名無しさん [] 2025/02/18(火) 10:32:01.38 ID:Spp0fdd/ >>645 そうやればいいのか、なるほどね http://mevius.5ch.io/test/read.cgi/tech/1691038333/646
647: デフォルトの名無しさん [sage] 2025/02/18(火) 17:51:16.96 ID:ZRfTlf8i Vecのnewやpushなど普通にcollectに任せる手もあるね 条件付き挿入は汎用にOptionで取捨を示してflat_mapとflattenでも可能 前値など状態を保ちつつ1つにまとめるならfoldでイテレータに流すならscan 一例としてこんな感じ fn f(input: &[u8]) -> Vec<u8> { input .iter() .scan(None, |pre, &x| { Some([ pre.replace(x & 1) .and_then(|p| (p == x & 1).then_some(p + b'0')), Some(x), ]) }) .fla
t_map(|list| list.into_iter().flatten()) .collect() } >>640 Rust http://mevius.5ch.io/test/read.cgi/tech/1691038333/647
648: デフォルトの名無しさん [] 2025/02/19(水) 21:30:14.30 ID:LKzHskwz >>640 >>643-644の3つのfを上から順にf1, f2, f3とし、長い文字列を引数として呼び出したときの 実行時間を比較すると、 $s = -join (1..10000) $t = 1..3 |% {(iex "measure-command {f$_ $s}").ticks} $tmin = ($t | measure -min).minimum 1..3 |% {"f$_`: {0:0.00}倍" -f ($t[$_ - 1] / $tmin)} [実行結果の一例] f1: 34.78倍 f2: 1.00倍 f3: 14.93倍 大差でf2 < f3 < f1となった。インタプリタ言語のコード実行は遅いので、処
理を自分で 書くほど遅くなり、ライブラリ関数等に丸投げすれば速くなることによる。 https://ideone.com/GVewWL コンパイラ言語のC#で同様の比較をすると (PowerShellより速いので文字列を長くし、 f1の改良版としてStringBuilder使用のf4を追加した)、当然f4< f1 < f2 < f3になった。 http://mevius.5ch.io/test/read.cgi/tech/1691038333/648
649: デフォルトの名無しさん [sage] 2025/02/19(水) 21:58:22.55 ID:Hs/awmG/ >>647 関数型でタブーの可変な変数宣言してもよいなら、もっと簡単になるね。 fn f(input: &[u8]) -> Vec<u8> { let mut pre = None; input .iter() .flat_map(|&x| { [ pre.replace(x & 1) .and_then(|p| (p == x & 1).then_some(p + b'0')), Some(x), ] .into_iter() .flatten() }) .collect() } http://mevius.5ch.io/test/read.cgi/tech/1691038333/649
650: デフォルトの名無しさん [sage] 2025/02/20(木) 23:25:43.81 ID:Zfo8kSSQ mutableの使用は必要最小限が望ましいが mutableを使えない言語は実用的ではない http://mevius.5ch.io/test/read.cgi/tech/1691038333/650
651: 警備員[Lv.21] [] 2025/02/22(土) 15:11:12.54 ID:nEyoRU5r >>640 Perl5 https://paiza.io/projects/gW_sI1_VqokddmYSJ6Lj2A http://mevius.5ch.io/test/read.cgi/tech/1691038333/651
652: 警備員[Lv.21] [] 2025/02/22(土) 15:42:54.65 ID:nEyoRU5r >>640 Kotlin https://paiza.io/projects/mAEXhhFdJiHVQWYtHvIP-g http://mevius.5ch.io/test/read.cgi/tech/1691038333/652
653: 警備員[Lv.21] [] 2025/02/22(土) 15:53:04.03 ID:nEyoRU5r >>640 C https://paiza.io/projects/7L9vpqOvFcbZfv9vO5GPvA http://mevius.5ch.io/test/read.cgi/tech/1691038333/653
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 227 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s