[過去ログ] プログラミングのお題スレ Part20 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
603: 2022/07/03(日)16:15 ID:/kuq8Z/3(5/7) AAS
>>600
めんどくせ~な~
お前やれよ
604(1): 2022/07/03(日)16:24 ID:/kuq8Z/3(6/7) AAS
>>600
version 1.0.5
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: digit_19 digit_09*
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
省1
605(1): 2022/07/03(日)16:30 ID:/kuq8Z/3(7/7) AAS
>>600
version 1.0.6
int: comma_digit | normal_digit
float: ( comma_digit | normal_digit ) '.' digit_09+ | '.' digit_09+
comma_digit: digit_123 { ',' digit_3 }*
normal_digit: ( digit_19 digit_09+ ) | digit_09
digit_3: digit_09 digit_09 digit_09
digit_123: digit_19 digit_09? digit_09?
digit_19: [1-9]
digit_09: [0-9]
省1
606: 2022/07/03(日)17:25 ID:bGSSCSEx(1) AAS
>>604
> ていうか1234,567にはならんはずだぞ
しれっと変えといてさすがにそれは恥ずかしいな
>>598> comma_digit: digit_123 { ( ','? digit_3 ) }*
>> 604 > comma_digit: digit_123 { ',' digit_3 }*
>>605
まあ、よしとしてやろう
607: 2022/07/03(日)20:20 ID:H80x+Ni5(1) AAS
問題を解かずに出題の形式美に必死になるなんて、このスレ的にどうなのよ?
608: 蟻人間 ◆T6xkBnTXz7B0 2022/07/03(日)21:46 ID:wwKaul6r(1) AAS
char buf[64];
fgets(buf, 64, stdin);
char *endptr;
strtol(buf, &endptr, 10);
if (*endptr == 0) {
puts("INT");
return;
}
strtod(buf, &endptr);
if (*endptr == 0) {
省4
609: 2022/07/04(月)22:09 ID:hLP3lYAM(1) AAS
>>570 dart
外部リンク:ideone.com
610(4): 2022/07/08(金)20:02 ID:N6PR1KyM(1) AAS
お題
非負整数xが16進数表記で与えられる。xのビットu~lの範囲を逆順にした値を出力せよ。
[入力]
x u l
[例]
0x80 7 0
=> 0x1 (8bit全体をreverse)
0xABCD 11 4
=> 0xA3DD (真ん中8bitをreverse, 0xBC=0b10111100 -> 0b00111101=0x3D)
0x2 99 1
省1
611: 2022/07/08(金)22:06 ID:ju1TxHLl(1) AAS
>>610 Ruby
f = -> (*a) {_, e, s = a.map(&:to_i); '0x%X' % a[0].hex.digits(2).concat(Array.new(e, 0)).tap{_1[s..e] = _1[s..e].reverse}.reverse.reduce{|s, i| 2 * s + i}}
['0x80 7 0', '0xABCD 11 4', '0x2 99 1'].each{puts '%s -> %s' % [_1, f[*_1.split]]}
# =>
0x80 7 0 -> 0x1
0xABCD 11 4 -> 0xA3DD
0x2 99 1 -> 0x8000000000000000000000000
612: 2022/07/09(土)09:28 ID:72Wr/ML/(1) AAS
>>610 octave
外部リンク:ideone.com
613: 2022/07/09(土)21:45 ID:A5P06KhI(1) AAS
>>610
Kotlin
外部リンク:paiza.io
BigInteger 使ったので、ビット数がかなり多くても大丈夫。
614: 2022/07/24(日)20:03 ID:RqwYivmm(1) AAS
あげ
615(11): 2022/07/26(火)20:19 ID:wEdk200U(1) AAS
お題:数字をミラーリングせよ
入力 < 123
出力 > 123321
reverse系メソッドを使わなかったら加点とする
616: 2022/07/26(火)20:33 ID:gSFNKY8C(1) AAS
>>615 Ruby
$><<(a=gets.scan /./)*'';$><<$a while$a=a.pop
-*- input -*-
123
-*- output -*-
123321
617: 2022/07/26(火)22:30 ID:LilaKoZu(1) AAS
>>615
Java
static String mirror(String src) {
var dest = new char[src.length() * 2];
var a = src.toCharArray();
for (var i = 0; i < a.length; i++) {
dest[i] = a[i];
dest[dest.length - 1 - i] = a[i];
}
return new String(dest);
省1
618: アリ人間 ◆T6xkBnTXz7B0 2022/07/26(火)22:36 ID:SFGiBpCo(1) AAS
>>615
派生お題: 文字列処理を使わずに与えられた整数を回文にせよ。
619: 2022/07/26(火)23:38 ID:ceC8PDvA(1) AAS
>>615 octave
外部リンク:ideone.com
f = @(a) a([1:end end:-1:1]);
f('123')
620: 2022/07/26(火)23:41 ID:DU0tXUgh(1) AAS
魔法の計算式とか無いん?
621: 2022/07/27(水)00:03 ID:MKIa5t3g(1) AAS
俺も考えてみたけど調べても回分数のシグマ使わない一般式は無いみたいだな
622: 2022/07/27(水)00:09 ID:C/59UMec(1) AAS
>>615 JavaScript
const mirror = (n, c, ...args) => c === null ? (answer => 0 <= n && answer <= Number.MAX_SAFE_INTEGER ? answer : RangeError(`${n} is invalid.`))(args.reduce((s, d) => s * 10 + d, n)) : c == undefined ? mirror(Number.parseInt(n), Number.parseInt(n), ...args) : mirror(n, c < 10 ? null : Math.floor(c / 10), ...args, c % 10);
// test
for (const [n] of [[-1, 'x'], [0, 'o'], [1, 'o'], [12345678, 'o'], [123456789, 'x'], [123.456, 'o (123321)']]) {
const answer = mirror(n);
console[answer instanceof RangeError ? 'error' : 'log'](answer);
}
623: 2022/07/27(水)01:46 ID:7bF+Pf0F(1) AAS
octave綺麗
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
626: 2022/08/02(火)22:22 ID:9ppQHDnA(1) AAS
>>615 ocaml
外部リンク:ideone.com
let f s =
let csc c s = Char.escaped c ^ s ^ Char.escaped c in
let rec aux t = function 0 -> t | n -> aux (csc s.[n - 1] t) (n - 1)
in aux "" @@ String.length s
let () = print_endline @@ f "123"
627: 2022/08/02(火)23:32 ID:49BZsXJW(1) AAS
>>615
Kotlin
外部リンク:paiza.io
わざわざ Iterator を実装して実現。
628: 2022/08/03(水)00:34 ID:xChmGTXr(1) AAS
>>615 ocaml
外部リンク:ideone.com
let f s = s ^ String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let () = print_endline @@ f "123"
629: 2022/08/05(金)11:38 ID:1Af6TgAi(1) AAS
>>615
おもしれーことやってんじゃん
じゃあperlの再帰する正規表現で行くかな
外部リンク:paiza.io
630(7): 2022/08/05(金)13:16 ID:6eafuacR(1) AAS
gnuWin32を基本使っています。
で行のソートなのですが、各行の末尾から逆向きの文字でソートって出来ませんか
たとえば
aaaaCB
bbbBA
cccccDB
とかあったとき、これを
bbbBA
aaaaCB
cccccDB
省6
631: 2022/08/05(金)13:43 ID:Vk8oFh91(1) AAS
>>630
Java
Arrays.sort(a, (left, right) -> {
var l = left.length() - 1;
var r = right.length() - 1;
while (l > -1 && r > -1) {
var c = Character.compare(left.charAt(l), right.charAt(r));
if (c != 0) {
return c;
}
省11
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
633: 2022/08/05(金)20:52 ID:C4r7F682(1) AAS
>>630 ruby
外部リンク:ideone.com
f = ->(a) {a.sort_by &:reverse}
p f.(%w(aaaaCB bbbBA cccccDB))
>>630 octave
外部リンク:ideone.com
function i = sorti(varargin), [~, i] = sort(varargin{:}); end
f = @(a) a(sorti(cellfun(@(s) {flip(s)}, a)));
f({'aaaaCB' 'bbbBA' 'cccccDB'})
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;
637: 2022/08/06(土)05:59 ID:UcInr7RU(1/2) AAS
>>630
Kotlin
外部リンク:paiza.io
ただ処理を連結しただけだな。コマンドラインでパイプ使ったみたいな感じ。
638(1): 2022/08/06(土)06:11 ID:UcInr7RU(2/2) AAS
>>630
Linux 等の UNIX 系 OS で rev コマンドと sort コマンドが使える環境ならシェルのコマンドラインからこう入力するとできる。
(入力文字列は input.txt に入っているとして)。
rev input.txt | sort | rev
Windows の環境でやる場合は互換性のあるコマンドを利用するか、または Cygwin や WSL や WSL2 等の UNIX 互換環境の中でコマンドラインから実行できる。
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
640(1): 2022/08/06(土)10:15 ID:8a3zeEyr(1/2) AAS
>>638
Linux環境ではrevというのがあるのですね
gnuWin32は全部揃ってないのですね。なんだかなあ
rev以外でもLinuxにあってgnuWin32にはないのがあるのかな
rev、自分で作ろうかな
641: 2022/08/06(土)11:17 ID:y9e1BfKB(1) AAS
>>630 ocaml
外部リンク:ideone.com
let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i])
let (<<) f g x = f (g x)
let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s))
let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];
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
644: 2022/08/06(土)17:24 ID:8a3zeEyr(2/2) AAS
>>642
ありがとう。そんなとこにあったのか
645(1): 2022/08/07(日)09:51 ID:UY2OKMya(1/2) AAS
>>642
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHK
646: 2022/08/07(日)09:52 ID:UY2OKMya(2/2) AAS
>>642
linuxのrevでやってみました。ところが、全角日本語はやはりダメですね
なので、AHKで自作で作ってみました
rev input.txt | sort | rev
で問題なく動きました
647: 2022/08/07(日)16:26 ID:BSSIjy3s(1) AAS
>>645
環境変数 LANG の設定の問題とか?
こっちでは日本語での rev できたよ。
CentOS 7 で bash で LANG=ja_JP.UTF-8 の状態。そこに Windows から TeraTerm で ssh ログインして試したらできた。
$ echo $LANG
ja_JP.UTF-8
$ ( echo 見城徹 ; echo 箕輪厚介 ; echo ガーシー ; echo 木原誠二官房副長官 ) | rev
徹城見
介厚輪箕
ーシーガ
省2
648(12): 2022/08/07(日)18:30 ID:C65TbvUb(1) AAS
お題
0~2がランダムに8個入力されます
8個の数字を:で結合して出力してください
0が連続する場合は連続する0を::に置換してください
0の連続を::に置換できるのは1回のみです
0の連続が複数存在する場合は長い方を置換してください
長さが同じ場合は先頭の方を置換してください
1個の0は置換してはいけません
例
0, 0, 0, 1, 2, 1, 2, 2 → ::1:2:1:2:2
省5
649: 2022/08/07(日)19:28 ID:MpscsJR5(1/2) AAS
>>648 Ruby
f = -> s { x = s.gsub(', ', ?:); y = x.scan(/0(?::0)+/).max&.count(?0) || 0; x.sub(/:?0(:0){#{y - 1}}+:?/, '::') }
[
'0, 0, 0, 1, 2, 1, 2, 2',
'2, 1, 2, 0, 0, 0, 1, 1',
省12
650: 2022/08/07(日)19:57 ID:xO94aiKw(1/3) AAS
>>648
perl5
外部リンク:paiza.io
651: 2022/08/07(日)20:01 ID:H+tq1Ypt(1) AAS
正規表現のreplace一個で行けそうと思ったけど最長マッチみたいなの無理なのか
652: 2022/08/07(日)20:16 ID:MpscsJR5(2/2) AAS
拡張正規表現の中にはチューリング完全なものもあるけどね
653(1): 2022/08/07(日)20:17 ID:xO94aiKw(2/3) AAS
そうか
単純に s/0{$n}/::/;
を連射して増やしていくだけでいいんだな
最後に成功したのを返す感じで
654: 2022/08/07(日)20:58 ID:xO94aiKw(3/3) AAS
>>648
perl5 # sub squash0 を>653 で書き替えた
外部リンク:paiza.io
655(1): 2022/08/07(日)22:19 ID:UmcKtz1r(1/2) AAS
>>648 octave
外部リンク:ideone.com
function s = f(a)
c = diff(find([1 diff(a) 1]));
e = cumsum(c);
b = e - c + 1;
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
s = arrayfun(@(n) {int2str(n)}, a);
if (1 < c(i))
省4
656: 655 2022/08/07(日)23:28 ID:UmcKtz1r(2/2) AAS
結果同じだけど若干の整理可能だった
n = arrayfun(@(i) a(i), e);
[~, i] = max(c.*(n == 0));
↓
[~, i] = max(c.*(a(e) == 0));
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マスは
上下前次1-新書関写板覧索設栞歴
あと 300 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s