プログラミングのお題スレ 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
辺上の格子点言ってるやろ
2020/12/05(土) 08:59:53.39ID:e3dDslST
>>30
辺上なら
(2h+2w)C3-2 (h+1)C3 -2 (w+1)C3
=(2h + 2w)(2h + 2w-1)(2h + 2w-2)/6 - 2(h+1)h(h-1)/6-2(w+1)w(w-1)/6
じゃないの?
2020/12/05(土) 09:08:46.93ID:wyyz8Yxy
>>31
なに当たり前のこと言ってんの?
2020/12/05(土) 09:10:06.86ID:l3I779fy
>>31
は純粋にすごいと思ったけど
>>32
はドヤっててキモい
2020/12/05(土) 09:11:19.04ID:wyyz8Yxy
指摘が意味不明すぎなんだわ
てかこんなん中学の算数だろ
2020/12/05(土) 09:15:41.52ID:9/0cDzrv
コンビネーションって高校じゃなかったっけ?
まあ、31は24と30の反論になってないから(むしろ論を補強してる)、
意味がよく分からない指摘だというのは同意。
2020/12/05(土) 09:26:57.24ID:e3dDslST
イヤ、だってH=987, W=654の時どうしますか?
がお題だけど
こコレ
「まともに3282C3=5,886,638,960通りから直線に並ぶ場合を抜くとどえらい計算になります。どうしますか?」
という意味にしか見えないんけど
コレが辺上だけじゃなくて内点も走るならともかく、辺上しか走らないならどうしますかもへったくれもない
2020/12/05(土) 09:32:49.97ID:wyyz8Yxy
>>36
ああ、そういう文脈で言ってたのね
ただ問題文で辺上って言われてるし、しかも2x3の例からもそれは明らかなんで
ぱぱぱっと計算して終わりで良いんじゃないの
2020/12/05(土) 09:52:46.86ID:CtYOdxNe
>>24
(h + w) * ((h + w - 1)^2 + h * w) が答えだな。
たかがこんな計算を凄いと思えちゃう>>33君かわいい。
2020/12/05(土) 09:53:01.14ID:e3dDslST
まぁじゃババっと
Haskell

f n = div (n*(n-1)*(n-2)) 6
g h w = ( f $ 2*h+2*w ) - 2*( f $ h+1 ) - 2*( f $ w+1 )

main = do
print $ g 1 1
print $ g 3 2
print $ g 987 654

----
4
110
5472895818
2020/12/05(土) 12:09:38.25ID:TQcPj7M7
>>32
単純にこのレスはダサいだろ
2020/12/05(土) 12:21:48.03ID:ueKgO2NY
>>33が必死で草
42デフォルトの名無しさん
垢版 |
2020/12/06(日) 04:56:07.06ID:KfTg6Pxo
マウンティングのとりあい、カッコ悪い
2020/12/06(日) 09:12:18.95ID:ikxyNJRG
当人同士が反目し合ってるわけじゃないのに外野が騒いでるのがなんとも
2020/12/06(日) 09:16:55.00ID:Qe9xBjDT
チクチク言葉やめろよカス
2020/12/06(日) 14:34:10.80ID:oqBHe4TF
整数 a, b, c が与えられるので, x^3 + ax^2 + bx + c = 0 を満たす実数を1つ求めよ.

0 0 -1 -> 1.0
-6 -11 -6 -> [1.0, 2.0, 3.0 の内のいずれか]
1 2 3 -> -1.275682203650985
4 5 6 -> -3.0
3 -1415 926535 -> -103.38046753468685
30000 299905755 -942477760 -> ???
2020/12/06(日) 18:18:32.49ID:EaHZxlDZ
>>45
https://ideone.com/wictTe
2020/12/07(月) 00:14:06.84ID:LcHpzYm6
お題: 三次元のライフゲームを映像化。
2020/12/07(月) 01:07:51.20ID:owPfoMMb
>>47
クソスレ立てるなカス

作ろう!ウェブアプリ開発コンテストPart1
https://mevius.5ch.net/test/read.cgi/hp/1605200346/
111 蟻人間 ◆T6xkBnTXz7B0 sage 2020/12/05(土) 17:53:48.82 ID:???
☆★☆テナント募集中☆★☆
スレッド終了のため、一緒にスレッドを盛り上げてくれる
イベント企画が出来る方を募集しています。
まずはご連絡下さい。
株式会社突撃商会 TEL 03-XXXX-XXXX
2020/12/07(月) 01:32:19.45ID:LcHpzYm6
>>48
うぜえ、ストーカー規制法だぞ
2020/12/07(月) 01:42:49.56ID:MzJ6ksVT
>>47
映像化することがお題というなら、ライフゲーム自体はお前が提供するのか
51デフォルトの名無しさん
垢版 |
2020/12/07(月) 14:21:20.37ID:8Ddysj0U
お題
表が連続する長さの平均を求めてください

入力: 裏裏表裏裏表裏裏裏表裏裏裏表表裏表裏裏表裏裏裏裏表表表表表裏表表裏裏表裏表表裏表表表表表裏裏裏裏裏表表表表裏表表表表裏表表表裏表表表裏裏表裏裏表表裏裏表裏表表表裏裏裏裏裏表表表表表裏表表裏表裏裏表裏表
2020/12/07(月) 15:32:20.36ID:78t68E9P
>>51
haskell

import Data.List

str = "裏裏表裏裏表裏裏裏表裏裏裏表表裏表裏裏表裏裏裏裏表表表表表裏表表裏裏表裏表表裏表表表表表裏裏裏裏裏表表表表裏表表表表裏表表表裏表表表裏裏表裏裏表表裏裏表裏表表表裏裏裏裏裏表表表表表裏表表裏表裏裏表裏表"

