[過去ログ] プログラミングのお題スレ Part20 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
96
(32): 96 2021/07/28(水)13:12 ID:D9Z9/eJz(1) AAS
>>20 Perl5、DPで解けないかなと考えてたけど、すぐには思いつかずnaiveな解法

use List::Util 'max';
my $m;
sub f {
 my ($a, $b, $c) = @_;
 return () if $m and $m <= $c;
 my $aa = $a * $c - $b;
 return ($m = $c) if 0 == $aa;
 my @s;
 if (0 < $aa) {
省18
108: 96 2021/08/13(金)12:16 ID:Tqy/ucLn(1) AAS
>>103 Perl5

@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;

実行結果
~ $ perl 20_103.pl
aebdccdbea
116: 96 2021/08/17(火)22:38 ID:BrZ+lWok(1) AAS
>>114 Perl5

$it="うっふ〜ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF
省8
127
(1): 96 2021/09/06(月)12:09 ID:GTV7C5SZ(1) AAS
>>122 Perl5

use HTML::TreeBuilder;
@s = split',','東京,特許,許可局';
@a = map{['li', {class => 'pankuzu_item'}, $_]} @s;
$a[-1][1]{class} .= ' active';
$h = HTML::Element->new_from_lol(['ul', {class => 'pankuzu'}, @a]);
print $h->as_HTML('<>&', ' ', {});

実行結果
~ $ perl 20_122_pankuzu_list.pl
<ul class="pankuzu">
省4
128: 96 2021/09/06(月)13:04 ID:moEus4wD(1) AAS
>>127

use HTML::TreeBuilder;

だと色々引き連れて来るので、使う

use HTML::Element;

をuseすれば良かったんだけど、結果は同じだしまいいや…
140: 96 2021/09/10(金)22:13 ID:UuNKa3lP(1) AAS
>>132 Perl5

s/ESC(ESC|cr|lf)/\U$1/g;

実行結果
外部リンク:ideone.com
191
(3): 96 2021/09/25(土)22:19 ID:qK5TmKac(1) AAS
>>186 Perl5

use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
省7
195: 96 2021/09/26(日)11:06 ID:ROfWiNc+(1) AAS
>>186 Perl5、>>191だと分母が大きい値になるテストケースで下の桁が例解と違ってくるので、通分を下から再帰的に行って
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした

use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
 if (@r) {
  ($c, $e) = f($c, @r);
  $b *= $e;
 }
 ($a * $c + $b), $c;
}
省14
400: 96 2021/11/08(月)17:48 ID:+3VBQOCX(1) AAS
>>378
これか…
外部リンク:math.jp
プログラム化する以前に、解法を理解・考えることが難しいお題だな
415: 96 2021/11/09(火)03:16 ID:Fkau/hlA(1) AAS
OpenMPやithreadじゃだめなのかよ
430
(1): 96 2021/11/11(木)23:57 ID:JHz34AMz(1) AAS
>>425 Perl5、たまにはお相手して進ぜよう。5chの仕様に従うと↓こうだと思うが…

$uri = '外部リンク:www.google.com
use URI::Split qw(uri_split uri_join);
@a = uri_split($uri);
$a[1] = 'jump.5ch.net';
$a[2] = '/';
$a[3] = $uri;
print uri_join(@a), "\n";
442
(1): 96 2021/12/02(木)04:03 ID:EE6BdDDo(1) AAS
元のソースをローカルに保存しておかなかったのか
445: 96 2021/12/02(木)21:30 ID:m0u4nXXp(1) AAS
いま
外部リンク:codepad.org
復活してない?

サンプルURLとして前々スレの過去の回答

プログラミングのお題スレ Part18
2chスレ:tech
>174 名前:デフォルトの名無しさん[] 投稿日:2020/08/04(火) 19:24:17.96 ID:lImhU2CT
> >>173
> あーアホだったw
> タブ消去の仕様だとPythonだと分けわからんことになるなw
省6
624: 96 2022/08/02(火)01:11 ID:6KqVNIq0(1/2) AAS
>>615 Perl5

use feature qw{say signatures}; no warnings 'experimental';

sub f($i, @a) { $i and @a ? (f(@a), $i) : $i }

@a = split'',123;
say @a, f(@a);

実行結果
~ $ perl 20_615_mirror.pl
123321
625: 96 2022/08/02(火)01:20 ID:6KqVNIq0(2/2) AAS
>>615 Perl5 (リスト処理版)

@a = split '', 123;
print @a, map{@a[$#a - $_]} 0..$#a;

実行結果
~ $ perl 20_615_mirror_list.pl
123321
632
(1): 96 2022/08/05(金)19:36 ID:Rv34IsoP(1/2) AAS
>>630 Perl5が使える環境であれば…

~ $ cat 20_630_isort.pl
chomp (@a = <>);
sub f {join '', reverse split'', $_[0]}
print "$_\n" for sort{f($a) cmp f($b)} @a;

~ $ cat input.txt
aaaaCB
bbbBA
cccccDB

~ $ perl 20_630_isort.pl < input.txt > output.txt
省4
634: 96 2022/08/05(金)22:43 ID:Rv34IsoP(2/2) AAS
>>632
しまった、これだとsortの計算量 N・log N に応じた回数、比較のための文字列逆転 sub f の呼出しが起き、
データの行数が多いと遅いな
635
(1): 96 2022/08/06(土)00:54 ID:pYJx8bVL(1/3) AAS
>>630 Perl5、計算量の抑制に配慮したバージョンと実行例

$ cat 20_630_isort2.pl
print $_->[0] for sort{$a->[1] cmp $b->[1]} map{[$_, scalar reverse $_]} <>;

$ cat input.txt
aaaaCB
bbbBA
cccccDB

$ perl 20_630_isort2.pl input.txt > output.txt

$ cat output.txt
bbbBA
省2
636: 96 2022/08/06(土)01:06 ID:pYJx8bVL(2/3) AAS
>>635
これ各行の行末の改行まで含めてreverseしてsortキーとするので、
もし入力ファイルの最後の行に改行が欠けていて無かったらsort結果がおかしくなる。
そのような万が一の場合に対してもrubstさも持たすならこうか

chomp(@a = <>);
print "$$_[0]\n" for sort{$$a[1] cmp $$b[1]} map{[$_, scalar reverse]} @a;
639: 96 2022/08/06(土)08:20 ID:pYJx8bVL(3/3) AAS
>>610 Perl5

use Bit::Vector;
$v = Bit::Vector->new(101);
for (<DATA>) {
 ($h, $s, $e) = /0x(\S+) (\S+) (\S+)/;
 $v->from_Hex("$h");
 $v->Interval_Reverse($e, $s);
 ($r) = $v->to_Hex() =~ /0+(\w+)/;
 print "$_ => 0x$r\n";
}
省13
642
(3): 96 2022/08/06(土)15:02 ID:ddLJv/Kp(1/2) AAS
>>640
gnuWin32 用の rev.exe が欲しいなら、書き起こさなくともutil-linux-ng パッケージに入っていると思うが…

util-linux-ng for Windows
外部リンク[htm]:gnuwin32.sourceforge.net

Util-Linux contains miscellaneous utilities:
col: filter reverse line feeds from input
colcrt: filter nroff output for CRT previewing
colrm: remove columns from a file
ddate: converts Gregorian dates to Discordian dates
getopt: parse command options (enhanced)
省14
643: 96 2022/08/06(土)15:16 ID:ddLJv/Kp(2/2) AAS
Cygwin などに使われている util-linux パッケージのオリジナルな現行のソースは

GitHub - util-linux/util-linux
外部リンク:github.com

かな。そのうち rev.c のソースは

util-linux/rev.c at master ・ util-linux/util-linux ・ GitHub
外部リンク[c]:github.com

ちな util-linux パッケージは2006年に fork したとき名前に -ng をつけて util-linux-ng になったが
2010年に util-linux に名前を戻している。
cf.)
util-linux - Wikipedia
省2
657: 96 2022/08/08(月)01:54 ID:Fkng8CYp(1) AAS
>>648 Perl5

use List::Util 'max';
for (<DATA>) {
 %h = map{length($_) => $_} /(,?0(?:,0)+,?)/g;
 $n = max keys %h;
 chomp($i = $_);
 s/$h{$n}/::/ if $n;
 s/,/:/g;
 print "$i => $_";
}
省16
673
(2): 96 2022/08/14(日)01:45 ID:jl8HjsTF(1/2) AAS
>>666 Perl5

use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[(shuffle@a)[0..6]]}\n"
 for 1..5;

実行結果

$ perl 20_666_shuffle1-37x5.pl
3, 2, 10, 25, 9, 23, 27
35, 6, 30, 8, 37, 29, 36
省3
675: 96 2022/08/14(日)01:59 ID:jl8HjsTF(2/2) AAS
>>666 Perl5、>>673 は sort するの忘れてた…orz

use List::Util 'shuffle';
@a = 1..37;
$" = ', ';
print "@{[sort{$a <=> $b} ((shuffle @a)[0..6])]}\n" for 1..5;

実行結果

$ perl 20_666_shuffle1-37x5.pl
5, 9, 22, 28, 30, 32, 36
1, 2, 7, 21, 23, 26, 36
6, 14, 15, 16, 19, 26, 28
省2
719: 96 2022/08/21(日)02:42 ID:P6BPpVvp(1) AAS
>>712 Perl5

use feature qw{say signatures}; no warnings "experimental::signatures";
sub ($n, @a) {
 $h{$$_[0]} = $$_[1] for map{[/(\w+)/g]} @_[1..$n];
 sub ($m, @) {
  $g{$h{$$_[0]}} += $$_[1] for map{[/(\w+)/g]} @_[1..$m];
 }->(@a[$n..$#a]);
 say "$_:$g{$_}" for sort keys %g;
}->(<>);

※見易くするためインデントを全角スペースに置換してあります。
省2
742: 96 2022/08/26(金)05:19 ID:GgZblxs6(1) AAS
>>740
人をタダで利用してない?
748
(1): 96 2022/08/29(月)02:30 ID:QAZMtAov(1/3) AAS
>>734 Perl5

for (<>) {
 print;
 @a = /(\d+)/g;
 $w = pop @a;

 $o = ($w - 1) >> 3;
 $m = $w - $o * 8;
 $n = 2**(8 - $m);

 $l = join '.', @a[0..$o-1];
 $l .= '.' if '' ne $l;
省9
749: 96 2022/08/29(月)02:55 ID:QAZMtAov(2/3) AAS
>>748
128.0.0.0/1 の結果が変
バグ入りだ、ゴメンチャイ
750: 96 2022/08/29(月)03:01 ID:QAZMtAov(3/3) AAS
あれ?いいのかな?
仕様を推測して作ったけどちょっと混乱したかも…
寝るわ
756: 96 2022/09/10(土)02:29 ID:7pWsuKpo(1) AAS
>>751 Perl5

$ls = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1];
$ss = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202];
sub f {2 < @_ ? (f(@_[1..$#_]), map{[$_[0] * $_, $_[0], $_]} @_[1..$#_]) : ()}
@rs = sort{$$a[0] <=> $$b[0]} f @$ls;
for $aa (@$ss) {
 @b = grep{$aa <= $$_[0]} @rs;
 print @b ? "$aa:$b[0][1],$b[0][2]\n" : "$aa:error\n";
}

実行結果
省11
812: 96 2022/10/13(木)07:01 ID:JNehkz2R(1) AAS
>>773
自分でやれ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.284s*