[過去ログ] プログラミングのお題スレ 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*