consecHeads = id
. map genericLength
. filter ( (=='表') . head )
. group

avg x = ( sum x ) / ( genericLength x)

main = do
print $ consecHeads str
print $ avg $ consecHeads
----
[1.0,1.0,1.0,2.0,1.0,1.0,5.0,2.0,1.0,2.0,5.0,4.0,4.0,3.0,3.0,1.0,2.0,1.0,3.0,5.0,2.0,1.0,1.0,1.0]
2.2083333333333335
2020/12/07(月) 18:45:30.74ID:Ao/BDdnQ
>>51 Ruby
Str = '裏裏表裏裏表裏裏裏表裏裏裏表表裏表裏裏表裏裏裏裏表表表表表裏表表裏裏表裏表表裏表表表表表裏裏裏裏裏表表表表裏表表表表裏表表表裏表表表裏裏表裏裏表表裏裏表裏表表表裏裏裏裏裏表表表表表裏表表裏表裏裏表裏表'

series = Str.scan( /表+/ )
puts series.sum(0.0){|s| s.size } / series.size
2020/12/07(月) 19:47:31.22ID:m3NDFPid
>>49
クソスレ立てるな

すき家とかかつやみたいな和食屋で外国人雇うな
https://mevius.5ch.net/test/read.cgi/tech/1607138691/
13 蟻人間 ◆T6xkBnTXz7B0 sage 2020/12/07(月) 19:09:17.13 ID:rNPNmVA2
>>11

いい所に来たな。ウェブ技術に関するあるプロジェクトがあるんだが、手伝ってくれるかい?
成果物は山分けだ。

HTTPもしくはHTTPS通信で、とあるURLにあるHTMLをダウンロードして画像を含めてレンダリングする。ただし、jQueryまたはPython3を使用する。

ここまで。

14 蟻人間 ◆T6xkBnTXz7B0 sage 2020/12/07(月) 19:25:06.23 ID:rNPNmVA2
いわゆるスクレイピングって言う技術だけど、それ以上のことがしたいんだ。

ホームページの構成要素を破壊するような動画を作りたい。まあ、実際に破壊する訳じゃないけど、ハッカーになりたい子どもたちの娯楽として役に立つらしい。
2020/12/07(月) 19:54:22.42ID:rNPNmVA2
>>54
立ててねーよ。
2020/12/07(月) 20:03:08.23ID:7hownX7E
お題流れるからクソコテは死ね
2020/12/07(月) 20:16:20.90ID:sdBj/JBd
荒らしを相手にするやつも嵐のメンバー。
2020/12/07(月) 20:18:25.02ID:m3NDFPid
お前が言うな
盗人猛々しい奴だな
59デフォルトの名無しさん
垢版 |
2020/12/08(火) 15:44:35.89ID:jRmhdWmE
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13212452128
なぜですか?

質問者からのお礼コメント
小学生でもわかるような回答ではなく、なぜそうなのかも回答できないと社会人として微妙ですよ。
わかる箇所だけ答えるのはニワカです。
2020/12/08(火) 15:52:58.87ID:KeS4W5RD
漠然とした質問に相応の答えだね
2020/12/08(火) 22:48:35.65ID:pGXopNTt
ヤフー知恵袋スマホで見たらどこがサイト本体なのかわからねえなゴミ袋かよ
2020/12/10(木) 18:22:03.94ID:uygr7FQy
>>51
python
s = input()
return sum(len(x) for x in s.split("裏") if x != 0) / len([None for x in s.split("裏") if x != ""])
何もimportせずに1行にする方法が思いつかなかった
2020/12/10(木) 18:37:00.38ID:uygr7FQy
jsならreduceがあるからできるな
window.prompt().split("裏").filter(x=>x!="").map(x=>x.length).map(x=>[x,1]).reduce((a,b)=>[a[0]+b[0],a[1]+b[1]]).reduce((a,b)=>a/b)
2020/12/10(木) 18:40:22.32ID:WBenXu2r
pythonでもlambda使えば
2020/12/10(木) 18:41:01.74ID:WBenXu2r
書き込みミスったすまん
print((lambda a: sum(a) / len(a))([len(x) for x in input().split("裏") if x != ""]))
66デフォルトの名無しさん
垢版 |
2020/12/11(金) 01:42:53.01ID:2d//6+8I
>>51
Kotlin
https://paiza.io/projects/J5pzqTvWyPo3SHwaijR_wQ
2020/12/11(金) 01:44:21.40ID:2d//6+8I
あ、間違えた。表の方を数えるのか。じゃあこっそり直そう。
68デフォルトの名無しさん
垢版 |
2020/12/11(金) 12:19:49.95ID:OZejrzeq
>>51 Python
print((lambda a: a.count("表")/(a+"裏").count("表裏"))(input()))
2020/12/12(土) 20:53:25.52ID:LY1sKTLV
>>51
perl5
https://paiza.io/projects/qKzBZMnxL6G2mveKArd7-g
2020/12/12(土) 21:20:21.05ID:LY1sKTLV
>>51
びっくりする副作用を使うバージョンでもう一回 perl5
https://paiza.io/projects/d45itfxNwe7Y4RCtte8czQ
2020/12/12(土) 21:23:14.60ID:Tjq2nQZU
お題:
プログラム言語X1では32ビットの符号なし整数と32ビットの符号付き整数が使える。
しかし、プログラム言語X2では32ビットの符号なし整数が使えず、32ビットの符号付き整数が使える。
このままではX1からX2への移植が困難である。
そこで、X2において与えられた32ビットの整数を符号なしと見なした値を10進数文字列化せよ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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