プログラミングのお題スレ Part19

■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
2020/11/30(月) 00:27:32.09ID:OK+46EGm
const array = ['乙', '1', '>', '>'];
for(let i = 0; array.length > 0;) {
console.log(array.pop());
}
2020/11/30(月) 00:44:30.29ID:TF2Czp0y
全スレ >>995 C++

DPでO(N)
ただスマホコーディングなのと今すごく眠いので、何か間違ってたらすまん

https://wandbox.org/permlink/aZbSfE5gQHA9x9B6
2020/11/30(月) 01:19:09.34ID:7QMEfWyp
>>1
>>http://mevius.2ch.net/test/read.cgi/tech/1594702426/995
bat
:: 配列中の小計の最大値を取る区間A-Bを出力。0を閾値にしているので正の最大値限定
@echo off &setlocal enabledelayedexpansion
set args=-2,1,-3,4,-1,2,1,-5,4
set /a S=N=i=0
for %%a in (%args%) do (
set /a i+=1
set /a N+=a[!i!]=%%a
if !N! GTR !S! set /a S=N, B=i &if not defined A set /a A=i
if !N! LSS 0 set /a N=0 &set A=
)
for /L %%i in (%A%,1,%B%) do set R=!R!,!a[%%i]!
set R=[%R:~1%]
echo %R%
pause&exit /b
2020/11/30(月) 02:02:57.70ID:owcTZSsV
>>2
それだと
>
>
1

になってしまうのでは?
2020/11/30(月) 02:36:49.33ID:+w97lXkL
http://mevius.2ch.net/test/read.cgi/tech/1594702426/995

Haskell

import Data.List

maxConsSub x = let
ss = concat $ map ( tail . reverse . tails ) $ tail $ inits x
comp xs ys = compare ( sum xs ) ( sum ys )
in maximumBy comp ss

main = print $ maxConsSub [ -2, 1, -3, 4, -1, 2, 1, -5, 4 ]
2020/11/30(月) 02:50:11.69ID:8vxB1EQV
前スレ>>995
https://ideone.com/DcLpHj
2020/11/30(月) 03:40:18.85ID:r8rQ87Qr
サブ配列とは、連続している領域の事か?
どこかで、こういう問題を見た事があるような気がする

これで、配列の前後がつながっている、循環バージョンもやってみれば?
2020/11/30(月) 11:41:04.85ID:6DeIDSHb
前スレ>>995 Perl5

@a = qw[-2 1 -3 4 -1 2 1 -5 4];
sub f {
 my ($i, $j) = @_;
 return $t[$i][$j] if defined $t[$i][$j];
 $t[$i][$j] = $a[$i] + ($i < $j ? f($i+1, $j) : 0);
}
for $i (0..$#a) {
 for $j (reverse 0..$#a) {
  my $v = f($i, $j);
  if (!defined($max) or $max < $v) {
   $max = $v;
   ($s, $e) = ($i, $j);
  }
 }
}
print "@a[$s..$e]\n"


~ $ perl 18_995_sumsubarry_dp.pl
4 -1 2 1
109
垢版 |
2020/11/30(月) 21:53:55.46ID:Nq7K7NhK
>>9 Bugってんじゃん、解は変わらないけど無駄なとこ計算する

