プログラミングのお題スレ Part22 (854レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
9: 9 [sage] 2023/08/07(月) 01:46:18.23 ID:PMO8D1QO >>3 Perl5 for (<DATA>) { my %h = map{$_ => 1} grep{/[a-z]/i} split ''; push @a, $_ if 26 == keys %h; } @s = sort{length($a) <=> length($b)} @a; print $s[0]; __DATA__ The quick brown fox jumps over a lazy dog. The jay, pig, fox, zebra and my wolves quack! Pack my box with seven dozen liquor jugs. The horse, pig, fox, zebra and my wolves quack! Jackdaws love my small sphinx of quartz. Jackdaws love my big sphinx of quartz. The quick brown fox jumps over a lazy cat. Pack my box with five dozen liquor jugs. ※ 見易くするためインデントを全角スペースに置換してあります。 実行結果: $ perl 22_3_az26.pl Jackdaws love my big sphinx of quartz. http://mevius.5ch.net/test/read.cgi/tech/1691038333/9
10: デフォルトの名無しさん [sage] 2023/08/07(月) 01:57:03.56 ID:PMO8D1QO >>9 ゴメン、2行目に間違いあり…orz my %h = map{$_ => 1} grep{/[a-z]/i} split ''; ↓正しくは my %h = map{$_ => 1} map{lc} grep{/[a-z]/i} split ''; 実行結果は今回のテストデータだとたまたま同じ結果になる。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/10
26: 9 [sage] 2023/08/11(金) 02:38:50.64 ID:4P/NDj/+ スレが伸びているので何かと思えば、オレほか一部の回答者がsortを使ったのが そんなに気に入らなかったか、気に障ったか、 ざまぁみろw としか言いようがないが 後出しでケチつけてるのは出題者じゃないようだが そしたらsortも、そしてminもあえて使わないバージョン、 書き方はいろいろあると思うけど: >>3 Perl5 use List::Util 'first'; for (<DATA>) { my %h = map{lc $_ => 1} /([A-Za-z])/g; $a[length $_] = $_ if 26 == keys %h; } print first{defined} @a; __DATA__ The quick brown fox jumps over a lazy dog. The jay, pig, fox, zebra and my wolves quack! Pack my box with seven dozen liquor jugs. The horse, pig, fox, zebra and my wolves quack! Jackdaws love my small sphinx of quartz. Jackdaws love my big sphinx of quartz. The quick brown fox jumps over a lazy cat. Pack my box with five dozen liquor jugs. 実行結果 ~ $ perl 22_3_az26_a.pl Jackdaws love my big sphinx of quartz. http://mevius.5ch.net/test/read.cgi/tech/1691038333/26
29: 9 [sage] 2023/08/11(金) 08:37:47.88 ID:4P/NDj/+ O(nlog(n))がダメかどうかは、データの規模および実行時間による http://mevius.5ch.net/test/read.cgi/tech/1691038333/29
43: 9 [sage] 2023/08/16(水) 13:32:44.58 ID:vjpqg3x7 >>40 bash、curl および GraphicsMagick の convert コマンドを使用。動作確認したOSはUbuntu 20.04LTS。数百枚のjpegからgifへのconvertには多少時間がかかります。 オプション -h または --highres を指定すると 2048x2048、オプション無しあるいは -l または --lowreso を指定すると 512x512、なおボーナスはスイス銀行の秘密口座に。 ※見易くするためインデントは全角スペースに置換してあります。8月16日23時まで取得するようにしているがまだ無い将来の画像は含まない。 res='512x512' # default OPT=`getopt -o hl -l highreso,lowreso -- "$@"` eval set -- "$OPT" while true; do case "$1" in -h | --highreso) res='2048x2048' shift ;; -l | --lowreso) res='512x512' shift ;; --) shift break ;; esac done dir=$(mktemp -d TmpDir.XXXXXX) for d in $(seq -w 01 16); do for h in $(seq -w 0 23); do dh="$d$h" file="HMW92308${dh}.globe.1.jpg" url="http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/2023/${res}/${file}" echo $url; curl -f -s -R -o "$dir/$file" $url done done #set -x time convert $(ls $dir/*.jpg) TyphoonAime${res}.gif ls -o TyphoonAime${res}.gif http://mevius.5ch.net/test/read.cgi/tech/1691038333/43
44: 9 [sage] 2023/08/16(水) 13:42:58.39 ID:vjpqg3x7 >>43 typo orz -h または --highres ↓ -h または --highreso http://mevius.5ch.net/test/read.cgi/tech/1691038333/44
45: 9 [sage] 2023/08/16(水) 19:12:35.95 ID:y9YJABkH >>43 これだと、scriptを実行するたびに全てのjpegファイルをtemporaryディレクトリにdownloadするためサーバの負荷の面で行儀がよくないので、 ディレクリは TyphoonJpegDir512x512 または TyphoonJpegDir2048x2048 で固定とし、未取得のjpegがあればdownloadするように直すわ。 res='512x512' # default OPT=`getopt -o hl -l highreso,lowreso -- "$@"` eval set -- "$OPT" while true; do case "$1" in -h | --highreso) res='2048x2048' shift ;; -l | --lowreso) res='512x512' shift ;; --) shift break ;; esac done dir=./TyphoonJpegDir${res} for d in $(seq -w 01 16); do for h in $(seq -w 0 23); do file="HMW92308${d}${h}.globe.1.jpg" url="http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/2023/${res}/${file}" [ -f $dir/$file ] || { echo $url; curl -f -s -R -o "$dir/$file" $url; } done done #set -x time convert $(ls $dir/*.jpg) TyphoonAime${res}.gif ls -o TyphoonAime${res}.gif ※見やすくするためインデントは全角スペースに置換してあります。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/45
89: 9 [sage] 2023/09/22(金) 16:53:16.55 ID:8M97O6g7 >>85 Perl5 rename "abc$_.mp4", sprintf 'abc%03d.mp4',$_ for 1..20; ※abc1.mp4 abc2.mp4 .. abc20.mp4 があるとしています。 また abc001.mp4 abc002.mp4 ... abc020.mp4 は既存かのチェックは省いています。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/89
121: 9 [sage] 2023/10/08(日) 20:24:03.46 ID:zYJ3wh+h >>120 「もっとも効率がいいエレベーターの停止順序」とは? 1.停止回数がもっとも少ない 2.移動した階数の和が最も小さい 3.ほか など、どのような指標? http://mevius.5ch.net/test/read.cgi/tech/1691038333/121
188: 9 [sage] 2024/01/16(火) 02:37:52.68 ID:SfyAs2IF >>187 Perl5 use Time::Piece; use Time::Seconds; for (qw{00:00:00 23:59:59}) { $t = Time::Piece->strptime($_, '%T') + 1; print "入力:$_\n出力:", $t->strftime('%T'), "\n"; } ※見易くするためインデントを全角スペースに置換してあります 実行結果 ~ $ perl 22_187_1秒後.pl 入力:00:00:00 出力:00:00:01 入力:23:59:59 出力:00:00:00 http://mevius.5ch.net/test/read.cgi/tech/1691038333/188
189: 9 [sage] 2024/01/16(火) 02:38:47.78 ID:SfyAs2IF >>188 use Time::Seconds; これ要らなかった…orz http://mevius.5ch.net/test/read.cgi/tech/1691038333/189
216: 9 [sage] 2024/02/04(日) 16:39:59.23 ID:jTY6zdRX >>208 Perl5 use feature qw{:5.16 signatures}; no warnings qw(experimental::signatures); @s = qw[a1=a2 b1=b2 b3=b2 c1=c2 e1=e2 a3=a4 c3=c4 e1=e3 a2=a4 c3=c1 b3=a4 c2=d1 a4=a5 d2=c1 b4=b3 d3=c3]; for (map{[sort /(\w+)=(\w+)/]} @s) { ($l, $r) = @$_; $g{$r} //= $g{$l} //= $g{$r} // $l; $h{$g{$r}} = $g{$l} if $g{$l} ne $g{$r}; } $h{$k} = sub($e){$h{$e} ? __SUB__->($h{$e}) : $e}->($v) while ($k, $v) = each %h; $g{$_} = $h{$g{$_}} // $g{$_} for keys %g; push @{$r{$v}}, $k while ($k, $v) = each %g; say "@$_" for values %r; ※見易くするためインデントを全角スペースに置換してあります 実行結果 $ perl 22_206_grouping.pl b3 a3 a5 b4 a4 a1 b1 a2 b2 c1 d1 d3 c3 c2 d2 c4 e3 e1 e2 http://mevius.5ch.net/test/read.cgi/tech/1691038333/216
217: 9 [sage] 2024/02/04(日) 18:22:17.66 ID:jTY6zdRX >>208 宛てじゃなかった >>206 の回答だったわ… orz http://mevius.5ch.net/test/read.cgi/tech/1691038333/217
241: 9 [sage] 2024/02/16(金) 02:56:10.41 ID:7jtCAGu+ >>234 Perl5 for $n (0,17,100,123459321) { my %a; for (0..$n) { $i = $n - $_; $a{$i} = $i if 0 <= $i and $i =~ /^((\d)(?1)\2|\d?)$/; $j = $n + $_; $a{$j} = $j if $j =~ /^((\d)(?1)\2|\d?)$/; last if keys %a; } @a = keys %a; print "$n -> @a\n"; } ※見やすくするためインデントを全角スペースに置換してあります。 実行結果 $ perl 22_234_palindromic_number.pl 0 -> 0 17 -> 22 100 -> 99 101 123459321 -> 123464321 123454321 http://mevius.5ch.net/test/read.cgi/tech/1691038333/241
242: 9 [sage] 2024/02/16(金) 03:13:10.80 ID:7jtCAGu+ >>241 last if keys %a; } @a = keys %a; は last if @a = keys %a; } とコンパクトに書けるんだった、まぁいいや http://mevius.5ch.net/test/read.cgi/tech/1691038333/242
243: 9 [sage] 2024/02/16(金) 14:47:55.29 ID:TIAwaOOw >>234 Perl5、小さい方の検索は0で止まるので負の値を避ける必要はなかった、書き直し。 $r = qr/^((\d)(?1)\2|\d?)$/; for $n (0,17,100,123459321) { my %a; for (0..$n) { $a{$n - $_} = 1 if ($n - $_) =~ $r; $a{$n + $_} = 1 if ($n + $_) =~ $r; last if @a = keys %a; } print "$n -> @a\n"; } http://mevius.5ch.net/test/read.cgi/tech/1691038333/243
246: 9 [sage] 2024/02/17(土) 02:10:36.54 ID:K8P5qDCx >>234 Python3 def f(k): s = str(k) return s == s[::-1] for n in [0, 17, 100, 123459321]: l = set() for i in range(n + 1): if f(n - i): l.add(n - i) if f(n + i): l.add(n + i) if l: print(n, l) break ※見易くするためインデントは全角空白に置換してあります 実行結果 $ python3 22_234_palindromic_number..py 0 {0} 17 {22} 100 {99, 101} 123459321 {123454321, 123464321} http://mevius.5ch.net/test/read.cgi/tech/1691038333/246
263: 9 [sage] 2024/02/20(火) 17:18:07.59 ID:X5uoFLgg 「どんなテストしたの?」 って質問だよ http://mevius.5ch.net/test/read.cgi/tech/1691038333/263
362: 9 [sage] 2024/06/11(火) 14:41:10.23 ID:NjINqn/m >>348 Perl5 ($x = '04:05:06') =~ s/:/*/g; print eval $x; http://mevius.5ch.net/test/read.cgi/tech/1691038333/362
363: 9 [sage] 2024/06/13(木) 14:34:57.00 ID:XgNTPGgf >>349 > 「バイトが1だったら次の4バイトを読み込んで整数として出力し、」 正直、意味がわからんかった 例で見ると 1 1 0 0 0 → 1 1 128 0 0 0 → 128 ということだが 1に続く4バイトを加算して出力するって意味だったのかいな http://mevius.5ch.net/test/read.cgi/tech/1691038333/363
368: 9 [sage] 2024/06/13(木) 17:03:39.85 ID:XgNTPGgf >>365 ああそういうことか「4バイトを読み込んで整数」と書いてあるのはそういう意味だったのか ならわかるかも。 オレは4バイト一個一個が整数だと捉えて、それを「4バイトを読み込んで整数」とは何のこっちゃと?になってたわ http://mevius.5ch.net/test/read.cgi/tech/1691038333/368
369: 9 [sage] 2024/06/13(木) 17:07:01.55 ID:XgNTPGgf すまんね68系で育ったもんですぐ連想できなんだ http://mevius.5ch.net/test/read.cgi/tech/1691038333/369
483: 9 [sage] 2025/01/20(月) 01:11:38.35 ID:zWVP8H/r >>474 Perl5 $s = '(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]'; $h{$_} .= $_ for $s =~ /\(\d+\)|\[\d+\]/g; use List::Util 'sum'; $v{$h{$_}} = sum($h{$_} =~ /\d+/g) for keys %h; print "$_\n" for sort{$v{$b} <=> $v{$a}} keys %v; 実行結果 ~ $ perl 22_474_value.pl [10000] [5000] [1000][1000][1000][1000] (500) (100)(100)(100) (50) (10)(10) (5) (1) http://mevius.5ch.net/test/read.cgi/tech/1691038333/483
484: 9 [sage] 2025/01/21(火) 02:09:25.80 ID:Kvjf8jsk >>483 Perl5 $_ = 'abc def ghi'; print join(' ' x 4, split) . "\n"; http://mevius.5ch.net/test/read.cgi/tech/1691038333/484
491: 9 [sage] 2025/01/24(金) 01:44:22.46 ID:p08ruAfw >>485 Perl5 for $n (1..3) { @cp = @s = qw(A B C); while(--$n) { @cp = map{ $p = $_; map{ "$p$_" } @s } @cp } print "@cp\n"; } ※見易くするためインデントは全角スペースに置換してあります 実行結果 ~ $ perl 22_485_CartesianProd.pl A B C AA AB AC BA BB BC CA CB CC AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC BBA BBB BBC BCA BCB BCC CAA CAB CAC CBA CBB CBC CCA CCB CCC http://mevius.5ch.net/test/read.cgi/tech/1691038333/491
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s