プログラミングのお題スレ Part22 (860レス)
プログラミングのお題スレ 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
492: 9 [sage] 2025/01/24(金) 17:38:14.24 ID:cg1ZmS3G >>464 Perl5 for (<DATA>) { chomp; print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n"; } __DATA__ A B AB ABB AAB AABB ABAABBAAABBB ABC AABABB ※見易くするためにインデントを全角スペースに置換してあります 実行結果 ~ $ perl 22_464_AB_rec_rex.pl → false A → false B → false AB → true ABB → false AAB → false AABB → true ABAABBAAABBB → true ABC → false AABABB → false http://mevius.5ch.net/test/read.cgi/tech/1691038333/492
494: 9 [sage] 2025/01/25(土) 02:52:09.44 ID:wVQIyzpy >>492 /g の gは不要で / でおkだった…orz http://mevius.5ch.net/test/read.cgi/tech/1691038333/494
501: 9 [sage] 2025/01/27(月) 17:15:59.64 ID:cwZgX9Gy Perl5 for (qw{T CG ATA CGGA ATGAT GTTGCA CCCCGGG ACTGCGAG ATCAGAATA TGCCATGACA}) { %h = (); $h{$_}++ for split ''; print "$_ → ", (grep{1 < $h{$_}} keys %h), "\n"; } ※見易くするためインデントを全角スペースに置換してあります 実行結果 ~ $ perl 22_500_dupe_char.pl T → CG → ATA → A CGGA → G ATGAT → TA GTTGCA → GT CCCCGGG → CG ACTGCGAG → GAC ATCAGAATA → TA TGCCATGACA → TGAC http://mevius.5ch.net/test/read.cgi/tech/1691038333/501
502: 9 [sage] 2025/01/27(月) 21:20:12.94 ID:cwZgX9Gy >>501 Coilotに入力して処理内容を問うてみたらちゃんと返してきてワラタ https://copilot.microsoft.com/chats/rbPk2t5sxTRgAPM8BeSxZ http://mevius.5ch.net/test/read.cgi/tech/1691038333/502
503: 9 [sage] 2025/01/27(月) 21:22:36.75 ID:cwZgX9Gy CopilotのURLをコピペしても他の人に内容を見せることはできなかったワ…orz http://mevius.5ch.net/test/read.cgi/tech/1691038333/503
537: 9 [sage] 2025/02/07(金) 21:20:22.98 ID:dMuAEB5V >510 Perl5 https://ideone.com/lceN9R http://mevius.5ch.net/test/read.cgi/tech/1691038333/537
539: 9 [sage] 2025/02/07(金) 23:00:25.46 ID:dMuAEB5V >>537 しくった、これ一番短い範囲ではなく間違って一番長い範囲を検出してる。 サンプルデータではたまたま同じ解になるようで、間違いを見落としてしまった。 それから、一番長い(短いにすべきだったが)範囲の検索にわざわざ候補listをsortして[0]番目を 取得しているが無駄だし規模が大きくなると効率よくない 時間あったら直しますわ〜 http://mevius.5ch.net/test/read.cgi/tech/1691038333/539
540: 9 [sage] 2025/02/07(金) 23:02:20.43 ID:dMuAEB5V >>538 あーでも527の方式がいまんとこ一番早いんだな、検証thx http://mevius.5ch.net/test/read.cgi/tech/1691038333/540
541: 9 [sage] 2025/02/07(金) 23:04:01.40 ID:dMuAEB5V >>540 527 じゃなくて 537ね。スマソ http://mevius.5ch.net/test/read.cgi/tech/1691038333/541
544: 9 [sage] 2025/02/08(土) 00:22:55.52 ID:vma3KbbM >>510 Perl5、>>537 の修正版 https://ideone.com/klqLux 修正点 ・>>537では間違って一番長い範囲を検出していたが、一番短い範囲に修正した。(サンプルデータではそれらの解はたまたま一致) ・パターンが3文字であることに依存する定数「2(=3 -1 )」をハードコードしている箇所があったので、パターン文字数次第で処理するように修正 ・検出した候補文字列リストのうち一番短い物の検索のためにわざわざ候補リスト全体をsortするのをやめて reduceによって長さが一番短い文字列を検索するように修正 List::Utils は言語処理系にデフォルトで付属のコアモジュール、 List::MoreUtils はCPANのオプションノジュールだがideoneのperlにはインスコされていたので使っちゃいましたテヘペロ なお、候補文字列リストを作らず、ループの最内ifの中で一番短い文字列だけを記録していく様に記述すれば 大規模問題で若干効率が良くなるだろうけど、 まあいいや、もういいや。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/544
545: 9 [sage] 2025/02/08(土) 00:26:07.95 ID:vma3KbbM >>544 List::Utils → List::Util ね。スマソ http://mevius.5ch.net/test/read.cgi/tech/1691038333/545
547: 9 [sage] 2025/02/08(土) 17:50:15.20 ID:HpUe4TZQ >>510 Perl5、>>544 をもう一回だけ改良 https://ideone.com/YkuK1w 改良点: ・検出された範囲の候補を一通りリストに蓄えて、あとでその中から最短のものを探す方式を止めて、 範囲を検索するループ内のifでその時点までの最短な範囲の判定と記録を行うようにした。 ・CPANモジュールList::MoreUtilsのminmaxを使わない。 ・コアモジュールList::Utilはminだけ使う。reduceは使わない。 なんだかPerlのコードらしい感じが減って、ベタな感じのコードになってしまいました http://mevius.5ch.net/test/read.cgi/tech/1691038333/547
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.net/test/read.cgi/tech/1691038333/563
573: 9 [sage] 2025/02/11(火) 23:36:31.53 ID:yxel6cu3 先に言えよって、感じw http://mevius.5ch.net/test/read.cgi/tech/1691038333/573
581: 9 [sage] 2025/02/12(水) 00:03:23.15 ID:yw0CaA/O そういう条件は回答を見て思いついた後から言わず先に書くべきでは? そうでなければ、与えられた短い文とテストデータから、 処理対象データの範囲や要求仕様を読み手が色々解釈しても仕方ないだろ。 後からいろいろ言って批判なんてでもってのほかだと思うが。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/581
582: 9 [sage] 2025/02/12(水) 00:05:30.21 ID:yw0CaA/O 出来たもの見て実はこういう条件がありましたってケチつけるのはクソクライアントと一緒だな http://mevius.5ch.net/test/read.cgi/tech/1691038333/582
587: 9 [sage] 2025/02/12(水) 00:28:30.94 ID:yw0CaA/O 「データが二個未満の場合にはnilを返す。」とか書いとくべき。 でもそういう細かい条件をちまちま指定した窮屈な課題は、つまんなくて回答を造る意欲が減るんだよな。 シンプルで純な課題に対してどういうエレガントでエッセンシャルな回答があるか考えるのが楽しいのであって、 細かいいろんな条件を守る周辺コードで固めるような作業はつまんないから趣味の世界ではやりたくないな http://mevius.5ch.net/test/read.cgi/tech/1691038333/587
589: 9 [sage] 2025/02/12(水) 00:33:57.88 ID:yw0CaA/O ここはある意味、回答のコードでもって語るスレだからな http://mevius.5ch.net/test/read.cgi/tech/1691038333/589
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 3141592653589176793238462643383279502884191767169399375105820917674944 http://mevius.5ch.net/test/read.cgi/tech/1691038333/597
599: 9 [sage] 2025/02/13(木) 20:24:48.49 ID:UAfabByi 数学屋さんかいなw i,jの「3 4」とか「6 7」は桁の位置をしていしているのではなく数値列の中にある数字を指定するんジャマイカ とオレは解釈したが http://mevius.5ch.net/test/read.cgi/tech/1691038333/599
602: 9 [sage] 2025/02/13(木) 20:52:32.26 ID:UAfabByi なんでこの人はコーデイングするのがこんなに早いんだろう… http://mevius.5ch.net/test/read.cgi/tech/1691038333/602
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.net/test/read.cgi/tech/1691038333/616
617: 9 [sage] 2025/02/15(土) 10:39:20.52 ID:1WENuqRv >>611 お断り〜します〜♪ ハハ (゚ω゚) ((⊂ノ ノつ)) (_⌒ヽ εニ≡ )ノ`J http://mevius.5ch.net/test/read.cgi/tech/1691038333/617
633: 9 [sage] 2025/02/16(日) 06:28:07.79 ID:GnMUCCm7 qa0m30Tb の回答はどれよ? http://mevius.5ch.net/test/read.cgi/tech/1691038333/633
639: 9 [sage] 2025/02/16(日) 15:45:59.98 ID:GnMUCCm7 回答のコードでもって語ってほしいなぁ http://mevius.5ch.net/test/read.cgi/tech/1691038333/639
661: 9 [sage] 2025/02/28(金) 03:12:43.15 ID:MEvV9q87 負の場合に表現可能なビット数を配慮しないとPython の int.bit_count()と同じ結果にならないんジャマイカじゃまいか たぶんPythonの整数がbigintのせいだとおもう 絶対値とってpopcountとかやらないと意外とあれこれ書いてプチ長めのコードになりそうなおかん http://mevius.5ch.net/test/read.cgi/tech/1691038333/661
677: 9 [sage] 2025/03/16(日) 00:12:31.12 ID:8GU62dKf >>670 Perl5 use bigint; print $_ - reverse($_), "\n" for 12345, 4922235242952026704037113243122008064; 実行結果 $ perl 22_670_reverse_minus_biginit.pl -41976 314233029528909399960910650696685770 http://mevius.5ch.net/test/read.cgi/tech/1691038333/677
682: 9 [sage] 2025/03/18(火) 16:05:22.66 ID:GYPHuJM6 >>680 Perl5、ナイーブな処理方式だと時間がかかり過ぎで最後まで解けないおそれがあるが、なかなかほかに回答者が現れないし、 出現傾向を見るだけでも…と思って、16進数の桁にa-fの現れる値をskipするナイーブな処理方法で。 $m = sprintf '%x', 9 x 15; # 10進で15桁まで print $m . ' '. hex($m)."\n"; $m =~ s/[a-f]/9/g; print "1 .. 0x$m\n"; print "".localtime."\n"; for (1 .. $m) { $d = hex($_); if (0 <= index($d, $_)) { $n++; print "$d, 0x$_\n"; } } print "".localtime."\n"; print "$n count found"; http://mevius.5ch.net/test/read.cgi/tech/1691038333/682
683: 9 [sage] 2025/03/18(火) 16:07:07.28 ID:GYPHuJM6 >>682 実行結果 (改行数を減らすため適度につなげてます) $ perl 22_680_hex_substr_1.pl 38d7ea4c67fff 999999999999999 1 .. 0x3897994967999 Tue Mar 18 09:15:31 2025 1, 0x1 2, 0x2 3, 0x3 4, 0x4 5, 0x5 6, 0x6 7, 0x7 8, 0x8 9, 0x9 357440, 0x57440 357441, 0x57441 357442, 0x57442 357443, 0x57443 357444, 0x57444 357445, 0x57445 357446, 0x57446 357447, 0x57447 357448, 0x57448 357449, 0x57449 1079653, 0x107965 1081713, 0x108171 1122966, 0x112296 1123079, 0x112307 1123080, 0x112308 2246166, 0x224616 3369253, 0x336925 3371313, 0x337131 3412566, 0x341256 4494393, 0x449439 4494400, 0x449440 4535653, 0x453565 5658739, 0x565873 5658740, 0x565874 5660793, 0x566079 5660800, 0x566080 5702166, 0x570216 6783879, 0x678387 6783880, 0x678388 6784000, 0x678400 6825253, 0x682525 7948339, 0x794833 7948340, 0x794834 7950393, 0x795039 7950400, 0x795040 2182104640, 0x82104640 2182104641, 0x82104641 2182104642, 0x82104642 2182104643, 0x82104643 2182104644, 0x82104644 2182104645, 0x82104645 2182104646, 0x82104646 2182104647, 0x82104647 2182104648, 0x82104648 2182104649, 0x82104649 1263629042727, 0x12636290427 1307655353654, 0x13076553536 2573583194436, 0x25735831944 2617616245848, 0x26176162458 3330782168640, 0x30782168640 3330782168641, 0x30782168641 3330782168642, 0x30782168642 3330782168643, 0x30782168643 3330782168644, 0x30782168644 3330782168645, 0x30782168645 3330782168646, 0x30782168646 3330782168647, 0x30782168647 3330782168648, 0x30782168648 3330782168649, 0x30782168649 3883544086630, 0x38835440866 3927569962533, 0x39275699625 3927570397557, 0x39275703975 Core i7-8559U で6時間ほど実行してここまで高々13桁。 やはり想定通り気の利いた高速解放が要りますテヘペロ。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/683
686: 9 [sage] 2025/03/18(火) 21:41:48.53 ID:GYPHuJM6 >>683 >やはり想定通り気の利いた高速解放が要りますテヘペロ。 そのヒントになるかいな…? ・16進数を10進数に変換すると桁数は同じまたは高々1桁増えるのみ(だともう、証明略) ・桁数が同じ場合、16進数と10進数が同じということはあり得ない、自明 ・一桁増える場合は先頭または末尾に一桁増える。残りが16進数と同じ部分文字列であるかが評価対象となる http://mevius.5ch.net/test/read.cgi/tech/1691038333/686
687: 9 [sage] 2025/03/18(火) 21:42:49.00 ID:GYPHuJM6 >>685 あそうなんだ。じゃオレ様が一番乗りということでヨロ ノシ http://mevius.5ch.net/test/read.cgi/tech/1691038333/687
688: 9 [sage] 2025/03/18(火) 21:52:10.05 ID:GYPHuJM6 >>686 >・一桁増える場合は先頭または末尾に一桁増える。残りが16進数と同じ部分文字列であるかが評価対象となる 二桁増える場合があるのでこれは誤りでした http://mevius.5ch.net/test/read.cgi/tech/1691038333/688
691: 9 [sage] 2025/03/19(水) 16:33:58.47 ID:kDrq13vm >>686 > ・桁数が同じ場合、16進数と10進数が同じということはあり得ない、自明 大間違い。16進数と10進数で桁数が同じ値のうち、一桁のものは、16進も10審も同じだった…orz 結局、高速解放はあるんだろうか? あるいはコラッツ予想みたいに「無いかもしれない」類の、考えるだけ無駄な問題なのだろうか? http://mevius.5ch.net/test/read.cgi/tech/1691038333/691
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.045s