× for $j (reverse 0..$#a) {
   ↓
○ for $j (reverse $i..$#a) {


ついでっちゅうわけじゃないけどnaive版 Perl5

@a = qw[-2 1 -3 4 -1 2 1 -5 4];
use List::Util 'sum';
for $i (0..$#a) {
 for $j (reverse $i..$#a) {
  my $v = sum(@a[$i...$j]);
  if (!defined $max or $max < $v) {
   $max = $v;
   ($s, $e) = ($i, $j);
  }
 }
}
print "@a[$s..$e]\n";

実行
~ $ perl 18_995_sumsubarry_naive.pl
4 -1 2 1
11デフォルトの名無しさん
垢版 |
2020/12/01(火) 03:38:48.56ID:G7RpB3vG
前スレ>>971

前スレ 994 の Java のやつを見て Kotlin script に変換。

java.time.DayOfWeek.values().map { it.name.toLowerCase().capitalize() }.forEach(::println)

991 は java.text.DateFormatSymbols 使ったから順序を変える必要があったが
java.time.DayOfWeek 使えばその必要なかったんだな。
12デフォルトの名無しさん
垢版 |
2020/12/01(火) 04:25:32.84ID:sHsQRN1l
前スレ971 Go言語
package main

import "fmt"
import "time"

func main() {
for i := 1; i < 8; i++ {
t, _ := time.Parse("2006/01/02" , fmt.Sprintf("0001/01/%02d", i))
fmt.Println(t.Weekday())
}
}
13デフォルトの名無しさん
垢版 |
2020/12/02(水) 10:30:39.04ID:K7fmNxhs
Maximum subarray problem - Wikipedia
https://en.wikipedia.org/wiki/Maximum_subarray_problem

これ例題まで同じじゃん
2020/12/02(水) 17:16:26.87ID:LINF+1vv
(u_・y)笑た
15デフォルトの名無しさん
垢版 |
2020/12/03(木) 08:11:48.55ID:fc8MC3E0
大半のお題がどっかで既出だろう。
2020/12/03(木) 20:29:56.83ID:QtB29qoZ
宿題と糞コテのお題じゃなければ何でもおk
2020/12/03(木) 21:27:43.26ID:8BqExPKj
宿題でもおK
2020/12/03(木) 22:00:18.57ID:XxeqeIdP
いっぱい書けて〜
いっぱい走れる
2020/12/04(金) 02:56:19.58ID:2+VKdPy1
蟻人間
クソスレ立てて
一人芝居
即効バレて
自演失敗

作ろう!ウェブアプリ開発コンテストPart1
https://mevius.5ch.net/test/read.cgi/hp/1605200346/
83 Name_Not_Found sage 2020/11/30(月) 01:23:51.15 ID:???
蟻=熊

33 蟻人間 ◆T6xkBnTXz7B0 sage 2020/11/18(水) 22:50:58.32 ID:???
local storageはセキュリティどうなん?

34 蟻人間 ◆T6xkBnTXz7B0 sage 2020/11/18(水) 22:55:28.97 ID:???
>>33
今回は技術情報システムで、公開される情報だから、問題ないんとちゃうん?

36 Name_Not_Found sage 2020/11/18(水) 23:20:35.82 ID:???
トリップそのままとか斬新な自演ですね(笑)


一人ママゴト楽しい?
2020/12/04(金) 03:13:58.19ID:NciCKHQO
>>19
アンチお疲れ様
2020/12/04(金) 03:18:47.59ID:grL17lz3
(※ネタでやってるから本気にしないように)
2020/12/04(金) 03:20:24.57ID:SZDLrqPu
ネタでクソスレ立てるなカス
2020/12/04(金) 03:31:18.74ID:iyroy572
この番組は、殺伐とした5ちゃんねるにネタとうるおいをお届けする蟻人間とご覧のスポンサーの提供でお送り致します。


___提_供___


__蟻_人_間__
2020/12/04(金) 19:37:28.84ID:5zEeUUrS
お題
格子点上にH×Wの矩形がある。
この矩形の辺上の格子点から3点を選んで三角形を作る。
三角形の作り方は何通りあるか?

[例]
H=1, W=1 => 4
H=2, W=3 => 110
H=987, W=654 => ?
2020/12/04(金) 20:33:08.72ID:Ik0OmRqi
おなじサイズの矩形でも配置によって点の数変わるよね
2020/12/04(金) 21:35:00.41ID:8qVwRk+r
たしかに。5x5の時は軸に平行だったり斜めだったりできるな
2020/12/05(土) 00:02:11.08ID:prgHYa7V
まあ辺が垂直と水平に限られるとは書いて無いけどそういう問題?
2020/12/05(土) 00:18:14.11ID:xmmvLeAb
イヤ、格子状に並んでいる限りアフィン変換で通常の意味の格子になるやろ
2020/12/05(土) 00:45:26.18ID:xmmvLeAb
H=2,W=3だと200じゃないの

0≦x≦3, 0≦y≦2内の格子点として
格子点から3点選ぶ選び方は12C3=220組
同一直線上に並ぶものは
x=0,1,2,3上に並ぶものが1組ずつで4組
y=0,1,2上に並ぶものが4組ずつで12組
x+y=3,4, x-y=0,1上に1組ずつで4組
よって同一直線上に並ばない3点の組みは200組

な気がする
2020/12/05(土) 07:26:42.91ID:wyyz8Yxy
>>29
辺上の格子点言ってるやろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況