[過去ログ] プログラミングのお題スレ Part20 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
658: 2022/08/08(月)18:20 ID:911TGIju(1) AAS
>>648
Common Lisp 外部リンク:ideone.com
JavaScript 外部リンク:ideone.com
659: 2022/08/10(水)20:35 ID:xa8ST9bT(1/2) AAS
>>648 ocaml
外部リンク:ideone.com
660: 2022/08/10(水)21:08 ID:xa8ST9bT(2/2) AAS
>>648 octave
外部リンク:ideone.com
・[1, 1, 1, 1, 1, 1, 1, 1]のとき正しくなかったのを修正
661
(2): 2022/08/11(木)15:24 ID:/k5aJ7yS(1) AAS
>>648
Kotlin
外部リンク:paiza.io

できたことはできたが、なんかもっと良いやり方がありそうな気もする。
662: 2022/08/11(木)15:46 ID:wxhIEZ4F(1/2) AAS
>>648
敢えて正規表現使わずKotlinで。ややこしかったわ
外部リンク:ideone.com
663: 2022/08/11(木)15:51 ID:wxhIEZ4F(2/2) AAS
>>661
別の解き方が見れておもろい
664: 2022/08/11(木)22:42 ID:lr7eXs7b(1) AAS
>>648 java
外部リンク:ideone.com
665: 661 2022/08/12(金)00:33 ID:DNG+vRxr(1) AAS
全部0の時に :: にならなかったので>>661はちょっと修正した。
666
(9): 2022/08/13(土)14:28 ID:JbrEzaSr(1) AAS
お題
1~37からランダムに重複なく7つの数を選び出して小さい順にソートしてください
それを5つ出力してください


[2, 4, 9, 13, 20, 29, 36]
[1, 4, 12, 13, 15, 20, 33]
[1, 3, 5, 7, 11, 20, 24]
[3, 7, 8, 21, 27, 33, 34]
[1, 2, 14, 23, 26, 35, 36]
667: 2022/08/13(土)14:31 ID:JPhXlbrB(1) AAS
>>666 Ruby
[*1..37].sample(7).sort

# => [4, 8, 15, 20, 24, 26, 37]
668
(1): 2022/08/13(土)18:53 ID:jyB6kjuE(1/2) AAS
>>666 Common Lisp
外部リンク:ideone.com
669: 2022/08/13(土)19:08 ID:jyB6kjuE(2/2) AAS
>>668
投稿後一部訂正、n の範囲チェックを追加

負数は弾く
(check-type n (integer 0 *))

上限はシーケンスの長さ
(loop repeat n

(loop (min n (length sequence))
670: 2022/08/13(土)19:54 ID:JW3gpbYe(1) AAS
>>666 octave
外部リンク:ideone.com
f = @() sort(randperm(37, 7));
cell2mat(arrayfun(@(~) {f()}, (1:5)'))
671
(1): 2022/08/14(日)00:39 ID:YzvfyuVN(1/2) AAS
>>666
Kotlin script

repeat(5) { println((1..37).toList().shuffled().slice(0..6).sorted()) }

実行例

[6, 7, 9, 10, 16, 22, 27]
[2, 8, 9, 11, 16, 32, 33]
[11, 13, 18, 25, 26, 30, 34]
[2, 3, 12, 14, 20, 27, 37]
[7, 13, 14, 19, 27, 30, 35]
672: 671 2022/08/14(日)00:41 ID:YzvfyuVN(2/2) AAS
>>671はこれでも同じだった (toList() 抜き)。

repeat(5) { println((1..37).shuffled().slice(0..6).sorted()) }
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
674: 2022/08/14(日)01:54 ID:v+rcxIed(1) AAS
>>673
ソートされてないじゃん
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
676: 2022/08/14(日)12:35 ID:JoIEy2rI(1/2) AAS
>>666 ocaml
外部リンク:ideone.com
let seq b e =
let rec aux acc n =
if n < b then acc else aux (n :: acc) (pred n)
in aux [] e
let (<<) f g x = f (g x)
let take n =
let rec aux acc n = function [] -> acc | x :: xs ->
if n <= 0 then acc else aux (x :: acc) (pred n) xs
省8
677: 2022/08/14(日)18:02 ID:JoIEy2rI(2/2) AAS
>>666 c
外部リンク:ideone.com
678
(3): 2022/08/14(日)21:45 ID:b/j10zkL(1) AAS
(1) aとbからなる文字列があるときその中で部分文字列bbaが最初に完成する文字数を求める
ab -> 0
aaa -> 0
bba -> 3
bbba -> 4
babbab -> 5
bbabbaa -> 3

(2) ちょうど50文字のaとbからなる全ての並びの文字列の内
50文字目(最後)にbbaが完成するのは何通りあるか?

長さ3文字で3文字目に完成するのはbbaのひとつだけ
省1
679
(2): 2022/08/14(日)22:24 ID:gf0q/4T2(1/3) AAS
>>678 Ruby
(1)
%w[ab aaa bba bbba babbab bbabbaa].each do |s|
i = s =~ /bba\K/
puts '%s -> %d' % [s, i ? i + 3 : 0]
end

# =>
ab -> 0
aaa -> 0
bba -> 3
省6
680
(5): 2022/08/14(日)22:30 ID:z6QFcjeU(1) AAS
行列の掛け算を実装せよ
二次正方行列 A=((1 -2) (2 3)), B = ((-2 1)(3 -1)) について
AB, BA を求めよ
可能であれば二次正方行列以外の行列についても対応せよ
実装の細かい点については出題者は指定しないので良きに計らって結構。

<お願い>
行列の積において結合則成立の証明を教えてください
681: 2022/08/14(日)22:43 ID:0XTzAkvO(1) AAS
>>678 c
外部リンク:ideone.com
・(1)(2)ともに自信なし(たぶんお題の意味わかってない)
682
(1): 2022/08/14(日)22:49 ID:gf0q/4T2(2/3) AAS
>>680 Ruby Matrixクラス不使用
def product(a, b)
[
[a[0][0] * b[0][0] + a[0][1] * b[1][0], a[0][0] * b[0][1] + a[0][1] * b[1][1]],
[a[1][0] * b[0][0] + a[1][1] * b[1][0], a[1][0] * b[0][1] + a[1][1] * b[1][1]],
]
end

p product([[1, -2], [2, 3]], [[-2, 1], [3, -1]])

# => [[-8, 3], [5, -1]]

# 夏休みの宿題は自分でやりましょう
683
(1): 2022/08/14(日)22:51 ID:7JC7m3TJ(1) AAS
>>682
>二次正方行列以外の行列についても対応せよ
684: 2022/08/14(日)23:05 ID:gf0q/4T2(3/3) AAS
>>680 >>683
def product(a, b)
m = a.first.size
c = Array.new(a.size){[]}
a.size.times do |i|
b.first.size.times do |j|
c[j][i] = m.times.map{|k| a[k][i] * b[j][k]}.sum
end
end
c
省5
685: 2022/08/14(日)23:09 ID:ct8M+Uij(1) AAS
NxMのデータをどう定義するか だけの問題だな
毎回悩む 下は後悔してるタイプ
(defparameter *position-IO*
(loop
for input in '(7 8 9
4 5 6
1 2 3)
for pos below 9
collect (cons input pos)))
686
(1): 2022/08/15(月)00:42 ID:PTEGgn5Q(1) AAS
>>679
どういう頭してたらその法則性に気づくん???
687: 2022/08/15(月)01:31 ID:b/MTJSvV(1) AAS
>>678
Kotlin script

(1)
listOf("ab","aaa","bba","bbba","babbab","bbabbaa").forEach { print("$it ->"); it.indexOf("bba").let { if (it >= 0) println(it + 3) else println(0) } }

実行時の出力

ab ->0
aaa ->0
bba ->3
bbba ->4
babbab ->5
省5
688
(1): 2022/08/15(月)01:56 ID:RG8mAl+Q(1) AAS
(2)
出題の仕方が間違ってた
最後に唯一のbbaが現れるパターンと書くべきだった
自分の中ではこのことしか考えてなかったから
>>679さんは汲んでくれたようで、早さにも驚いたけど
689: 2022/08/15(月)09:19 ID:jWRkxbjN(1) AAS
なるほど, 再帰的に構成すればいいのか
aから始まる時: a + x[n-1]
baから始まる時: ba + x[n-2]
bbから始まる時: bb...bba
690: 2022/08/15(月)09:43 ID:90U51paY(1) AAS
>>686
そういう漸化式は普通に受験で良くでてくる
691
(1): 2022/08/15(月)17:00 ID:ioAOBwsA(1) AAS
>>680
外部リンク:ideone.com
外部リンク:ja.wikibooks.org
692: 2022/08/15(月)17:16 ID:RVV7PTHo(1/2) AAS
>>691 c
外部リンク:ideone.com
・二次元でintのみ
693
(1): 2022/08/15(月)17:19 ID:RVV7PTHo(2/2) AAS
>>680
外部リンク:ideone.com
・二次元でintのみ
694: 693 2022/08/16(火)16:05 ID:y+iYdbLW(1) AAS
>>680 c
外部リンク:ideone.com
>>693から若干の整理
・インデントも修正
695
(1): 2022/08/16(火)19:29 ID:6LZk+vGC(1) AAS
>>688
え?言ってる意味がわからない。どういうこと?
696: 2022/08/16(火)20:01 ID:xodQRDI1(1) AAS
bba+gge=momo
697
(1): 2022/08/16(火)20:30 ID:E3OXZYXp(1) AAS
>>695
末尾以外にbbaが現れる文字列を除外するってことじゃろう
698: 2022/08/16(火)21:15 ID:dhC56AkH(1) AAS
bbaが最後に達成されるんじゃなければ2^47計算するだけのなんの面白みもない問題になるからそこで気付く人は気づくよね
699: 2022/08/16(火)23:04 ID:mbmTGUKF(1) AAS
ついでに50文字で今度は最後がbbaじゃなくて
bbbのときとbabのときのそれぞれのパターン数を求めるって問題
700: 2022/08/17(水)01:28 ID:0f27vmNE(1) AAS
>>697
なるほど。やっと意味がわかった。
701
(4): 2022/08/17(水)14:04 ID:UFtMHmKs(1) AAS
お題:分割されている顔文字を結合して表示してください
1つの顔文字は半角4字で構成。左右対称。2字ずつ半分に分割されてシャッフルされている
出力する顔文字の順番は自由とする

入力 < ^)(^
出力 > (^^)

入力 < ^)(-(^-)(vv)
出力 > (^^)(--)(vv)
702: 2022/08/17(水)14:59 ID:2ZT38iyw(1/2) AAS
お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」をそれぞれ表示する方法を示してください
便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。
0 1 2 3 4 5 6 7 8
...
...............80
左から1列目の9マスは
703
(7): 2022/08/17(水)15:10 ID:2ZT38iyw(2/2) AAS
途中送信してしまった

お題:ナンプレ(数独)における「縦9マス(列)」「横9マス(行)」「3x3マス」のマスをそれぞれ表示する方法を示してください
※便宜的に、ナンプレのマスには左上から右へ、右下に向かい0〜80までの数値を入れます。

0 1 2 3 4 5 6 7 8
...
...............80

例えば左から1列目の9マスは
[0 9 18 27 36 45 54 63 72]
となります。
等差を利用して数字だけを表示するものは不可です。
省1
704
(1): 2022/08/17(水)21:47 ID:GkJOOerG(1) AAS
>>703 c
外部リンク:ideone.com
705: 2022/08/17(水)23:34 ID:yTY/OYLu(1) AAS
>>701
(><)
706: 2022/08/18(木)02:15 ID:KCyiWPRI(1) AAS
>>703
perl5
外部リンク:paiza.io
707: 2022/08/18(木)03:07 ID:dBOjwuYR(1) AAS
>>701 JavaScript
> ['^)(^', '^)(-(^-)(vv)', '<)(>'].map((R => input => Array.from(input.matchAll(/\((.)/g)).reduce((output, [l, r]) => output + l + R(r) + ')', ''))(r => r == '>' ? '<' : r))
[ '(^^)', '(--)(^^)(vv)', '(><)' ]
708: 2022/08/18(木)10:19 ID:KriVCD9m(1/3) AAS
>>701 Ruby
f = -> str do
loop do
str.sub!(/(.)\)(.*)\(\1/, '(\1\1)\2') ||
str.sub!(/\((.)(.+)\1\)/, '(\1\1)\2') ||
(break str)
end
end

%w[ ^)(^ ^)(-(^-)(vv) (-(^-)^)].each do |s|
puts '%s -> %s' % [s, f[s.b]]
省5
709
(1): 2022/08/18(木)10:20 ID:KriVCD9m(2/3) AAS
>>703 Ruby
PLACEHOLDER = [*0..80]

field = 9.times.reduce([]) do |s, y|
s << 9.times.map do |x|
PLACEHOLDER[9 * y + x]
end
end

puts field.map{|r| r.map{'%02d' % _1}.join}

# =>
000102030405060708
省8
710: 2022/08/18(木)10:42 ID:KriVCD9m(3/3) AAS
>>703 お題をよく読んでいなかった >>709の続き
row = -> (n, field) {field[n]}
column = -> (n, field) {field.map{_1[n]}}
block = -> (n, field) {9.times.map{n * 3 + n / 3 * 18 + _1 + _1 / 3 * 6}.map{field.flatten[_1]}}

puts row[7, field].join(?,)
# => 63,64,65,66,67,68,69,70,71

puts column[7, field].join($/)
# =>
7
16
省12
711: 704 2022/08/18(木)23:38 ID:YBxy/c4L(1) AAS
>>703 c
外部リンク:ideone.com
>>704から若干の整理
712
(6): 2022/08/19(金)23:42 ID:GkIv/1vJ(1) AAS
お題
<user>:<group>の数
<user>:<group>
<user>:<point>の数
<user>:<point>
が入力されます

<group>ごとに<point>を集計して<group>順に
<group>:<point>を出力してください

例)
// 入力
省18
713
(1): 2022/08/19(金)23:58 ID:zRvvDV0W(1) AAS
なんで数を入力してるんだ?
後の情報であきらかではないか
まさかグループ名が整数でも良いと考えている?
714: 2022/08/20(土)00:02 ID:xIohwuBb(1) AAS
>>712 Ruby
g, p = str.split(/^\d+$/)[1, 2].map{_1.strip.each_line.map{|s| s.chomp.split(?:)}.to_h}
puts g.reduce(Hash.new(0)){|h, (k, v)| h[v] += p[k].to_i; h}.sort.map{_1.join(?:)}

# =>
GroupA:5
GroupB:15
GroupC:21
715: 2022/08/20(土)07:49 ID:/HXUcxOA(1) AAS
// >>712 Node.js
import readline from 'node:readline';
const rl = readline.createInterface({input: process.stdin, output: process.stdout});
const all = [/* {user, group, point}, ... */];
let usergroup = false;
rl.on('line', line => {
line = line.trim();
if (line) {
if (/^\d+$/.test(line)) {
usergroup = !usergroup;
省16
716: 2022/08/20(土)17:09 ID:tvd+mgyM(1) AAS
>>712 c
外部リンク:ideone.com
717: 2022/08/20(土)21:26 ID:myFbjTal(1) AAS
>>712
C#
外部リンク:paiza.io
718: 2022/08/20(土)22:24 ID:5JSGWnVi(1) AAS
>>703ってこれじゃだめなのかな
7行で書ける
外部リンク:ideone.com
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
720: 2022/08/21(日)06:03 ID:V5T4kdVo(1) AAS
>>712
<group>順にって、何を元にして group の順序を決めるの?
入力された順?それだと例の入力のように GroupC, GroupA, GroupC の順で来ている場合はどうするの?
721: 2022/08/21(日)07:03 ID:3JIuIXQv(1) AAS
<group>毎という事だと思う
サンプル見るとgroup名か集計したpointの昇順かも知れないけどそこはどうとでもなりそうだし
722: 2022/08/21(日)08:49 ID:0ZMA3aWJ(1) AAS
>>713
実際にここでも数字を使っている例が出て来てるからわかると思うけど
競プロなんかではよくあるフォーマットだよ
723: 2022/08/21(日)18:07 ID:ecIOs+Jg(1/4) AAS
>>666
C#
外部リンク:paiza.io
724
(4): 2022/08/21(日)18:28 ID:Y2TZP89X(1) AAS
お題:Hello, World!を出力中にプログラムを強制終了せよ
Hello, World!が完全に出力されたらGAME OVERとする
725
(1): 2022/08/21(日)18:45 ID:ui07Fbeq(1/2) AAS
>>724 Ruby
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}
Thread.new{exit}

# =>
Hello, World!
726: 2022/08/21(日)18:49 ID:ecIOs+Jg(2/4) AAS
>>701
C#
外部リンク:paiza.io
727: 2022/08/21(日)18:51 ID:ui07Fbeq(2/2) AAS
>>725 訂正
Thread.new{'Hello, World!'.each_char{|c| print c; sleep 0.01}; raise 'GAME OVER'}

Thread.new{exit!}

# => H
728: 2022/08/21(日)19:50 ID:ecIOs+Jg(3/4) AAS
>>703
C#
外部リンク:paiza.io
729
(1): 2022/08/21(日)20:19 ID:/7u80ZfN(1) AAS
>>724 c
外部リンク:ideone.com
730: 2022/08/21(日)21:11 ID:ecIOs+Jg(4/4) AAS
>>648
C#
外部リンク:paiza.io
731: 729 2022/08/22(月)19:20 ID:7CA3B9Dd(1) AAS
>>724 c
外部リンク:ideone.com
>>729 どう見ても正常終了です。本当にありがとうございました。
・子プロセスの強制終了を見届けてから自分自身も強制終了
732
(1): 2022/08/25(木)15:38 ID:bJn+zm7R(1) AAS
>>724
その強制終了って人間が Ctrl + C を押すなどしてやるという意味?
間に合わずに全部出力し切った場合は GAME OVER 出すということ?
733
(2): 2022/08/25(木)15:52 ID:BfuXla1W(1) AAS
>>732
強制終了→exit(0)などでプログラム的に終了させる
GAME OVER→お題の達成失敗
734
(4): 2022/08/25(木)16:09 ID:6j74uL6b(1) AAS
54.144.0.0/12といったどこかで見たことあるような形式の文字列を入力すると
^(?!(54.144.|54.145.|54.146.|54.147.|54.148.|54.149.|54.150.|54.151.|54.152.|54.153.|54.154.|54.155.|54.156.|54.157.|54.158.|54.159.))
といったいい感じの文字列が標準出力に出力されるやつ、誰か作れますか?
例の他にも54.208.0.0/13 54.216.0.0/14 54.192.0.0/12 54.160.0.0/11 54.220.0.0/15といった似た感じの文字列が入力され
やはりいい感じに処理された別の文字列が出力されます

できればライセンスはゼロ条項BSDライセンスでお願いします
735: 2022/08/25(木)16:22 ID:0z7AphVM(1/2) AAS
ま、まあ、作れなくはないかな…
736: 2022/08/25(木)18:48 ID:0xws5w3m(1) AAS
フワっとした頭の中にしか定義されてない案件なんて誰もこなせないぞ
本人以外は
737: 2022/08/25(木)20:40 ID:0z7AphVM(2/2) AAS
>>734
Java
外部リンク:paiza.io
738
(1): 2022/08/25(木)21:10 ID:/BGaqBqg(1) AAS
>>734 JavaScript
function _734(ip_range) {
const result = [];
const as = ip_range.split(/\D/).map(_ => Number(_));
const m = as.at(-1);
const q = Math.floor(m / 8);
const r = m % 8;
const e = 8 - r;
const l = as[q].toString(2).padStart(8, '0').slice(0, r);
for (let i = 0, sup = 2 ** e; i < sup; i++) {
省5
739: 2022/08/25(木)22:00 ID:JPPVgQ9Y(1) AAS
beer licenseでよければ書くが
740
(2): 2022/08/26(金)04:09 ID:NIKxWs5c(1/3) AAS
割とすぐに出来るもんなんですね
どちらも実用上問題なさそうな、いい感じの実行結果です

>738は最新の実行環境に心当たりがなかったので確認に手間どりましたが
Chromeのコンソールから実行して確認できました
(cscriptで実行しようとしたらat()に対応してなかったので)

いやー勉強になります、ありがとう
741: 2022/08/26(金)04:49 ID:0rX9u4fb(1) AAS
>>740
スレタイも読めないアホは消えろ
742: 96 2022/08/26(金)05:19 ID:GgZblxs6(1) AAS
>>740
人をタダで利用してない?
743
(1): 2022/08/26(金)11:51 ID:d54FvNjc(1) AAS
>>733
マルチスレッドかマルチタスクで "Hello, world!" を出力する処理と、ランダムなタイミングでそれを強制終了させる処理が動くということで良いのか?
そして出力中に停止できなかったら "GAME OVER" が最後に出ると。
744: 2022/08/26(金)14:32 ID:71YXfdUw(1) AAS
>>743
その実装でもいいよ
題意はいかにHello, World!出力中にプログラムを終了させるかだから
sleep挟んでもいい
745: 2022/08/26(金)18:44 ID:NQ4mbOjq(1) AAS
>>733
#!/usr/bin/env sh
cat <<"EOL" | perl -ne '/(Hello, World)(?:[!])/ ? die " $1 got failed." : print'
> foo
> bar
> baz
> Hello, World
> Hello, World
> Hello, World!
> you can't see me, right?
省7
746: 2022/08/26(金)21:28 ID:NIKxWs5c(2/3) AAS
はて?プログラミングのお題を投げて、競技的な興味をもって答えたくなった人が答え
その回答に興味があれば参照して「普段は扱ってないこの言語だとそういうやりかたなのか」
「自分とは違うスマートなやり方があったのか」と思ったりするスレ、という理解でしたが

もしかして投げたときに”お題”という文字が抜けてたのが問題ありましたか?
概ね正解とするに足る実行結果を、実用上問題なさそうと表現したことが拙かったですか?
もしそうなら申し訳ない、次からは気をつけます
747: 2022/08/26(金)21:31 ID:NIKxWs5c(3/3) AAS
ついでというかなんというか>734の自分のお題に対する自己回答です(色々と手抜きしてありますが)
#!/usr/bin/ksh
function proc {
typeset A B C D E F N M L I
IFS='.','/' read A B C D E <<XYZ
$1
XYZ
let N="(${E}+8)/8" let M="8-(${E}%8)"
if [ $N -eq 5 ]; then echo -n "${A}.${B}.${C}.${D}"; return; fi
set -A BASE dummy "" "${A}." "${A}.${B}." "${A}.${B}.${C}."
省6
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
あれ?いいのかな?
仕様を推測して作ったけどちょっと混乱したかも…
寝るわ
751
(10): 2022/09/09(金)22:29 ID:zwPgoVui(1) AAS
お題
長方形の1辺の長さのリストと正方形の面積のリストが入力されます

それぞれの正方形の面積について
長方形の1辺の長さのリストから2つを選んで掛け合わせ長方形の面積を計算します
長方形の面積が正方形の面積以上でかつ最小の面積となる組み合わせを探して出力してください
見つからなかった場合はerrorを出力してください

(例)
// 1辺の長さのリスト
[17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]

// 正方形の面積のリスト
省12
752
(1): 2022/09/09(金)23:02 ID:Un8DgV3E(1) AAS
>>751
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
c = a.group_by(&:itself).values.map{_1.size > 2 ? _1[0, 2] : _1}.flatten.permutation(2).map{[_1 * _2, [_1, _2].sort]}.uniq.sort.to_h
b.each{|s| puts '%d: %s' % [s, c.find{_1[0] >= s}&.[](1)&.join(?,) || :error]}

# =>
390: error
240: 16,17
37: 3,13
396: error
省6
753
(1): 2022/09/09(金)23:46 ID:3788iROh(1) AAS
>>751 ruby
外部リンク:ideone.com
def f(as, bs)
c = as.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort_by(&:first).each_cons(2)
bs.map do |b|
d = c.find {|e, f| e[0] < b && b <= f[0]}
"#{b}:#{d ? d[1][1..2].join(',') : 'error'}"
end
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
省2
754: 753 2022/09/10(土)00:24 ID:4GiNoMjQ(1) AAS
>>751
外部リンク:ideone.com
>>753を若干の整理
>>752さんのを見て&.を勉強
def f(a, b)
c = a.combination(2).map(&:sort).to_a.uniq.map {|x, y| [x * y, x, y]}.sort
b.map {|b| "#{b}:#{c.find {|e| b <= e[0]}&.[](1..2)&.join(',') || 'error'}"}
end
a = [17, 3, 3, 1, 6, 13, 11, 17, 2, 5, 7, 18, 16, 5, 8, 6, 5, 1, 11, 1]
b = [390, 240, 37, 396, 198, 99, 242, 53, 329, 202]
省1
755: 2022/09/10(土)00:34 ID:sDbT/M8A(1/2) 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
1-
あと 246 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s