◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

プログラミングのお題スレ Part19 ->画像>5枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1606662245/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
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
http://2chb.net/r/tech/1594702426/
2デフォルトの名無しさん
2020/11/30(月) 00:27:32.09ID:OK+46EGm
const array = ['乙', '1', '>', '>'];
for(let i = 0; array.length > 0;) {
console.log(array.pop());
}
3デフォルトの名無しさん
2020/11/30(月) 00:44:30.29ID:TF2Czp0y
全スレ >>995 C++

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

https://wandbox.org/permlink/aZbSfE5gQHA9x9B6
4デフォルトの名無しさん
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
5デフォルトの名無しさん
2020/11/30(月) 02:02:57.70ID:owcTZSsV
>>2
それだと
>
>
1

になってしまうのでは?
6デフォルトの名無しさん
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 ]
7デフォルトの名無しさん
2020/11/30(月) 02:50:11.69ID:8vxB1EQV
前スレ>>995
https://ideone.com/DcLpHj
8デフォルトの名無しさん
2020/11/30(月) 03:40:18.85ID:r8rQ87Qr
サブ配列とは、連続している領域の事か?
どこかで、こういう問題を見た事があるような気がする

これで、配列の前後がつながっている、循環バージョンもやってみれば?
9デフォルトの名無しさん
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

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

作ろう!ウェブアプリ開発コンテストPart1
http://2chb.net/r/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:???
トリップそのままとか斬新な自演ですね(笑)


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


___提_供___


__蟻_人_間__
24デフォルトの名無しさん
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 => ?
25デフォルトの名無しさん
2020/12/04(金) 20:33:08.72ID:Ik0OmRqi
おなじサイズの矩形でも配置によって点の数変わるよね
26デフォルトの名無しさん
2020/12/04(金) 21:35:00.41ID:8qVwRk+r
たしかに。5x5の時は軸に平行だったり斜めだったりできるな
27デフォルトの名無しさん
2020/12/05(土) 00:02:11.08ID:prgHYa7V
まあ辺が垂直と水平に限られるとは書いて無いけどそういう問題?
28デフォルトの名無しさん
2020/12/05(土) 00:18:14.11ID:xmmvLeAb
イヤ、格子状に並んでいる限りアフィン変換で通常の意味の格子になるやろ
29デフォルトの名無しさん
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組

な気がする
30デフォルトの名無しさん
2020/12/05(土) 07:26:42.91ID:wyyz8Yxy
>>29
辺上の格子点言ってるやろ
31デフォルトの名無しさん
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
じゃないの?
32デフォルトの名無しさん
2020/12/05(土) 09:08:46.93ID:wyyz8Yxy
>>31
なに当たり前のこと言ってんの?
33デフォルトの名無しさん
2020/12/05(土) 09:10:06.86ID:l3I779fy
>>31
は純粋にすごいと思ったけど
>>32
はドヤっててキモい
34デフォルトの名無しさん
2020/12/05(土) 09:11:19.04ID:wyyz8Yxy
指摘が意味不明すぎなんだわ
てかこんなん中学の算数だろ
35デフォルトの名無しさん
2020/12/05(土) 09:15:41.52ID:9/0cDzrv
コンビネーションって高校じゃなかったっけ?
まあ、31は24と30の反論になってないから(むしろ論を補強してる)、
意味がよく分からない指摘だというのは同意。
36デフォルトの名無しさん
2020/12/05(土) 09:26:57.24ID:e3dDslST
イヤ、だってH=987, W=654の時どうしますか?
がお題だけど
こコレ
「まともに3282C3=5,886,638,960通りから直線に並ぶ場合を抜くとどえらい計算になります。どうしますか?」
という意味にしか見えないんけど
コレが辺上だけじゃなくて内点も走るならともかく、辺上しか走らないならどうしますかもへったくれもない
37デフォルトの名無しさん
2020/12/05(土) 09:32:49.97ID:wyyz8Yxy
>>36
ああ、そういう文脈で言ってたのね
ただ問題文で辺上って言われてるし、しかも2x3の例からもそれは明らかなんで
ぱぱぱっと計算して終わりで良いんじゃないの
38デフォルトの名無しさん
2020/12/05(土) 09:52:46.86ID:CtYOdxNe
>>24
(h + w) * ((h + w - 1)^2 + h * w) が答えだな。
たかがこんな計算を凄いと思えちゃう>>33君かわいい。
39デフォルトの名無しさん
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
40デフォルトの名無しさん
2020/12/05(土) 12:09:38.25ID:TQcPj7M7
>>32
単純にこのレスはダサいだろ
41デフォルトの名無しさん
2020/12/05(土) 12:21:48.03ID:ueKgO2NY
>>33が必死で草
42デフォルトの名無しさん
2020/12/06(日) 04:56:07.06ID:KfTg6Pxo
マウンティングのとりあい、カッコ悪い
43デフォルトの名無しさん
2020/12/06(日) 09:12:18.95ID:ikxyNJRG
当人同士が反目し合ってるわけじゃないのに外野が騒いでるのがなんとも
44デフォルトの名無しさん
2020/12/06(日) 09:16:55.00ID:Qe9xBjDT
チクチク言葉やめろよカス
45デフォルトの名無しさん
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 -> ???
46デフォルトの名無しさん
2020/12/06(日) 18:18:32.49ID:EaHZxlDZ
>>45
https://ideone.com/wictTe
47蟻人間 ◆T6xkBnTXz7B0
2020/12/07(月) 00:14:06.84ID:LcHpzYm6
お題: 三次元のライフゲームを映像化。
48デフォルトの名無しさん
2020/12/07(月) 01:07:51.20ID:owPfoMMb
>>47
クソスレ立てるなカス

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

入力: 裏裏表裏裏表裏裏裏表裏裏裏表表裏表裏裏表裏裏裏裏表表表表表裏表表裏裏表裏表表裏表表表表表裏裏裏裏裏表表表表裏表表表表裏表表表裏表表表裏裏表裏裏表表裏裏表裏表表表裏裏裏裏裏表表表表表裏表表裏表裏裏表裏表
52デフォルトの名無しさん
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
53デフォルトの名無しさん
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
54デフォルトの名無しさん
2020/12/07(月) 19:47:31.22ID:m3NDFPid
>>49
クソスレ立てるな

すき家とかかつやみたいな和食屋で外国人雇うな
http://2chb.net/r/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
いわゆるスクレイピングって言う技術だけど、それ以上のことがしたいんだ。

ホームページの構成要素を破壊するような動画を作りたい。まあ、実際に破壊する訳じゃないけど、ハッカーになりたい子どもたちの娯楽として役に立つらしい。
55蟻人間 ◆T6xkBnTXz7B0
2020/12/07(月) 19:54:22.42ID:rNPNmVA2
>>54
立ててねーよ。
56デフォルトの名無しさん
2020/12/07(月) 20:03:08.23ID:7hownX7E
お題流れるからクソコテは死ね
57蟻人間 ◆T6xkBnTXz7B0
2020/12/07(月) 20:16:20.90ID:sdBj/JBd
荒らしを相手にするやつも嵐のメンバー。
58デフォルトの名無しさん
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
なぜですか?

質問者からのお礼コメント
小学生でもわかるような回答ではなく、なぜそうなのかも回答できないと社会人として微妙ですよ。
わかる箇所だけ答えるのはニワカです。
60デフォルトの名無しさん
2020/12/08(火) 15:52:58.87ID:KeS4W5RD
漠然とした質問に相応の答えだね
61デフォルトの名無しさん
2020/12/08(火) 22:48:35.65ID:pGXopNTt
ヤフー知恵袋スマホで見たらどこがサイト本体なのかわからねえなゴミ袋かよ
62デフォルトの名無しさん
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行にする方法が思いつかなかった
63デフォルトの名無しさん
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)
64デフォルトの名無しさん
2020/12/10(木) 18:40:22.32ID:WBenXu2r
pythonでもlambda使えば
65デフォルトの名無しさん
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
67デフォルトの名無しさん
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()))
69デフォルトの名無しさん
2020/12/12(土) 20:53:25.52ID:LY1sKTLV
>>51
perl5
https://paiza.io/projects/qKzBZMnxL6G2mveKArd7-g
70デフォルトの名無しさん
2020/12/12(土) 21:20:21.05ID:LY1sKTLV
>>51
びっくりする副作用を使うバージョンでもう一回 perl5
https://paiza.io/projects/d45itfxNwe7Y4RCtte8czQ
71蟻人間 ◆T6xkBnTXz7B0
2020/12/12(土) 21:23:14.60ID:Tjq2nQZU
お題:
プログラム言語X1では32ビットの符号なし整数と32ビットの符号付き整数が使える。
しかし、プログラム言語X2では32ビットの符号なし整数が使えず、32ビットの符号付き整数が使える。
このままではX1からX2への移植が困難である。
そこで、X2において与えられた32ビットの整数を符号なしと見なした値を10進数文字列化せよ。
72デフォルトの名無しさん
2020/12/12(土) 21:29:50.06ID:My1CH9nH
>>71
クソスレ立てるな自演野郎

作ろう!ウェブアプリ開発コンテストPart1
http://2chb.net/r/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:???
トリップそのままとか斬新な自演ですね(笑)


一人ママゴト楽しい?
73デフォルトの名無しさん
2020/12/12(土) 21:30:30.92ID:My1CH9nH
>>71
クソスレ立てるな

すき家とかかつやみたいな和食屋で外国人雇うな
http://2chb.net/r/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
いわゆるスクレイピングって言う技術だけど、それ以上のことがしたいんだ。

ホームページの構成要素を破壊するような動画を作りたい。まあ、実際に破壊する訳じゃないけど、ハッカーになりたい子どもたちの娯楽として役に立つらしい。
74デフォルトの名無しさん
2020/12/12(土) 22:53:12.12ID:gPUrwTXi
>>51 bat
:: 循環小数の循環節を()で表す
@echo off &setlocal enabledelayedexpansion
set str=裏裏表裏裏表裏裏裏表裏裏裏表表裏表裏裏表裏裏裏裏表表表表表裏表表裏裏表裏表表裏表表表表表裏裏裏裏裏表表表表裏表表表表裏表表表裏表表表裏裏表裏裏表表裏裏表裏表表表裏裏裏裏裏表表表表表裏表表裏表裏裏表裏表
set str=%str:裏= %
for %%a in (%str%) do set /a n+=1
set /a s=%str:表=1+%0, a=s/n, r=s%%n
:: test sample
:: set /a s=5, n=108, a=0, r=5
:: set /a s=10, n=3, a=3, r=1
:: set /a s=1212123, n=9999999, a=0, r=1212123
:: set /a s=12, n=4, a=3, r=0
:: echo %s% / %n% = %a%...%r%
set /a j=0, max=1024
:FLACT
if %r% EQU 0 goto :END
set RR=%RR% %r%
set /a r*=10, d=r/n, r%%=n, i=0, j+=1
set f=%f%%d%
75デフォルトの名無しさん
2020/12/13(日) 00:32:32.94ID:qXegsMRS
>>71
Java
https://paiza.io/projects/1DnFNPffNqChsN9nlWmv9g
76デフォルトの名無しさん
2020/12/13(日) 01:10:59.90ID:qXegsMRS
>>51
Java
https://paiza.io/projects/Zlfh3U7vhRXnINzdJyIrXA
77デフォルトの名無しさん
2020/12/13(日) 06:04:20.93ID:jPgXPNr/
>>71 C++
https://ideone.com/tsrxUE
78デフォルトの名無しさん
2020/12/13(日) 06:45:16.14ID:jPgXPNr/
>>71 C++ ループ無し
https://ideone.com/kxxDn6
79蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 08:24:11.25ID:zFOj0dh9
お題:
符号なし演算ができない言語X2において、2個の32ビットの符号付き整数x, yがあたえられる。x, yを符号なし整数x', y'と見なしたときの比較演算 x' < y' の値を求めよ。
80デフォルトの名無しさん
2020/12/13(日) 08:37:28.90ID:LzHmnmLv
回答付いたからってチョーシに乗るな。
81蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 08:38:30.36ID:zFOj0dh9
>>78
素晴らしい回答ですね。少し簡単に解説してくれませんか?
出題者がおバカですみません。
82デフォルトの名無しさん
2020/12/13(日) 09:01:54.89ID:LzHmnmLv
えっ??
頭おかしいだけかと思ってたらホントに馬鹿なんだなw
右シフトとマスクでマイナス値は正の値に直す。右シフト1で1/2
更に5で割って1/10。これで10の位から上の値になる
上の割る5で切り捨てられた余りの2倍(左シフト1)と右シフトで捨てられたLSBを足して1の位
83蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 09:18:05.05ID:zFOj0dh9
>>82
ありがとうございます。
84デフォルトの名無しさん
2020/12/13(日) 14:07:02.42ID:qXegsMRS
>>79
Java
https://paiza.io/projects/7iEQmhLeSJs5iPIxnBgHnw
85蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 15:18:39.67ID:zFOj0dh9
>>84
ちょっと動作が遅いね。どちらも正だった場合は普通に比較できるんだから、マイナスありとなしで場合分けできるんじゃね。
86デフォルトの名無しさん
2020/12/13(日) 18:34:56.68ID:jPgXPNr/
>>79 C++
https://ideone.com/uZYoA9
87デフォルトの名無しさん
2020/12/13(日) 18:39:04.43ID:7dJX4pz2
>>19
lol
88デフォルトの名無しさん
2020/12/14(月) 07:19:49.11ID:nk+3ocmA
>>79 Julia
function f(x , y)
  if (x >= 0) == (y >= 0)
  x > y
  else
  !(x > y)
  end
end
89デフォルトの名無しさん
2020/12/14(月) 14:05:29.33ID:y4v5rW/c
今年考えたがボツにした、イマイチ問題より
[お題]
 整数A, B (1 <= A < B <= 20億)が与えられる。
 A以上, B以下の整数が持つ"約数の個数"を合計する。

1) 12 14 → 12
2) 1 100 → 482
3) 98765432 1234567890 → ?
4) 393939393 1772727272 → ?
5) 1 2000000000 → 43141689413

※ 1)の補足、各整数の約数は 12{1,2,3,4,6,12}->6個, 13{1,13}->2個,
  14{1,2,7,14}->4個, 個数合計は 6+2+4=12個
※ 小問実行時間を1秒程度で。
※ "約数の個数"はwikiに準拠
 https://ja.wikipedia.org/wiki/%E7%B4%84%E6%95%B0#%E7%B4%84%E6%95%B0%E3%81%AE%E5%80%8B%E6%95%B0
90デフォルトの名無しさん
2020/12/14(月) 15:38:14.40ID:JA72696N
お題:
整数 N,M が与えられます
M 個の1でない正整数をそれぞれ任意に選んだとき、
それらを全て掛け合わせて N を作ることが出来るような選び方が存在するか求めて下さい

制約:
2≦N≦10^9
1≦M≦10^9

例:
入力: N = 1576, M = 3
出力: Yes (例えば 2*2*394 = 1576 です)

入力: N = 1576, M = 5
出力: No

入力: N = 5, M = 1
出力: Yes (5 の1つだけを選んでもいい)
91デフォルトの名無しさん
2020/12/14(月) 16:58:04.24ID:JA72696N
>>89
エラトステネスっぽく√Nまでで約数を考えていけばいいかな?
それ以上は対称性から*2すればよくて、二乗数の時だけ注意

それで
B以下の約数の個数の和-A未満の約数の個数の和
をする
9289
2020/12/14(月) 18:20:01.63ID:y4v5rW/c
>>91
前半は想定解と異なるので、何とも言えない。
("*2すればよい"の意味がわからない)
最後の2行は、想定解もその通り。

>>90
by python3 https://paiza.io/projects/RY7_PhZbZz-noBfirgTOHA
93デフォルトの名無しさん
2020/12/14(月) 19:27:12.48ID:bqe1tjqc
まあ要するに
Σ[n] ( floor (B/n) - ceiling (A/n) + 1 )
かな
9491
2020/12/14(月) 19:55:38.37ID:I3Y5P+Cj
>>89
C++ https://wandbox.org/permlink/MxHAfa3789hKYqLe

すまん、日本語が下手だった
95デフォルトの名無しさん
2020/12/14(月) 20:38:42.92ID:R5T0tffH
>>71,79 bat 組み合わせてmax関数化。変換は>>78さん模倣
:: maxUint32 2つの引数(int32)をunsignedINT32と見做して比較し大きい方をunsignedINT32と同じ数字文字列に変換
@echo off &setlocal enabledelayedexpansion
for /f "delims=:" %%A in ('findstr /en ARGS "%~0"') do set /a N=%%A
for /f "usebackq skip=%N% tokens=1,2* delims=, " %%A in ("%~0") do (
set /a "x=%%A, u=y=%%B, m=0x7fffffff, xor=(x^y)&~m, xx=x&m, yy=y&m, msby=y>>31&1"
set z=%%C
if !xor! EQU 0 (if !xx! GTR !yy! set /a u=x ) else if !msby! EQU 0 set /a u=x
set /a "L=u&1, u=u>>1&m, h=u/5, L+=u%%5<<1"
if !h! EQU 0 set h=
if "!h!!L!"=="!z!" (set "z=OK") else set z=NG
echo !h!!L! : !z!
)
pause &exit /b
:: ARGS
0, 0, 0
0, 1, 1
1, 0, 1
1, 1, 1
123, 456, 456
456, 123, 456
0, -1, 4294967295
-1, 0, 4294967295
0x7fffffff, 0x80000000, 2147483648
-1294967296, 0x80000000, 3000000000
-294967296, -2147483647, 4000000000
96デフォルトの名無しさん
2020/12/14(月) 22:49:37.32ID:IVz7Drzo
>>89
haskell

div' x y = -1 - ( div ( -x ) y )

f a b = ( g b ) - ( h a )

g a = let
c = truncate $ sqrt $ fromInteger a
v = sum [ ( div a x ) | x <- [1..c] ]
in 2*v - c^2

h b = let
c = truncate $ sqrt $ fromInteger b
d = if c^2 == b then 1 else 0
v = sum [ ( div' b x ) | x <- [1..c] ]
in 2*v - c^2 + d

main = do
print $ f 12 14
print $ f 1 100
print $ f 98765432 1234567890
----
12
482
24201731790
97デフォルトの名無しさん
2020/12/15(火) 00:08:49.86ID:SWKOmgAZ
>>90
haskell

import Data.List

pdcmp n = let
mainLoop d m = case () of
_ | d^2 > m -> [ m ]
_ | mod m d /= 0 -> mainLoop ( d + 1 ) m
otherwise -> d : ( mainLoop d $ div m d )
in if n > 1 then mainLoop 2 n else [ ]

sumMult = sum . map length . group . pdcmp

isOk m n = m <= ( sumMult n)

main = do
print $ isOk 3 1576
print $ isOk 5 1576
print $ isOk 1 5
print $ isOk 15 735134400
print $ isOk 29 536870912
print $ isOk 2 1000000007
----
True
False
True
True
True
False
98デフォルトの名無しさん
2020/12/16(水) 11:44:45.67ID:xiQ1h/Hx
お題: テキスト内の指定の文字をタグで囲む関数wrapを作成せよ
wrap関数の引数は(text, target_char, tag_left='<', tag_right='>')とする
wrap関数の返り値は文字列とする
wrap関数はtext内の文字を解析し、文字がtarget_charだった場合にその文字をtag_left, tag_rightで囲むものとする
タグで囲んだテキストは返り値として返却する

以下のテストケースが通過するように実装せよ
assert pad('abc', 'a') == '<a>bc'
assert pad('bac', 'a') == 'b<a>c'
assert pad('bca', 'a') == 'bc<a>'
assert pad('aba', 'a') == '<a>b<a>'
assert pad('abcabc', 'a') == '<a>bc<a>bc'
assert pad('aaa', 'a') == '<a><a><a>'

余力があればtarget_charをtarget_strにした関数wrap2も作成せよ
wrap2関数は指定の文字列target_strをタグで囲む関数である
99デフォルトの名無しさん
2020/12/16(水) 16:59:32.76ID:vjalvrwm
この手のやつだな
プログラミングのお題スレ Part19 ->画像>5枚
100デフォルトの名無しさん
2020/12/16(水) 18:16:34.26ID:4lTbtOkg
>>98
haskell
(引数の順はhaskell風に変更)

iimport Text.ParserCombinators.Parsec

pad tgt = insBraket "<" ">" tgt

insBraket op cs tgt = id
. ( \( Right x ) -> x )
. parse ( makeP op cs tgt ) ""

makeP op cs tgt = let
mainP = pzero
<|> ( pzero
<|> ( try $ ( ( op ++ ) . ( ++ cs ) ) <$> ( string tgt )
<|> ( count 1 anyChar ) ) <> mainP )
<|> ( string "" )
in mainP

main = do
putStrLn $ pad "a" "aba"
putStrLn $ pad "a" "abcabc"
putStrLn $ pad "a" "aaa"
putStrLn $ insBraket "🎄" "🎅" "Christmas" "Merry Christmas!"
----
<a>b<a>
<a>bc<a>bc
<a><a><a>
Merry 🎄Christmas🎅!
101デフォルトの名無しさん
2020/12/16(水) 19:58:22.95ID:DkI2bGpO
>>98
この正規表現を関数にするのか?

IFxU2W - Online Perl Interpreter & Debugging Tool - Ideone.com
https://ideone.com/IFxU2W

$c = 'a';
$l="<";
$r=">";

while(<>){
s/$c/$l$c$r/g;
print;
}
102デフォルトの名無しさん
2020/12/17(木) 14:22:39.99ID:bL0AsNrc
🎅ワロタ
103デフォルトの名無しさん
2020/12/18(金) 11:06:13.73ID:lt1DqoeP
お題
値のペアが複数入力されます
1列目の値でソートしてユニーク化し、2列目の値を出力してください
1列目の値が同じ時、2列目の値はソート後のインデックスが最も小さいもののみを出力してください

入力
c,e
b,c
c,f
b,d
a,b
c,g

出力
a,b
b,c
c,e
104デフォルトの名無しさん
2020/12/18(金) 11:48:54.35ID:2oY35fJZ
> 1列目の値が同じ時、2列目の値はソート後のインデックスが最も小さいもの~

と書かれてるがそのソート方法は

> 1列目の値でソート

としか書かれてない
これでは例えば
c,e
c,f
は出現順なのか、はたまた2列目の値も使って昇/降順にするのかわからない
105デフォルトの名無しさん
2020/12/18(金) 11:55:17.73ID:f5tAtt/1
>>103

haskell 入力パーサなし

import Data.List

pairs = [
('c','e'),
('b','c'),
('c','f'),
('b','d'),
('a','b'),
('c','g')
]

f = id
. map head
. groupBy (\x y -> ( fst x ) == ( fst y ) )
. sort

main = mapM_ print $ f pairs
106デフォルトの名無しさん
2020/12/18(金) 12:09:30.98ID:lt1DqoeP
>>104
逆にどっちだと思います?
107デフォルトの名無しさん
2020/12/18(金) 12:52:01.21ID:1RoKReGQ
出現順という言葉が使われていないから、出現順ではない。
2列目もソートすべき

ソートの仕方は書いていないので、文字列でよい
108デフォルトの名無しさん
2020/12/18(金) 13:31:08.12ID:agZtfXny
勝手に決めるな
109デフォルトの名無しさん
2020/12/18(金) 14:23:00.18ID:A9pQAhpY
>>103
C++
入力を競プロぽく改変
https://ideone.com/CUTjOy

#include<iostream>
#include<map>
#include<set>
#include<string>
#include<vector>
#include<algorithm>

using namespace std;

int main() {
int N;
cin >> N;

map<string, set<string>> xs;

for(int i=0; i<N; i++){
string k, v;
cin >> k >> v;
xs[k].insert(v);
}

for_each(xs.begin(), xs.end(), [xs](auto& it){
cout << it.first << "," << *(xs.at(it.first).begin()) << endl;
});

return 0;
}
110デフォルトの名無しさん
2020/12/18(金) 16:16:25.17ID:P9OguxeC
>>103
# # cat input
c,e
b,c
c,f
b,d
a,b
c,g


# # cat input | sort | perl -F"," -lane 'print unless $LAST eq $F[0]; $LAST = $F[0]'
a,b
b,c
c,e
111デフォルトの名無しさん
2020/12/18(金) 18:24:57.63ID:udnU9JLz
>>103 bat
@(for %%a in ("c,e" "b,c" "c,f" "b,d" "a,b" "c,g") do @echo %%~a)|(cmd /v:on /s /c "for /f "tokens=1,2 delims=," %%b in ('sort') do @(if not "%%b"=="!s!" set "s=%%b" &echo %%b,%%c)")&pause
112デフォルトの名無しさん
2020/12/18(金) 19:01:11.88ID:Dh0d5aQR
お題: ランダムに生成されるバイナリツリーがある
ツリーのルートから見て最も左にあるノードと最も右にあるノードの位置を出力せよ
位置はツリーのルートが原点とする
x座標は原点から左に進むとマイナスになり、右に進むとプラスになる
y座標は原点から下に進むとプラスになるものとする
生成されるツリーは原点から下に向かって伸びていくものとする
生成されるツリーの最大の高さは8とする
出力例は↓のようになる

l = -3, 4
r = 5, 7
113デフォルトの名無しさん
2020/12/18(金) 21:17:47.26ID:lt1DqoeP
>>112
座標はこういう感じ?
プログラミングのお題スレ Part19 ->画像>5枚
114デフォルトの名無しさん
2020/12/18(金) 22:39:29.15ID:Dh0d5aQR
>>113
そういう感じ
115デフォルトの名無しさん
2020/12/18(金) 22:55:15.81ID:Dh0d5aQR
>>113
あとツリーの最大の横幅は原点から左右に8ずつで
116デフォルトの名無しさん
2020/12/19(土) 09:08:43.96ID:Hvq3yNww
>>103 J
a =: /:~ ',' & cutopen @ >cutopen stdin ''
f =: >@{. , ','&,@>@{:
smoutput f"1 a #~ ~: {. "1 a
117デフォルトの名無しさん
2020/12/19(土) 09:49:26.96ID:x1EY5aRu
Jニキひさびさ
1189
2020/12/19(土) 14:32:22.06ID:gCQF7SSG
>>103 Perl5

@a = qw{c,e b,c c,f b,d a,b c,g};
$h{(/(\w)/)[0]} //= $_ for @a;
print "$_\n" for map{$h{$_}} sort keys %h;

実行結果
~ $ perl 19_103.pl
a,b
b,c
c,e
119デフォルトの名無しさん
2020/12/19(土) 18:39:10.13ID:gcxM+qzh
>>103
Java
https://paiza.io/projects/507wmTuYZu1G36mkuEX5sw
120デフォルトの名無しさん
2020/12/19(土) 20:00:26.12ID:gcxM+qzh
>>112
Java
https://paiza.io/projects/WYRetip28qMC9oZ-PveUyg?language=java
12189
2020/12/20(日) 03:24:48.64ID:zjFPqMXn
>>89

https://ideone.com/lQvahn
投稿があった、O(√)以外の方法もあるみたいなので、両方を載せておこう。
他方は、O(N)解法の最後の方の同じ数をまとめて計算するやり方。
O(√)解法より確実に計算量が多い。
122デフォルトの名無しさん
2020/12/20(日) 14:30:37.82ID:ocWFq0h7
>>98
Kotlin 及び Kotlin script

target_char の場合

fun wrap(text: String, target_char: Char, tag_left: Char = '<', tag_right: Char = '>') = text.replace(target_char.toString(), "$tag_left$target_char$tag_right")

target_str の場合

fun wrap(text: String, target_str: String, tag_left: Char = '<', tag_right: Char = '>') = text.replace(target_str, "$tag_left$target_str$tag_right")

要するに Java の String クラスの replace() 使ってるので、肝心な部分は何も考えてない。
tag_left, tag_right はデフォルト値として '<', '>' を指定しているので呼び出す側で指定しなければこれになる。

もう少しだけ Kotlin らしくするとしたら拡張関数にするぐらいかな。

fun String.wrap(target_str: String, tag_left: Char = '<', tag_right: Char = '>') = replace(target_str, "$tag_left$target_str$tag_right")

これで String クラスのメソッドになるので "abcabc".wrap("bc") が "a<bc>a<bc>" を返すようになる。
123デフォルトの名無しさん
2020/12/20(日) 17:39:53.62ID:ocWFq0h7
>>98
C
https://paiza.io/projects/bxoqxh2B8It2pvpM7tl1EA

ちゃんと assert() で色々テストするようにした。
124デフォルトの名無しさん
2020/12/20(日) 18:33:53.02ID:1LcS4Wc6
>>98 JavaScript
const wrap = (text, target_str, tag_left='<', tag_right='>') => text.replace(RegExp(target_str, 'g'), tag_left + target_str + tag_right);
125デフォルトの名無しさん
2020/12/21(月) 19:30:10.34ID:Mnipwtco
>>112 Python
https://paiza.io/projects/pwJH8XQVozwZ5SorTfF0TQ
126デフォルトの名無しさん
2020/12/23(水) 21:01:46.74ID:IGuwyxwv
[お題] 和が2021の倍数
 2021000以下の素数を昇順に並べた数列がある。
 [2, 3, 5, ..., 2020979, 2020999] 項目数:150399

 この数列より 空でない連続する部分列を P とする。
 (全てのPの選び方はNCR(150399+1, 2) = 約113億通りある)
 Pの和が2021の倍数となるのは何通りあるか。
 
 [8081,8087] [3361, 3371, 3373] [2011, 2017, 2027, 2029] 等が該当するP

※無駄に素数を乱数代わりに使った、一発正解問題
※実行時間は素数生成を含めて、3秒以内
127デフォルトの名無しさん
2020/12/23(水) 23:02:15.25ID:PQyv7tz0
>>126
https://ideone.com/0tWRM5
あってるかどうか分からないけど
128デフォルトの名無しさん
2020/12/23(水) 23:12:10.85ID:zWDUqRJW
>>126 C++
https://ideone.com/hIUSf1
129デフォルトの名無しさん
2020/12/26(土) 03:16:19.16ID:4qx7gBot
>>127
これ実際配列回す必要ないんだな
https://ideone.com/3Wo9aF
130デフォルトの名無しさん
2020/12/28(月) 03:25:00.14ID:S5vNYbFH
>>71
Kotlin
https://paiza.io/projects/og3llL4-FChIJZQFqR8FRQ
131デフォルトの名無しさん
2020/12/29(火) 19:09:26.95ID:v9CXwjD7
>>103
Kotlin script

pair.csv にその入力を入れておいてから実行する。

以下は kotlinc コマンドで REPL にして直接入力して実行した時のコピー

>>> java.io.File("pair.csv").bufferedReader().lineSequence().map { it.split(',') }.sortedBy { it[0] }.fold(mutableListOf<List<String>>()) { a, c -> if (a.size == 0 || a[a.lastIndex][0] != c[0]) a.add(c); a }.forEach { println(it) }
[a, b]
[b, c]
[c, e]
>>>

2列目については考慮していないので sortBy が中でやっているソートのアルゴリズムが変われば変わるかも知れない。
132デフォルトの名無しさん
2020/12/29(火) 19:20:00.18ID:v9CXwjD7
a[a.lastIndex][0] の部分は a.last().first() と書いても同じだった。
この方が a.lastIndex 呼ばない分だけ無駄が少ないかも知れない。
(でもコンパイラが中で適当に最適化して同じになるかも知れないのでどうでも良いかな?)
133蟻人間 ◆T6xkBnTXz7B0
2020/12/29(火) 19:38:06.80ID:akpvTOL3
お題: 半径dの円にぴったり内接する正n角形を描画せよ。
134デフォルトの名無しさん
2020/12/29(火) 20:28:59.04ID:0LWFOCUq
ぴったり内接とは?
ぴったりじゃない内接を教えてください
135デフォルトの名無しさん
2020/12/29(火) 20:34:46.26ID:bi9fPEgs
ぴったり内接ってなんだよって言おうとしたらすでに言われててくっそワロタ
136デフォルトの名無しさん
2020/12/29(火) 20:53:58.41ID:2gsaGKLd
量子化誤差を最小化した演算を求めているのでは?
我々は実数を扱えないので。
137デフォルトの名無しさん
2020/12/29(火) 21:00:08.04ID:2gsaGKLd
n角形をなす線分が円の外側に飛び出さないよう注意を与えているのかもしれない。

実数を扱えない以上、注意する必要が有る。
ということを示唆するのかも。
138デフォルトの名無しさん
2020/12/29(火) 21:24:43.03ID:0mXsQANw
>>133
processing

void setup(){
size(400, 400);
float d=200;
float r=d/2;
int n=7;
PVector c = new PVector(width/2, height/2);
ArrayList<PVector> p = new ArrayList<PVector>();
for(int i=0; i<n+1; i++){
float theta = (TWO_PI*i)/n;
PVector t = new PVector(r*cos(theta),r*sin(theta));
t.add(c);
p.add(new PVector(t.x, t.y));
}

ellipse(c.x, c.y, d, d);
for(int i=0, j=1; i<n+1; i++, j++, j%=n){
line(p.get(i).x, p.get(i).y, p.get(j).x, p.get(j).y);
}
}
139デフォルトの名無しさん
2020/12/29(火) 21:27:39.14ID:0mXsQANw
画像
プログラミングのお題スレ Part19 ->画像>5枚
140デフォルトの名無しさん
2020/12/30(水) 13:44:24.04ID:tmlECeYE
[お題] MarkdownのParagraph/BlockQuoteをパースしHTMLを生成してください

入出力例(1)
paragraph
> block quoted paragraph
↑入力 / ↓出力
<p>paragraph</p>
<blockquote>
<p>block quoted paragraph</p>
</blockquote>

入出力例(2)
> hoge
> > nested piyo1
> > nested piyo2
> fuga
↑入力 / ↓出力
<blockquote>
<p>hoge</p>
<blockquote>
<p>nested piyo1</p>
<p>nested piyo2</p>
</blockquote>
<p>fuga</p>
</blockquote>
141デフォルトの名無しさん
2020/12/30(水) 17:24:14.94ID:yfdsF4Me
quote に入れるのは"> "の繰り返しのみで桶?
142デフォルトの名無しさん
2020/12/30(水) 20:26:27.99ID:nFum3l+K
>>141
はい、blockquoteは
"> > "のように"> "の繰り返しで始まる行としてください。
簡単のために">>"のような入力は考慮不要として下さい。
143デフォルトの名無しさん
2020/12/30(水) 21:20:22.80ID:YQYWYr/5
お題
文字列を数値文字参照に変換してください

入力: 𝚙𝚛𝚘𝚐𝚛𝚊𝚖𝚖𝚒𝚗𝚐 𝚌𝚑𝚊𝚕𝚕𝚎𝚗𝚐𝚎𝚜
出力: &#120473&#120475&#120472&#120464&#120475&#120458&#120470&#120470&#120466&#120471&#120464&#32&#120460&#120465&#120458&#120469&#120469&#120462&#120471&#120464&#120462&#120476
144デフォルトの名無しさん
2020/12/30(水) 21:32:08.73ID:EIqnK2Zk
呪いか?
145デフォルトの名無しさん
2020/12/30(水) 21:48:07.53ID:YQYWYr/5
>>140
Java
https://paiza.io/projects/oEOq7Z5F5-6RgNcodNYX-w
146デフォルトの名無しさん
2020/12/30(水) 21:49:19.71ID:p/cFtMuj
>>143 Java
https://ideone.com/9V8dyv
147デフォルトの名無しさん
2020/12/30(水) 21:58:00.23ID:p/cFtMuj
>>143 JavaScript
https://ideone.com/d62aQ9
148デフォルトの名無しさん
2020/12/30(水) 22:36:28.16ID:p/cFtMuj
>>146は不正なUnicode文字列の入力を考慮していませんでした
高位サロゲートが低位サロゲートを伴わず単独で現れていると、その直後の文字が抜け落ちます
つまり
"<\ud83c>" → "&#60;&#55356;&#62;" ではなく
"<\ud83c>" → "&#60;&#55356;" になってしまう

修正版: https://ideone.com/bz8cMe
149デフォルトの名無しさん
2020/12/31(木) 01:13:45.28ID:pjMyqahK
すごいどうでもいいことなんだけど、
ArrayListってどういうデータ構造なの?
ArrayなのそれともListなの?
おじさんわからないよ。。
150デフォルトの名無しさん
2020/12/31(木) 12:16:39.07ID:RvVxXqDc
>>149
お題
array listを実装してください

次の要項を満たしてください
・add, removeができること
・サイズが可変であること
・序数で要素にアクセスできること
・要素へのアクセスの計算量はO(1)もしくはO(log n)であること
151デフォルトの名無しさん
2020/12/31(木) 15:29:53.91ID:wqjSMEXG
>>150
add, remove は任意箇所の挿入と一要素削除で桶?
152デフォルトの名無しさん
2020/12/31(木) 19:05:54.91ID:aMBMdmtQ
>>140
haskell
https://ideone.com/OfqVap
153デフォルトの名無しさん
2020/12/31(木) 21:07:25.40ID:pjMyqahK
>>150
それがArrayListの要件? ありがとう
154デフォルトの名無しさん
2020/12/31(木) 21:26:18.83ID:RvVxXqDc
>>153
実装して
155デフォルトの名無しさん
2021/01/01(金) 13:09:20.23ID:8TPOGttB
>>154
>>150ってただの可変長配列じゃないの?
156デフォルトの名無しさん
2021/01/01(金) 13:38:10.37ID:8TPOGttB
>>150 Python
https://paiza.io/projects/lZESfj2Dqo1crUXKIb_48w

いまいち合ってるか自信がない
157デフォルトの名無しさん
2021/01/01(金) 14:38:54.78ID:8TPOGttB
>>150 C++
https://paiza.io/projects/vn9r5dit-omrT_uOuvIC2A
158デフォルトの名無しさん
2021/01/02(土) 03:34:41.82ID:1MFl5wrQ
>>143
Kotlin

https://paiza.io/projects/T9yJGxVuxj1Tg0tWh383SQ
159デフォルトの名無しさん
2021/01/02(土) 15:11:50.57ID:gpIsEKdn
>>150
この問題の要件は

>・要素へのアクセスの計算量はO(1)もしくはO(log n)であること

だけでいいのかな?
コレだけでいいならデータの更新時に常に深さが±1の二分木に納直せば必ず参照の計算量はO(log(n))になるし、毎回ソートして格納し直せば参照の(indexによる)計算量はO(1)になる希ガス
データの更新時の制限は全くないでいいのかな?
160デフォルトの名無しさん
2021/01/02(土) 21:54:03.91ID:YfZD//vW
メモリが安くなったとはいえ
やはりメモリの制限は必要では?
無尽蔵にあるわけではないので
161蟻人間 ◆T6xkBnTXz7B0
2021/01/04(月) 22:40:39.15ID:RRkyDjZk
お題: 四方に広がる無限のサイズの方眼紙があって、1マス1マスに一個のアラビア数字を一度だけ記入できる。
方眼紙に記録したデータの一部は「仮想画面」に出力できる。
マス(x, y)に数字dを記入することを「P(x, y, d)」と表すことにする(x, yは任意の整数)。
(a) 3桁の自然数が2つ与えられる。その足し算の筆算を実演するアルゴリズムを出力するプログラムを書け。
(b) 任意の自然数が2つ与えられる。(以下略)
162蟻人間 ◆T6xkBnTXz7B0
2021/01/04(月) 22:51:58.92ID:RRkyDjZk
補記。

マス(x, y)にある数字を「P(x, y)」と表すことにする。マス(x, y)に数字がなければP(x, y)==0とする。

また、マス(x, y)に数字がなければE(x, y)==1とし、数字があればE(x, y)==0とする。
163デフォルトの名無しさん
2021/01/05(火) 22:28:39.68ID:JVpboZJX
お題: ランダムな数列を生成せよ
数列の長さは4 <= len <= 20とし、これもランダムとする
164デフォルトの名無しさん
2021/01/05(火) 22:36:13.47ID:3bhht3A2
>>163 Ruby 3.0

p Array.new(rand(17) + 4){rand * 1e32}
165デフォルトの名無しさん
2021/01/06(水) 10:45:40.05ID:0+tWp1dI
>>163 js
const rand = (a, b) => Math.floor(Math.random() * (b - a + 1)) + a
const range = (n) => [...Array(n).keys()]
range(rand(4, 20)).map(Math.random)
166デフォルトの名無しさん
2021/01/06(水) 10:46:52.82ID:0+tWp1dI
ruby 3 はどのくらい変わったの
167デフォルトの名無しさん
2021/01/06(水) 14:12:34.77ID:0ypUbOKE
>>163
Kotlin または Kotlin script

以下は kotlinc コマンドで REPL で実行した時のコピー。
(先頭の >>> はプロンプト)

>>> (1..(4..20).random()).map { kotlin.random.Random.nextInt() }
res0: kotlin.collections.List<kotlin.Int> = [1712097059, 2034192723, -1232228362, 634194098, 1788814029, -1878195330, -2043751487, 933285281, 1116738696, -934057871, -1657983454, -1761832713, -1836302098, -902578867, -1306790359, 1824207694, 386095401, -389307033, 380242891, -2028767653]
>>>

実行結果は何処にも出力しようとしてしていないが REPL なので自動で出力されている。
168デフォルトの名無しさん
2021/01/06(水) 19:38:44.63ID:ySlgJWsk
>>163 Ruby
# こんな意味だと解釈した
puts ( '%020b' % rand(1<<20) )[ 0, 4+rand(17) ] # ( 2進) '0000'-'00000000000000000000'..'1111'-'11111111111111111111'
puts ( '%020d' % rand(1e20) )[ 0, 4+rand(17) ] # (10進) '0000'-'00000000000000000000'..'9999'-'99999999999999999999'
169デフォルトの名無しさん
2021/01/06(水) 23:58:46.35ID:N14y+/j1
お題
アルファベットの開始の文字、アルファベットの終了の文字を
入力としてうけとり下記のように文字列を出力してください

入力: a,k
出力:
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
170デフォルトの名無しさん
2021/01/07(木) 00:11:25.06ID:bv7Qweso
意味不明な途中省く
sh & perl5
echo "a,k" | perl -lane 'm/(\w),(\w)/; print ($1..$2)'
abcdefghijk
171デフォルトの名無しさん
2021/01/07(木) 00:20:29.22ID:iqGL0Mlk
省いちゃダメなの!
172デフォルトの名無しさん
2021/01/07(木) 00:29:54.66ID:Vd9hikpg
>>169
Haskell

import Data.List

consecutiveAlph a z = tail $ inits $ [ a .. z ]
main = mapM_ putStrLn $ consecutiveAlph 'a' 'k'
----
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
173(u_・y)
2021/01/07(木) 00:56:12.00ID:oTn3YI8v
>>169
# Ruby3.0
x = ("a".."k")
x.inject{
p _1
_1 + _2
}
174デフォルトの名無しさん
2021/01/07(木) 02:01:24.63ID:GGtjVNVk
>>169 Common Lisp
https://ideone.com/yWJWQf

参考:
CLHS: Section 13.1.6 Ordering of Characters
http://www.lispworks.com/documentation/HyperSpec/Body/13_af.htm
1759
2021/01/07(木) 02:13:26.61ID:t9BUPUyy
>>169 Perl5

@a = split',', <>;
print($a[0]..$_, "\n") for $a[0]..$a[1];


実行結果
~ $ echo 'a,k' | perl 19_169_a,k.pl
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
abcdefghijk
1769
2021/01/07(木) 02:17:47.93ID:t9BUPUyy
つか、これでよかったわ

@a = eval <>;
print($a[0]..$_, "\n") for $a[0]..$a[1];
177デフォルトの名無しさん
2021/01/07(木) 11:50:26.21ID:oTn3YI8v
お題
オセロのようなルールでひっくり返しを行う処理を実装せよ

変数のイメージ
0 = 置かれてない場所
1 = 黒
2 = 白
3 = 今のターンで置いた黒

入力:01202113112120
出力:01202222222120
178デフォルトの名無しさん
2021/01/07(木) 11:52:33.15ID:oTn3YI8v
ちょい訂正
3 = 今のターンで置いた白だった
179デフォルトの名無しさん
2021/01/07(木) 12:05:34.54ID:TYHzopEy
>>177
それやと1が置かれたのか2が置かれたのかわからないのでは?
0123120のとき
1が置かれたとして0111120になるのか
2が置かれたとして0122220になるのか
わからない
180デフォルトの名無しさん
2021/01/07(木) 12:06:14.88ID:TYHzopEy
あ、1=3=黒なのね
失礼しました
181デフォルトの名無しさん
2021/01/07(木) 12:32:35.52ID:TYHzopEy
>>177
haskell

twosTurn x = let
( pre, ( '3' : post ) ) = span (/='3') x
revOne y = let
( pre02 , post02 ) = span ( == '1' ) $ y ++ "0"
twos = zipWith const ( repeat '2' ) pre02
in if ( head post02) == '0'
then y
else take ( length y ) ( twos ++ post02 )
revOne' = reverse . revOne . reverse
in ( revOne' pre ) ++ "2" ++ ( revOne post )

sample = "01202113112120"

main = print $ twosTurn sample
182デフォルトの名無しさん
2021/01/07(木) 12:50:45.25ID:sEmeEMut
>>177 Ruby
board = '01202113112120'
puts board
puts board.sub( /2(1*)3(1*)2/ ){ "2#{'2'* ($1.size)}2#{'2' * $2.size}2" }
183182
2021/01/07(木) 13:05:54.80ID:sEmeEMut
>>182 は間違いでした
board = '01202113112120'
puts board
puts board.sub( /2(1*)3/ ){ "2#{'2'* ($1.size)}3" }.sub( /3(1*)2/ ){ "3#{'2'* ($1.size)}2" }.tr( '3', '2' )
184デフォルトの名無しさん
2021/01/07(木) 20:21:05.95ID:n2K5l1bF
仕様を出来るだけ簡潔にしたかったんだろうけどやり過ぎてモヤる
下位から
第1bit 駒有無
第2  駒種別
第3  now flag
として
0:駒無し
1:白, 3:黒
5:白now, 7:黒now

と置いてnowの結果を出力の方が良くね
185デフォルトの名無しさん
2021/01/07(木) 21:58:01.92ID:pRSWPdMl
この問題の本命は、オセロを作るっていうお題にしたつもりじゃないからw
スレに居る人はオセロくらい作ったことある人しかいないと思っているし
ゲームのアルゴリズムの一端を文字列処理として見るのも可能っていう点な
186デフォルトの名無しさん
2021/01/08(金) 02:42:54.86ID:pELUdJTO
>>184
お前がそういうお題を新たに出せば良い。
187デフォルトの名無しさん
2021/01/08(金) 07:57:49.81ID:AIrixKby
>>184 Ruby
board = [0b000,0b011,0b001,0b000,0b001,0b011,0b011,0b101,0b011,0b011,0b001,0b011,0b001,0b000].pack('C*')
if board["\x05"]
board = board.sub( /\01(\03*)\x05/ ){ "\01#{"\01"* ($1.size)}\x05" }.sub( /\x05(\x03*)\x01/ ){ "\x05#{"\x01"* ($1.size)}\x01" }.tr( "\x05", "\x01" )
else
board = board.sub( /\03(\01*)\x07/ ){ "\03#{"\03"* ($1.size)}\x07" }.sub( /\x07(\x01*)\x03/ ){ "\x07#{"\x03"* ($1.size)}\x03" }.tr( "\x07", "\x03" )
end
puts board.unpack('C*').map{|b| '0b%03b' % b.ord }.join(',')
#=>0b000,0b011,0b001,0b000,0b001,0b001,0b001,0b001,0b001,0b001,0b001,0b011,0b001,0b000
188デフォルトの名無しさん
2021/01/08(金) 21:29:33.72ID:Uhe1x+T1
>>169 octave
https://ideone.com/li5G9s
f = @(b, e) arrayfun(@(e) {b:e}, b:e);
f('a', 'k')
189デフォルトの名無しさん
2021/01/09(土) 02:47:05.51ID:yzrxyAxR
>>169
Kotlin
https://paiza.io/projects/_TeqzWrnHegnQ0TTkyQQ9Q
190デフォルトの名無しさん
2021/01/09(土) 03:00:30.54ID:yzrxyAxR
>>169
Perl5

コマンドラインからこんな風に入力して実行する。(実際に試した shell は bash)

perl -ne 'chomp;@d=split/,/;print join("\n", map { join("", $d[0]..$_) } $d[0]..$d[1])."\n";'
191デフォルトの名無しさん
2021/01/09(土) 03:18:08.87ID:yzrxyAxR
>>140
Kotlin

https://paiza.io/projects/gkGJm8-S7pj5AVhPu5JWtA

できたことはできたが、なんか奇麗じゃないね。
192デフォルトの名無しさん
2021/01/09(土) 08:04:43.95ID:7SSQ0Zys
>>169 Ruby
def f(a,b)
(a..b).map{|c| [*a..c]*""}
end
puts f("a","k")
193デフォルトの名無しさん
2021/01/09(土) 20:59:35.76ID:71nzX3jh
>>163
Java
https://paiza.io/projects/7I9Xp20LlqAq-SbQPFmdTA
194デフォルトの名無しさん
2021/01/09(土) 21:04:47.77ID:71nzX3jh
>>143
Java
https://paiza.io/projects/86Fk6Eo8cM3VVl_FtgDLUw?language=java
195デフォルトの名無しさん
2021/01/09(土) 21:40:06.97ID:71nzX3jh
>>169
Bash
https://paiza.io/projects/HhXsE6Yq5nFJfmwJNniCCw?language=bash
196デフォルトの名無しさん
2021/01/09(土) 23:28:46.26ID:MPKG4kVI
お題
N個の時系列データが与えられる。i番目のデータはa_iである
i=1~Nについて、以下の条件を満たすx_iを出力せよ
x_i : 直近c個でa_iが最大となるようなcのうち、最大のもの

[入力]
N
a_1 a_2 ... a_N

[出力]
x_1 x_2 ... x_N


(例1)
5
3 1 2 6 6
=> 1 1 2 4 5

3 = max(3)
1 = max(1) //今までの中で最小
2 = max(1, 2) //直近2個で最大
6 = max(3, 1, 2, 6) //直近4個で最大 (直近3個でも最大だが、cの値として最大のものを選ぶ)
6 = max(3, 1, 2, 6, 6) //直近5個で最大(最大タイ)

(例2)
3
100 10 1
=> 1 1 1
197デフォルトの名無しさん
2021/01/10(日) 03:36:08.11ID:lRaYSXSv
上田隆一

シェル芸勉強会問題一覧
https://b.ueda.tech/?page=00684

色々な問題が掲載されている。
問題作りのヒントになるかも
198デフォルトの名無しさん
2021/01/10(日) 05:17:09.34ID:5hwhwjPe
>>169 bat
@echo off &setlocal
set ALL=abcdefghijklmnopqrstuvwxyz
call :RANGE a,k
pause &exit /b

:RANGE
setlocal enabledelayedexpansion
if "%1" GTR "%2" echo ERROR: Invalid argument&exit /b
set STR=!ALL:*%1=%1!
if not "%2"=="z" call set STR=%%STR:!ALL:*%2=!=%%
:LENGTH
set /a n+=1
if not "!STR:~0,-%n%!"=="" goto :LENGTH
for /L %%n in (1,1,%n%) do echo !STR:~0,%%n!
199デフォルトの名無しさん
2021/01/10(日) 09:32:44.37ID:aiEZ01BF
>>196
完全に全く意味がわからないお題を久々に見た
200デフォルトの名無しさん
2021/01/10(日) 09:35:06.95ID:aiEZ01BF
あ、イヤわかった最小はタイポか
201デフォルトの名無しさん
2021/01/10(日) 09:41:46.50ID:nmvnbhWr
>>163 octave
https://ideone.com/GX9hjP
f = @() rand(randi([4 20]), 1);
202デフォルトの名無しさん
2021/01/10(日) 09:45:08.12ID:aiEZ01BF
>>196
haskell

import Data.List

c = id
. map length
. map (\x -> takeWhile ( <= ( last x ) ) . reverse $ x)
. tail
. inits

main = do
print $ c [ 3, 1, 2, 6, 6 ]
----
[1,1,2,4,5]
203デフォルトの名無しさん
2021/01/10(日) 13:04:37.47ID:26KuLTT9
>>196
Java
https://paiza.io/projects/P5uIlZBMLt_cFSzjdkHApQ
204デフォルトの名無しさん
2021/01/11(月) 00:16:30.88ID:NK5j5E+l
196読めた奴すごいな
205158
2021/01/11(月) 02:25:11.67ID:HKU1hsOJ
>>143
Kotlin

>>194のJavaのやつを見て>>158のKotlinのやつを改造した。

https://paiza.io/projects/iNRMUv2Annc6YFqJjAO4wg

要するに >>158 を作っている時に String#codePoints() に気付いていなくて自作してしまったということだが、
Java 8 から追加されたメソッドのようなので、>>158は古い JVM ライブラリでも動くということではある。
206デフォルトの名無しさん
2021/01/11(月) 02:44:15.64ID:HKU1hsOJ
お題
>>196を小学生にも理解できるぐらいのやさしい日本語に翻訳せよ。
207デフォルトの名無しさん
2021/01/11(月) 03:09:40.17ID:H8GM2Hiz
無理です
チンパンカンプン
208デフォルトの名無しさん
2021/01/11(月) 03:11:51.27ID:yhMi8PUx
このスレの住人なら日本語分からなくても例だけ見れば普通に理解できるだろ
IQテストみたいなもんだ
209デフォルトの名無しさん
2021/01/11(月) 03:26:31.03ID:yIQfxhn8
>>206
こういう事じゃない?
入力値が遡って比較する最大個数と値を兼ねてるんでしょ
同値ならindex(1始まり)の大きい方

入力:3 1 2 6 6 4
3 [(3)] →1
1 [3 (1)] →1
2 [3 (1 2)] →2
6 [(3 1 2 6)] →4
6 [(3 1 2 6 6)] →5
4 [3 1 (2 6 6 4)] →3
210デフォルトの名無しさん
2021/01/11(月) 03:36:50.19ID:yhMi8PUx
>>209
最後の4違うぞ
入力:3 1 2 6 6 4
3 [(3)] →1
1 [3 (1)] →1
2 [3 (1 2)] →2
6 [(3 1 2 6)] →4
6 [(3 1 2 6 6)] →5
4 [3 1 2 6 6 (4)] →1

x_iは要素数。上の例でいうと()の中の数が何個あるかってこと。で、(右から)直近の要素の中での最大値が一番右の数字になるのは最大でいくつかってこと。
一番下の4のケースでは次の6を含んでしまうとMAXが4にはならないので要素数1で打ち止め。
211デフォルトの名無しさん
2021/01/11(月) 12:34:34.25ID:kY9pcTJO
現在地から前に遡って見ていって自分と同じか小さい要素が続く数を
最初から最後まで求めるだけ
もっと早く一発で求める方法があるかは分からないけど
212デフォルトの名無しさん
2021/01/11(月) 12:57:43.66ID:ySa6yihW
>>206
長さ N の整数列 A が与えられる
A の連続した部分列であって、各 i (1≦i≦N) について次の条件を満たすものをすべて求めなさい
・整数 j (1≦j≦i) を max(A_j, A_{j+1}, ..., A_i) = A_i を満たす最小の j とし i - j + 1 の値
213デフォルトの名無しさん
2021/01/11(月) 13:02:19.99ID:H8GM2Hiz
最高水準位アルゴリズムで
最高値更新したら発表?
214デフォルトの名無しさん
2021/01/11(月) 14:52:41.81ID:SkhM8/Y0
>>196 C++ O(N log N)
セグメント木を使うと区間 max の二分探索を O(log N) で行える
atcoder の aclib を使用
https://wandbox.org/permlink/8rm8MsauDMJhvpAf
215デフォルトの名無しさん
2021/01/11(月) 15:14:59.89ID:WVZOdukT
>>214
しゅんごい
216デフォルトの名無しさん
2021/01/14(木) 09:22:07.11ID:0HXe7q2K
お題
将棋のルールで可能な最初の2手を全て求める。
217デフォルトの名無しさん
2021/01/14(木) 11:00:00.08ID:5lV9HJJA
なるほど
(∞,0)のみからなるリストから始めて(-値、インデックス)についての辞書式順序(ただしインデックスは降順)でリストに追加していくと考えればいいのか
i番目の要素(v,i)が来た時(u,h)<(w,j)の間に入るならvより大きい最大のインデックスはjだからi番目の出力はi-jになるのか
218◆QZaw55cn4c
2021/01/14(木) 18:33:59.62ID:m1G/9nsv
>>216
すてきなお題ですね!
219デフォルトの名無しさん
2021/01/14(木) 19:35:36.96ID:oX4ff6VG
>>216
先手後手ともに可能性が30通りあるのでそれらを単純に組み合わせて出力すれば良い
220デフォルトの名無しさん
2021/01/14(木) 19:43:46.53ID:HoJSCLGU
3手なら面白いけど2手ならつまらんな
221デフォルトの名無しさん
2021/01/16(土) 10:11:02.80ID:CT7MjBNX
最初の初期状態の配置ならつまらんね
途中経過のどの状態からでもすべての2手(3手でもいいよ!)を出力とかなら
本格的な将棋プログラム組まないと導き出せない
222デフォルトの名無しさん
2021/01/16(土) 19:29:58.68ID:GH8NFez6
投了も一手ですか
223デフォルトの名無しさん
2021/01/19(火) 19:16:59.47ID:Sd54NdA6
iZ-Cでサンプルログラムを書き始めました見てね
https://sunasunax.hatenablog.com
224デフォルトの名無しさん
2021/01/22(金) 23:33:42.04ID:YvJFxrRj
お題:sortしてreverseしてforeachせよ
https://ideone.com/35HTkC
List(7, 8, 3, 6, 4).sorted.reverse.foreach(print)
225224
2021/01/22(金) 23:35:12.02ID:YvJFxrRj
>>224 rust
https://ideone.com/SY2DMY
fn main() {
let mut v = [7, 8, 3, 6, 4];
v.sort();
v.reverse();
v.iter().for_each(|x| println!("{}", x));
}
>>224 dart
https://ideone.com/w26D8S
void main() {
var a = [7, 8, 3, 6, 4];
a.sort();
a.reversed.forEach(print);
}
226224
2021/01/22(金) 23:37:05.96ID:YvJFxrRj
>>224 ocaml
https://ideone.com/bitFC6
List.iter print_int (List.rev (List.sort Pervasives.compare [7; 8; 3; 6; 4]))

>>224 ruby
https://ideone.com/K14REi
[7, 8, 3, 6, 4].sort.reverse.each(&method(:p))

>>224 octave
https://ideone.com/E2DoUr
arrayfun(@disp, flip(sort([7 8 3 6 4])))
227デフォルトの名無しさん
2021/01/23(土) 01:20:49.53ID:a67PVVr/
>>224 C++
for (auto i : multiset<int, greater<int>>({ 7, 8, 3, 6, 4 })) cout << i << endl;
2289
2021/01/23(土) 02:47:09.23ID:ujFWsLg6
>>224 Perl5

print reverse sort qw(7 8 3 6 4);


実行結果
$ perl 19_224.pl
87643
2299
2021/01/23(土) 02:50:17.66ID:ujFWsLg6
>>224 Perl5、foreach も要るんやったね…

print foreach reverse sort qw(7 8 3 6 4);

実行結果
$ perl 19_224.pl
87643
230デフォルトの名無しさん
2021/01/23(土) 08:37:55.12ID:Q7562aLA
>>224 Bash
cat <<EOS | sort -r | while read v; do echo ${v}; done
7
8
3
6
4
EOS

>>224 Ruby
[7, 8, 3, 6, 4].sort_by(&:-@).each{p _1}
231デフォルトの名無しさん
2021/01/23(土) 09:17:41.00ID:hW9MnAUE
>>229
> print foreach reverse sort

perlってこんな気持ちいい書き方できる言語やったんけ
正直恐れ入った
232デフォルトの名無しさん
2021/01/23(土) 19:28:56.89ID:7cx92kva
お題: 俺のチ〇コの長さ分だけfor文でカウントしてカウント変数を出力せよ
233デフォルトの名無しさん
2021/01/23(土) 19:32:36.06ID:MJXAM7AO
print "9"
234デフォルトの名無しさん
2021/01/23(土) 20:01:06.10ID:iIWri5S9
>>232
perl

for ($i = 0; $i < 1; $i += 0.1) { print "$i\n" }
235蟻人間 ◆T6xkBnTXz7B0
2021/01/23(土) 21:37:12.62ID:b5t030Zm
お題: 日付をYYYYMMDD形式で表したとき、それを表す整数が今日より後に素数になる日付を求めなさい。
236デフォルトの名無しさん
2021/01/23(土) 23:19:53.94ID:Itdr917H
それを表す整数とは?
237デフォルトの名無しさん
2021/01/24(日) 22:28:15.93ID:M/FZzV8o
>>224
Kotlin script

kotlinc コマンドで REPL にして直接入力して実行した時のコピー。(>>> はプロンプト)
出力は println() を使って1つづつ改行させた。

>>> listOf(7, 8, 3, 6, 4).sorted().reversed().forEach { println(it) }
8
7
6
4
3
>>>
238デフォルトの名無しさん
2021/01/25(月) 14:58:49.27ID:IfPISeNx
お題:
整数 N が与えられます
長さ N の正整数列 A_1, ..., A_N であって以下の条件を満たす lcm(A_1, ..., A_N) が最小のものを求めなさい
・gcd(A_1, A_2) * gcd(A_2, A_3) * ... * gcd(A_{N-1}, A_N) * gcd(A_N, A_1) = lcm(A_1, ..., A_N)

制約:
3≦N≦4000

例:
入力: 5
出力: 6 15 35 77 22
239デフォルトの名無しさん
2021/01/25(月) 16:12:04.01ID:83sbARL7
逆じゃね
240デフォルトの名無しさん
2021/01/25(月) 17:27:32.13ID:+X0AlmLX
>>238 perl
print join ' ', (1) x $ARGV[0];
241デフォルトの名無しさん
2021/01/25(月) 17:53:44.58ID:7Hdxu6ox
A の全ては互いに異なる
を入れ忘れた
242デフォルトの名無しさん
2021/01/25(月) 17:58:02.52ID:4bSc4UCm
Aiの制約で....



Aiが異なる正整数なら
 N=5 [1,2,4,8,64] ->lcm=64

Ai>=3 なら
 N=5 [5,7,14,6,15] -> lcm=210(=1*2*3*5*7)
   (同じlcmで数列は複数作れる)

※あの例はどういう条件だろう
243デフォルトの名無しさん
2021/01/25(月) 18:08:39.30ID:gx6uUcGg
>>238
gcd とか lcm って何?
244デフォルトの名無しさん
2021/01/25(月) 18:09:29.39ID:7Hdxu6ox
すいません...
素数を小さい順に組み合わせて 2*3, 3*5, 5*7, 7*11, 11*2
とすると綺麗に数列が作れていいなーと思って投稿したのですが、最小ではなかったようです...
このお題は無かったことに
245デフォルトの名無しさん
2021/01/25(月) 18:10:17.78ID:gx6uUcGg
あ、わかった。ググったら一発で出た。
246デフォルトの名無しさん
2021/01/25(月) 18:11:02.14ID:gx6uUcGg
分かった途端に終了、か・・・
247デフォルトの名無しさん
2021/01/25(月) 18:14:04.63ID:OnR5hlkf
没入感
248デフォルトの名無しさん
2021/01/25(月) 19:20:16.85ID:+q31tGtg
お題、灘中入試っぽい問題

開始点S から、終点G まで、最短距離9 で移動する方法は、何通りあるか?

移動は右か下へ、1ずつ移動できるが、* は通れない所である。
数字は通れる所で、単に分かりやすくするために座標を書いただけで、移動コストではない

S23456
12*456
1234*6
123456
12345G
249デフォルトの名無しさん
2021/01/25(月) 19:34:10.13ID:0+9yE5E1
プログラムなら実際に駒動かしてかぞえるの?

なんか、足し算引き算で出来そうだよね、
250デフォルトの名無しさん
2021/01/25(月) 20:22:00.10ID:wN/P4Ly9
別名おねえさん問題
251デフォルトの名無しさん
2021/01/25(月) 20:24:55.52ID:xOoQiCMv
>>250
その心は?
252デフォルトの名無しさん
2021/01/25(月) 21:25:54.70ID:+X0AlmLX
>>248 sh
echo 48

#やっぱ計算しなきゃダメ?
253248
2021/01/25(月) 21:35:28.96ID:+q31tGtg
お姉さん問題なら、

Ruby で、そのライブラリを使って解いてみて
254248
2021/01/25(月) 21:48:23.33ID:+q31tGtg
超高速グラフ列挙アルゴリズム 〈フカシギの数え方〉おねえさん問題

BDD/ZDD の湊真一が、北大から京大大学院の教授へと出世してる
255デフォルトの名無しさん
2021/01/25(月) 21:53:57.03ID:p4r3cpqk
https://ideone.com/b2CQ5a
48ってなったからあってるのかな適当に作ったけど
256デフォルトの名無しさん
2021/01/26(火) 00:35:19.40ID:rfDeWxg0
お題:
これ出題してみるか。

黒板に1~nの自然数が一つずつ書かれている。
二人でかわりばんこに次のルールで黒板に書かれた自然数を消していくゲームをする:
・自分の番のとき、黒板に残っている数から一つ選び、
 その数及びその数の約数をすべて消す。
・自分の番で黒板の数をすべて消し去ったとき勝者となる。

実はこのゲームはnによらず先攻必勝であるが、初手をどう打つかを判断するのは簡単でない。
1~30のすべての自然数nについて、後攻を勝たせないために初手で先攻が選ぶことができる数をプログラム中で5秒以内に計算し、すべて列挙せよ。
257デフォルトの名無しさん
2021/01/26(火) 00:44:35.83ID:3iTHw7RX
1~30ならデータベース化してしまえばなんとかなるな
258デフォルトの名無しさん
2021/01/26(火) 01:03:48.09ID:c6DHU6bT
>>255
簡単にするとこんな感じ?
https://ideone.com/UlFSdj
259デフォルトの名無しさん
2021/01/26(火) 05:34:51.12ID:a1XSwUuB
>>248
9C4 - 3C1 * 6C3 - 6C2 * 3C1 + 3C1 * 3C1 * 3C1 = 48
260デフォルトの名無しさん
2021/01/26(火) 12:22:51.81ID:V3RlvyIn
>>248
お受験風にdpで数え上げる

Haskell

test1 = ""
++ "┏┳━┳┳┓\n"
++ "┣┫ ┣┻┫\n"
++ "┣╋┳┫ ┃\n"
++ "┣╋╋╋┳┫\n"
++ "┗┻┻┻┻┛\n"

to01 = let
parseC c = if c == '\x2001' then 0 else 1
parseL = map ( parseC )
in map parseL . lines
cntRoots posCrs = let
z y x = zipWith ( * ) y $ zipWith ( + ) x $ ( 0 : ) $ z y x
rs = id
$ ( ( 1 : ( repeat 0 ) ) : )
$ zipWith z posCrs rs
in rs
nRoots = last . last . cntRoots

main = print $ nRoots $ to01 test1
----
48
261デフォルトの名無しさん
2021/01/26(火) 12:40:16.61ID:PXbbWA9f
>>248
再帰で全パターンやらせるようなのは誰もがやりそうなので他の人に任せるとして、後はやるとしたらスレッド使ってやるぐらいかねえ。再帰は再帰だけど、うまくいけば速く動きそう。(スレッド作るコストが高くて遅くなるかも知れんが)。

ま、しかし、今は麻婆豆腐定食食ってる最中なのでできない。後で時間が空いた時にまだ覚えてたら作ろう。
262248
2021/01/26(火) 12:58:32.44ID:qsHPBWwm
総当たりから、* で通る経路を引くぐらいしか、思いつかない

>>260
漏れも、そういう木を考えた
263デフォルトの名無しさん
2021/01/26(火) 13:12:00.37ID:V3RlvyIn
ちなみに>>260はお受験で出てくる

1 1 1 1 1 1
1 2 x 1 2 3
1 3 3 4 x 3
1 4 7 11 11 14
1 5 2 23 34 48

と上から順に数える方法です
Haskellのdpは読みにくい
オレの書き方が下手なだけか?orz
264デフォルトの名無しさん
2021/01/26(火) 13:41:22.80ID:FaqYA5ze
最短でなくどんな経路でもいいんならこれになる
http://www.lab2.kuis.kyoto-u.ac.jp/minato/index-j.html
265248
2021/01/26(火) 14:07:30.69ID:qsHPBWwm
開始点から数え上げるので良かったのか

漏れは、終点から数え上げる方法を考えていた
266デフォルトの名無しさん
2021/01/26(火) 14:49:25.39ID:tY36E7UA
>>256
https://ideone.com/wuNBut
最初の方は多分あってるの確認できたけど
267デフォルトの名無しさん
2021/01/26(火) 16:29:06.62ID:5FaXTtsh
お題:以下のパイプを実現するプログラムprogを作りなさい

$ echo "1 + a" | prog
1a

$ echo "b + 3" | prog
3b

$ echo "2 + d + 1 + c" | prog
12cd
268デフォルトの名無しさん
2021/01/26(火) 19:45:05.53ID:PXbbWA9f
>>267
Kotlin
https://ideone.com/6Il455

いやー。スマホで入力するのは大変だな。画面は小さいはエディタはまともにうごかんはで非常に疲れた。
269デフォルトの名無しさん
2021/01/26(火) 20:34:09.94ID:a1XSwUuB
>>267 Ruby
$ echo "1 + a" | ruby -e"$><<gets.scan(/\w+/).sort.join"
1a
$ echo "b + 3" | ruby -e"$><<gets.scan(/\w+/).sort.join"
3b
$ echo "2 + d + 1 + c" | ruby -e"$><<gets.scan(/\w+/).sort.join"
12cd
270デフォルトの名無しさん
2021/01/26(火) 20:56:27.12ID:MpuUt4AN
>>267
echo "1 + a" | perl -pe 's/[ +]+/\n/g'|sort|perl -pe 's/\n//'
1a

echo "b + 3" | perl -pe 's/[ +]+/\n/g'|sort|perl -pe 's/\n//'
3b

echo "2 + d + 1 + c" | perl -pe 's/[ +]+/\n/g'|sort|perl -pe 's/\n//'
12cd
271デフォルトの名無しさん
2021/01/26(火) 21:08:55.48ID:a1XSwUuB
>>267
$ echo "2 + d + 1 + c" | sed "s/ *+ */\n/g" | sort | xargs | sed "s/ //g"
12cd
272デフォルトの名無しさん
2021/01/26(火) 21:28:58.74ID:DzTvwUl0
ソートだなんて書いてないのに
273デフォルトの名無しさん
2021/01/26(火) 21:32:05.97ID:AKScmGgq
>>272
は?
274デフォルトの名無しさん
2021/01/27(水) 00:42:48.41ID:3F+KDe6B
>>266
答えも解き方もあってるとおもう
総当たり以外の方法で解けないかなと思ってるところだけど
275デフォルトの名無しさん
2021/01/27(水) 01:36:50.37ID:1jPkLKqx
先手必勝が分かってるのに具体的な勝つ手は簡単に分からないもんなの?
276デフォルトの名無しさん
2021/01/27(水) 07:22:52.84ID:uxRgmm/E
>>275
必勝手を簡単に導くアルゴリズムが、どこかにあるといいなと思います
ただ、そのアルゴリズムがわからなくても先手必勝は証明できます
277デフォルトの名無しさん
2021/01/27(水) 07:33:58.36ID:6jP5tNbs
必勝手を指すのと必勝パターン数を計算するのはまた別物だしな
278デフォルトの名無しさん
2021/01/29(金) 22:14:35.80ID:vFJJH28K
お題:
H×Wのマス目が与えられます。
始点'S'、終点'G'、通路'.'、壁'#'であり、壁や範囲外のマスは通ることができません。
また、始点と終点は隣り合っていないものとします。

いくつかの通路を壁に変更して、始点から終点に到達できなくするには
最小でいくつ壁が必要でしょうか?

[入力]
H W
(マス目を表す文字列)

[入出力例]
1 5
S...G
=> 1

3 3
S#.
#..
..G
=> 0

4 4
....
.S..
..G.
....
=> 4
279デフォルトの名無しさん
2021/02/02(火) 12:20:18.38ID:Enz7FJce
お題:ニセコインを見つけよ

半年毎に数学板で出てくるお題

n枚のコイン(n≧3)の中から重さの違うニセコインを見つけには何回天秤つかえばよいか
なおどのコインも最低一回は天秤に乗せてニセコインが重いか軽いかも判定するものとする

答えは
e = ceiling( logBase 3 ( 2*n+2 ) )

さてさてこの回数で可能はそんなに難しくない
実際e行n列の1,0,-1からなる配列で

①どの行も1の数と-1の数が等しい(右の皿と左の皿に同じ数乗せる)
②どの相異なる行u,vをとってもu ≠ ±v

となる配列が作れる
そこで n≧3 にたいしてこのような配列を出力するプログラムを作って下さい


3->
[[-1,0,1],[0,1,-1]]
10->
[[-1,0,1,-1,0,-1,1,1,-1,1],[0,1,-1,-1,0,0,0,-1,1,1],[0,0,0,0,-1,1,1,-1,-1,1]]

12->
[[-1,0,1,-1,0,-1,1,1,-1,0,0,1],[0,1,-1,-1,0,0,0,-1,1,-1,1,1],[0,0,0,0,-1,1,1,-1,-1,1,1,-1]

39->
[[-1,0,1,-1,0,-1,1,1,-1,0,0,-1,1,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,1],[0,1,-1,-1,0,0,0,-1,1,-1,1,-1,1,0,0,0,1,-1,1,-1,1,-1,-1,1,-1,1,-1,1,0,0,0,0,0,0,1,-1,1,-1,1],[0,0,0,0,-1,1,1,-1,-1,1,1,-1,-1,0,0,0,0,0,0,0,0,0,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1]]
280デフォルトの名無しさん
2021/02/02(火) 12:31:29.80ID:Enz7FJce
訂正
× ②どの相異なる行u,vをとってもu ≠ ±v
◯ ②どの相異なる列u,vをとってもu ≠ ±v
281◆QZaw55cn4c
2021/02/02(火) 20:23:20.94ID:82aiWtLs
>>279
偽コインは1枚ですか?複数ですか?
282デフォルトの名無しさん
2021/02/02(火) 20:40:30.09ID:uLQAjwWk
>>279
最初しか読んでないが、その条件では軽い方が偽物なのか重い方が偽物なのか決定することが不可能
283デフォルトの名無しさん
2021/02/02(火) 22:41:03.50ID:LQ6cge6d
>>281
ニセコインは一枚です
284デフォルトの名無しさん
2021/02/02(火) 22:52:21.15ID:LQ6cge6d
>>282
今確かめてみたら合ってるようです

main = print $ [ ( n, ceiling $ logBase 3 $ fromInteger $ 2*n +2) | n<- [3..16] ++ [38..42]]

[(3,2),(4,3),(5,3),(6,3),(7,3),(8,3),(9,3),(10,3),(11,3),(12,3),(13,4),(14,4),(15,4),(16,4),(38,4),(39,4),(40,5),(41,5),(42,5)]

ちなみに軽重が確定しない=一度も乗せないのもありにすれば13枚でも3回で可能です
12回のときの解に「一度も乗せないコイン」を入れればいいだけなので
ちなみにn=12とn=39のときの解でそれぞれ3回、4回で可能

[[1,0,1,-1,0,1,-1,0,0,1,-1,-1],[0,1,-1,-1,0,0,0,1,-1,1,-1,1],[0,0,0,0,1,-1,-1,1,1,-1,-1,1]]

[[1,0,1,-1,0,1,-1,0,0,1,-1,1,-1,0,1,-1,-1,1,0,0,1,-1,-1,1,0,0,-1,1,0,0,1,-1,-1,1,0,0,1,-1,-1],[0,1,-1,-1,0,0,0,1,-1,1,-1,-1,1,0,0,0,1,-1,1,-1,1,-1,-1,1,-1,1,0,0,0,0,0,0,1,-1,1,-1,1,-1,1],[0,0,0,0,1,-1,-1,1,1,-1,-1,1,1,0,0,0,0,0,0,0,0,0,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1]]
285デフォルトの名無しさん
2021/02/05(金) 20:30:58.14ID:VEUKRJUV
偽物が1枚ならそら可能だわな
286デフォルトの名無しさん
2021/02/06(土) 00:55:18.45ID:pOHNi9wO
>>279
ちょっと盛り上がらないのでアルゴリズムの一例例示してみます
まぁここはプログラミングのスレだから数学部分はどうでもいいでしょう
構成法はほかにもいくつかあります
なお{1,0,-1}はうるさいので{1,0,2}にします
---
以下において{ }で囲まれた数は3進数表示とする
以下3進数表示した時
最高位が1でそれ以外が0であるものを10型、
最高位が2でそれ以外が0であるものを20型、
最高位が2で次に来る0でない数も1であるものを11型

と定めていき、自然数全体を10型、20型、11型、12型、21型、22型と6型に分類する
与えられた自然数のうち
①何もしない
②最高位のみ1⇔2の交換をする
③最高位以外1⇔2の交換をする
④全桁1⇔2の交換をする
で11型の変換できる
例えば{2201}=73であれば④を適用して
f11(73)={1102}=38となる
同様にしてf12,f21,f22を定義しておく
では自然数eと3≦n≦(3^e-3)/2を満たす自然数nについて条件を満たす組みを構成する
まずn-eが奇数のときn-a-1をm、そうでないときはn-eをmとおく
前者のときケースA、後者のときケースBと呼ぶ
次にe桁以下の11型の数からケースAでは{111‥11}(e桁)を取り除いたものを、ケースBでは{111‥10}(e桁)を取り除いたものを並べたものを考える
(続く)
287デフォルトの名無しさん
2021/02/06(土) 00:55:35.94ID:pOHNi9wO
(続き)
この列の最初のm/2個を2個ずつ並べてm個にした列
{11},{11},{101},{101},{110},{101},{111}‥
にf11,f12,r21,f22を順に作用させていく
ただし桁が上がるごとにf11に戻す
最初の方を例示すれば11型の数を2個ずつ並べたものが
{11},{11}
{101},{101},{110},{110},{111},{111},{112},{112},
{1001},{1001},{1010},{1010},{1011},{1011},‥
だから
{11},{12}
{101},{102},{210},{220},{111},{122},{212},{221},
{1001},{1002},{2010},{2020},{1011},{1022},‥
となる
この列は偶数番目のどこで切っても各桁に現れる1の個数と2の個数は同数か1の方が2個多い事に注意する
また最低位では常に1の個数と2の個数は同数になる
よってケースAではe個の10型、もしくは20型の数を追加する事によって全てのくらいで1の個数がちょうど一個多くなるようにできる
またこの時列の長さはm+e=n-1個である
最後に{222‥22}を追加して条件を満たす列ができる
また同じくケースBではe-1個の10型、20型の数を追加して最低位だけ同数でそれ以外の桁では1の個数がちょうど一個多くなるようにできる
この時の列の長さはm+e-1=n-1個である
最後に{222‥20}を追加すれば良い
288デフォルトの名無しさん
2021/02/08(月) 23:53:36.54ID:rr62o0iF
数学は盛り上がらんねえ
2899
2021/02/09(火) 00:45:13.92ID:TwMhWx5Q
難問だけど
これ数学?
290デフォルトの名無しさん
2021/02/09(火) 01:03:59.69ID:pN3N76M5
盛り上がりませんね
解答例

https://ideone.com/cHEv2n

見栄え考えて"+ -"の三文字で表現してます
まぁ数学というわけでもないです
ただ数学板にはもう半年に一回くらい上がってくる
意外にネットでちゃんと解説してるサイトがない
291デフォルトの名無しさん
2021/02/10(水) 21:47:17.15ID:rSkriPOW
お題
整数 a_i が n_i 個ある。(1 <= i <= K)
このデータの中央値を求めよ。

[入力]
K
a_1 n_1
...
a_K n_K


[入出力例]
3
1 2
2 2
3 4
=> 2.5
{1, 1, 2, 2, 3, 3, 3, 3}の中央値は(2+3)/2=2.5

2
0 1000000000
1 999999999
=> 0
292デフォルトの名無しさん
2021/02/10(水) 21:54:19.38ID:/QRbjylB
こわれてる
K=3
i=4
K=3<4=i と i<=Kが矛盾
293デフォルトの名無しさん
2021/02/11(木) 04:13:33.16ID:s1BJw1Nt
>>292
ちゃんと問題文読め阿呆
294デフォルトの名無しさん
2021/02/11(木) 04:22:35.31ID:JqJNLwXz
お題:機械翻訳しなさい

入力:this is a pen
出力:これはペンです
入力:is this a pen?
出力:これはペンですか?
295デフォルトの名無しさん
2021/02/13(土) 04:50:07.93ID:qefqzAth
>>291
Kotlin
https://paiza.io/projects/wleCQVvUx_WksngQ-qYmRA
296デフォルトの名無しさん
2021/02/13(土) 16:08:30.01ID:PEYbXliH
>>295
間違ってね?
3
1 2
3 4
2 2
とか
297デフォルトの名無しさん
2021/02/13(土) 16:54:01.75ID:DnXSiThA
>>291
Java
https://paiza.io/projects/sHhz3SsiVN-26_86iQbJOg?language=java
298デフォルトの名無しさん
2021/02/16(火) 02:44:28.56ID:pZ2rkUjf
>>296
それだと3になるが、何か間違ってる?
299デフォルトの名無しさん
2021/02/16(火) 13:29:07.53ID:OrljmRcx
中央値は出現順の中央の値じゃないよ値の順の中央の値だよ
300デフォルトの名無しさん
2021/02/16(火) 15:39:23.69ID:kKLrubPe
1,2,3,100 の場合
中央値は 2.5 ですか?
それとも 2 または 3 ですか?
301デフォルトの名無しさん
2021/02/16(火) 15:54:56.12ID:jXvMbypa
2.5
302デフォルトの名無しさん
2021/02/16(火) 16:24:23.86ID:9rD/rOgw
floor(n/2) 番目の値とceiling(n/2)番目の値の平均
303デフォルトの名無しさん
2021/02/16(火) 16:26:57.56ID:9rD/rOgw
違う
floor ((n+1)/2)番目とceiling (n+1)/2)番目だ
304デフォルトの名無しさん
2021/02/16(火) 19:27:34.69ID:pa+9fqBa
まぁ zero-based indices だと思えばどちらでも
305デフォルトの名無しさん
2021/02/16(火) 21:39:21.44ID:DqsYLnr9
要するにindexがa~bならその中央値はfloor((a+b)/2)番目とceiling((a+b)/2)番目の平均
306デフォルトの名無しさん
2021/02/17(水) 02:38:49.68ID:wnjdp4RQ
お題:数字をスワップせよ
時刻とスワップ対象が以下のフォーマットで与えられる

yyyy/mm/dd hh:MM:ss
a
b

a,bに指定された数字をスワップせよ
例:
入力
2021/02/17 02:37:41
yyyy
MM

出力
37/02/17 02:2021:41
307デフォルトの名無しさん
2021/02/17(水) 02:55:09.43ID:Mw2HZr8o
>>299
ああ。そうか。
>>295はソート入れて修正した。
308デフォルトの名無しさん
2021/02/17(水) 02:59:25.65ID:0wQZl1Sa
そーっと修正
ソートだけに。
309デフォルトの名無しさん
2021/02/17(水) 18:52:45.47ID:XDfwrYfq
>>306
C++
https://ideone.com/qdBLZ5
310デフォルトの名無しさん
2021/02/17(水) 23:22:08.77ID:ELK1LugG
>>306
Java
https://paiza.io/projects/4GIV26i3O12ejI11jxnkgw?language=java
311デフォルトの名無しさん
2021/02/18(木) 14:48:20.04ID:8Wc99cSo
>>306
Haskell
https://ideone.com/DdE6r3
312デフォルトの名無しさん
2021/02/19(金) 21:01:44.21ID:mG/x1W/7
最近のC++って連想配列やら正規表現やらが標準で使えるんか
313◆QZaw55cn4c
2021/02/19(金) 21:26:15.30ID:3tFNJrqv
>>312
連想配列はプラプライレブン以前の旧C++ ですら map で扱えていました、正規表現はどうなのか私はよく知りません‥‥
314デフォルトの名無しさん
2021/02/19(金) 22:26:39.65ID:YHwRlgSx
昔は正規表現つったらboost入れて使ってたよね(ヽ´ω`)
315デフォルトの名無しさん
2021/02/20(土) 14:40:24.94ID:ae+c9ZFQ
言われてみればmapはあってもおかしくないな
316デフォルトの名無しさん
2021/02/21(日) 05:12:22.50ID:LH12tPKD
>>306
Kotlin
https://paiza.io/projects/-xpdEwAwFFpeuN9UlAhlwA
3179
2021/02/21(日) 17:08:49.59ID:0STFsetd
>>306 Perl5

$f = 'yyyy/mm/dd hh:MM:ss';
@w = $f =~ /(\w+)/g;
%h = map{$_ => [index($f, $_), length $_]} @w;
$f =~ s/\w+/\$$&/g;
$f = 'print "'.$f.'\n"';
($s, $p, $v) = <>; chomp ($p, $v);
@g = map{substr $s, $h{$_}[0], $h{$_}[1]} @w;
${$w[$_]} = $g[$_] for 0..@w;
($$p, $$v) = ($$v, $$p);
eval $f;


実行結果
https://ideone.com/5ZWolC
3189
2021/02/21(日) 17:45:26.06ID:0STFsetd
>>317 もっとコンパクトに書けるんだった…orz

$f = 'yyyy/mm/dd hh:MM:ss';
@w = $f =~ /(\w+)/g;
($s, $p, $v) = <>; chomp ($p, $v);
@g = $s =~ /(\d+)/g;
${$w[$_]} = $g[$_] for 0..@w;
($$p, $$v) = ($$v, $$p);
print "$yyyy/$mm/$dd $hh:$MM:$ss\n";


あるいはもっと
@w = qw{yyyy mm dd hh MM ss};
($s, $p, $v) = <>; chomp ($p, $v);
@g = $s =~ /(\d+)/g;
${$w[$_]} = $g[$_] for 0..@w;
($$p, $$v) = ($$v, $$p);
print "$yyyy/$mm/$dd $hh:$MM:$ss\n";
3199
2021/02/21(日) 23:56:18.66ID:9rEvZiNw
>>306 Perl5、もっと素直にすんなり書けるんだった…><

%h = qw{yyyy 0 mm 2 dd 4 hh 6 MM 8 ss 10};
($s, $p, $v) = <>; chomp ($p, $v);
@f = $s =~ /(?:(\w+)(\W?))/g;
@f[@h{$p, $v}] = @f[@h{$v, $p}];
print @f;


実行結果
https://ideone.com/ROZTJ8
320デフォルトの名無しさん
2021/02/24(水) 20:43:37.44ID:9WyyCWj2
お題:正の整数を入力として、後ろにアルファベットを2文字足して英語の基数詞を出力せよ
例) 入力=3 → 出力=3rd
  入力=19 → 出力=19th
  入力=2021 → 出力=2021st

ガイシュツかしら?
321デフォルトの名無しさん
2021/02/24(水) 20:47:15.38ID:CLu4HI+L
残念ながらガイシュツで、
海外のスゲー短いゴルフコードも紹介されてた希ガス
322蟻人間 ◆T6xkBnTXz7B0
2021/02/24(水) 21:11:00.49ID:kiS4oMYm
既出(きしゅつ)
スゴい
貴ガス
323デフォルトの名無しさん
2021/02/24(水) 21:11:11.90ID:MS8741jM
>>320 Ruby

f = ->n{n.to_s + %w[th st nd rd][n % 10 > 3 || n / 10 % 10 == 1 ? 0 : n % 10]}
puts (0..27).map{f[_1]} # =>
0th
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
11th
12th
13th
14th
15th
16th
17th
18th
19th
20th
21st
22nd
23rd
24th
25th
26th
27th
3249
2021/02/24(水) 22:18:34.47ID:h//dFdby
>>320

プログラミングのお題スレ Part15
http://2chb.net/r/tech/1564310397/520
で回答したcode

%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123, 2021) {
 /(\d?)(\d)$/;
 printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}
325デフォルトの名無しさん
2021/02/25(木) 00:19:08.49ID:0ZJc0gxC
名題って感じはある
326デフォルトの名無しさん
2021/02/25(木) 00:20:19.11ID:0ZJc0gxC
命題じゃなくて名作なお題って意味な
327デフォルトの名無しさん
2021/02/25(木) 08:26:43.63ID:zwLHSsIw
>>320

haskell

showOrd x = let
[ a, b ] = map ( mod ( x - 10 ) ) [ 10, 100 ]
s = show x
in case () of
_ | b < 10 -> s ++ "th"
_ | a == 1 -> s ++ "st"
_ | a == 2 -> s ++ "nd"
_ | a == 3 -> s ++ "rd"
_ -> s ++ "th"

main = mapM_ putStrLn [ showOrd x | x <- [ 1..30 ] ]
328デフォルトの名無しさん
2021/02/25(木) 19:39:59.07ID:mInD5Gs5
そもそも序数のルールがわからん
329デフォルトの名無しさん
2021/02/25(木) 21:07:06.25ID:AjdVnyQn
お題:解析不能なでたらめな計算を行いなさい。
330デフォルトの名無しさん
2021/02/25(木) 22:20:10.63ID:2DtRWZ66
>>320
Perl
https://paiza.io/projects/O1z-Z2xiT3Mm3GPeFCETRw
331デフォルトの名無しさん
2021/02/26(金) 20:41:12.87ID:VIwm/s4p
お題:1から100までFizzBuzzせよ

1から100までの数字を印刷するプログラムを作成します。
ただし、3の倍数の場合は数字の代わりに「Fizz」を出力し、
5の倍数の場合は「Buzz」を出力します。
3と5の両方の倍数である数の場合は「FizzBu​​zz」を出力します。

ocaml
https://ideone.com/cPM0O8
332デフォルトの名無しさん
2021/02/26(金) 21:17:58.20ID:X01OY8kD
>>331 Ruby
1.upto(100){puts'FizzBuzz
'[i=_1**4%-15,i+13]||_1}
333デフォルトの名無しさん
2021/02/26(金) 22:03:32.89ID:FAHvqO9W
>>331

haskell

fizzbuzz x = case () of
_ | mod x 15 == 0 -> "FizzBuzz"
_ | mod x 3 == 0 -> "Fizz"
_ | mod x 5 == 0 -> "Buzz"
_ | otherwise -> show x

main = mapM_ putStrLn $ [ fizzbuzz x | x <- [ 1..100 ] ]

https://ideone.com/XbOOp2
334デフォルトの名無しさん
2021/02/27(土) 03:04:34.23ID:Npk4kHio
>>320
Kotlin
https://paiza.io/projects/NcCPWxEtuk0TkvN5kKJ8fA
335デフォルトの名無しさん
2021/02/27(土) 04:03:19.58ID:Npk4kHio
>>331
Kotlin script

(1..100).forEach{n->println("${((if(n%3==0)"Fizz" else "")+(if(n%5==0)"Buzz" else "")).let{if(it=="")n.toString()else it}}")}
336デフォルトの名無しさん
2021/02/27(土) 06:20:22.65ID:Npk4kHio
>>331
C
https://paiza.io/projects/9JsdCz19A_6P06cU3LfhQw
337デフォルトの名無しさん
2021/02/27(土) 22:02:11.68ID:Odeyd4+A
>>331 Ruby
(1..100).each{|i| puts ({1=>i, 3=>"Fizz", 5=>"Buzz", 15=>"FizzBuzz"})[i.gcd(15)]}
338デフォルトの名無しさん
2021/02/27(土) 23:23:14.12ID:o4Z1lfzB
>>331 Ruby
a = [0] * 100
2.step( 100, 3 ){|i| a[i] = 1 }
4.step( 100, 5 ){|i| a[i] += 2 }
100.times{|i|
puts (a[i] == 0)? i+1 : [ 'Fizz', 'Buzz', 'FizzBuzz' ][ a[i]-1 ]
}
339デフォルトの名無しさん
2021/02/28(日) 01:09:45.97ID:XDGQU8wr
>>337
それだ
gcdか
Haskell

fizzbuzz x = case gcd x 15 of
3 -> "Fizz"
5 -> "Buzz"
15 -> "FizzBuzz"
_ -> show x

main = mapM_ putStrLn $ [ fizzbuzz x | x <- [ 1..100 ] ]

思いつかなかったorz
340デフォルトの名無しさん
2021/02/28(日) 04:20:52.22ID:IOkXkIHX
>>331
Java
https://paiza.io/projects/6r-xmYu7a5fHPrAkF66xnw
341デフォルトの名無しさん
2021/02/28(日) 16:05:25.11ID:fTSKNjoz
>>331 C
https://ideone.com/3QFKTy
342デフォルトの名無しさん
2021/02/28(日) 18:07:34.78ID:IOkXkIHX
お題
連続する文字列を抽出してください

入力: むかしむかし、あるところにワッフルワッフルがありました
出力: むかし, ワッフル
343デフォルトの名無しさん
2021/02/28(日) 18:21:17.82ID:CE4rzHHA
>>342 Ruby

puts "むかしむかし、あるところにワッフルワッフルがありました".scan(/(.+)\1/)*?,

# => むかし,ワッフル
344デフォルトの名無しさん
2021/02/28(日) 19:55:53.64ID:TzXN37YB
むかしむかしむかし、あるところにワッフルワッフルワッフルがありました
345デフォルトの名無しさん
2021/03/01(月) 00:40:25.00ID:p5xNM3/l
>>341
なるほど。さすが。
346デフォルトの名無しさん
2021/03/01(月) 00:53:54.32ID:p5xNM3/l
>>342
Perl
https://paiza.io/projects/ryNIyroIarU7ZqFgOt4SbA
347デフォルトの名無しさん
2021/03/01(月) 01:26:40.92ID:p5xNM3/l
>>342
Kotlin
https://paiza.io/projects/LfVLhGLDVDPLi9fnaF4rHw

ていうか、やってることほとんど同じで何も考えてないなこれ。
348デフォルトの名無しさん
2021/03/01(月) 01:52:05.52ID:p5xNM3/l
>>346>>347は4連続だとうまく行かなかったのでちょっと直した。
(.+)\1+ じゃなくて (.+?)\1+ でないと4連続が2連続で一塊になってしまった。
349デフォルトの名無しさん
2021/03/01(月) 06:09:35.91ID:qZSBj0Ir
>>348
aabbccaabbcc
350デフォルトの名無しさん
2021/03/01(月) 09:45:20.56ID:6wDZP3ri
>>344
>>349
自分でやれ
351デフォルトの名無しさん
2021/03/01(月) 09:54:04.38ID:cH5Ajc9f
そもそも問題の解釈が色々あるよな
ワッフルワッフルワッフルワッフル
が入力に入ってるとき最長の
ワッフルワッフル
を出力するのか2通りの読み方の
ワッフル、ワッフルワッフル
の両方を出力するのか
ワッフルワッフルうまいワッフルうまい
の場合出力は
ワッフル、ワッフルうまい
両方なのかどっちか消すのか
試験じゃないんだから好きに解釈していいのかもしれんけど
352デフォルトの名無しさん
2021/03/01(月) 10:22:04.90ID:cH5Ajc9f
繰り返し文は全部リストアップすると解釈して
Haskell
https://ideone.com/HidXyj
353デフォルトの名無しさん
2021/03/01(月) 10:32:22.18ID:Mo8KnFXk
> 2通りの読み方の ワッフル、ワッフルワッフル の両方を出力するのか
これは辞書持たせないと無理だから現実的では無いでしょ
最長解(複数あるなら全てか最初の一つ)、或いは最短、全パターン列挙でないと
ワッフル,ッフルワ,フルワッ,ルワッフ,ワッフルワッフル
354デフォルトの名無しさん
2021/03/01(月) 10:39:57.80ID:cH5Ajc9f
>>353
どのみち計算量はn^2で定数分しか差ないのでは?
355デフォルトの名無しさん
2021/03/01(月) 14:37:12.97ID:cH5Ajc9f
お題 ルートとガウス

数学板より
c = 50 + √2501 とする
整数列anが漸化式
a0 = 1
a(n+1) = [ ca(n) ]
で与えられているときa(n)の下2桁をn:0~100の範囲で表示しなさい
----
ちなみに理詰めなら答えはすぐ出ます
しかしFloatやDoubleでは最初の10項位で桁溢れで詰みます
どうしますかというお題
356デフォルトの名無しさん
2021/03/02(火) 19:32:58.96ID:g3RlIqNH
数学、か・・・
357デフォルトの名無しさん
2021/03/02(火) 20:32:51.08ID:uJxPOgJJ
数学の知識がなくても
計算の精度をあげれば解けなくもない
3589
2021/03/02(火) 22:27:40.30ID:ZQFUTTJw
>>357
a0はa(0)のこと?
ca(n)はc*a(n)?
[ ] でくくっている意味は?
整数列ってことは整数化すると思うけど切り捨て?四捨五入?
以上素朴な疑問。
なお回答コードを書くかは、未定です
359デフォルトの名無しさん
2021/03/02(火) 22:32:43.53ID:zfPXLdcN
>>358
ガウス記号しらんのか?
3609
2021/03/02(火) 22:37:57.11ID:ZQFUTTJw
>>359
検索して調べた
私が高校生だった頃は数学過程で使われていなかったか、あるいは忘れちゃったか
3619
2021/03/02(火) 22:41:29.98ID:ZQFUTTJw
>>359

ガウスの記号はいつ習うんですか? - 習いません。設問の中で必ず定義が示されて... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1464989549

だそうだ。いつごろから使われるようになった記号なんだろうね。
362デフォルトの名無しさん
2021/03/02(火) 22:42:00.55ID:uJxPOgJJ
括弧をガウス記号の意味で使う場合、ガウス記号であることは明示した方が良いよ
363デフォルトの名無しさん
2021/03/02(火) 22:42:46.99ID:zfPXLdcN
入試でバシバシでてくるがな
364デフォルトの名無しさん
2021/03/02(火) 22:43:25.13ID:zfPXLdcN
あーperlおじさんこの前数学問題に発狂してたな
触れないどこ
3659
2021/03/02(火) 22:44:52.15ID:ZQFUTTJw
>>363
入試などの試験で使われるんだろうけど
オレが学生だった頃は見かけなかったぞ、ほんまに。
3669
2021/03/02(火) 22:49:37.83ID:ZQFUTTJw
数学は嫌いじゃないんだよね。むしろ好きな方(得意かどうかは別)
なにがいやだつって、人に分からせるつもりがないような書き方して
数学が分からないんだと、と他人を馬鹿にしたような態度の傲慢さがいやなんだよね
367デフォルトの名無しさん
2021/03/03(水) 00:43:33.15ID:NwFhEU/N
ありゃ
ガウス記号通じませんでしたか
失礼しました
やはりプログラム板ならfloorの方が良かったのかな?
まぁテーマとしては
1)大きい自然数を扱う
2)そのルートをとる
ですね
1)は最近流行りのプログラミング言語はほとんどサポートしてるので問題ないでしょう
ルートはどうなんでしよう?
私はHaskellerでHaskellは大きさに制限なしのInteger型はあるんですけどsqrtはDouble型のものしか用意されてなくてsqrtは自前実装させられました
その実装の仕方も色々あるようですので解答お待ちしてます
368デフォルトの名無しさん
2021/03/03(水) 02:18:06.97ID:sH3hVaJt
>>355 Perl
https://ideone.com/93109J

#!/usr/bin/perl

use Math::BigInt;
$b=Math::BigInt->new(10)->bpow(400);
$l=Math::BigInt->new(2501)->bmul($b)->bmul($b)->bsqrt()->badd(Math::BigInt->new(50)->bmul($b));
$a=Math::BigInt->new(1);
for $i ( 0 .. 100 ) {
printf "%3d: %2d\n", $i, $a % 100; $a->bmul($l)->bdiv($b);
}

# チートを使わずに Math::BigInt を使って書くとこんな感じ
# なぜこのような結果になるかは数学板をご参照のこと
369デフォルトの名無しさん
2021/03/03(水) 17:38:52.70ID:N/Xxe4np
俺が学生だった頃も模試や入試含めて見たことないな[]
370デフォルトの名無しさん
2021/03/03(水) 19:46:17.30ID:6ploduqz
他の工学部ならともかく情報工学部の教科書にはガウス記号は頻出する
371デフォルトの名無しさん
2021/03/03(水) 20:35:40.01ID:N/Xxe4np
情報工学だけど教科書は⌈⌉や⌊⌋だったな[]見覚えないわ
いつごろから使われ始めたんだろうか
372デフォルトの名無しさん
2021/03/03(水) 22:15:16.70ID:sH3hVaJt
>>355 Perl
大きな整数の平方根(小数点以下切り捨て)を自分で実装するならこんな感じ
https://ideone.com/WizN7D
373デフォルトの名無しさん
2021/03/03(水) 23:22:18.43ID:lm58Q0f3
お題
文字列"OF"と文字列"OFF"の
2種類の要素だけからなる配列がある。
間違えて空文字を区切り文字として連結してしまった。
この文字列から元の配列を復元する。

入力:OFOFOFFOFOFFOFOFF
出力:["OF", "OF", "OFF", "OF", "OFF", "OF", "OFF"]
374デフォルトの名無しさん
2021/03/03(水) 23:45:31.04ID:XIfP2xof
>>373
haskell

ofoff x = case x of
_ | x == "" -> [ ]
_ | x == "OF" -> [ "OF" ]
_ | x !! 2 == 'F' -> "OFF" : ( ofoff $ drop 3 x )
_ -> "OF" : ( ofoff $ drop 2 x )

main = print $ ofoff "OFOFOFFOFOFFOFOFF"
---
["OF","OF","OFF","OF","OFF","OF","OFF"]
375デフォルトの名無しさん
2021/03/04(木) 00:11:55.91ID:RqEEc2dR
>>373 javascript
'OFOFOFFOFOFFOFOFF'.match(/OFF|OF/g)
376デフォルトの名無しさん
2021/03/04(木) 00:29:22.56ID:cIYJR4p9
>>373
多少技巧的だけど見た目にはキレイ
haskell

ofoff x = case ( take 3 $ x ++ ( " " ) ) of
" " -> [ ]
"OFF" -> "OFF" : ( ofoff $ drop 3 x )
_ -> "OF" : ( ofoff $ drop 2 x )

main = print $ ofoff "OFOFOFFOFOFFOFOFF"
377デフォルトの名無しさん
2021/03/04(木) 00:51:54.32ID:BdVR6hFB
>>373
p "OFOFOFFOFOFFOFOFF".split(/(?=O)/)
3789 Perlおじさん
2021/03/04(木) 02:08:25.47ID:nBeXoR6u
>>373 Perl5

$s = 'OFOFOFFOFOFFOFOFF';
@a = $s =~ /(OFF?)/g;
print "@a\n";


あるいは一行で書くなら
print "@{['OFOFOFFOFOFFOFOFF' =~ /(OFF?)/g]}\n";


いずれも実行結果は
$ perl 19_373_OF_OFF.pl
OF OF OFF OF OFF OF OFF
3799 Perlおじさん
2021/03/04(木) 02:32:59.31ID:nBeXoR6u
>>374
>>376
人のコードにコメントは控えてきた方だけれど
ゴミ見たいなコードだな
時頭悪そう
3809 Perlおじさん
2021/03/04(木) 02:38:17.51ID:nBeXoR6u
時頭じゃね地頭なJK
3819 Perlおじさん
2021/03/04(木) 03:01:38.79ID:nBeXoR6u
>>367
慇懃無礼にならないように気をつけましょう
3829 Perlおじさん
2021/03/04(木) 03:32:42.45ID:nBeXoR6u
>>379
きつい書き方しちゃったけれど
勉強・精進して、技術的にも人間的にも成長してくれればいいです
383デフォルトの名無しさん
2021/03/04(木) 06:17:22.15ID:Mf5kR6rJ
>>373 bat
set s=OFOFOFFOFOFFOFOFF
set s=["%s:FO=F","0%"]
echo=%s%&pause
384デフォルトの名無しさん
2021/03/04(木) 06:44:25.46ID:WsooY2U3
上のやり取りみるにちょっとでも数学の話題になる度にスレ荒らしてたのがperlの人だったのかね
流石にガウス記号知らないのは嘘だと思うが
385デフォルトの名無しさん
2021/03/04(木) 07:24:39.38ID:JDmHia/u
数学板でプログラム関連の話題を出すと攻撃され
プログラム板で数学関連の話題を出すと攻撃され
プログラムも数学も好きなニキは行き場がないな
386デフォルトの名無しさん
2021/03/04(木) 08:07:16.34ID:ZzTfrDZr
>>373 Common Lisp
https://ideone.com/5zQbiC
387デフォルトの名無しさん
2021/03/04(木) 09:29:02.54ID:ZzTfrDZr
>>373 Common Lisp (>>386 修正)
https://ideone.com/TZwhD6
3889
2021/03/04(木) 11:06:02.64ID:R0BLpu43
>>384

>>364
こういう人をバカにしたような挑発を受けたときに
今回と前回、名前欄にレス番書いて反論したことはあるけど
他の何度か大荒れしたときはオレは参加していないので念のため

数学は好きなので解ける問題は回答してきた

ただし>>358に書いたように人に伝わりにくいような略した書き方をされると
独善的な印象の違和感を感じているところに、
数学という分野の観点から>>384みたいな人をバカにしたレスがつくと機嫌が悪くなる。
嫌がられるのは出題分野が数学かどうかではないところに第一原因があると思うので気がついたほうがいいよ

>>379 は黙ってりゃいいことなんだけれど、
せっかくHaskell勉強したのに残念というか、もったいないなとつい手が滑ってしまった
今後精進ください

それからC,C++,go,pythonでも回答してるよ
389デフォルトの名無しさん
2021/03/04(木) 11:08:32.18ID:iBUZ98WR
>>373 js
"OFOFFOFOFFOFFOFOFFOF".replace(/FO/g, "F🥺O").split('🥺')
390デフォルトの名無しさん
2021/03/04(木) 11:09:50.42ID:iBUZ98WR
>>375
こっちのがいいな
3919
2021/03/04(木) 11:23:14.55ID:R0BLpu43
ただし…
やみくもに「数学板に帰れ」のような過激発言や攻撃をする
一部に極端な数学アレルギーのソフト屋さんもいるようだね
あれはオレも過剰反応だと思う。

ちな、ここにレス書く数学屋さんは数学板のどのようなスレの住人なんだろうか…
ちょっと気になる
392デフォルトの名無しさん
2021/03/04(木) 13:22:56.59ID:fsLp5jWw
人の無知をバカにするのはプライドが高すぎる
393デフォルトの名無しさん
2021/03/04(木) 13:30:20.95ID:olKzxs0Y
底辺コーダーぽいしコンプレックスの裏返しでしょ
394デフォルトの名無しさん
2021/03/04(木) 19:18:18.72ID:vlLO+cqi
ここのお題ってほぼほぼ離散数学の範疇じゃない?
395デフォルトの名無しさん
2021/03/04(木) 19:40:21.05ID:cqTSJRKn
>>373 octave
https://ideone.com/ZQ5BHB
regexp('OFOFOFFOFOFFOFOFF', 'OFF?', 'match')
396デフォルトの名無しさん
2021/03/04(木) 21:03:35.51ID:u9KE3oV/
Haskellの人に勉強不足などと言う前に
数学の基本的な初歩の作法くらい学んではいかが?
397◆QZaw55cn4c
2021/03/04(木) 21:24:36.25ID:zWapo09h
>>394
その「離散数学」というのは伝統的な数学ではどの分野にあたるのでしょうか?解析学?代数学?幾何学?
398デフォルトの名無しさん
2021/03/04(木) 22:05:59.78ID:JDmHia/u
数論
かな?
399デフォルトの名無しさん
2021/03/04(木) 22:10:11.45ID:u9KE3oV/
数論ではない
400デフォルトの名無しさん
2021/03/04(木) 22:20:44.85ID:JDmHia/u
そうか
4019
2021/03/05(金) 01:16:32.63ID:87EwnNcH
>>396
誰も勉強不足だなんて書いてないよ。
つか、勉強してあれかよ、、、
そこらの底辺コーダーよりも素養無いんじゃな…(ry

また余計な一言を書いてしまった。
402デフォルトの名無しさん
2021/03/05(金) 02:15:24.81ID:BC+Virb7
ものいへは
くちひるさむし
403デフォルトの名無しさん
2021/03/05(金) 05:54:59.00ID:tKFACNt8
>>382で「勉強・精進して、技術的にも人間的にも成長してくれればいいです」と堂々と言ってて笑うわ
404デフォルトの名無しさん
2021/03/05(金) 22:46:04.90ID:OskxCj8k
>>373
Java
https://paiza.io/projects/RRKO8pQ5LijZ_okdnHs96A
405デフォルトの名無しさん
2021/03/06(土) 05:12:40.16ID:kirbXePv
>>373
Kotlin
https://paiza.io/projects/lTXR1DFdbRbedugwfltAHw

なんというか、自分ではほとんど何も考えてないようなプログラム。
正規表現のパターンも >>377 のやつを見てそのまんま利用w
406デフォルトの名無しさん
2021/03/06(土) 07:34:01.06ID:u5UDrf4j
>>373 J
smoutput<;. 1 'OFOFOFFOFOFFOFOFF'

+--+--+---+--+---+--+---+
|OF|OF|OFF|OF|OFF|OF|OFF|
+--+--+---+--+---+--+---+
407デフォルトの名無しさん
2021/03/06(土) 14:12:32.62ID:u59OSjMq
>>373
Haskell

import Text.ParserCombinators.Parsec
import Data.Either

ofoff = let
ofoffP = many $ try ( string "OFF" ) <|> ( string "OF" )
in fromRight [ ] . ( parse ( ofoffP ) "" )

main = print $ ofoff "OFOFOFFOFOFFOFOFF"
408デフォルトの名無しさん
2021/03/06(土) 14:38:49.14ID:Agh4NOMQ
>>373 Perl
#! perl

$_ = 'OFOFOFFOFOFFOFOFF';

# 正規表現つかう場合
#@out = /(.F*)/g;

# 正規表現つかわない場合
while( length ) { push @out, ($c = substr($_, 0, 1, '')) eq 'F' ? pop(@out) . $c : $c ; }

printf "[%s]\n", join ',', map { qq("$_") } @out;
409デフォルトの名無しさん
2021/03/06(土) 16:10:04.03ID:kirbXePv
>>373
こういうのどうだろう? (主にUNIX用シェルのコマンドラインで echo, sed 使用)

echo 'OFOFOFFOFOFFOFOFF' | sed 's/FO/F, O/g'

これは出力がこうなる。

OF, OF, OFF, OF, OFF, OF, OFF
410デフォルトの名無しさん
2021/03/06(土) 21:20:45.25ID:VLVmqcBA
>>355 の想定回答はなんだろうね
ガウス記号がそれほど知られてなかったのは誤算として、
大きい数の演算を組ませたかったのか
それとも結果だけ知りたかったのか
411デフォルトの名無しさん
2021/03/06(土) 22:54:19.97ID:ZpSkomP2
355です
ちょっとスレの雰囲気よろしくなかったので355は無かった事にしようかとも思ったんですけど一応想定してた解書いてみます
数学板で最初この話題が出たときHaskellにはBigintのsqrtがない事に気づいてめんどくせえと思ったもんですから他の言語ではどうなんだろうなぁと
調べたらperlにはあるけどrubyやputhonにはないみたいですね
bigint sqrt ruby とかで検索するとノウハウがヒットします
想定してた解はその手の解答でまず最初に出てくる
a(1)=1,
a(k) = [ ( a(k) + [ n/a(k) ] ) / 2 ] ( [x] は floor(x) )
で定義される数列a(k)を
a(k)^2≦n<(a(k)+1)^2
が成立するまで計算していくという方法です
Haskellでの実装はこんな感じ

https://ideone.com/gLt8mp

後面白いのには連分数を利用する解答などもあります
数列pn, qnを
p(0)=1, p(1)=100, p(n+2)=100p(n+1)+p(n)
q(0)=0, q(1)=1, q(n+2)=100q(n+1)+q(n)
とすると
p(2n-1)/q(2n-1) < 50+√2501 < p(2n)/q(2n)
を満たしながらlim p(n)/q(n) = 50+√2501になります(連分数の打ち切り近似)
コレを利用するとこんな感じです

https://ideone.com/X0UgJb
412デフォルトの名無しさん
2021/03/06(土) 23:07:31.35ID:gHRSDkBE
>>368で、なぜこのような結果になるかは数学板をご参照のこと、なんていってるけど
数学の問題として解くからこそ下2桁に規則性があることが分かるんであって
数値計算の結果見たからって規則性があるなんて誰も分からないだろうに
413デフォルトの名無しさん
2021/03/06(土) 23:19:24.93ID:Agh4NOMQ
下2桁に規則性がありそうだ、
ということは数値計算の結果を見ればなんとなく分かるんだけど

なぜ規則性があるか、ずっと計算を続けても同じ規則があてはまるかどうかは
数学的には証明しないといけない
414デフォルトの名無しさん
2021/03/07(日) 00:25:10.38ID:v+hjnMjR
>> 355 Ruby
Q = 10 ** 1000
C = 50 * Q + Integer.sqrt(2501 * Q ** 2)
a = 1
0.upto(100) { puts a % 100; a = C * a / Q }
415デフォルトの名無しさん
2021/03/07(日) 03:38:17.36ID:AH6y7D6q
>>410
ガウス記号知らなかったのなんて騒いでた1人だけじゃん
416デフォルトの名無しさん
2021/03/07(日) 14:59:42.56ID:E+eZE9ak
sqrt は私なら二分探索するかな
417デフォルトの名無しさん
2021/03/07(日) 16:42:40.23ID:4e/EQUS9
俺もガウス記号知らなかったよ
418デフォルトの名無しさん
2021/03/07(日) 23:49:22.14ID:mJjrRrnV
そういやあったなって感じだし競プロでしか目にした覚えないし解説入れてた気がするし
忘れても良いわ
419デフォルトの名無しさん
2021/03/07(日) 23:52:19.70ID:6FoXMbth
>>411の上のはニュートン法ですね。プログラミングの教科書によく出てくるメジャーなやり方だと思います
二分木検索は>>372がその実装っぽいけど合ってるかな?
420デフォルトの名無しさん
2021/03/08(月) 06:33:43.32ID:mSIC7i2M
知らなくてもググればすぐにわかるようなことでキレてるのが滑稽なわけで
しかもなぜかHaskellの人に暴言まで吐いてる
421デフォルトの名無しさん
2021/03/08(月) 07:06:18.72ID:UeYS9xl0
底辺コーダーが年経て自尊心だけが膨らみ現実との乖離にアイデンティティを保てなくなった典型
老害と言われるものの一端
改善の見込みは無く今後悪化の一途を辿るので首吊るよう誘導するのが最善策
422デフォルトの名無しさん
2021/03/08(月) 12:07:43.97ID:fgjPNF/K
>>421
じゃあお前が死ねよ
423デフォルトの名無しさん
2021/03/08(月) 17:45:02.03ID:xLhHwRoq
>>419
そうですね
広い意味では二分木探索
(ri)^2<n<(ri+2ei)^2のとき(ri+ei)^2<nか否かでr(i+1)を決める
その時n-(ri)^2の値を保持しておいて次の(n-r(i+1))^2を計算するのにわざわざ二乗する手間を省く
いわゆる和算の“開平算”の二進数版ですね
コレも「平方根、アルゴリズム」とかで検索するとよく出てきます
実際Cで実装してる例とかヒットしますね
話をfloor√nの計算に適用すれば与えられた整数nに対して
(n0,r0,b0) = (n,0,4^( floor log[4]n ))
(n(i+1),r(i+1),b(i+1))
=(n(i), r(i)/2, b(i)/4 ) (n(i)<r(i)+b(i)のとき)
=(n(i)-r(i)-b(i), r(i)/2+b(i), b(i)/4) (そうでないとき)
でb(i)=1になるまで続けると最後のriがfloor(√n)を与えるようです
424デフォルトの名無しさん
2021/03/10(水) 21:12:56.40ID:1K35/kHq
ここって算法設計的なお題オンリー?
425デフォルトの名無しさん
2021/03/10(水) 21:16:54.62ID:18mRPtRC
半年ROMるか過去スレ眺めろ
426デフォルトの名無しさん
2021/03/10(水) 21:56:50.00ID:1K35/kHq
OK
前スレ見たらグラフィックスとかサウンドとかのお題もあるのね
要は何でもありってことか
427デフォルトの名無しさん
2021/03/10(水) 22:00:42.15ID:ixLG+AYE
半年でいいのかw
428デフォルトの名無しさん
2021/03/11(木) 12:49:28.58ID:lS475G3P
なんでもありと言ってもなんでもレスつくわけじゃない
メディア系のお題は環境の違いでほとんど他の人が確かめる方法もないから正直うざい
事実上”みんなが確かめられるメディア系のお題”となるとjavascript一択になってしまう
429デフォルトの名無しさん
2021/03/12(金) 13:32:57.02ID:8htaOCuZ
お題
何番目?

ascii文字列が与えられる
その文字列が、その文字列を並べ替えてできる文字列全体の中で辞書式順序で何番目にあるかを計算せよ

例) 入力が hello であるなら並べ替えて順に並べると
ehllo ehlol eholl
elhlo elhol ellho elloh elohl elolh
eohll eolhl eollh
hello ...
なので13である

"cabaac" -> 47
"2021312" -> 197
"This is an apple." -> 975082180080
430デフォルトの名無しさん
2021/03/12(金) 13:54:28.91ID:8htaOCuZ
発展
ucs4のユニコード文字列も処理できるようにせよ

"いろはにほへとちりぬるを"
34213807

"ちょっとちょっと、大嶋さん。小島だよ!"
2031206446571101
431デフォルトの名無しさん
2021/03/12(金) 16:24:36.54ID:EbD8nxkK
N進数を出せばいいだけじゃねえのコレ
432デフォルトの名無しさん
2021/03/12(金) 16:31:07.89ID:iC3QOahd
>>431
やってみろやカス
433デフォルトの名無しさん
2021/03/12(金) 18:56:05.12ID:UUsn73Ob
>>429 Python3
https://ideone.com/jk3SDm
最後のは10分ぐらい回したが終わらなかった
434デフォルトの名無しさん
2021/03/12(金) 19:34:51.56ID:F+VKLi92
>>429
C++
https://ideone.com/Rnbjnb
435デフォルトの名無しさん
2021/03/12(金) 21:01:53.27ID:ALDE6uMT
数学やってたほうが楽しいんじゃね?
436デフォルトの名無しさん
2021/03/12(金) 23:58:14.03ID:hKy/WFzt
解説入れます
例えば2021312が何番目か考えます
樹形図を利用します
樹形図を使って2021312以前に何個の文字列が入り得るか考えます
┳0━(112223)‥‥‥‥‥‥‥‥‥6!/(2!3!1!)=60
┣1━(012223)‥‥‥‥‥‥‥‥‥6!/(1!1!3!1!)=120
┗2━0┳1━(1223)‥‥‥‥‥‥4!/(1!2!1!)=12
┗2━1┳1━(23)‥‥‥2!/(1!1!)=2
┣2━(13)‥‥‥2!/(1!1!)=2
┗3━1━2‥‥..1
図の例えば(112223)は“112223を自由に並べてできる房”を表しており公式により6!/(1!3!2!)=60個の文字列が入ります
右の欄を合計して197が2021312の番号とわかります
この作業をプログラムで自動化して下さいがお題です
437デフォルトの名無しさん
2021/03/13(土) 12:51:54.69ID:B5UDn6aQ
>>430 Perl
こうかなあ
https://ideone.com/qwGgdZ
438デフォルトの名無しさん
2021/03/13(土) 13:32:35.11ID:00XYgDYP
>>436
ようするにコレ階乗進数だよな?
ただの進数変換じゃねえの?
439デフォルトの名無しさん
2021/03/13(土) 13:37:55.91ID:YnB9PH3t
同じ文字が2回以上出てこなければそうかもね
440デフォルトの名無しさん
2021/03/13(土) 15:15:23.30ID:KnYO1TCS
例文が増えていくなww
441デフォルトの名無しさん
2021/03/14(日) 04:01:15.90ID:3mM6lZOa
>>429
Kotlin
https://paiza.io/projects/aJ5J0aIVgB9tYzGBCtrRlA

折角なので順列を求めるクラスを作った。
でもこれ、長いやつは駄目なんだよな。馬鹿正直に全パターン求めてリストに貯め込んでるだけなので。
>>434のプログラムは長くても大丈夫になっているけど、どうしてそれで良いのかがまだよく分からない。
分かったらこちらでも作ろうと思う。(面倒くさくなったら分からないままにするかも知れないが)。
442デフォルトの名無しさん
2021/03/14(日) 05:37:41.91ID:Z9W/iZQV
単に>>436に書かれてる方法を忠実に実装するだけじゃないでしょうか
443デフォルトの名無しさん
2021/03/14(日) 09:07:42.95ID:DsiSCREB
お題: テキストからURLだけを除去しなさい

abc
https://aaaa.bbb/c_c-c/ddee?ff=gg
def
https://aaaa.bbb/c_c-c/ddee?ff=gg
ghi



abc

def

ghi
444デフォルトの名無しさん
2021/03/14(日) 09:35:01.23ID:UOoBKmpX
何をもってURLとする?
関連RFCに完全準拠してるか厳密に判定する?
445デフォルトの名無しさん
2021/03/14(日) 09:53:18.83ID:DsiSCREB
>>444
RFC準拠でもいいしhttps://だけにマッチさせる適当なやつでもいい
446デフォルトの名無しさん
2021/03/14(日) 10:49:49.29ID:Y1bQ+92y
URLのある行はURLしか含まれないの?
447デフォルトの名無しさん
2021/03/14(日) 11:00:29.45ID:U7p9/hus
>>443
この辺りで判定するだけだろ
https://qiita.com/mpyw/items/1e422848030fcde0f29a
448デフォルトの名無しさん
2021/03/14(日) 11:20:26.21ID:DsiSCREB
>>446
他のテキストと連続している場合もある

abc https://xxxx.xxx def

みたいに
半角スペースやタブで区切られてる

>>447
それ使ってもいいよ
449デフォルトの名無しさん
2021/03/14(日) 12:30:27.16ID:IL1Rx7pe
Ruby のURI.regexp は、Ruby 2.2 から廃止予定で困る。
URL の規格がハッキリしないのか?

誰か、C でも良いし、モジュールを作ってほしい
450デフォルトの名無しさん
2021/03/14(日) 15:07:40.98ID:PjD3+bpC
>>443
Java
https://paiza.io/projects/ZfAVeQHk3wTGm68x-Co_KQ
451デフォルトの名無しさん
2021/03/14(日) 17:08:12.27ID:L9o4CQs/
>>447
この正規表現は\bとかwikipediaに載ってる標準の正規表現じゃないみたいだけどコレの正規表現ってどの言語の正規表現ですか?
452デフォルトの名無しさん
2021/03/14(日) 17:27:02.50ID:L9o4CQs/
'.'が文字列の結合を表してるみたいだからphpという奴ですかね?
453デフォルトの名無しさん
2021/03/14(日) 17:41:04.33ID:UOoBKmpX
>>451
記事のタイトルくらい読みなよ
454デフォルトの名無しさん
2021/03/14(日) 17:48:59.93ID:3mM6lZOa
>>442
そうなのかも知れないが>>436が何を言っているのかよく分からない。
455デフォルトの名無しさん
2021/03/14(日) 17:52:58.17ID:3mM6lZOa
>>443
perl -pe 's#https?://\S+##g'

なんていう誤魔化しでは駄目か?w
456デフォルトの名無しさん
2021/03/14(日) 18:27:29.43ID:L9o4CQs/
>>453
ほんとだw
書いてたww
457デフォルトの名無しさん
2021/03/14(日) 18:29:06.56ID:L9o4CQs/
まぁでも所詮お遊びなんだからurlの切れ目はスペース、タブ、改行と決め打っても十分な気もする
こだわり出すとキリないからなぁ
458デフォルトの名無しさん
2021/03/14(日) 19:20:21.27ID:3mM6lZOa
あらゆるプロトコルのURLに対応したこれが最強かな。

perl -pe 's#\S+://\S+##g'
459デフォルトの名無しさん
2021/03/14(日) 19:43:05.91ID:jDE81mF6
自分が実装するときに困らないぐらいには、曖昧さのない問題にしようよ
460デフォルトの名無しさん
2021/03/15(月) 04:38:00.83ID:1p9J1VaK
>>411
Pythonにはmath.isqrt()がある(3.8から)。
https://docs.python.org/ja/3/library/math.html
461デフォルトの名無しさん
2021/03/15(月) 19:27:20.74ID:L1nObx7o
お題:
N 個のボールがあります。

A 君がそこから 0 個以上のボールを取り、
B 君が残りから 0 個以上のボールを取り、
C 君が残りから 0 個以上のボールを取りました。

A 君が取ったボールの数を a、
B 君が取ったボールの数を b、
C 君が取ったボールの数を c とします。

3 人がとったボールの数の組 (a, b, c) としてあり得るものはいくつか求めてください。

制約:
0≦N≦10^5
入力例 1:
3
出力例 1:
20

入力例 2:
25252
出力例 2:
2684350843635

入力例 3:
100000
出力例 3:
166676666850001
462デフォルトの名無しさん
2021/03/15(月) 19:31:15.27ID:L1nObx7o
入力例 1 は以下の 20 通りです

(0,0,0),(0,0,1),(0,0,2),(0,0,3),
(0,1,0),(0,1,1),(0,1,2),
(0,2,0),(0,2,1),
(0,3,0),
(1,0,0),(1,0,1),(1,0,2),
(1,1,0),(1,1,1),
(1,2,0),
(2,0,0),(2,0,1),
(2,1,0),
(3,0,0),
463デフォルトの名無しさん
2021/03/15(月) 20:06:21.92ID:pQD3ocKg
>>461
Haskell

https://ideone.com/37676m
464デフォルトの名無しさん
2021/03/15(月) 20:14:30.26ID:sUIx2ejr
>>461 Perl
https://ideone.com/yOf21q
465デフォルトの名無しさん
2021/03/16(火) 00:04:21.21ID:FDFwYhAl
>>461
間違えた
Haskell
https://ideone.com/C3W6rD
466デフォルトの名無しさん
2021/03/16(火) 00:34:34.79ID:fmeGq1E0
>>463
>>461とは違う答えになるようだが?
467デフォルトの名無しさん
2021/03/16(火) 01:01:46.91ID:7NNtBmtz
>>466
です
公式うろ覚えで間違えました
自力で考えたい人のネタバレになるといけないので詳細などは差し控えます
468デフォルトの名無しさん
2021/03/16(火) 01:19:21.90ID:Remy1U+1
それほど多くの回数の演算が必要だったのかどうか一考の余地あり
469デフォルトの名無しさん
2021/03/16(火) 02:59:00.59ID:rugLEyGJ
>>461 Haskell
463のやりたかったのはむしろこれじゃなかろうか
https://ideone.com/1TfuY4
470デフォルトの名無しさん
2021/03/16(火) 09:47:39.51ID:g33Fh4mj
>>469
いえ、すでに訂正した>>465です
その式だと答えはあいますけど通例の公式の定義と文字の使い方がズレます
まぁ計算のお題というだけなら答えさえ合えばいいですけど
しかし“数学的に”という縛りもつけるなら、やはり特に理由がないなら文字、関数の命名も極力通例のそれに合わせるものでしょうね
471デフォルトの名無しさん
2021/03/16(火) 10:24:11.59ID:Remy1U+1
>>470
どういう意味で計算式を使っているか
コメントをいれた方がいいでしょうね

hが重複組み合わせてあることはわかりますが、どういう意図でx回ループさせる必要があるのか想像たけでは読み取れません
その意味では469も同じですが
472デフォルトの名無しさん
2021/03/16(火) 14:18:02.75ID:eortqiaP
(n+1)*(n+2)*(n+3)/6
これのどこがプログラムの問題なんだ?
473デフォルトの名無しさん
2021/03/16(火) 14:53:32.23ID:F866K/BR
出題者の趣味では?
474デフォルトの名無しさん
2021/03/16(火) 15:06:20.75ID:mcRR7cz/
>>472
AtCoderの問題にも文句言って解けなさそうw
475デフォルトの名無しさん
2021/03/16(火) 15:16:46.37ID:FDFwYhAl
お題:しりとり
しりとりで繋げよ

入力:
あんこ, ここあ, ころも, ごりら, だるま, ぱんだ, まくら, もぐら, らっこ, らっぱ, らむね, りんご

出力:
りんご → ごりら → らっこ → ここあ → あんこ → ころも → もぐら → らっぱ → ぱんだ → だるま → まくら → らむね
りんご → ごりら → らっぱ → ぱんだ → だるま → まくら → らっこ → ここあ → あんこ → ころも → もぐら → らむね
476デフォルトの名無しさん
2021/03/16(火) 15:32:05.39ID:K4E4Nbs9
拗音・長音の扱いは?
要は、
ばれいしょ → しょうゆ
なのか、
ばれいしょ → ヨーグルト
なのか。
あるいは、
マヨラー → ラーメン
なのか、
マヨラー → ラムちゃん
もOKなのか。
477デフォルトの名無しさん
2021/03/16(火) 15:49:28.65ID:jPhSOZ4H
>>461 C++
https://wandbox.org/permlink/qGKAod3mtvsrdWXk

まあ数学できなくても少し考えればプログラミングで解けるし
478デフォルトの名無しさん
2021/03/16(火) 15:53:10.76ID:mcRR7cz/
>>476
質問するだけで解けなさそうw
479デフォルトの名無しさん
2021/03/16(火) 16:57:43.50ID:FDFwYhAl
>>476
まぁその辺はご自由にという事で

よいしょ→よいしょ



いでで→てめ、このやろ

もありでもなしでも
やはりありの方が評価高い?
480デフォルトの名無しさん
2021/03/16(火) 17:15:58.69ID:FDFwYhAl
やっぱりなしでいきましょか?
息抜きなんだしぱぱっと作れる範囲という事で
純粋に最初の一文字と最後の一文字完全一致のみ考慮すれば桶が基本路線という事で
481デフォルトの名無しさん
2021/03/17(水) 16:35:48.06ID:eRR+e6dW
制限お題シリーズ
お題: アルファベットと改行(LF)、ダブルクオートのみで構成されたテキストがある
テキストからダブルクオートで囲まれた文字列を抽出せよ
ただし正規表現を使ってはならない

abc"def"ghi"jk
l"mno"pqr"stu"



[def]
[jk
l]
[pqr]
482デフォルトの名無しさん
2021/03/17(水) 18:15:48.86ID:yxHVVu1O
>>481 JavaScript

const s = `abc"def"ghi"jk
l"mno"pqr"stu"`
let quot = ''
let inQuot = false
for (const c of s) {
if (c === '"') {
inQuot = !inQuot
if (!inQuot) {
console.log('[' + quot + ']')
quot = ''
}
continue
}
if (inQuot) quot += c
}
483デフォルトの名無しさん
2021/03/17(水) 19:51:53.10ID:rBKLRnxG
>>481 Ruby
str = <<EOS
abc"def"ghi"jk
l"mno"pqr"stu"
EOS
ans = []
str.chomp.split( ?" ).each_slice( 2 ){|a| a[1] && ans << "[#{a[1]}]" }
puts ans
484483
2021/03/17(水) 19:54:51.45ID:rBKLRnxG
一行だった
str.chomp.split( ?" ).each_slice( 2 ){|a| puts "[#{a[1]}]" if a[1] }
485デフォルトの名無しさん
2021/03/17(水) 20:06:06.04ID:KmnDlqKO
>>481 Common Lisp
https://ideone.com/jTFq2F
486デフォルトの名無しさん
2021/03/17(水) 21:41:02.00ID:Z+5MBFDf
>>481
Java
https://paiza.io/projects/yXtzX2TRjwJR8M7L5FPddQ
487デフォルトの名無しさん
2021/03/17(水) 22:03:41.35ID:Z+5MBFDf
>>475
Java
https://paiza.io/projects/1lPd6CUbhXvgT28lXYY9lw
488デフォルトの名無しさん
2021/03/18(木) 00:09:08.30ID:hcqC4BQb
>>.481 Python

a='"def"ghi"jk\nl"mno"pqr"stu"'

print (a.split('"')[1:-2:2])
489デフォルトの名無しさん
2021/03/18(木) 02:42:51.16ID:QPQ91MJu
>>481
Kotlin
https://paiza.io/projects/YuEG6qbQJJwhXMYXaysklg

Reader で一文字づつ読むような iterator があるとやり易いなと思ったので作った。
AbstractIterator 使うとほとんど自分で考えないで iterator 作れるから良いな。
490デフォルトの名無しさん
2021/03/18(木) 09:08:22.43ID:7Uj1c/fU
>>488
abcはどこ行ったの
491デフォルトの名無しさん
2021/03/18(木) 10:39:41.29ID:VrFdbA1m
>>481
haskell
https://ideone.com/sNkn4h
492デフォルトの名無しさん
2021/03/20(土) 20:18:04.87ID:ct9wvzVp
お題
1~6の目のあるサイコロを3つ振って出目の合計が9になる組み合わせの数を出力し
1~6の目のあるサイコロを3つ振って出目の合計が10になる組み合わせの数を出力してください
493デフォルトの名無しさん
2021/03/21(日) 21:33:06.36ID:r4JsJNzA
>>429
Java
https://paiza.io/projects/w_m2vJOA0QuDXv3rfdTeXw
494デフォルトの名無しさん
2021/03/21(日) 22:50:12.62ID:nWP+aVzk
>>492
(1,2,6)と(6,2,1)は別カウント?
495デフォルトの名無しさん
2021/03/21(日) 23:04:48.74ID:kXzg5oUQ
>>492
別カウントでhaskell
https://ideone.com/tYVMtI
496デフォルトの名無しさん
2021/03/22(月) 14:10:20.78ID:gNDsQT3i
>>492
コレ公式使うより普通にdpで計算した方がいいな
haskell
https://ideone.com/4ElczD
497デフォルトの名無しさん
2021/03/23(火) 19:53:07.80ID:9/alufVN
>>492
Java
https://paiza.io/projects/rJEqEw-lqApWQ3w1e1Zdpw
498蟻人間 ◆T6xkBnTXz7B0
2021/03/23(火) 20:11:55.19ID:Q0SAT5in
お題:正方形のタイルが格子状に規則正しく並んでいて、そのサイズは5x5である。そのタイル一つひとつに東西南北(E/W/S/Nで表す)いずれかの矢印が描かれている。
タイルの矢印をたどるとき、ループがあるかどうか判定せよ。
499蟻人間 ◆T6xkBnTXz7B0
2021/03/23(火) 20:19:07.94ID:Q0SAT5in
SWNSW
EWSNN
WSNNE
EEWWS

EESWW
NWSEE
NWWSS
WENNW

EWESN
SWESW
ENNWS
WSEES
500蟻人間 ◆T6xkBnTXz7B0
2021/03/23(火) 20:24:22.29ID:Q0SAT5in
>>498
補足。
地図と同じように北は上とします。
501デフォルトの名無しさん
2021/03/24(水) 21:45:33.44ID:wwqqOVPx
逆方向に進むのもループ?
経路としては一直線上の往復でループ状には見えないけど
502蟻人間 ◆T6xkBnTXz7B0
2021/03/24(水) 21:49:39.25ID:9eJTJDpk
>>501
逆方向が続くのもループとします。
すべてのループを#で図示して下さい。
503デフォルトの名無しさん
2021/03/24(水) 23:30:54.73ID:qbF1qTNF
なんだ
あるかないか判定するだけじゃなくてループ見つけないといけないのか
504デフォルトの名無しさん
2021/03/24(水) 23:38:09.42ID:6ziJ9FkW
>>499
5x4にしか見えないけど一段は空白で良いの?
505デフォルトの名無しさん
2021/03/25(木) 03:32:47.52ID:y2Be9aot
>>499
haskell
506デフォルトの名無しさん
2021/03/25(木) 03:33:15.95ID:y2Be9aot
>>499
リトライorz
haskell
https://ideone.com/qd0GmG
507蟻人間 ◆T6xkBnTXz7B0
2021/03/25(木) 08:30:44.54ID:KgGsNP0G
>>504
すみません。5x4でした。
508蟻人間 ◆T6xkBnTXz7B0
2021/03/26(金) 17:38:06.64ID:f2xA4tvU
>>498 を解けなかった人のために解説!

「数学のグラフ理論を勉強しようね」

以上。。。
509デフォルトの名無しさん
2021/03/26(金) 21:29:20.85ID:Sj5mIjo2
>>508
お前が解析と集合論の基礎からやり直せクソ虫が
510デフォルトの名無しさん
2021/03/26(金) 22:45:38.30ID:0DIw+LLs
グラフ理論の恩恵はあまり受けられない
単に「ループがあるか否か判定せよ」ならグラフの一次のベッチナンボー計算するだけなので行列のランク計算するライブラリ持っている言語なら終わり
しかし「ループをホントに見つけて軌道の点を#にして出力せよ」では結局各点の軌跡を全部計算するしかない
511デフォルトの名無しさん
2021/03/26(金) 23:22:53.00ID:0DIw+LLs
嘘書いた
向き付きグラフのoriented cycle探す問題だからbetti numberだけでは決まらない
しかし遷移行列の固有多項式が0になる事が必要十分条件なのでmaximaやmathematicaなら一撃
512デフォルトの名無しさん
2021/03/27(土) 16:14:39.84ID:+EOa1TvV
>>508
これの場合難しく考えなくてもなぞって行って一度通過した所に戻るならループしている、で良いのでは?
ループの個所を示す必要がある場合は2度戻るかを調べて2度通通過した所だけを抜き出す。
513デフォルトの名無しさん
2021/03/27(土) 16:15:05.65ID:+EOa1TvV
まあいいや。これから作ってみよう。
514デフォルトの名無しさん
2021/03/27(土) 17:26:26.72ID:ylVvcLaL
強連結成分分解だっけ?

深さ優先探索を2回すれば、強連結成分分解できるとか
515デフォルトの名無しさん
2021/03/27(土) 18:03:52.24ID:H6/ZmwtS
というか難しい数学持ち出してもあまり楽にならない
結局なぞって行くのが1番簡明
516デフォルトの名無しさん
2021/03/27(土) 18:32:12.25ID:qeISlB+F
トポロジカルソートして矛盾を見つける
517デフォルトの名無しさん
2021/03/27(土) 19:27:34.97ID:K5BOpVLO
>>498 Ruby
https://ideone.com/GgRlaw

ブラウザで見ると空白のサイズがずれてしまう
518デフォルトの名無しさん
2021/03/28(日) 03:11:42.96ID:bwNgM3Tx
お題:1のビットが3個ある二進表記文字列が与えられたとき、次に大きい
1のビットが3個ある二進表記文字列を求める。

111 -> 1011
1110 -> 10011
101100 -> 110001
519デフォルトの名無しさん
2021/03/28(日) 09:27:24.37ID:G8gzYUsv
>>518
haskell
https://ideone.com/ossRKu
520デフォルトの名無しさん
2021/03/28(日) 10:06:41.16ID:bm0TPZRc
↓のQ4の解き方わかる人いたら、教えてほしいです、、、

https://procon.disco.co.jp/backnumber/hiroshima2017/index.html#Q4_jump
521デフォルトの名無しさん
2021/03/28(日) 11:23:09.31ID:DP4dwTUs
>>518
C++
https://ideone.com/JZSLMR
522デフォルトの名無しさん
2021/03/28(日) 11:24:32.88ID:4K917Y8t
>>520
マルチはよくないなぁ

以下のプログラミングテスト(Q4)の解き方を教えて下さい。http... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13240901843
523デフォルトの名無しさん
2021/03/28(日) 11:59:07.61ID:GXcEOVy1
幅優先探索で各まとまりごとに数える
イメージとしては水を流すかんじ
524デフォルトの名無しさん
2021/03/28(日) 12:00:53.63ID:kEDn86wz
そんな単純じゃなかった
すまん
525デフォルトの名無しさん
2021/03/28(日) 12:28:42.14ID:iZclnQMF
>>498
python3で頑張りました。
https://ideone.com/jRsBaI
526デフォルトの名無しさん
2021/03/28(日) 12:38:30.87ID:iZclnQMF
>>518
python3。
https://ideone.com/J7MbiO
527デフォルトの名無しさん
2021/03/28(日) 13:28:28.53ID:PtqbLDQy
>>520
たぶん
外周に番兵を置いて、番兵に接触する空白も番兵とみなす、このとき斜め方向に接触する空白も番兵とする。
あとはそれぞれコマの四方向のコマと空白のつながりから塊を調べる、コマ数をカウントすれば塊の数。
こんな感じ
528デフォルトの名無しさん
2021/03/28(日) 14:18:33.80ID:vxTq7Eni
>>498
C
https://ideone.com/y4IBiu
529デフォルトの名無しさん
2021/03/28(日) 22:37:55.92ID:P/SJyVCP
>>498
なぞって行って2度通過した個所を出してみたら EW みたいな進んだ方向にただ戻る個所もループという事になったのだが、
それもアリか?アリならできたぞ。そういうのは除外となるともう一段それの発見のための処理を追加する必要がある。
530デフォルトの名無しさん
2021/03/28(日) 23:02:47.52ID:omLVBKFC
>>529
上の方でありだって
531527
2021/03/29(月) 00:19:25.86ID:FlEtzfzI
>>520 Ruby
https://ideone.com/n1jLCH
532蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 00:44:12.81ID:DFO7aycs
お題: 上下左右に広がる、がらんどうのX-Y二次元空間がある。直径10cmで質量7kgで均一な密度のボール状の物体Pの中心は、
時刻ゼロのとき、A地点(x1, y1)にあり、ここから謎の力により空中に固定される非常に丈夫な一枚の板と、時刻ゼロより発生する重力を使って、B地点(x2, y2)まで誘導したい。BはAより下にある(y1>y2)。
板は固定すると重力が働いてもびくとも動かない。物体PはB地点を必ず一度以上通過しなければならない。さてどのように板を設置すればいいか。時刻がゼロになる前に板を注文して固定しなければならない。
板は真っ直ぐ直線的であり、板の厚みは考慮しない。摩擦と空気抵抗は無視し、反発係数は1とする。この板は非常に高価なため(1cmが3万円)、なるべく短い長さで注文する必要がある。
重力加速度は下向きで地球上と同じ強さとする。設置する板の両端の座標(x3, y3)~(x4, y4)[cm]と使用する板の費用price[円]と、時刻ゼロよりB地点到達にかかる時間T[秒]を求めよ。
533蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 00:48:38.14ID:DFO7aycs
>>532
例1)
(x1, y1, x2, y2) == (1, 3, 4, 1).

例2)
(x1, y1, x2, y2) == (0, 10, -8, 0).

例3)
(x1, y1, x2, y2) == (-5, 3, 5, 0).
534デフォルトの名無しさん
2021/03/29(月) 07:42:15.30ID:cZtrSLJU
>>532
二次元空間なのにボール状の物体が存在するのか。重力加速度の下向きってどっち?
蟻人間ていつも凝った設定を作ろうとして杜撰なものばかりなイメージがある
535デフォルトの名無しさん
2021/03/29(月) 07:43:41.48ID:cZtrSLJU
あ、下は書いてあるのね
536デフォルトの名無しさん
2021/03/29(月) 07:47:56.84ID:CQMmtcGJ
そりゃ知能が蟻並みだからな
537デフォルトの名無しさん
2021/03/29(月) 08:11:58.61ID:JXmb9uoD
adhdとか何か(学習|発達)障害持ってるんでしょ
ガイジなのは一見して分かるし
538デフォルトの名無しさん
2021/03/29(月) 09:01:21.30ID:GDKfaeCK
少なくとも>>532は最小値が存在せんやろ
539蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 09:52:29.10ID:DFO7aycs
注文できる板の最小の長さは1cmとします。初速はゼロとします。
540デフォルトの名無しさん
2021/03/29(月) 09:54:01.19ID:GDKfaeCK
じゃあ答えは0
541デフォルトの名無しさん
2021/03/29(月) 09:54:28.27ID:GDKfaeCK
じゃなくて1cm
542デフォルトの名無しさん
2021/03/29(月) 10:03:17.39ID:qQUSl3DL
(x1,y1)から右下の(x2,y2)へ45度のスロープ作ったら到達時間は何秒かって問題だろ
板の値段は30000√2円
543デフォルトの名無しさん
2021/03/29(月) 10:08:28.37ID:qQUSl3DL
例にあるマイナス座標の意味がわからない
544蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 10:19:24.26ID:DFO7aycs
与えられたパラメータでBを通過するか判定する関数fを定義して下さい。fが正しく定義され、fに成功するパラメータならば正解とします。ブルートフォースや空間探索を使ってもかまいません。
545蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 10:21:35.37ID:DFO7aycs
>>542
はね返りを使えば板はもっと短くなるかと。右下ではなく左下の場合も可能。
546デフォルトの名無しさん
2021/03/29(月) 11:08:10.66ID:GDKfaeCK
>>545
板の設置位置に制限がなく反発係数が1、すなわち運動エネルギーのロスが0なら目標地点がどんなにとおくても、高低差がどんなに小さくても到達できる
hだけ下方に設置してθだけ傾けた時を考える
板に反射した地点を原点、t=0として、初速は√(2gh)、最高到達点までの時間は√(2h/g) cos2θ、水平方向速度は√(2gh)sin2θ、反発地点から最高到達点までの水平距離はhsin4θ、最高到達点の高さはhcos^2(2θ)
方程式
x2-x1=2hsin(2θ)cos(2θ)
y2-y1=-hcos^2(2θ)
はy2-y1<0である時常に解もつ
547デフォルトの名無しさん
2021/03/29(月) 11:35:09.16ID:qQUSl3DL
ちょっとだけ傾いててほぼ水平なら、板の長さは限りなく1cmに近づき、到達時間は無限に近づくわな
あとはB点が線分上にあるか計算するだけでいい
548蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 11:36:43.02ID:DFO7aycs
>>546
だいぶ近いけど、ボールの直径を考慮する必要があるよ。
549デフォルトの名無しさん
2021/03/29(月) 12:31:33.01ID:jg4xlr05
>>547
どのみち常に解を持つから問題になってない
550蟻人間 ◆T6xkBnTXz7B0
2021/03/29(月) 14:04:34.12ID:KXpoeU4l
お題:次の文章を解読するプログラムを作れ。

「この文書は{SJIS:93C192E894E996A7}です。{SJIS:95948A4F8ED2}が閲覧すると、{SJIS:94B182B982E7}れます。」
551520
2021/03/29(月) 21:19:00.34ID:IYjRcjQN
>>522
すみません、ルール違反なんですね…以後気を付けます。

>>527
>>531
ありがとうございます!
考え方まで記載いただき、本当に助かりました。
552デフォルトの名無しさん
2021/03/30(火) 03:21:24.51ID:6PAqNnFi
>>518
Kotlin
https://paiza.io/projects/Y2U2DgK9pKbNVqwu8gjpQQ

1のビットを数える方法は以前どっかで見た方法をそのまんま使った。
これ + じゃなくて xor にするとパリティビット求められるんだよね。
553デフォルトの名無しさん
2021/03/31(水) 02:13:57.15ID:tcwzWNiV
>>550
bash のコマンドラインから Perl 使ってでできた。標準入力から入力して標準出力に出力する。但し端末の入出力は UTF-8 。


perl -MEncode=from_to -pe 's/\{SJIS:(.*?)\}/from_to($s=pack("H*",$1),"cp932","utf8");$s/ge'
554デフォルトの名無しさん
2021/03/31(水) 22:33:07.77ID:IiEAnaBT
お題
数字のみの文字列を昇順の数値の列になるように
区切るすべての場合を求める。
0で始まるものは数値とはみなさない。
数字の順番は変更しない。
555◆QZaw55cn4c
2021/03/31(水) 23:13:57.39ID:9YkxM+j+
>>554
入力および対応する出力例をください
556デフォルトの名無しさん
2021/04/01(木) 01:04:50.12ID:b9nwt5sF
>>554
長さ1も可、狭義単調増加、文字列は全て0~9のみとして
Haskell

https://ideone.com/zOXDf0

入力 "20210401"

出力 [[20210401],[2,210401],[2,21,401],[2,210,401],[20,210401],[20,21,401],[20,210,401],[202,10401]]
557デフォルトの名無しさん
2021/04/01(木) 02:05:13.86ID:b9nwt5sF
>>554

> 0で始まるものは数値とはみなさない。

↑これ見落としてた
Haskell
https://ideone.com/OyB9LO

入力:20210401
出力:[[20210401],[20,210401],[20,210,401],[202,10401]]
558デフォルトの名無しさん
2021/04/01(木) 19:18:16.37ID:E1T4qUFj
ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
559デフォルトの名無しさん
2021/04/01(木) 21:20:26.68ID:TdeptelQ
「象は鼻が長い」でググれ
560デフォルトの名無しさん
2021/04/01(木) 21:38:06.12ID:yB6nLlLi
お題

下の入力文字列を、「あいう」で始まる文字列に、分割せよ。
出力形式は、配列・改行区切りの文字列などで良い

入力
abあいう1あいう23あいうxyz

出力
["あいう1", "あいう23", "あいうxyz"]
561デフォルトの名無しさん
2021/04/02(金) 01:30:32.24ID:X/M76jvg
>>560
haskell
https://ideone.com/mPtrig
562デフォルトの名無しさん
2021/04/02(金) 07:24:15.78ID:7wcW7Xmo
>>560 Ruby

p "あいう1あいう23あいうxyz".scan(/あいう.*?(?=あいう|$)/)

# => ["あいう1", "あいう23", "あいうxyz"]
563デフォルトの名無しさん
2021/04/02(金) 08:28:35.26ID:FK0Gf9rF
>>560 Ruby
p "abあいう1あいう23あいうxyz".split(/(?=あいう)/)[1..]
564デフォルトの名無しさん
2021/04/02(金) 18:13:44.89ID:mPelzphB
>>558
チンポに主体性はない。胸は心に繋がって心には主体性がある
565デフォルトの名無しさん
2021/04/02(金) 18:20:21.68ID:LmM0ztAD
>>564
主体性とはなにか説明せよ
566560
2021/04/02(金) 21:51:17.99ID:nXGaO3xM
>>563
2.5 では動かないけど、2.6 では動いた
567デフォルトの名無しさん
2021/04/03(土) 08:17:43.34ID:McIcD2xB
>>566
予定では 2.5系は今年の3月末で公式サポート切れですので早めの移行をおすすめします
https://www.ruby-lang.org/ja/news/2020/04/05/support-of-ruby-2-4-has-ended/
568デフォルトの名無しさん
2021/04/03(土) 20:31:52.16ID:HCHjqGIn
>>560
Java
https://paiza.io/projects/pfDHDvTyLKx2jlDunhjJSg
569デフォルトの名無しさん
2021/04/04(日) 01:19:15.65ID:TsxWz5pg
>>518
Java
https://paiza.io/projects/uS8dmQmZ-tOGGtvCYbGxsQ
570デフォルトの名無しさん
2021/04/04(日) 04:15:17.77ID:i8ul4qcC
>>560
Perl でこんな感じでできた。(1行目はbashのコマンドラインからの入力。2行目が出力)

echo 'abあいう1あいう23あいうxyz' | perl -ne 'chomp;@d=split/あいう/;shift(@d);print "[" . join(", ", map { qq("あいう$_") } @d) . "]\n"'
["あいう1", "あいう23", "あいうxyz"]
571デフォルトの名無しさん
2021/04/05(月) 20:31:30.41ID:o12owsbD
「像は鼻が長い」でグクった
なるほど気付かなかった
572デフォルトの名無しさん
2021/04/06(火) 01:25:45.23ID:zN4gWhl4
次の検索結果を表示しています: 象は鼻が長い
573デフォルトの名無しさん
2021/04/06(火) 13:58:55.66ID:ounqm2YM
数学板より
お題:足して9
各桁の和が9である自然数を小さい物順に並べる
9,18,27,36,45,54,63,72,81,90,108,117....
n番目を求める関数を実装せよ

入力:12
出力:117

入力:12345
出力:100204200

入力:123456789
出力:30000100000100000021000001000
574デフォルトの名無しさん
2021/04/06(火) 15:10:20.38ID:8eKBKzx+
プロおじのオナニースレ
575デフォルトの名無しさん
2021/04/06(火) 15:49:51.64ID:5jp1nWlk
プロおじってなんだ?
576デフォルトの名無しさん
2021/04/06(火) 15:59:26.26ID:sYlI8eNJ
数学板の荒らし
577デフォルトの名無しさん
2021/04/06(火) 16:27:52.36ID:vlqQXHl9
>>573 Perl
https://ideone.com/CQvj02
578デフォルトの名無しさん
2021/04/06(火) 16:52:22.76ID:sYlI8eNJ
>>577
なるほど
うまいな
579デフォルトの名無しさん
2021/04/06(火) 16:55:57.07ID:RTS/XrJR
数学板では
プログラム好き好きおじさんと
プログラム怖い怖いおじさんが
意味の無い罵り愛を展開しているのだそうな
5809
2021/04/07(水) 01:03:14.39ID:lZ4PPQGS
意味のない愛か…
イサキが大漁そうだな
アホ草
581デフォルトの名無しさん
2021/04/07(水) 03:29:39.17ID:nO5/cs4F
プログラムこわい

落語かよ
582蟻人間 ◆T6xkBnTXz7B0
2021/04/10(土) 19:40:12.57ID:Sahzdf8n
お題: かなとアルファベットと数字からなる文字列をモールス信号に変換するプログラム。ただし、長音を「-」、短音を「・」で表し、モールス信号に変換できない文字は下駄文字(〓)に置き換える。全角・半角の両方に対応すること。

参考:
https://ja.m.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7
583デフォルトの名無しさん
2021/04/11(日) 01:48:43.24ID:yXhW6xoe
>>582 Ruby
https://ideone.com/hwQ24K
584デフォルトの名無しさん
2021/04/11(日) 04:58:14.74ID:b01EJxrZ
モールスか。前にもあったな。そんなお題。
その時は確か音まで出す気合の入った回答をした人も居たと思った。
585デフォルトの名無しさん
2021/04/11(日) 18:30:35.89ID:b01EJxrZ
お題
>>582と同じでモールス信号作成。但し、定義ファイルに文字ごとに対応する信号を入れておきそれを指定して動く方式。(これにより言語が関係なくなる)。
日本語用定義ファイルを指定して動かせばそれに従って日本語での変換が行われ、英語用のを指定すれば英語での変換になるようにする。

プログラムと定義ファイルを最低一つ作ること。定義ファイルの内容は定義に従って正しく変換がされるかの確認が出来る程度で良い(例えば数字の変換だけでも良い)。
586デフォルトの名無しさん
2021/04/11(日) 18:33:36.97ID:b01EJxrZ
定義ファイルのエンコードはご自由に。でも UTF-8 にしておくとあちこちで使えて良いかも知れない。(Javaとか自動変換してくれるやつだと漢字も1文字扱い出来て楽だし)。
587デフォルトの名無しさん
2021/04/11(日) 19:48:32.73ID:yXhW6xoe
>>585 Ruby
https://ideone.com/Sq0djW
588蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:31:44.93ID:xF2ZqhuB
お題: UTF-8のCSVファイル(BOMなし)をテキトーにJSONファイルに変換せよ。
589蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:37:50.73ID:xF2ZqhuB
お題: 現在のディレクトリに連番のファイル(000.txt~999.txt)を作成せよ。
590蟻人間 ◆T6xkBnTXz7B0
2021/04/11(日) 21:49:03.91ID:xF2ZqhuB
お題: 現在のディレクトリの中から「jewel」と書かれたバイナリファイルを探索せよ(ファイル名およびファイルの中身)。大文字小文字、全角半角を区別すること。
591デフォルトの名無しさん
2021/04/11(日) 21:49:37.43ID:oovdLEo5
>>589 コマンドプロンプト直打ち
>for /L %X in (0,1,9) do @for /L %Y in (0,1,9) do @for /L %Z in (0,1,9) do @echo.%X%Y%Z>%X%Y%Z.txt
592デフォルトの名無しさん
2021/04/11(日) 23:08:08.91ID:b01EJxrZ
>>590
grep jewel *
593デフォルトの名無しさん
2021/04/12(月) 00:41:18.68ID:PERQzDfp
>>589
Linux で bash のコマンドラインでこうやったらできた。

printf '%03d.dat\n' $( seq 0 999 ) | xargs touch
594デフォルトの名無しさん
2021/04/12(月) 00:42:24.60ID:PERQzDfp
ごめん。 .dat じゃなくて .txt か。
まあでもその部分だけ直せばできる。
595デフォルトの名無しさん
2021/04/12(月) 02:59:02.12ID:McWTq0EP
推奨NGワード: 蟻
596デフォルトの名無しさん
2021/04/12(月) 03:54:37.45ID:PERQzDfp
>>585
Kotlin
https://paiza.io/projects/6WrD2npgz-YpNUrxa2j34g
597デフォルトの名無しさん
2021/04/12(月) 04:32:56.67ID:PERQzDfp
関係ないけどDMMブックスの7割引きは凄いな。高い本バスケットに入れまくりだ。
598蟻人間 ◆T6xkBnTXz7B0
2021/04/12(月) 20:48:48.64ID:AVNmNVln
お題: マルチスレッドを使うと処理完了が早くなる例を示しなさい。※CPUはマルチコアを前提とする。
599デフォルトの名無しさん
2021/04/13(火) 05:15:20.29ID:RNIiO4nm
>>589 Ruby
("0000".."9999").each{|x|open(x+".txt","w").close}
600蟻人間 ◆T6xkBnTXz7B0
2021/04/15(木) 20:54:26.73ID:IlyHVFTA
お題: ここに3つのタンクA,B,Cがある。それぞれの最大容量は20L, 15L, 10Lである。初め、Aには水15Lが入っていて、Bには水10L入っていて、
Cは空っぽだ。重力により、水は2L/sの速さでAからBに流入し、3L/sの速さでBからCに流入する。
このような水の流れとタンク内容量の変化を再現してCがいっぱいになったときのAとBの内容量を求めよ。
601蟻人間 ◆T6xkBnTXz7B0
2021/04/15(木) 21:05:03.04ID:PVf346K4
>>600 訂正と追記。
s/重力により/ポンプにより/

方程式は使ってはならない。必ずシミュレーションなどで再現すること。
602◆QZaw55cn4c
2021/04/16(金) 00:18:27.57ID:fILOfU4Q
>>600
その「水タンク-システム」=水時計って、水位差と流出量が比例するのほうがおもしろいのでは?
603デフォルトの名無しさん
2021/04/16(金) 00:35:37.34ID:b5uchwAM
受験の頻出問題で排出される水量が√水位に比例するというのがあった
大学入ってやっとベルヌーイの定理というものだと知った
604デフォルトの名無しさん
2021/04/16(金) 14:13:28.80ID:jtvNbV+8
バカみたいな受験数学教えてないでストレートにベルヌーイの定理教えりゃいいのに
ガキに能力キャップを付けて伸びないようにバカはバカのまんまでいいとする教育法が全部悪い
そろそろ文科省は解体した方がいい
605デフォルトの名無しさん
2021/04/16(金) 19:04:19.26ID:xRzMNGAE
>>600 Ruby
https://ideone.com/Mo6f3p
606蟻人間 ◆T6xkBnTXz7B0
2021/04/16(金) 20:35:12.47ID:WHFzsZ51
お題: 計算可能な未知の関数f(x)が与えられる。x=-5~+5において数値微分してf(x)の導関数の近似グラフを描画せよ。

(1) f(x)=x**2.
(2) f(x)=3*sin(x).
(3) f(x)=sqrt(abs(x)).
607蟻人間 ◆T6xkBnTXz7B0
2021/04/16(金) 21:05:20.24ID:WHFzsZ51
なお、グラフィックスが使えない言語では、テキストによる「仮想画面」を使って描画すること。
608デフォルトの名無しさん
2021/04/16(金) 21:12:44.84ID:DiXcAXcy
>>600 Scala
https://scalafiddle.io/sf/Si1Ia0o/0
609デフォルトの名無しさん
2021/04/16(金) 22:53:37.77ID:zdKOg7Co
>>604
まともな学校では数学好きな奴は高校の内から高木貞二読んだりしてたぞ
610デフォルトの名無しさん
2021/04/17(土) 07:31:04.20ID:lD3utFKx
計算不能な既知の関数て何?
611デフォルトの名無しさん
2021/04/17(土) 09:03:16.04ID:3IkVvJ6C
>>604
勉強したいなら学校なんか無視して自分でどんどん勉強しちゃって良いんだよ。
学校行かなきゃ情報が入手困難で学習できないなんて時代はとうの昔に終わってるんだし今ではネットもある。
612デフォルトの名無しさん
2021/04/17(土) 11:28:29.30ID:Mked9+jN
中受算数をやる時間が無駄じゃん
そこで解析が出るならまだしも

ならストレートに連立方程式やら積分やらを出せばいい
613デフォルトの名無しさん
2021/04/17(土) 12:39:29.81ID:3vy+q5kN
自分でやれば?としか思わないんだが
614デフォルトの名無しさん
2021/04/17(土) 21:59:24.27ID:sbDPbhaa
お題
同じ形の洗濯バサミの足を挟んでつなげてリングを作る。
最初の洗濯バサミの先頭から次のせんたくばさみの先頭までの長さAをとする。
以下同様につなげていくとすると洗濯バサミは何個必要だろうか?
615デフォルトの名無しさん
2021/04/18(日) 00:18:58.62ID:3FSrV0IS
360 / θ 個
616デフォルトの名無しさん
2021/04/18(日) 03:37:38.28ID:MhI7DTLG
>>614訂正
洗濯バサミを3個つないだ状態で
最初の洗濯バサミの先頭から2番目の洗濯バサミの先頭までの長さをAとする。
2番目の先頭から3番目の先頭までをAとする。
1番目の先頭から3番目の先頭までをBとする。
617デフォルトの名無しさん
2021/04/18(日) 06:09:43.55ID:RQ5SqrPJ
絵を描いた方が分かりやすい
618デフォルトの名無しさん
2021/04/18(日) 15:55:26.09ID:oZ702Pek
数学の問題やん?
計算機を使って何をしろと?
A,Bが入力されたときに答え出せばいい?
619デフォルトの名無しさん
2021/04/18(日) 16:11:00.76ID:oZ702Pek
>>616
haskell
https://ideone.com/9OCoeZ
620蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 14:33:35.54ID:fjai9OEL
お題: 依存関係のあるソート。与えられたいくつかの項目について、各項目ごとに依存関係が指定される。依存対象が先に来るように項目のリストをソートしなさい。
依存関係に循環がある場合は「ERROR」と出力しなさい。依存関係がない場合は名前の順でソートしなさい。

例1) {A, B, C}
AはB, Cに依存する。
BはCに依存する。
Cは何にも依存しない。

例2) {A, B, C, D}
AはCに依存する。
BはDに依存する。
CはB, Dに依存する。
Dは何にも依存しない。
621蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 14:57:48.16ID:fjai9OEL
例3) {A, B, C, D, E}
AはEに依存する。
BはDに依存する。
CはBに依存する。
Dは何にも依存しない。
EはBに依存する。
622デフォルトの名無しさん
2021/04/20(火) 19:18:30.05ID:4HfXomGv
例ってそれぞれの入力してでどう言う出力なのか答え出さないと例にならんやん?
623蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:00:19.11ID:fjai9OEL
>>622
例1の出力) (C, B, A).
例2の出力) (D, B, C, A).
例3の出力) (D, B, C, E, A).
624蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:07:07.92ID:fjai9OEL
全順序じゃないから、単純なソートアルゴリズムじゃダメみたいだね。
625蟻人間 ◆T6xkBnTXz7B0
2021/04/20(火) 20:14:12.39ID:fjai9OEL
https://qiita.com/nekonibox/items/c1c7f4d1ad1695967e39
ご参考に。
626608
2021/04/20(火) 23:18:11.98ID:F5cpVo8A
>>600 Scala
https://scastie.scala-lang.org/527l8E3KT3SbWA4P7jOv0g
627デフォルトの名無しさん
2021/04/21(水) 00:20:12.53ID:BjBFMDAR
>>620
haskell
https://ideone.com/3eleC6
628デフォルトの名無しさん
2021/04/21(水) 04:35:47.26ID:BjBFMDAR
>>620
コレでよかった
haskell
https://ideone.com/kcgnWx
629蟻人間 ◆T6xkBnTXz7B0
2021/04/21(水) 09:20:40.26ID:nkly2OdJ
>>628
アルゴリズムを簡単に解説してくれますか?
すみません。
630デフォルトの名無しさん
2021/04/21(水) 11:28:35.43ID:feIJLTYL
例えば>>821の時は順序の生成元が
E<A, D<B, B<C, B<E
この中で先頭に持ってきて良いものを探す
それはつまり「何かに依存していないもの」
この状態ではA,B,C,Eは何かに依存しているのでダメ
よってこの場合Dしかない
残りA,B,C,Eの順序を決める
その際順序の生成元からD<Xの形は取り除く
つまり
E<A, B<C, B<E
依存していないものはBのみなのでBが2番目
残りA,C,Eで順序の生成元はE<Aのみ
依存してないのはC,Eでどちらがきても良い

数学的には“何かに依存していない”はその“半順序”における“極小元”
そして極小元になり得る必要十分条件がまさに「順序の生成系の中でそれより小さいものがないもの」、すなわち「何かに依存してないもの」とわかる(証明も簡単)
そしてこの作業に於いて順序の生成系にループが有れば、例えばx<y,y<z,z<xのようなものが有ればx,y,zは最後まで取り除かれず、最後には「まだ元は残ってるけど極小元なし」の状態に到達してしまうのでその時点でerror判定して終了すれば良い
631蟻人間 ◆T6xkBnTXz7B0
2021/04/21(水) 11:44:47.65ID:nkly2OdJ
>>630
お見事です。ありがとうございます。
632デフォルトの名無しさん
2021/04/21(水) 12:03:04.18ID:v7jA28gl
お題が気持ち悪い

単に有向グラフの辺となるものだけ指定すれば良いのに
依存とか書いちゃうから以下みたいな間接依存が許されない雰囲気

AはBに依存
BはCに依存
633デフォルトの名無しさん
2021/04/21(水) 19:33:37.67ID:tmGizupL
蟻野郎が順序集合理解してるとも思えない。
634デフォルトの名無しさん
2021/04/21(水) 19:35:00.12ID:/BbfB4Z5
>>631
お前全然分かってないだろ
理解できないくせに聞くな
635デフォルトの名無しさん
2021/04/21(水) 19:48:52.11ID:Y7fj3JnX
順序集合の定義自体は超簡単じゃね?
順序集合の定理なんか使わないから順序集合なんて言葉を使う必要もないけど

アルゴリズム的には
極大(極小)元の中で名前順の先頭である元を取り出す
を繰り返すだけで良い
取り出せなくなってまだ残っていたらERROR

>>630みたいに無駄に長く説明しなくて良い
636デフォルトの名無しさん
2021/04/21(水) 19:59:05.72ID:tmGizupL
順序集合真面目にやるなら集合と位相について学ぶ必要があるわけで
637デフォルトの名無しさん
2021/04/21(水) 20:12:32.68ID:rPf7kV48
そりゃーC++には半順序がバンバン出てくるから選ばれた人間向けの言語だよ。
638蟻人間 ◆T6xkBnTXz7B0
2021/04/21(水) 22:08:22.58ID:OiYnhzgp
>>634
ちゃんと理解して実装したぜ。
https://github.com/katahiromz/OleBow/commit/f65c774b625385e855971adb1275de1fd6ebee0c

循環参照の例がうまくいかないけど。
// :: IBindCtx: IRunningObjectTable
// :: IEnumMoniker: IMoniker
// :: IMoniker: IBindCtx
// :: IMoniker: IEnumMoniker
// :: IRunningObjectTable: IEnumMoniker
// :: IRunningObjectTable: IMoniker
// :: PartitionMoniker: IMoniker
// :: SoapMoniker: IMoniker
ポインタ型とかは後回しでいっかな。
639デフォルトの名無しさん
2021/04/22(木) 06:53:19.23ID:fMSh/hUg
俺ももっと勉強しないとなあ
640デフォルトの名無しさん
2021/04/22(木) 07:08:36.76ID:DXDf8hNh
>>620 Ruby
# Array

rule = []
while gets
break unless m = /^\s*(\w)は(\w)?(?:,\s*(\w))*/.match( $_ )
rule << m.to_a[1..] - [nil]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a.size == 1 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i] -= [d] } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
641デフォルトの名無しさん
2021/04/22(木) 07:09:10.65ID:DXDf8hNh
>>620 Ruby
# Bit演算

rule = []
while gets
break unless m = /^\s*([A-Z])は([A-Z])?(?:,\s*([A-Z]))*/i.match( $_ )
rule << [ m[1].upcase, m.to_a[2..].inject(0){|r,c| (c)? r | (1 << c.upcase.ord - ?A.ord) : r } ]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a[1] == 0 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i][1] &= ~ (1 << d.ord - ?A.ord) } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
642デフォルトの名無しさん
2021/04/22(木) 20:40:45.65ID:euTe4E7l
お題
JSONでシリアライズされた未知のm×nの行列が与えられる。
転置行列を返せ。転置行列はシリアライズされていなくてもよい。

入力
"[[1,2],[3,4]]"
出力
[[1,3],[2,4]]
643デフォルトの名無しさん
2021/04/23(金) 05:15:31.62ID:dol38sZT
>>642 Ruby

require "json"
p JSON.parse(gets).transpose # => [[1, 3], [2, ,4]]
644デフォルトの名無しさん
2021/04/23(金) 07:10:55.59ID:M88Kc634
当然transpose標準で用意されてる言語はそうなるわなw
645デフォルトの名無しさん
2021/04/23(金) 13:43:38.22ID:Vuss2QH6
>>642 J

smoutput |: ". @ }: @ }: ;. _1 }. stdin ''
入力
[[1,2,3].[4,5,6]]

出力
1 4
2 5
3 6
646蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 15:35:20.99ID:CrWxBL6F
お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{=数式}}
(2) {{フィールド名:文字列}}
(3) {{フィールド名:=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、整数から文字列への変換と、文字列の連結をサポートすること。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
その他の仕様についてはエクセルをできる限りまねること。
647蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 15:52:00.73ID:CrWxBL6F
>>646 追記。
フィールド名は英字で始まるものとする。

(入力例)
こんにちは、{{NAME:蟻人間}}さん。
今年は{{:=Y}}年です。来年は{{:=Y+1}}年です。

A={{A:=1}}.
B={{B:=2}}.
A+B+4={{=A+B+4}}.
A*B-2={{=A*B-2}}.

日付: {{Y:=2021}}年{{M:=4}}月{{D:=27}}日
{{:="<"&NAME&">"}}
648蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 16:21:47.75ID:CrWxBL6F
>>647 さらに追記。
{{=数式}}と{{:=数式}}は同じように解釈すること。
649デフォルトの名無しさん
2021/04/27(火) 16:53:41.78ID:B18ZzSzj
{{数式}}でいいだろセンスねぇな
650蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:02:02.42ID:CrWxBL6F
>>649
代入文か代入式を許容することか。{{A=3}}
そっちの方がいいかもね。

エクセルは数式の先頭で=を書いてるだけで、それ以外に代入式や代入文はなかったはず。
651蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:08:35.63ID:CrWxBL6F
>>646 お題を書き直します。

お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{数式}}
(2) {{フィールド名=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は英字で始まる半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、値の比較と、整数から文字列への変換と、文字列の連結をサポートすること。等号は二文字の==とする。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
652蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:10:52.46ID:CrWxBL6F
>>651

(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。

A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.

日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
653デフォルトの名無しさん
2021/04/27(火) 20:20:55.02ID:MrWPWVr1
連投死ねクソ蟻
お前に来年は来ねえよ
654蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:28:29.02ID:CrWxBL6F
>>653
くっさ、くっさわらたんよ。ははは。

お題: 5chに粘着して、トリップ付きのコテハンを罵倒し続けるボットを作れ。
655蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:30:28.43ID:CrWxBL6F
人間がボットみたいなことやってたらカバみたいだね。ほんとほんと。
656デフォルトの名無しさん
2021/05/03(月) 17:08:04.28ID:meUcD9ks
お題
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください

入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
657デフォルトの名無しさん
2021/05/03(月) 19:31:00.21ID:vyn1ULyt
>>656 Ruby

'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}

# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
658デフォルトの名無しさん
2021/05/03(月) 20:05:34.50ID:vJY6tWsE
>>656
haskell

import Data.List

subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]

main = mapM print $ subPathes "A/B/B/B"
659デフォルトの名無しさん
2021/05/03(月) 22:24:37.21ID:v5K6mFSj
>>656 C
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
660デフォルトの名無しさん
2021/05/03(月) 22:28:25.61ID:Fl247JAk
>>656 Ruby
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
661デフォルトの名無しさん
2021/05/03(月) 23:35:00.95ID:ED/pHj/W
python

import sys
from pathlib import PurePath

for x in PurePath(sys.argv[1]).parents: print(x)
662デフォルトの名無しさん
2021/05/04(火) 01:17:51.79ID:BGUDbBhh
>>656
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg

最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
663デフォルトの名無しさん
2021/05/04(火) 02:03:51.93ID:BGUDbBhh
文字列をPATHの区切り文字で後ろから検索しないで先頭から検索しても同じと気付いたのでこっそり直した。
664デフォルトの名無しさん
2021/05/04(火) 18:30:10.36ID:0HSekrvc
>>656 Ruby
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
665デフォルトの名無しさん
2021/05/06(木) 18:06:27.01ID:b7Mkjg0R
>>656
Elixir

list = String.split( "a/bc/d", "/" ) # 分割

# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->

tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない

acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )

IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
666デフォルトの名無しさん
2021/05/06(木) 18:47:12.53ID:wT5/oYmn
a="ko/koh/oreo/n/eone"
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
667デフォルトの名無しさん
2021/05/06(木) 20:53:31.79ID:DSX8dnAp
ここに練習用のいいファイルあるわ
https://tackle57.base.ec/
668蟻人間 ◆T6xkBnTXz7B0
2021/05/06(木) 21:10:09.05ID:q2LSo660
お題: プログラムの間違い探し。

https://github.com/reactos/reactos/pull/3642
ひとつ以上の間違いを探しなさい。
669デフォルトの名無しさん
2021/05/06(木) 21:37:58.66ID:ajjDZVcw
>>667
さりげなく妙に高い値段のソフトの販売サイトに誘導しないように。
670デフォルトの名無しさん
2021/05/06(木) 21:43:26.28ID:F7n15kLE
>>668
答え:お前の存在が間違い
671蟻人間 ◆T6xkBnTXz7B0
2021/05/06(木) 21:51:43.21ID:q2LSo660
>>670
実力を隠さなくてもいいよ。
672デフォルトの名無しさん
2021/05/06(木) 22:23:58.98ID:wWHyWlvf
>>668
#include <studio.h>
673行間を読みなさいw
2021/05/07(金) 13:48:08.72ID:H+I+sfZ3
WHEREコマンドはReactOSに既に実装されています。
なので、(あえて作る場合でも)それを基にしてく
ださい(よ、頼むからさ。失礼だと思わないの?)

>コマンドではなく機能です。そして(既に実装されている)
>それは、この目的に対して便利ではありません。

貴方は公開されている(ReactOS実装の?)関数の
コードをパクって、独立したアプリケーションにしたと
いうわけですね。
というのであれば(我々の)メインストリームコードと
同期しているサードパーティコードみたいな感じを
装う必要はありません(はっきり言わせてもらえば
「しないで下さい」)
674デフォルトの名無しさん
2021/05/07(金) 13:57:45.37ID:H+I+sfZ3
システムで色々な箇所で使用される短縮名称
を正式名称と(相互)変換する機能なんて
アルゴリズムとかの題材とかには不適。
泥臭い部分がかなりあるシステム固有の設計
の話になるしたとえコードは公開しているに
せよ部外者の立ち入りは歓迎されないのは
当然。 実情を詳しく知らない外部の人に
任せられる部分じゃなかったりするから。
675デフォルトの名無しさん
2021/05/07(金) 19:10:13.55ID:FdFZQv1E
>>656 JavaScript
"A/B/B/B".replace(/^\/|\/?[^\/]*/g, (_, o, s) => console.log(s.substring(0, o)));
676Mb
2021/05/07(金) 22:02:57.18ID:P+8SzjSX
読み仮名(ひらがな、カタカナ)から、単純なコード順の整列キーを
生成するルーチンを書く。
単純にコード順で整列すると、「ガレージ」は「カレー」の直後には
こなくて、「か(蚊)」の後ではなく、「ガ(蛾)」の後に
来てしまう。
比較関数を定義しようとすると、順序関係が一意に決まらなくなって
整列ルーチンが止まらなくなる。また、SQL などの整列機能が利用できない。
業務系のシステムだと、企業名だとか個人名だとかの読みで整列する
要求があるので、読みの入力時に整列用のキーを生成しておくのが
吉と思われる。
677デフォルトの名無しさん
2021/05/08(土) 01:15:44.80ID:qYTbA2A2
>>651 C++
エクセル使ったことないから挙動が違ってたらごめんね
最後のほうはやっつけで書いたのでバグってるかもしれない

https://wandbox.org/permlink/AfU4a1aLrkxhkErW
678デフォルトの名無しさん
2021/05/08(土) 05:04:40.43ID:PD8fhCnz
>>676 Perl5
仮名を清音に変換してから比較する
https://ideone.com/bzxwnp
679蟻人間 ◆T6xkBnTXz7B0
2021/05/08(土) 06:08:52.93ID:tI5Uqx1l
>>677
うわー、1000行近い大作。しかもかなりモダンなC++。ひょえーー。
680デフォルトの名無しさん
2021/05/08(土) 14:56:47.01ID:bO3UufY6
>>677
ちょっと修正
同じ優先順位の演算子が左結合になってなかった

https://wandbox.org/permlink/2DkQ32dFPC7i8ksn
681デフォルトの名無しさん
2021/05/09(日) 21:15:00.81ID:1F2i56L2
お題:
N 人が一列に並んでおり、左から i 人目の人は色 C[i] の服を着ています。

あるチームは次の条件を満たすとき、良いチームであると言います。
- 0 人以上が所属している。
- すべての色 i について、色 i の服を着た人がチームに偶数人所属している。

N 人から "連続する" 0 人以上を選んで良いチームを作るとき、
チームに所属する人の数としてあり得る最大値を求めて下さい。

制約:
1≦N≦10^6
1≦C[i]≦60

入力:
N
C1 C2 ... CN

入力例 1
5
1 2 3 3 1

出力例 1
2

入力例 2
5
1 2 3 4 5

出力例 2
0
682デフォルトの名無しさん
2021/05/09(日) 22:47:51.84ID:YYfh4rSr
>>681
Haskell

import Data.List

mxLenGoodTeams cs = let
teams = [ take j $ drop i $ cs |
i <- [ 0..( length cs - 1) ],
j <- [ 2 .. ( length cs - i ) ] ]
isGoodTeam team
= all ( even . length ) $ group $ sort $ team
in maximum $ ( 0 : ) $ map length $ filter isGoodTeam teams

main = do
print $ mxLenGoodTeams $ [ 1,2,3,3,1 ]
print $ mxLenGoodTeams $ [ 1,2,3,4,5 ]
683デフォルトの名無しさん
2021/05/10(月) 00:22:13.18ID:mAsL1Pq+
>>681
python
https://ideone.com/8ZEsh2
684デフォルトの名無しさん
2021/05/10(月) 01:18:02.63ID:DR29Zbhh
C++ O(N log N)

https://wandbox.org/permlink/W31B0sNEOOuXELla
685デフォルトの名無しさん
2021/05/10(月) 01:18:51.44ID:DR29Zbhh
>>681
686デフォルトの名無しさん
2021/05/11(火) 00:16:24.82ID:sq5XRTcM
>>681
問題の意味がわからない。

> - すべての色 i について、色 i の服を着た人がチームに偶数人所属している。

とはどういう意味なのか?
「すべての色 i 」とは何か?
「色 i の服を着た人がチームに偶数人所属」というのはどういう意味なのか? 同じ色の服を着た人は存在しないのだよな?
687デフォルトの名無しさん
2021/05/11(火) 05:10:59.51ID:TUYWs3v7
毎度ながら日本語も問題作成も入出力例もクッソ下手だとは思うが
おまえはおまえで読解力無さ過ぎ
連続した (1≦10^6)個のデータ
データ内容は 1≦60
データ内容が偶数個となる連続した部分の最大長
1 2 2 3 3 4 4 5 → 2 2 3 3 4 4 → 6
1 2 3 4 2 3 4 5 → 2 3 4 2 3 4 → 6
1 2 3 4 5 2 3 4 → - → 0
1 2 3 3 2 4 5 4 → 2 3 3 2 → 4
1 2 3 2 2 3 2 4 → 2 3 2 2 3 2 → 6

まあ例に関しては俺も人のこと言えない
陥りやすいミスを確認しやすいキラーサンプル的な例がいくつかあればベスト
688デフォルトの名無しさん
2021/05/11(火) 20:07:35.50ID:m1fDyeBb
入出力例は不親切だとは思うが
問題文自体は問題ないでしょう
あれが理解できないというのであれば理解できない側の能力に問題がある
689デフォルトの名無しさん
2021/05/11(火) 20:11:36.25ID:jkEXfYRr
色C[i]
色i
終了
690デフォルトの名無しさん
2021/05/11(火) 20:21:52.62ID:IH6PME9X
色C[i]は「i番目の人が来ている服の色」
色iは単に色
691デフォルトの名無しさん
2021/05/11(火) 20:23:51.68ID:PxX+uCNu
正しくないんだから突っ込まれて当然

>>690
Fラン文系か?
692デフォルトの名無しさん
2021/05/11(火) 20:27:14.53ID:IH6PME9X
>>691
真面目に何がダメだったのかわからない
教えてください...
693デフォルトの名無しさん
2021/05/11(火) 20:30:24.67ID:AKHuOMpp
別にiが添え字の自然数と宣言しているわけでもなし文法的にも間違ってない
アスペでもない限り理解できる
694デフォルトの名無しさん
2021/05/11(火) 20:35:40.14ID:jkEXfYRr
C[blue]みたいな?
iはインデックスじゃないんだ
695デフォルトの名無しさん
2021/05/11(火) 20:38:54.00ID:PxX+uCNu
出題の意図は>>681で分かる
>>681はバカということも分かる
696デフォルトの名無しさん
2021/05/11(火) 20:40:02.84ID:aw7aUPl3
>>695
お、perlおじさんか?
697デフォルトの名無しさん
2021/05/11(火) 20:40:22.57ID:PxX+uCNu
>>686が嫌味で書いたのか本当にわからなかったのかはわからない
698デフォルトの名無しさん
2021/05/12(水) 10:57:02.98ID:xHZdId+E
プログラミング言語が使えても日本語が使えないのでは話が伝わらない。
それだったらプログラミング言語でそのまま書いてくれた方がここのスレでは話が通じる。
699デフォルトの名無しさん
2021/05/12(水) 12:28:32.10ID:kJR81pbU
・左から100番目の人はC[100]の色の服を着ていると読める
・列を自由に入力して良いのなら、最大値はN以下の偶数となり自明
700デフォルトの名無しさん
2021/05/12(水) 14:17:43.85ID:Ro8bxiRw
まるで競プロだな
701デフォルトの名無しさん
2021/05/12(水) 16:05:32.13ID:ASs2TDTE
>>681
出題者です
問題文がわかりずらかったみたいですいません

想定解法書きます (配列はすべて 0-index です)
A[0] = 0
A[i] = A[i - 1] xor (2^(C[i - 1] - 1)) (1≦i≦N)
な配列 A を考えます

ある区間 [L, R) がいいチームであるならば、A[R] xor A[L] = 0 です (累積和と同じ発想です)
両辺に A[R] を xor すると A[L] = A[R] になります

R を全探索しながらあり得る L のうちで一番左側のものを連想配列などで求めることで
N = 10^6 などのケースでも高速に答えを得ることができます
702デフォルトの名無しさん
2021/05/13(木) 13:08:14.73ID:tJiNVUVY
問題文の他例が二つしかないから分かりにくい
>>687の説明みるまで何が良いチームなのか分かりにくい
703デフォルトの名無しさん
2021/05/13(木) 19:07:49.38ID:3W7MB1VC
> 一列に並んでおり、左から
左てなんだ?先頭末尾なら分かるが
> 良いチームであると言います
なんだそのモヤる日本語。普通にチームで良いだろ
チームの条件として色が偶数があれば良いんだから
> i 人目の人は色 C[i] の服を着て
あとの制約見るまで一意かと勘違いする。説明でいちいち C[i] と置くのもイミフ

説明をただただややこしくしてるだけ
仕事で仕様の説明でこんな喩え話してきたらキレるわ
704デフォルトの名無しさん
2021/05/13(木) 21:41:53.75ID:B4CYAsif
短気すぎるだろ
705Mb
2021/05/13(木) 21:42:39.21ID:kEXKw6jf
>>693
> アスペでもない限り理解できる
「アスペルガー症候群」というのは、昔は「高機能広汎性発達障害」といって、
わりと馬鹿にしたもんでもない。かくいう私も、いわゆる「アスペ」の
一人だ。

ここで問題。日本語の(現代語の)動詞のうち、アルゴリズム的に押さえこめる
動詞(規則活用動詞)"以外の" 動詞はいくつあるか。
なお、「長尾の法則」(頭から見ていって、非・漢字から漢字に変化するところで、
文節は切れる)は使ってよし(「お」とか「ご」とかは名詞につくから、
このさい関係はなし)。
とりあえず六つはあって、サ変とかカ変とかは既知だけど、「そもそも、
どれだけあるのか?」っつー話になると、かなり面倒。
706デフォルトの名無しさん
2021/05/13(木) 21:45:18.19ID:B4CYAsif
>>705
> アルゴリズム的に押さえこめる

これどういう意味? 意味わかんなすぎてキレそうなんだけど
707デフォルトの名無しさん
2021/05/13(木) 22:16:56.76ID:lZ9C/hi/
お前も短気すぎるw
708デフォルトの名無しさん
2021/05/13(木) 23:36:26.05ID:mWio4uhK
さっさとPythonやらせれ
ちょっとでいいから
20年前に覚えたPerlに変わるマクロがいるんじゃああああああ

VBAでいいとかいわない
709デフォルトの名無しさん
2021/05/14(金) 11:54:50.47ID:l/Mcr9Yu
バカの書いた不適切な文書は不和をもたらす
>>681のことな
710デフォルトの名無しさん
2021/05/14(金) 13:21:20.02ID:23AH7lhZ
もうこれからは出題するときは頭に馬鹿には理解できない問題
ってとりあえず書いておけばいいのに
そうすれば荒れることもなくなるだろうから
711デフォルトの名無しさん
2021/05/14(金) 13:38:00.72ID:f3dsViZI
【コミュニティの一生】

面白い人が面白いことをする

面白いから凡人が集まってくる

住み着いた凡人が居場所を守るために主張し始める

面白い人が見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる
712デフォルトの名無しさん
2021/05/14(金) 14:08:14.84ID:4R64iY9Y
問題を作るのは難しいからしゃあない
どんな入力で、求めるのが値なのかアルゴリズムなのかを明示すればいい
713デフォルトの名無しさん
2021/05/14(金) 15:59:25.59ID:BwDBHw+5
お題: join関数を自作せよ
join関数は第2引数の配列を第1引数の文字列で連結する関数である

func join(sep, array)

s = join(':', ['1', '2', '3'])
puts(s)
# 1:2:3

sepは文字列で、文字列で無かった場合の動作は未定義である
arrayは長さが0以上の配列で要素は文字列である。それ以外の構造は未定義である
714デフォルトの名無しさん
2021/05/14(金) 16:23:22.95ID:WbiXCFQ1
先に解答例を作ってそこから試験問題作る先生のように
逆にたどって問題作れば分かり易い問題作れるのに

イキって、よーし、ぼくちゃん問題作っちゃるぞー!って、
解答未定のまま問題から作り始めるから今回のようにアフォなことになるんよ
715デフォルトの名無しさん
2021/05/14(金) 16:35:13.82ID:cn5v//cT
python
def joint(s,x,y=""):
if len(x) == 1:
print(f"{x[-1]}{y}")
else:
joint(s,x[:-1],f"{s}{x[-1]}{y}"))
716デフォルトの名無しさん
2021/05/14(金) 16:45:17.02ID:4R64iY9Y
>>713
C
https://ideone.com/ecufbl
717デフォルトの名無しさん
2021/05/14(金) 19:57:58.55ID:BwDBHw+5
>>713
C++
https://ideone.com/HCgb0A

モダンなC++だともっと書き方違うんだろうか?
11, 14あたりしか知らないので不安
718デフォルトの名無しさん
2021/05/14(金) 20:06:49.42ID:m9ewaxml
>>713
Haskell

join x = tail . concat . map ( ( x : ) . return )

main = do
print $ join ':' "123"
print $ join ' ' "Hello"
719デフォルトの名無しさん
2021/05/14(金) 20:28:04.72ID:DpIMp/DM
>>713 Lua
function join(d, a)
local r = a[1]
for i = 2, #a do
r = r .. d .. a[i]
end
return r
end

print(join(":", {"1", "2", "3"}))
実行結果
1:2:3
720デフォルトの名無しさん
2021/05/14(金) 20:49:04.94ID:SGxg0iSp
def join(sep, list)
□return sep.join(list)
721デフォルトの名無しさん
2021/05/14(金) 21:20:46.78ID:9KJ7FZky
>>713 sh
https://ideone.com/wlbCfa
722デフォルトの名無しさん
2021/05/14(金) 21:50:11.90ID:G1LerHLY
>>713
Java
https://paiza.io/projects/XDT_nug6wRMHKiGsDF55Dw
723蟻人間 ◆T6xkBnTXz7B0
2021/05/14(金) 22:06:57.32ID:YwXzhkVg
お題: split関数を自作せよ。
split関数は第2引数の文字列を第1引数の文字列を区切りとして分割した配列を返す関数である。

func split(sep, str)

s = split(':', '1:2:3')
puts(s)
# [1, 2, 3]

sepは文字列で、文字列で無かった場合の動作は未定義である。sepの長さがゼロの場合は第二引数を一文字ずつ分割する。
strは長さが0以上の文字列である。
724デフォルトの名無しさん
2021/05/14(金) 22:12:56.30ID:vm/4NlOj
join見て脊髄反射する虫並みの思考
725デフォルトの名無しさん
2021/05/14(金) 23:14:10.50ID:RR8r1Nrv
>>713
Kotlin または Kotlin script

関数定義

fun join(sep: String, vararg a: String) = a.reduce { acc, s -> "$acc$sep$s" }

使用する時
println(join(",", "abc", "def", "1", "23", "456"))
または
println(join(",", arrayOf("abc", "def", "1", "23", "456")))

これで出力はどちらもこうなる。

abc,def,1,23,456
726デフォルトの名無しさん
2021/05/14(金) 23:19:19.70ID:SGxg0iSp
def split(sep,str)
□return str.split(sep)
727デフォルトの名無しさん
2021/05/14(金) 23:24:38.63ID:4R64iY9Y
>>723
C
https://ideone.com/MFemfK
728デフォルトの名無しさん
2021/05/15(土) 00:15:44.50ID:yahE8f7K
sepの長さがゼロなら一文字ずつ分割するか
忘れてたわ
729デフォルトの名無しさん
2021/05/15(土) 00:33:17.27ID:YdirCY4B
出題者は効率のいいアルゴリズムを考え(>>701)させたかったが、
回答者は言われた通りのものを実装するだけのお題を望んでたって感じか (だから問題文がややこしいとか言われるんだろう)
このスレ向きのお題じゃなかったな
730デフォルトの名無しさん
2021/05/15(土) 00:56:03.56ID:JNomAybm
ンなワケねえだろ
お前本人か?

競プロの他の問題文と比べて明らかに文章の質が低いじゃん
731デフォルトの名無しさん
2021/05/15(土) 02:20:17.81ID:yahE8f7K
>>723
C
直しといた
2バイト文字は追加料金
https://ideone.com/CO94bV
732デフォルトの名無しさん
2021/05/15(土) 09:21:42.89ID:YsUBX88Q
やはり速度が問題ならその旨ちゃんと書かないとわからない
そもそもプログラムは早ければいいわけではないし、短ければいいわけでもないし、可読性が高ければそれでいいわけでもない
それらは全部トレードオフの関係があってどこにウェイトを置くかはそれが使われる場面場面で変わってくる
「このお題では速度重視」というならその旨明示しないと
733デフォルトの名無しさん
2021/05/15(土) 09:48:59.68ID:GxLTBboh
ゴルフ問題でもいいぞ
734デフォルトの名無しさん
2021/05/15(土) 12:53:51.38ID:yahE8f7K
100桁以下の60進数の数列があって、条件に適合し得る部分の最大の長さはいくらかだから
N以下の偶数の最大値で自明だろ
だから何の問題なのか分からんって人がいるんじゃね?
735デフォルトの名無しさん
2021/05/15(土) 13:06:25.58ID:yahE8f7K
100桁じゃねえ100万桁だ
736デフォルトの名無しさん
2021/05/15(土) 13:07:07.72ID:yahE8f7K
100万桁じゃねえ100万以下だ
737デフォルトの名無しさん
2021/05/15(土) 13:08:15.70ID:yahE8f7K
100万桁で良いのか
寝ぼけてんな、失礼
738デフォルトの名無しさん
2021/05/15(土) 15:54:17.99ID:d+8scdvN
>>723
Kotlin
https://paiza.io/projects/rXwwuvtSVOP4hMo6FOyZuA

どうせループさせるんだから Iterator 作ってやっちゃおうか、など、色々やって長くなった。
739デフォルトの名無しさん
2021/05/15(土) 15:57:04.95ID:d+8scdvN
区切り文字列が長さ0の時の処理がバグってて最後の文字がなくなるな。
こっそり直しておこう。
740デフォルトの名無しさん
2021/05/15(土) 15:58:56.01ID:d+8scdvN
直った。
741蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 11:50:18.74ID:EAK6Onef
お題: 任意のテキストデータから数値データを抽出し、列挙するプログラム。

「12あいうえお34.5かき7.0くけこ」
→[12, 34.5, 7].

「0.12ABC3.45DE0.02FGH」
→[0.12, 3.45, 0.02].
742デフォルトの名無しさん
2021/05/16(日) 12:30:25.44ID:KcTdWT19
>>741
document.querySelectorAll('span.name').forEach(e => {
  if(e.innerText.indexOf('蟻人間') >= 0){
    e.parentElement.parentElement.style.display = 'none';
}
})
743デフォルトの名無しさん
2021/05/16(日) 13:03:07.41ID:rG9ernac
>>741 Common Lisp
https://ideone.com/2uH8t4
744デフォルトの名無しさん
2021/05/16(日) 13:38:29.85ID:rG9ernac
>>743
この string-split-if には不満が残る

(string-split-if #'alpha-char-p "123abc456")
実際の結果: ("123" "" "" "456")
期待した結果: ("123" "456")
745蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 13:51:01.02ID:EAK6Onef
>>742
NG設定してね。
746デフォルトの名無しさん
2021/05/16(日) 16:25:18.39ID:bjgpsQdf
>>741
Eを使った浮動小数点の表現はどうする? 1.23E-8 みたいな。とりあえずなしで良い?
作るとしたら正規表現使うからあろうがなかろうがたいした問題ではないが。
747デフォルトの名無しさん
2021/05/16(日) 16:28:58.27ID:bjgpsQdf
>>741
Perl5

もうほとんど何も考えてない。文字列切り出してるだけ。
以下は Linux で bash のコマンドラインで実行したところ。

$ echo '0.12ABC3.45DE0.02FGH' | perl -ne 'while(/(\d+(\.\d+)?)/g){print "$1\n"}'
0.12
3.45
0.02
$
748蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 18:23:07.91ID:EAK6Onef
お題: テキストデータに含まれている数値データを全部2倍にしたテキストを返すプログラム。

「7ABC123DE0.5FG82」
→「14ABC246DE1FG164」.

「あいう75.04えおか54きく-25」
→「あいう150.08えおか108きく-50」.
749デフォルトの名無しさん
2021/05/16(日) 18:35:21.17ID:bjgpsQdf
>>748
Perl5

Perlだとこういうのはほとんど何も考えずに作れて楽だね。

$ ( echo '7ABC123DE0.5FG82' ; echo 'あいう75.04えおか54きく-25' ) | perl -pe 's/(\d+(\.\d+)?)/$1*2/ge;'
14ABC246DE1FG164
あいう150.08えおか108きく-50
$
750デフォルトの名無しさん
2021/05/16(日) 19:37:22.32ID:bjgpsQdf
>>748
Kotlin script

小数点以下の桁数を元の文字列に合わせるために java.text.DecimalFormat クラスを使用しているが、長くなってしまったなあ。
以下はコマンドラインから kotlinc で動かした Kotlin の REPL での入力と出力(>>> がプロンプト)。

>>> val ls = listOf("7ABC123DE0.5FG82", "あいう75.04えおか54きく-25")
>>> ls.forEach { println(it.replace(Regex("""\d+(\.\d+)?""")) { java.text.DecimalFormat(it.value.replace(Regex("\\d"), "#")).format(it.value.toDouble() * 2.0) }) }
14ABC246DE1FG164
あいう150.08えおか108きく-50
>>>
751蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 20:57:57.47ID:kWXR6C+3
お題:メールアドレスの難読化。

"info@example.com" ---> "info at example dot com".

"katayama.hirofumi.mz@example.com" ---> "katayama dot hirofumi dot mz at example dot com".
752デフォルトの名無しさん
2021/05/17(月) 02:01:43.00ID:GcVF7Ydc
お題:オートマドリング
以下の各問の要求された面積の所要室及び廊下を配置した、最も全体面積の小さい間取り図を出力せよ。
また、各間取り図は次の条件を満たすものとする。

・各室は廊下に面し、建物全体の形は長方形とする。
・間取り図は一文字を一坪とし、室はアルファベット、廊下は+で表示。
・廊下の面積は自由に決めて良い。
・最小面積の間取り図が複数の場合は、そのうち一つを表示すれば良い。
・全体面積(坪)を間取り図の下に表示。

【例】
所要室と要求面積(坪)
A:4, B:6, C:8, D:4

【出力例】
AAAA+DDD
BBBB+CCD
BBCCCCCC
(24)

【問1】
A:3, B:5, C:4

【問2】
A:8, B:4, C:6

【問3】
A:5, B:2, C:3, D:6, E,2
753デフォルトの名無しさん
2021/05/17(月) 03:50:50.63ID:LfCDcICC
めちゃくちゃ住みにくそうな家だ
754デフォルトの名無しさん
2021/05/17(月) 06:56:11.27ID:9WebrBNt
>>752
廊下は外周に接する必要があるかどうかとか、廊下は一続きか二つ以上あっても良いかとか、その辺は自由?
755デフォルトの名無しさん
2021/05/17(月) 09:38:24.31ID:9/Dbs2kw
間取りが出来てればいいんで問題ないのだろう
人間が住むとも書かれてないし地球上のものだという保証もない

規定数の記号が並んでいればいいんじゃないか?
ようするに員数を満たしてりゃいいんだよ
756デフォルトの名無しさん
2021/05/17(月) 12:26:47.92ID:GcVF7Ydc
補足条件です

・廊下の一端は外周に接する事
・室はそれぞれ連続している事

ダメな例
AADDDDCC
BBAA++CC
BBBBCCCC

・廊下が外周に接していない
・室Aが連続していない
757デフォルトの名無しさん
2021/05/17(月) 12:28:14.13ID:GcVF7Ydc
廊下はいくつ有っても良いです
758デフォルトの名無しさん
2021/05/17(月) 12:39:02.89ID:GcVF7Ydc
廊下の数と面積が自由なら簡単になってしまったかw
修正 廊下は一続きに制限します
759デフォルトの名無しさん
2021/05/17(月) 12:49:02.42ID:GcVF7Ydc
>>756
このダメ例では、室Bが廊下に面してないので、それもダメ
760デフォルトの名無しさん
2021/05/17(月) 13:15:02.22ID:iILyYqea
B B + E E
C C + A A
C D D A A
D D D D A
手で作る方がプログラム書くより簡単そうだ
問3とかこれでいいんでしょ
761デフォルトの名無しさん
2021/05/17(月) 13:37:58.59ID:GcVF7Ydc
>>760
正解です
人間が解くパズルとしてはそれほど難しくない
それをコードに落とすという問題です
更に形状、方位、上下階の連携などを制約に加えると、実用アプリの基本アルゴリズムになります
762デフォルトの名無しさん
2021/05/17(月) 13:38:47.16ID:9/Dbs2kw
宇宙ホテルだと部屋種類が10000くらいあるんだろ
そして部屋数合計は100億だ
廊下の長さは1光年くらいあってもいい

なんで人間の地球人の尺度で考えるのか
これが分からない
763デフォルトの名無しさん
2021/05/17(月) 13:46:24.75ID:GcVF7Ydc
>>762
制約が無いとお題にならんでしょ
764デフォルトの名無しさん
2021/05/17(月) 14:15:20.81ID:9/Dbs2kw
所要室数の上限と要求面積の上限が制約なんじゃあないの
でもその制約がどこにも書かれているようには見えない
無いものを見ろと言われましても
765デフォルトの名無しさん
2021/05/17(月) 14:22:18.03ID:9/Dbs2kw
どうやって最小面積を保証するんだろうか
766デフォルトの名無しさん
2021/05/17(月) 14:26:41.86ID:GcVF7Ydc
>>764
各問の室名(アルファベット)が所要室
数字がその室の面積
それら所要室を全て配置して、かつ全体が最小面積となるのが答え

例えば問3の解答例だと

BB+DDDD
EE++DDA
CCCAAAA

これは面積が21となり最小では無いのでダメ
767デフォルトの名無しさん
2021/05/17(月) 14:30:19.46ID:9/Dbs2kw
>>766
所要室数の上限はもしかして26+26=52っていうワケ?
それっぽっちしかないの?
768デフォルトの名無しさん
2021/05/17(月) 14:30:34.32ID:GcVF7Ydc
>>765
最小面積は、所要室の合計面積プラス最小限の廊下面積
各室が廊下に面するので、最低限必要な廊下の面積も計算可能
例えば外周に接する2坪の廊下なら、5室が面する事が出来る
769デフォルトの名無しさん
2021/05/17(月) 14:32:43.00ID:LfCDcICC
面積わかって長方形という指定があるんだから最小面積はわか
770デフォルトの名無しさん
2021/05/17(月) 14:33:17.80ID:GcVF7Ydc
>>767
制限を撤廃して拡張しようと思えばいくらでも出来るよ
771デフォルトの名無しさん
2021/05/17(月) 17:59:14.75ID:DZwTmI3K
だめだ。アルゴリズムが思いつかない。
772デフォルトの名無しさん
2021/05/17(月) 18:10:57.00ID:rt013aFx
条件を後出しした場合は
まとめて「お題」を書き直してくれないかなあ

ていうか、ちゃんと最初から考えて出題して
773デフォルトの名無しさん
2021/05/17(月) 19:08:28.87ID:GcVF7Ydc
お題:オートマドリング 《 》内は補足した条件
以下の各問の要求された面積の所要室及び廊下を配置した、最も全体面積の小さい間取り図を出力せよ。
尚、各間取り図は次の条件を満たすものとする。

・各室は廊下に面し、建物全体の形は長方形とする。《それぞれ連続した室とする事》
・間取り図は一文字を一坪とし、室はアルファベット、廊下は+で表示。
・廊下の面積は自由に決めて良い。《廊下は外周に接する事》
・最小面積の間取り図が複数の場合は、そのうち一つを表示すれば良い。
・全体面積(坪)を間取り図の下に表示。

【例】
所要室と要求面積(坪)
A:4, B:6, C:8, D:4

【出力例】
AAAA+DDD
BBBB+CCD
BBCCCCCC
(24)

【問1】
A:3, B:5, C:4

【問2】
A:8, B:4, C:6

【問3】
A:5, B:2, C:3, D:6, E,2
774デフォルトの名無しさん
2021/05/17(月) 19:42:37.24ID:3M+J4Szq
コレクソむずいね
出題者は答え持ってんの?
775デフォルトの名無しさん
2021/05/17(月) 19:51:55.12ID:GcVF7Ydc
>>774
まだコードにしてないけど、ある事はある
確かに難問かも知れない
776蟻人間 ◆T6xkBnTXz7B0
2021/05/17(月) 20:13:34.67ID:W2xtRM+Z
お題: 与えられた文字列が日本国内携帯電話番号かどうかを判定するプログラム。半角のみ。ハイフンは無視して読み飛ばす。
777デフォルトの名無しさん
2021/05/17(月) 20:19:50.36ID:3M+J4Szq
>>775
部屋数をN、部屋の総マス数の合計をTとする
とりあえず廊下を一マス増やすごとに設置できる部屋数は2増えるから廊下ますで最低でも[N/2]マス消費する
なので最低でも[N/2]+Tマスは必要
そこまでは簡単だとして普通[N/2]+Tマスで見つかるわけはない
例えば[N/2]+Tが73とかだと1×73しかないので無理
廊下1マス増やして74マスでも2×37で無理
次の75マスでは見つかるかもだし、こういうケースならまぁ75マスが最小と断じれるけど、一般には最小の[N/2]+Tマスで不可能と断じて次のステップに進むにはそう断じれる何か簡明に判定できる必要十分条件でもないと総当たりするしかない
そりゃ有限個しかないからアルゴリズムと呼べるのかもしれないけど事実上動かないよ
778デフォルトの名無しさん
2021/05/17(月) 20:30:51.51ID:OlV3d8XL
部屋をなるべく方形に(方形の枠±1)みたいな条件付けないとこんなんになるぞ
AA+BB
AC+DD
ACEED
ACDDD
779デフォルトの名無しさん
2021/05/17(月) 20:36:56.44ID:GcVF7Ydc
>>777
室+廊下の合計面積が素数
または、2×13のような廊下で分断されるような全体形状になる場合、短辺を調整して3×9にし、その分廊下に追加するなどの工夫が要る
数学的に最小面積か証明出来るかは分からんけど
780デフォルトの名無しさん
2021/05/17(月) 20:40:48.18ID:3M+J4Szq
>>779
でもお題は「最小面積であるものを出力せよ」なんでしょ?
最小でなくてもなんでもいいなら自分で好きに工夫できるけど
最小の縛りがある以上「それ以下のマス目では無理」と断言できるものじゃないとダメでしょ?
781デフォルトの名無しさん
2021/05/17(月) 20:40:55.83ID:GcVF7Ydc
>>778
室の形状は制約に無いので、それで正解です
正解パターンが複数あるので、どれか一つを出力すれば良い事にしてます
782デフォルトの名無しさん
2021/05/17(月) 20:44:43.05ID:rt013aFx
廊下は連結じゃなくて良いのね?
783デフォルトの名無しさん
2021/05/17(月) 20:47:52.32ID:GcVF7Ydc
>>782
773の制約に無いものは考慮しなくて良いとします
784デフォルトの名無しさん
2021/05/17(月) 20:54:27.35ID:a/x20dO7
廊下が存在する場合、少なくとも1坪の廊下が外周に面していればいいの?
785デフォルトの名無しさん
2021/05/17(月) 20:58:10.09ID:GcVF7Ydc
>>780
例えば、問1は最低必要面積で13坪なので、
2 * 7 = 14坪に変形しないと解が得られないですね
3 * 5 = 15坪が最小でない事が分かる
ここで判定すれば良いのでは?
786デフォルトの名無しさん
2021/05/17(月) 20:58:44.92ID:GcVF7Ydc
>>784
そうです
787デフォルトの名無しさん
2021/05/17(月) 21:00:50.14ID:a/x20dO7
>>786
なるほど
つまり

AAAA
A++A
AAAA

はアウトで

AAA+
A+AA
AAAA

はセーフなのね
1から考え直さないとダメだわ
788デフォルトの名無しさん
2021/05/17(月) 21:00:58.18ID:v7SqzMPT
なんか難問みたいだな
789デフォルトの名無しさん
2021/05/17(月) 21:06:29.30ID:GcVF7Ydc
>>788
やべえと思ってるw
皆あまり根を詰めないでね
間違ってもいいから
790デフォルトの名無しさん
2021/05/17(月) 21:13:12.73ID:rt013aFx
適切な回答が存在するかわからないなら「お題」にするなよ
791デフォルトの名無しさん
2021/05/17(月) 21:17:56.22ID:GcVF7Ydc
>>790
問1から3の解は得られるよ
792デフォルトの名無しさん
2021/05/17(月) 21:29:09.83ID:rt013aFx
だから何?
793デフォルトの名無しさん
2021/05/17(月) 21:30:12.02ID:rt013aFx
適切な回答を用意してある?
794デフォルトの名無しさん
2021/05/17(月) 21:38:48.98ID:rt013aFx
頭で解くのが許されるならこれでいい

10 PRINT "BAAA+CC"
20 PRINT "BBBB+CC"
30 PRINT
40 PRINT "AAAAAA+CCC"
50 PRINT "AABBBB+CCC"
60 PRINT
70 PRINT "AA+DD"
80 PRINT "AB+ED"
90 PRINT "ABCED"
100 PRINT "ACCDD"
795デフォルトの名無しさん
2021/05/17(月) 21:46:05.74ID:rt013aFx
これの方が良かった

10 PRINT "AAA+BBBBB+CCCC"
20 PRINT
30 PRINT "AAAAAAAA+BBBB+CCCCCC"
40 PRINT
50 PRINT "AAAAA+BBEE"
60 PRINT "DDDDDD+CCC"
796デフォルトの名無しさん
2021/05/17(月) 21:49:44.46ID:GcVF7Ydc
>>793
各問は解答を作ってから出してるよ
コードには落としてないがアルゴリズムは有る
やってる人もいるだろうから、まだ出さないが
797デフォルトの名無しさん
2021/05/17(月) 21:51:58.86ID:rt013aFx
>>795
こっち

10 PRINT "AAA+BBBBB+CCCC"
20 PRINT
30 PRINT "AAAAAAAA+BBBB+CCCCCC"
40 PRINT
50 PRINT "AAAAADDDDD"
60 PRINT "BB+CCC+EED"

>>796
回答があるわりにはお題がころころ変わるねえ
798デフォルトの名無しさん
2021/05/17(月) 21:53:58.96ID:GcVF7Ydc
>>797
変わって無いけどな
質疑に答えただけだ
そのついでに廊下の条件が緩くなってしまった
799デフォルトの名無しさん
2021/05/17(月) 21:55:49.51ID:rt013aFx
>>798
条件が変われば別の問題だ
800デフォルトの名無しさん
2021/05/17(月) 22:01:39.12ID:a/x20dO7
ぶっちゃけまだ題意を一意に解釈できていない
801デフォルトの名無しさん
2021/05/17(月) 22:05:12.05ID:rt013aFx
出題者の題意をくみ取るのがお題じゃないんだから
まともに出題出来ないやつは出題するな

と思う
802デフォルトの名無しさん
2021/05/17(月) 22:11:18.99ID:GcVF7Ydc
>>800
>>801
すまん
要は建物内部の間取りを作れってだけの問題なんだ
難しく書いたつもりは無い
803デフォルトの名無しさん
2021/05/17(月) 22:29:29.08ID:rt013aFx
難しいとか簡単とかじゃなくて「正しく書け」
804デフォルトの名無しさん
2021/05/17(月) 22:35:29.50ID:GcVF7Ydc
>>803
問題文は間違ってはいないだろ
補足が必要だっただけだ
805デフォルトの名無しさん
2021/05/17(月) 22:43:35.04ID:rt013aFx
>>804
>>799
806デフォルトの名無しさん
2021/05/17(月) 23:31:15.84ID:3M+J4Szq
>>785
え?
お題は>>773で出てる3つの場合だけ答えが出ればいいの?
そんなんプログラミングのお題にならんやろ?
プログラミングのお題と言うからには手計算ではできないような部屋数が30とかそうマス数が1000マスとかの入力でも対応できるプログラムって事になるでしょ?
>>773だったら手計算でもできるやん
807デフォルトの名無しさん
2021/05/17(月) 23:37:44.87ID:GcVF7Ydc
>>806
手計算なら意味無いよw
当然あらゆる入力に対応すべきだが、問題は3つだけ
808デフォルトの名無しさん
2021/05/17(月) 23:39:29.93ID:GcVF7Ydc
当然そのつもりで取り組んでるでしょ?
809デフォルトの名無しさん
2021/05/17(月) 23:40:52.25ID:3M+J4Szq
まぁでも出題者の言いたい事はまぁわからないでもない
この手の話は計算量の勉強してると時々出てくる
有名なのが巡回セールスマン問題で、本当の巡回セールスマンでは「セールスマンが最も効率よく巡回できる最小経路を算出するアルゴリズムを出せ」でコレにはNP時間かかるアルゴリズムしか知られていない
しかし「最小でなくても最小値に“そこそこ近い”経路ならP時間で求められるアルゴリズム」はある
多分出題者もこの問題について「最小値じゃないだろうけどまぁまぁ小さい答えを出してくれるアルゴリズム」はもってるんだろう
しかしコレをお題として他の人に出題するなら、その“そこそこ”が数学的に“どのくらい”なら合格とするのかを明示しないとお題にならない
810デフォルトの名無しさん
2021/05/17(月) 23:42:30.38ID:rt013aFx
>>806
そう解釈したから>>797

>>807
適切な回答は用意してあるんだよね?
811デフォルトの名無しさん
2021/05/17(月) 23:44:38.94ID:GcVF7Ydc
まあ簡単ではないとは思うが
問題文わかりづらかったかい?
812デフォルトの名無しさん
2021/05/17(月) 23:45:24.54ID:rt013aFx
ちなみに部屋が6個以内ならわりと簡単
813デフォルトの名無しさん
2021/05/17(月) 23:47:56.94ID:rt013aFx
>>811
ダメだこりゃ
814デフォルトの名無しさん
2021/05/17(月) 23:49:51.36ID:GcVF7Ydc
>>813
そんなに意味不明な問題だったか?w
マジかw
じゃあ明日にでも参考解答出すよ
815デフォルトの名無しさん
2021/05/17(月) 23:52:44.00ID:3M+J4Szq
例えば>>777の設定で「総マス数が2N+Tまでは合格」とかその手の縛りにしないと“最小”という縛りでは問題にならない
816デフォルトの名無しさん
2021/05/17(月) 23:59:37.40ID:rt013aFx
>>814
正しい出題が先

条件は>>773から変更は無いか
3題だけ解ければいいのか
時間やリソースを無視すれば解けるコードならいいのか
どの程度の規模の問題まで現実的な時間、リソースで解けれなければならないのか
817デフォルトの名無しさん
2021/05/18(火) 00:00:50.43ID:IEQY6Fk+
今のままでは>>797で正解だ
(面積を追加すれば)
818デフォルトの名無しさん
2021/05/18(火) 00:09:57.21ID:Wc7qNqFy
>>817
773の条件なら797で正解
773で抜け落ちたが、当初は廊下は一続きであるという趣旨なんだよ
だが無闇に難易度を上げるつもりも無いから797で良し
819デフォルトの名無しさん
2021/05/18(火) 00:14:17.28ID:Wc7qNqFy
廊下一続き縛りでも、そこまで計算時間かからんと思うよ
巨大な室数と面積でも無ければね
もちろん、宇宙ホテルでは無い
820デフォルトの名無しさん
2021/05/18(火) 00:15:55.93ID:IEQY6Fk+
何を言われてるのか全く分かってないようだ
821デフォルトの名無しさん
2021/05/18(火) 00:20:36.53ID:/GE6kPFW
なんで>>815は問題改変したがるんだろう?
総当たりだろうが最小を出すことは出来るだろ
Nがでかくなると実用的な時間では答えが出ないかもしれないけど
822デフォルトの名無しさん
2021/05/18(火) 00:31:54.78ID:U8UuOe0M
お題:コイントス(数学板の問題の改変)

コインを3回連続で投げるとき
表表表,表表裏,表裏表,裏表表,表裏裏,裏表裏,裏裏表,裏裏裏の8通りが等確率で出る

2人で先手と後手を決めて、先手が上記の8通りの中から1つ選び、後手は残った7通りの中から1つ選ぶ
そして1枚のコインを連続して投げ続けて、先に選んだパターンが出た者の勝利とする

例えばAさんが 表表裏 を選び、Bさんが 表裏表 を選んだとして、
コインの結果が、裏裏裏表表裏 となったら 表表裏 が先に出たのでAさんの勝利
コインの結果が、裏裏裏表裏表 となったら 表裏表 が先に出たのでBさんの勝利

同様のルールで、コインn回(3≦n≦6)のパターンを2人で予想し合うとき、
先手の予想を表す文字列を入力として、後手の勝率が最大となる後手の予想を表す文字列を出力せよ
入力で与える文字列として、"表" "裏" の代わりに "0" "1" を使用して良い
※入力と出力の文字列は同じ長さとする

例1: 入力 = 0000 → 出力 = 1000
例2: 入力 = 111000 → 出力 = 111100
823デフォルトの名無しさん
2021/05/18(火) 00:32:11.62ID:IEQY6Fk+
>>818
廊下が連結が元の題意ならそう訂正すれば良い
>>752からあくまで「補足」だと言い張りたいなら
あとから追加した条件「・廊下の一端は外周に接する事」も消さないと

>>819
部屋数A~Zの26部屋
各部屋のサイズ20くらいまで
が現実的な時間、リソースで解ける
と思って良いか?
824デフォルトの名無しさん
2021/05/18(火) 00:35:55.95ID:Kzl4VF4s
>>821
いや、総当たりなら出せるけど、それでは「巡回セールスマン問題の最小解を求めるアルゴリズムを求めよ」と言ってるのと同じで事実上総当たりしかない
もちろん総当たりアルゴリズム実装するのは難しい話てはないけど面白くもなんともない
しかし「最小値ではないが最小値にかなり近い値でよい」なら工夫のしようもある
例えばこの問題なら廊下の最小値は[N/2]だけどコレをどこかに真っ直ぐ引いてその両脇からN個の部屋をニョロニョロ伸ばして綺麗に長方形に治るようにする解なら多項式時間程度で求まる
しかしその方法で解が見つからなかったとしても、“あらゆる場合”を検討したわけではないから探索を次のステップに進めることができない
あくまで最小値を求めるならここで総当たりしてるダメな事を確認しないといけなくなる
しかし制限が最小値でなくて例えば2N+T以下くらいに緩ければこの方法で解を求める事が(多分)できる
まぁわかってもらえないようだからいいよ
総当たりプログラムなんて面白くもないのでROMします
825デフォルトの名無しさん
2021/05/18(火) 00:36:09.32ID:IEQY6Fk+
>>822
ほとんど数学の問題
それともモンテカルロで解く?
826デフォルトの名無しさん
2021/05/18(火) 00:38:53.07ID:IEQY6Fk+
>>824
アルゴリズムの工夫で現実的な時間で解けるという可能性は?
NP問題だと証明できた?
827デフォルトの名無しさん
2021/05/18(火) 00:41:20.76ID:/GE6kPFW
>>824
> 総当たりプログラムなんて面白くもないのでROMします
よろしくねw
828デフォルトの名無しさん
2021/05/18(火) 00:45:44.65ID:Kzl4VF4s
>>826
そんなのできるわけないやん?
つまりこの問題かperfect NPか?と聞いてるのと同じで全く新しいPerfectNPを見つけた事になる
そんなの論文レベル
まぁ多項式時間では解けそうにないなぁってのはあくまで第1感で実際には解けるもしれない、しれないけど自分が無理くさいと思ってる問題でペイも発生しないお遊びにそこまで頭と時間使う気になれない
チャレンジして「やっぱダメじゃん」で終わった時虚しさしか残らん
829デフォルトの名無しさん
2021/05/18(火) 00:46:00.51ID:IEQY6Fk+
>>822
おもしろそうなので考えてみます
数学板などのカンニングは無しで

答えを書くのしばらく待って!
830デフォルトの名無しさん
2021/05/18(火) 00:46:12.96ID:Wc7qNqFy
>>823
廊下の一端は外周に接する、この条件は生き
部屋数は26まで、各面積は20坪までとする
(そこまで想定して無かったがw)

現実的な時間で解けない問題も過去には出てたからなあ
それでも猛者は取り組んでたよ
回転寿司の皿の問題とか
831デフォルトの名無しさん
2021/05/18(火) 00:50:11.64ID:IEQY6Fk+
>>828
興味が無いならROMしててくださいな

以前みんなが指数関数オーダー以上でしか出来なかった問題を
線形オーダーで解いたことがあったのを思い出した
832デフォルトの名無しさん
2021/05/18(火) 00:51:20.27ID:IEQY6Fk+
>>830
それ
回転寿司問題
私が線形オーダーに縮めたやつ
833デフォルトの名無しさん
2021/05/18(火) 00:52:23.06ID:Wc7qNqFy
>>832
おお、あの天才か!
凄かったね
834デフォルトの名無しさん
2021/05/18(火) 00:53:17.18ID:IEQY6Fk+
ありがと!
835デフォルトの名無しさん
2021/05/18(火) 00:58:38.60ID:Kzl4VF4s
>>829
その問題数学板では答えしか出てない
計算式とかアルゴリズムは出てないので見に行っても大丈夫
いわゆる受験で出てくる“確率漸化式”の話(Homogeneous Morkov Chainと言います)の話が理解できてれば行列計算のルーチン実装すればできます
HMCの話知らなくても受験数学レベルでギリギリできなくもない
836デフォルトの名無しさん
2021/05/18(火) 01:35:07.81ID:IEQY6Fk+
>>835
わざわざ「カンニングは無しで」って書いたのに
わざわざヒント書くかねえ
しばらくこのスレ見ないことにする

>>830
とりあえず>>830の範囲で考えてみる
このスレにはしばらく来ないけど

寿司問題、ずいぶん前だよね
ずいぶん前からこのスレにいるなら
最初から出題は正しく曖昧性なく書こうよ
837デフォルトの名無しさん
2021/05/18(火) 01:44:00.93ID:ZvUkaH8s
回転寿司問題って何?
838デフォルトの名無しさん
2021/05/18(火) 01:57:24.03ID:Kzl4VF4s
>>836
ヒントになんかなってないよ
大丈夫
この単語ググっても答えになんか辿り着かないから
数学板にも答え出てません
まぁコレ以上なんかいうとホントに答えになるのでやめときます
頑張ってください
839デフォルトの名無しさん
2021/05/18(火) 02:43:15.99ID:9nwYg6rU
>>837
これかな?18レス付いてた

お題:
回転寿司にやってきた私は、コンベア上のすべての寿司を食べて帰ることにしている
コンベアは1秒に1皿分の速度で流れ、目の前の皿を取るか取らないかを選ぶことができる
私は皿取ると同時に食べ始めるが、食べている間は次の皿を取ることができない
コンベア上の皿は、私が取る以外で勝手に追加されたり無くなったりしない

最初のコンベアの状態が次のような文字列で与えられる
"31_2"
数字(1文字)はその皿を食べ終えるのにかかる秒数を表し、_は皿がないことを表す
1文字目が私の目の前であり、1秒毎に左へ回転する
例えば、最初の皿を食べたとすると食べ終わった時の状態は以下である
"2_1_"

すべての寿司を食べ終わるまで最短何秒か求めよ

"12_3" > 6秒
"313__" > 8秒
"4_35_1264_23_434" > 60秒
"123456789123456789" > ?
840デフォルトの名無しさん
2021/05/18(火) 16:27:57.97ID:JXk1qQ+R
部屋の問題はダンジョンや迷路生成のアルゴリズムに似た物じゃない
パラメタが違うだけ
起点(玄関兼廊下)から幹道(廊下)があって支道(部屋)を生成し全体を枠内に収める
841デフォルトの名無しさん
2021/05/18(火) 18:14:36.87ID:Tj0Ma2DE
対称性があるかどうかも分からない

巨大合成数を生成するのは掛け算するだけでかんたんだけど
それを二つに分けるのはちょっとばかし面倒でしょ
842デフォルトの名無しさん
2021/05/18(火) 22:17:06.70ID:Tj0Ma2DE
>>814で言ってた参考回答ってのはどれ?
843デフォルトの名無しさん
2021/05/18(火) 22:24:03.25ID:Wc7qNqFy
>>842
まだ大きい数字のチェックが終わってないが、出しましょうか
844デフォルトの名無しさん
2021/05/18(火) 22:38:28.26ID:Wc7qNqFy
>>842
これになります
大きい数字で条件違反が出るので、もうふた工夫要りますが
https://ideone.com/Rnq0SJ
845デフォルトの名無しさん
2021/05/18(火) 22:47:15.20ID:Wc7qNqFy
今気づいたけど、問題1のBが1個多いねw
846デフォルトの名無しさん
2021/05/18(火) 23:03:46.69ID:Tj0Ma2DE
500x500くらいになる手頃な大きさの例とか無いの?
847デフォルトの名無しさん
2021/05/19(水) 02:11:25.87ID:x3QVnoKT
>>822 Ruby
https://ideone.com/dei4OY
848デフォルトの名無しさん
2021/05/19(水) 08:35:28.49ID:l+JWTKLH
>>844
最小面積じゃないので不正解
849847
2021/05/19(水) 08:45:51.69ID:x3QVnoKT
>>822 Ruby
https://ideone.com/uiPy1x
最大深さnまでの負け以外の集計から勝率の集計に変更
850デフォルトの名無しさん
2021/05/19(水) 10:50:08.45ID:4kVeu0Qb
>>776
電話番号の最初が 010 や + ならば国際電話でそれ以外は全て国内電話だと思うが、本当にそれだけの判別で良いのか?
851デフォルトの名無しさん
2021/05/19(水) 11:00:46.78ID:4kVeu0Qb
>>776
携帯の電話番号というのを見落としていた。で、何が携帯番号かの資料は何処にあるのか?
852蟻人間 ◆T6xkBnTXz7B0
2021/05/19(水) 14:13:04.56ID:9tgpiYrE
>>851
総務省の資料:
https://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html
853Mb
2021/05/19(水) 20:17:53.26ID:gE1os4Gp
>>678
> 仮名を清音に変換してから比較する
うん、発想はいいが、いまひとつ。
清音のキーと「長音」「濁音」「拗音」とかのキーをそれぞれ生成して、
それをどうにかして整列キーを生成して文字列順の整列ルーチンに
喰わせる、ということを考えたら完璧。
854デフォルトの名無しさん
2021/05/19(水) 20:18:23.09ID:J+haubFC
>>852
ウザい
消えろ
腋臭
855Mb
2021/05/19(水) 20:24:02.49ID:gE1os4Gp
>>801
激しく同意する
856デフォルトの名無しさん
2021/05/19(水) 21:05:39.99ID:gAtlXGbl
お題: 複数ある改行を1つの改行にまとめる関数join_newlinesを作成せよ

s = 'abc\ndef\n\nghi\n\n\n'
s = join_newlines(s)
print(s)
# 'abc\ndef\nghi\n'
857デフォルトの名無しさん
2021/05/19(水) 21:20:54.19ID:nXtJTB3X
>>856 Ruby

p "abc\ndef\n\nghi\n\n\n?".split.join$/ # => "abc\ndef\nghi\n"
858デフォルトの名無しさん
2021/05/19(水) 21:27:22.52ID:Y3hdHfLU
>>856 sh
https://ideone.com/N0sB0l
859蟻人間 ◆T6xkBnTXz7B0
2021/05/19(水) 21:27:45.26ID:Re+YCmzE
>>854
小学生の頃、かくれんぼしてたの覚えてるか? 今でも覚えてるからな。
860デフォルトの名無しさん
2021/05/19(水) 21:47:06.50ID:hbAMoNi+
>>856
js
s.replace(/\n(\n)+/g,"\n")
861デフォルトの名無しさん
2021/05/19(水) 22:05:24.67ID:l28FZW1e
>>856
haskell

import Data.List

joinNewLines = id
. concat
. map (\x -> if ( head x == '\n' ) then "\n" else x )
. group
862デフォルトの名無しさん
2021/05/20(木) 01:40:59.75ID:Qzbw4Py0
>>856
Java
https://paiza.io/projects/HOfwpQaaNxuqRevODg2JWA
863デフォルトの名無しさん
2021/05/20(木) 01:54:03.52ID:Qzbw4Py0
>>656
Java
https://paiza.io/projects/JJAgTMZxeJPmO4nFMZhE0g?language=java
864デフォルトの名無しさん
2021/05/20(木) 02:25:44.46ID:z4YPx3Ex
>>847 Wrong Answer 0000→0001
>>849 Wrong Answer 0010→1100
865デフォルトの名無しさん
2021/05/20(木) 02:28:35.27ID:z4YPx3Ex
>>864 訂正・補足
>>847 右のケースでWA 入力0001→出力0000
>>849 右のケースでWA 入力0010→出力1100
866デフォルトの名無しさん
2021/05/22(土) 16:23:03.67ID:dLrgkRLZ
>>856
Kotlin

https://paiza.io/projects/USNasdPKuJr9Q3PkcmDddA

Kotlinらしくスッキリ書けないかと少し考えた結果こうなった。
867デフォルトの名無しさん
2021/05/23(日) 06:54:55.26ID:g5kAwhGI
>>856 Python
def join_newlines(x): return "\n".join(x.split())
868デフォルトの名無しさん
2021/05/23(日) 13:13:24.19ID:PEJa2qxX
>>867
これで文字列の最初に空行があったり、文字列の最後に空行が続いたというような場合の復元ができるものですか?
869デフォルトの名無しさん
2021/05/23(日) 13:46:27.14ID:P4UGjjTl
まーた後だしジャンケンか
シビれるなぁ
870デフォルトの名無しさん
2021/05/23(日) 20:08:36.95ID:jpQ65Iq9
後出しではないが、回答者もわかって書いてそう
871デフォルトの名無しさん
2021/05/23(日) 20:53:25.70ID:g5kAwhGI
>>868
確かにおかしいですね
一応直してみましたがあんまりすっきりとはいきませんでした
>>856 Python

def join_newlines(x): return "\n".join(("@"+x+"@").split())[1:-1]
872デフォルトの名無しさん
2021/06/01(火) 23:19:09.17ID:FFj30Ig5
数学板より

お題 ヘビサイド関数で近似

問題は長いのでリンク先

分からない問題はここに書いてね 467
http://2chb.net/r/math/1619884204/439-440

出力して欲しい3つの数値の例
上のリンクの下の440の方

【具体例1】
N = 3
l r s w
1 3 6 1
0 8 4 1
5 7 2 1

a=4, b1=6, b2=2 としたとき、F(a,b1,b2)=0 になり、これが最小値です。
a=3, b1=6, b2=2 としたとき、F(a,b1,b2)=4 になり、最小値ではありません。
a=4, b1=5, b2=3 としたとき、F(a,b1,b2)=4 になり、これも最小値ではありません。

【具体例2】
N = 4
l r s w
0 2 4 3
1 5 6 9
4 10 1 2
8 9 7 10

a=0.8, b1=1, b2=6 としたとき、F(a,b1,b2)=70 になります。
873デフォルトの名無しさん
2021/06/02(水) 01:03:39.85ID:yNlOa9BD
>>872
ここは数学板じゃないので、
「この問題を解くと、どういう用途に役立つのか」
ということを聞いておきたいと思います。
874デフォルトの名無しさん
2021/06/02(水) 02:49:47.48ID:idDWv9F6
>>873
残念ながらこの質問した人このレスを最後に消えてしまいました
なんの役に立つのやら
875デフォルトの名無しさん
2021/06/02(水) 04:58:10.59ID:yNlOa9BD
そっか
残念
876デフォルトの名無しさん
2021/06/02(水) 19:47:29.02ID:vod/9V8Y
そんな打算で問題解いてるわけじゃあるまいし
877デフォルトの名無しさん
2021/06/04(金) 03:49:13.95ID:xd2yEhgg
お題:teshimatta関数関数を作れ
入力は1文字以上を保証される

teshimatta("起きた")
> "起きてしまった"

teshimatta("やった")
> "やってしまった"

teshimatta("あ")
> "ってしまっあ"

teshimatta("古畑任三郎")
> "古畑任三ってしまっ郎"
878デフォルトの名無しさん
2021/06/04(金) 03:51:58.13ID:xd2yEhgg
>>877 修整
teshimatta("あ")
> "てしまっあ"

teshimatta("古畑任三郎")
> "古畑任三てしまっ郎"
879デフォルトの名無しさん
2021/06/04(金) 07:01:44.23ID:2K7b+Cg2
>>877 Ruby

def teshimatta(str) = str.insert(-2, 'てしまっ')
880デフォルトの名無しさん
2021/06/04(金) 18:25:22.58ID:gPAHqk4F
>>877

haskell

teshimatta = reverse . concat . zipWith ( flip ( : ) ) ( "っまして" : repeat "" ) . reverse
881デフォルトの名無しさん
2021/06/05(土) 03:23:53.65ID:lg0pCfQ9
>>877
Kotlin 及び Kotlin script

以下は kotlinc コマンドで REPL で動かした時のコピペ。
>>> はプロンプト。1行目が関数定義。2行目から使用している。

>>> fun teshimatta(s: CharSequence): CharSequence = if (s.isNotEmpty()) StringBuilder(s).insert(s.lastIndex, "てしまっ") else s
>>> teshimatta("起きた")
res1: kotlin.CharSequence = 起きてしまった
>>> teshimatta("やった")
res2: kotlin.CharSequence = やってしまった
>>> teshimatta("あ")
res3: kotlin.CharSequence = てしまっあ
>>> teshimatta("古畑任三郎")
res4: kotlin.CharSequence = 古畑任三てしまっ郎
>>>
882デフォルトの名無しさん
2021/06/05(土) 04:51:26.61ID:oLy6snUx
>>877 Python
def teshimatta(s): return s[:-1] + "てしまっ" + s[-1]
883デフォルトの名無しさん
2021/06/06(日) 01:58:33.61ID:9Hxa2Z/w
お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することとする。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。

【例1】OK
0000
0210
0000
0100

【例2】NG
0000
0200
0010
0000

【例3】OK
000000
210000
000100
000001
000000

【例4】NG
000000
210000
000100
000000
000001
884デフォルトの名無しさん
2021/06/06(日) 10:18:31.19ID:W7O34OA1
>>883
まさかこれ頂点の次数を数えるだけで終わるのか?
885デフォルトの名無しさん
2021/06/06(日) 10:29:23.85ID:bpZDov45
この場合の一筆書きってそういう意味じゃないと思う
886デフォルトの名無しさん
2021/06/06(日) 11:03:23.03ID:9mmqAG88
3次元使えばウルトラC
887蟻人間 ◆T6xkBnTXz7B0
2021/06/06(日) 14:50:36.40ID:FtjWvhxj
オイラーグラフじゃなくてハミルトン路?
888デフォルトの名無しさん
2021/06/06(日) 15:33:11.95ID:xo01P796
>>883
C++
テキトーに全探索
https://ideone.com/okNYSl
889デフォルトの名無しさん
2021/06/07(月) 01:47:29.10ID:25jhXmhQ
>>883 C
>>888の真似
https://ideone.com/1427CY
890デフォルトの名無しさん
2021/06/07(月) 15:19:10.72ID:kUu6kkFg
ハミルトン閉路問題とかいうやつか
891デフォルトの名無しさん
2021/06/09(水) 09:58:07.70ID:yucbsR+t
NP完全らしいから事実上考えても無駄で総当たりで検索するしかなさそうやね
892デフォルトの名無しさん
2021/06/09(水) 11:44:53.31ID:7ehWzkTR
>>883 Prolog

'お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することと
する。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。'(_行,_列,L) :- nth1(_スタート,_数字列,2), 選択(_行,_列,_スタート,_数字列).

選択(_行,_列,_n,_数字列) :- \+(member(0,_数字列)), write('OK\n'),!.
選択(_行,_列,_n,_数字列) :- 隣接(_行,_列,_n,_n_2), nth1(_n_2,_数字列,0), '_n番目を1に変える'(1,_n_2,_数字列,_数字列_2), 選択(_行,_列,_n_2,_数字列_2).
選択(_,_,_,_) :- write('NG\n').

'_n番目を1に変える'(_n,_n,[_|R],[1|R]) :- !.
'_n番目を1に変える'(M,_n,[_現在位置|R1],[_現在位置|R2]) :- succ(M,N), '_n番目を1に変える'(N,_n,R1,R2).

隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - 1, \+(0 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + 1, \+(1 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - _列, _隣接 > 0.
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + _列, _隣接 =< _行 * _列.
893デフォルトの名無しさん
2021/06/09(水) 11:48:43.27ID:7ehWzkTR
>>884 すみません。一箇所間違えました。

Prolog

'お題:一筆書き
0:床、1:穴、2:スタート地点
からなる数字列が与えられる。スタート地点から縦または横に1マスずつ移動し、すべての床を通過することと
する。
穴や外周は通過できない。床は一度通過すると穴となり二度目は通過できない。
すべての床を通過できれば「OK」、できなければ「NG」と表示せよ。'(_行,_列,_数字列) :- nth1(_スタート,_数字列,2), 選択(_行,_列,_スタート,_数字列).

選択(_行,_列,_n,_数字列) :- \+(member(0,_数字列)), write('OK\n'),!.
選択(_行,_列,_n,_数字列) :- 隣接(_行,_列,_n,_n_2), nth1(_n_2,_数字列,0), '_n番目を1に変える'(1,_n_2,_数字列,_数字列_2), 選択(_行,_列,_n_2,_数字列_2).
選択(_,_,_,_) :- write('NG\n').

'_n番目を1に変える'(_n,_n,[_|R],[1|R]) :- !.
'_n番目を1に変える'(M,_n,[_現在位置|R1],[_現在位置|R2]) :- succ(M,N), '_n番目を1に変える'(N,_n,R1,R2).

隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - 1, \+(0 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + 1, \+(1 is _隣接 mod _列).
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 - _列, _隣接 > 0.
隣接(_行,_列,_現在位置,_隣接) :- _隣接 is _現在位置 + _列, _隣接 =< _行 * _列.
894デフォルトの名無しさん
2021/06/09(水) 14:15:52.13ID:10Zj2z/H
>>891
総当たりでやる前に市松判定ではじく処理くらいは入れてもいいと思う
895デフォルトの名無しさん
2021/06/09(水) 18:59:44.38ID:5vxiK06u
お題:今日は第何曜日か計算して現在の日時を以下のように出力する
2021/06/09/第2水曜日/19:21/

ヒント
今日の日にちを7で割る 例:9 / 7
少数点以下は切り捨て
1を足す
カレンダーを見ながら計算すると分かりやすい
896デフォルトの名無しさん
2021/06/09(水) 19:53:11.25ID:xvC+FdYf
>>895 Ruby

puts Time.now.then{|t| t.strftime('%Y/%m/%d/第%%d%%s曜日/%R') % [(t.day + 6) / 7, %w[日 月 火 水 木 金 土][t.wday]]}

# => 2021/06/09/第2水曜日/19:52
897デフォルトの名無しさん
2021/06/09(水) 21:01:27.30ID:jvfDlPRh
>>895のヒント通りだと7の倍数の日付で不具合が発生するが宿題か?
898デフォルトの名無しさん
2021/06/09(水) 22:04:39.42ID:9AlSa9IZ
>>897
>>896のほうが簡単なのでヒント変更
今日の日にちに6を足して7で割る 例:(9+6) / 7
少数点以下は切り捨て
カレンダーを見ながら計算すると分かりやすい
899デフォルトの名無しさん
2021/06/09(水) 22:08:24.93ID:jvfDlPRh
>>898
馬鹿にしてんのかお前
900デフォルトの名無しさん
2021/06/09(水) 22:10:18.30ID:jvfDlPRh
>>896の方が「より」簡単なんじゃなくて>>895が「完全に」間違いなんだろうが
901デフォルトの名無しさん
2021/06/09(水) 22:14:42.79ID:YKvIUGd6
>>900
うるせえ黙ってろ
902デフォルトの名無しさん
2021/06/09(水) 22:16:02.86ID:jvfDlPRh
>>901
テンプレくらい読めよアホ

>宿題は宿題スレがあるのでそちらへ。
903デフォルトの名無しさん
2021/06/09(水) 22:16:54.83ID:YKvIUGd6
>>902
宿題である証拠あんのか?あ?いいかげんなこといって綾つけてんじゃねえぞおら
904デフォルトの名無しさん
2021/06/09(水) 22:17:46.07ID:YKvIUGd6
だいたいテンプレにあるからなんだってんだよ、マジメかバーカ
905デフォルトの名無しさん
2021/06/09(水) 22:18:06.16ID:jvfDlPRh
>>903
宿題じゃないって証拠でもあんのか? うせろガキが
906デフォルトの名無しさん
2021/06/09(水) 22:19:03.01ID:YKvIUGd6
>>905
証拠がないんだったら宿題じゃないよね
ここはお題スレだから

どこの学校の何先生が出した宿題なんですかー?w
907デフォルトの名無しさん
2021/06/09(水) 22:19:44.10ID:YKvIUGd6
さっさと証拠出せやおら、だせねえんだったら発言撤回して謝罪しろ大人なめんなよ
908デフォルトの名無しさん
2021/06/09(水) 22:20:34.15ID:YKvIUGd6
自分の発言には責任持とうね、証拠早くだせ、言いがかりつけてただですむと思うなよ
909デフォルトの名無しさん
2021/06/09(水) 22:21:47.24ID:YKvIUGd6
証拠は!!!怒号
910デフォルトの名無しさん
2021/06/09(水) 22:21:56.02ID:q8AeW5Xf
宿題キッズは死んでください。

ID:YKvIUGd6
ID:YKvIUGd6
ID:YKvIUGd6
911デフォルトの名無しさん
2021/06/09(水) 22:26:06.61ID:YKvIUGd6
>>910
お前が死んでください
神様お願いします>>910の脳天に雷を落として黒焦げにしてください
それをミキサーでくだいて花壇に撒くととてもきれいなお花が咲きます
よろしくお願いします
912デフォルトの名無しさん
2021/06/09(水) 22:27:24.05ID:jvfDlPRh
>>895からして頭悪そうな文章だと思ったがガチの糞ガキで草
913デフォルトの名無しさん
2021/06/09(水) 22:28:16.99ID:YKvIUGd6
>>912
お前だけ解けてなくてハゲワロw
914デフォルトの名無しさん
2021/06/09(水) 22:28:24.82ID:KPVwbcNa
>>904
テンプレすら守れないやつはただの荒らしなんで
NGぶっこんどくわ
915デフォルトの名無しさん
2021/06/09(水) 22:29:01.66ID:YKvIUGd6
>>914
報告ご苦労w
916デフォルトの名無しさん
2021/06/09(水) 22:29:41.05ID:YKvIUGd6
お前ら報連相はきちんとできるのにお題は解けないのな
917デフォルトの名無しさん
2021/06/09(水) 22:29:52.94ID:jvfDlPRh
>>913
第何曜日か計算するのに日付をそのまま7で割るとかいう発想しかできない糞馬鹿のお前に言われても草しか生えないんだが
918デフォルトの名無しさん
2021/06/09(水) 22:30:39.78ID:YKvIUGd6
>>917
はいはい、で、君の回答は? おん?
919デフォルトの名無しさん
2021/06/09(水) 22:30:45.17ID:QHAeufkP
宿題は宿題スレがあるのでそちらへ。
宿題は宿題スレがあるのでそちらへ。
宿題は宿題スレがあるのでそちらへ。
920デフォルトの名無しさん
2021/06/09(水) 22:31:50.32ID:XUk+rW/h
小学生レベルの算数すらできなかったYKvIUGd6が悪い。
921デフォルトの名無しさん
2021/06/09(水) 22:32:46.47ID:YKvIUGd6
リアル予備校講師の俺がガチ解説してやろうか? おん?
922デフォルトの名無しさん
2021/06/09(水) 22:34:34.57ID:jvfDlPRh
駒場で公理的集合論研究してる俺にガチ解説して見ろやゴミムシが
お前みたいな雑魚がこの世に生きてるのが一番許せないわ
923デフォルトの名無しさん
2021/06/09(水) 22:35:12.11ID:YKvIUGd6
>>922
1月を30日とするだろ
1~7 は第1回目の曜日
8~14 は第2回目の曜日
15~21 は第3回目の曜日
21~30 は第4回目の曜日
になる

つまり
1~7を1に変換する式を考えれば良い
924デフォルトの名無しさん
2021/06/09(水) 22:35:59.14ID:jvfDlPRh
>>923
925デフォルトの名無しさん
2021/06/09(水) 22:36:28.74ID:XUk+rW/h
>>923
お前それ自分で自分の間違い認めてるじゃん。
926デフォルトの名無しさん
2021/06/09(水) 22:37:27.35ID:7B3gG11z
小学生の宿題に協力してやったぜ!
927デフォルトの名無しさん
2021/06/09(水) 22:38:00.52ID:YKvIUGd6
ちなみに集合論は数学の最底辺、集合論を研究してる数学者は文学科と呼ばれてる
928デフォルトの名無しさん
2021/06/09(水) 22:38:32.15ID:jvfDlPRh
>>927
お前はポール・コーエンに詫びて死ね
929デフォルトの名無しさん
2021/06/09(水) 22:39:27.57ID:+isrVq5u
本物の小学生っぽくて暴言吐くのがちょっといたたまれるレベル
930デフォルトの名無しさん
2021/06/09(水) 22:43:56.46ID:ZOi1NsTl
酷い出題だなこりゃ
931デフォルトの名無しさん
2021/06/09(水) 22:49:01.83ID:YKvIUGd6
まだピンと来てないようだから図で説明する
プログラミングのお題スレ Part19 ->画像>5枚

このように日付が7個ごとに箱に入っていてその箱の数を数えれば良いわけ
駒場では教えてもらえないだろうけど、こういうふうに考えると良いわけ
932デフォルトの名無しさん
2021/06/09(水) 22:49:45.19ID:XUk+rW/h
>>931
君以外全員理解してるよ。
933デフォルトの名無しさん
2021/06/09(水) 22:50:39.76ID:p8fYXKeJ
少数点
につっこんだら負け?
934デフォルトの名無しさん
2021/06/09(水) 22:51:39.42ID:YKvIUGd6
>>932
あれあれw君回答してないよね、回答の提出がない人は理解できてないので、すぐに回答を提出するように
935デフォルトの名無しさん
2021/06/09(水) 22:51:42.58ID:QHAeufkP
>>931
まじで小学生からやり直せよお前
936デフォルトの名無しさん
2021/06/09(水) 22:51:51.24ID:k5a+Oahd
> ヒント
> 今日の日にちを7で割る 例:9 / 7
> 少数点以下は切り捨て
> 1を足す

馬鹿過ぎて草も生えない
ヒント とかドヤって思いっきり間違えてるとこが痛々しすぎる

> カレンダーを見ながら計算すると分かりやすい

更に駄目押し
分かりやすいとか言ってるのにコレかよ

真面目に頭の検査してもらった方が良いんじゃねーか?
頭に寄生虫とかウジャウジャ湧いてんじゃねーの?
冗談でも脅しでも無く本当にあるからな
更にキレっぷり見るに火病の疑いもある
死にたくなければマジで脳の検査してこい
937デフォルトの名無しさん
2021/06/09(水) 22:52:33.82ID:YKvIUGd6
>>933
プログラムの回答コード出さなかったら負け
938デフォルトの名無しさん
2021/06/09(水) 22:55:04.60ID:YKvIUGd6
>>935
だったらお前はお母さんの子宮からやり直せ
産道を通ってお母さんの膣の臭いを脳味噌に焼き付けてから
歩む人生こそいまのお前にふさわしい
939デフォルトの名無しさん
2021/06/09(水) 22:55:54.06ID:YKvIUGd6
>>936
粘着レスしてんじゃねえよバーカ、発達障害かよw
940デフォルトの名無しさん
2021/06/09(水) 22:56:25.06ID:YKvIUGd6
プログラムで回答した人だけが健常者
941デフォルトの名無しさん
2021/06/09(水) 23:00:28.30ID:YKvIUGd6
そうだ、お前らコロナのワクチンの注射頭に刺してくださいって言ってみれば?
942デフォルトの名無しさん
2021/06/09(水) 23:02:49.67ID:k5a+Oahd
ガチガイジかどうかまでは分からんが
少なくともガイジ扱いされた事のある人の反応ですね
自覚があるから草で誤魔化す
認めたく無いのだろうけど素直に診療受けた方が良いよ
病種によっては投薬や訓練で治ったり緩和出来るものもあるからさ
943デフォルトの名無しさん
2021/06/09(水) 23:05:33.24ID:YKvIUGd6
>>942
よおガイジ
944デフォルトの名無しさん
2021/06/09(水) 23:06:37.77ID:YKvIUGd6
>>942はガイジ扱いされたことのある人になりました
945デフォルトの名無しさん
2021/06/09(水) 23:06:41.76ID:ZOi1NsTl
完全に間違ったことを言ってしまったというのに
そのことを指摘されて相手をなお罵倒するというのは
まともな頭脳の持ち主がするところではないわな

しかも自分の正当性を一切主張できていないというのがお笑いポイント
946デフォルトの名無しさん
2021/06/09(水) 23:16:16.04ID:M4U6Kwpw
お前ら容赦ないなw
もうYKvのライフは0よ
947デフォルトの名無しさん
2021/06/09(水) 23:16:45.29ID:YKvIUGd6
回答してない分際で何の分析してんだよ

YouTubeでもいるよな、松本はわかったうえであえて
こうすることで笑いにしてるみたいな分析をコメントに書くやつ

そしてそれにGoodするやつな、あいつらは本当にアホですわ

もっとアホなのは令和3年に見てる人ーとアンケート取るやつな
948デフォルトの名無しさん
2021/06/09(水) 23:17:47.74ID:YKvIUGd6
で、お前らが好きなYouTuber誰よ? 言ってみ? おん?
949デフォルトの名無しさん
2021/06/09(水) 23:17:58.85ID:ZOi1NsTl
回答も何も速攻で正答されて論破されてんのお前だろ
950デフォルトの名無しさん
2021/06/09(水) 23:19:39.47ID:jvfDlPRh
>>948
あなたがこの上ない苦しみを感じながらこの世から消え去っていきますように(。>人<。)
951デフォルトの名無しさん
2021/06/09(水) 23:22:41.71ID:YKvIUGd6
>>949
で、君のお題に対する回答コードはどれだね? おん?
他人のコードに便乗するのは認めないよ
952デフォルトの名無しさん
2021/06/09(水) 23:26:34.51ID:jvfDlPRh
>>951
>>951
953デフォルトの名無しさん
2021/06/09(水) 23:28:22.76ID:YKvIUGd6
>>950
集合論と絡めてもっと洒落たことを言って欲しい
駒場で培った頭をフル回転させて欲しい
君の本気が見たい
954デフォルトの名無しさん
2021/06/09(水) 23:29:18.81ID:2azqR1ms
>>953
客観的に見てそれが乞食が物を乞う態度か?
955デフォルトの名無しさん
2021/06/09(水) 23:30:53.94ID:YKvIUGd6
>>954
僕の態度が乞食がものを乞う態度でないならば僕は乞食ではないということですよね
これが集合論
956デフォルトの名無しさん
2021/06/09(水) 23:31:25.37ID:YKvIUGd6
集合論を極めるとこういうことができるわけです
957デフォルトの名無しさん
2021/06/09(水) 23:32:38.82ID:2azqR1ms
習合以前に簡単な論理すら通じないんだな
958デフォルトの名無しさん
2021/06/09(水) 23:34:28.54ID:YKvIUGd6
>>957
> 習合

wwwwwwこれなんですか?wwwww
wwwwwwwwww習合ってなんですか?wwwwwww
wwwwwwwwwwwwwwなんまんだぶなんまんだぶwwwww
959デフォルトの名無しさん
2021/06/09(水) 23:34:43.42ID:YKvIUGd6
ふぅ・・・
960デフォルトの名無しさん
2021/06/09(水) 23:36:16.61ID:YKvIUGd6
俺は駒場の本気が見たいんだよ

こ・ま・ば! こ・ま・ば! こ・ま・ば!
961デフォルトの名無しさん
2021/06/09(水) 23:52:19.59ID:YKvIUGd6
これでも良いです

ヒント
今日の日にちから1を引く 例:9 - 1 = 8
それを7で割る 例:8 / 7
少数点以下は切り捨て
1を足す
962デフォルトの名無しさん
2021/06/09(水) 23:55:21.66ID:qriTcyP1
>>961
これでもいいですじゃなくてこちらに訂正してくださいませだろ
脳みそ腐ってんのかよ
963デフォルトの名無しさん
2021/06/09(水) 23:59:17.25ID:YKvIUGd6
>>962
それはお前が言うことじゃない
客が神様だとでも思ってるのかつけあがるな痴れ者が
訂正するのは誰なんだ? あ? 日本語わかるか? おん?
964デフォルトの名無しさん
2021/06/10(木) 00:01:30.90ID:SL5oYI2o
訂正してくださいませは訂正しろということだからな
相手に訂正させようとしてんのか? あ?
そんな馬鹿な日本語あってたまるかよ
965デフォルトの名無しさん
2021/06/10(木) 00:04:25.71ID:SL5oYI2o
丁寧な言葉を使おうとするあまりコンテキストにバグを混入させるバカ
プログラマ辞めた方が良い、絶望的に人間に向いてない
汚い庭に首輪で繋がれてワンワン言ってた方が良い
966デフォルトの名無しさん
2021/06/10(木) 00:04:51.89ID:SL5oYI2o
> 962+1 :デフォルトの名無しさん [↓] :2021/06/09(水) 23:55:21.66 ID:qriTcyP1
> >>961
> これでもいいですじゃなくてこちらに訂正してくださいませだろ
> 脳みそ腐ってんのかよ

バカを晒し上げ
967デフォルトの名無しさん
2021/06/10(木) 00:11:31.87ID:n+BhN48t
>>895-896
#!/bin/sh
# 日にち
d=$(date "+%e")
# 第n曜日のn
n=$(( ($d + 6) / 7 ))
# +%a : 曜日 (出力例:木)
dw="第$n"$(date +%a)"曜日"
echo $(date "+%Y/%m/%d/$dw/%H:%M/")
968デフォルトの名無しさん
2021/06/10(木) 00:25:20.64ID:n+BhN48t
>>896
6を足す方法を知ってからだいぶプログラミングが楽になったよ。ありがとう。
#!/bin/sh
d=$(date "+%e")
d7=$(echo "scale=3; $d / 7" | bc)
if [ ${#d7} -lt 2 ]; then n=$d7;
else n=$(echo "scale=3; $d7 + 1.0 " | bc | cut -c 1); fi
dw="第$n"$(date +%a)"曜日"
echo $(date "+%Y/%m/%d/$dw/%H:%M/")
969デフォルトの名無しさん
2021/06/10(木) 00:33:02.83ID:SL5oYI2o
整数型での切り上げは
(a + (b - 1)) / b
でできるからねー
970デフォルトの名無しさん
2021/06/10(木) 00:59:09.52ID:NEUub5Vc
今世紀最大のバカ

ID:YKvIUGd6
ID:SL5oYI2o
971蟻人間 ◆T6xkBnTXz7B0
2021/06/10(木) 01:01:43.64ID:KaOpR0kd
お題: 正方形内部の2次元空間(0, 0)~(100, 100)にランダムに1000個の頂点を配置し、頂点群をk-means++により3個のクラスタに
クラスタリングし、頂点群の位置と3個のクラスタ中央をわかりやすく図示せよ。図示できないときはクラスタ中央の座標を表示せよ。
972デフォルトの名無しさん
2021/06/10(木) 09:30:47.98ID:gzqz1I/r
>>895 Prolog
https://ideone.com/JKM2Ds
973972
2021/06/10(木) 09:44:47.39ID:gzqz1I/r
TimeZoneをlocalに指定したのだけれど、これが'UTC'になっている。_時に9を足せば
良いだけのことではあるが。local、'UTC'以外の何を指定すればよいのか。
974デフォルトの名無しさん
2021/06/10(木) 11:35:30.52ID:oO6awXFS
日本・東京とか、指定できないの?
975デフォルトの名無しさん
2021/06/10(木) 12:36:17.95ID:CSZCrfaL
>>967-968
# Python版
from datetime import datetime
import locale
locale.setlocale( locale.LC_TIME, 'ja_JP.UTF-8' )
today = datetime.now().strftime( '%d' )
num = ( int( today ) + 6 ) // 7
print( datetime.now().strftime( '%Y/%m/%d/' + '第' + str(num) + '%A' + '/%H:%M/' ) )
976デフォルトの名無しさん
2021/06/12(土) 19:29:13.34ID:JV+4q1jr
>>895
日から1引いてからじゃないと7日が2になって駄目だよな。
(ヒントに間違いを書いて惑わす作戦か?)
977デフォルトの名無しさん
2021/06/12(土) 19:47:12.79ID:JV+4q1jr
>>895
Kotlin script

Kotlin だから色々省略出来たりもしてはいるがやっぱ長くなるな。

java.time.LocalDateTime.now().run { println("%d/%02d/%02d/第%d%s曜日/%02d:%02d".format(year, monthValue, dayOfMonth, (dayOfMonth - 1) / 7 + 1, "月火水木金土日"[dayOfWeek.value - 1], hour, minute)) }

今これを実行するとこう出る。

2021/06/12/第2土曜日/19:47
978デフォルトの名無しさん
2021/06/12(土) 19:53:47.74ID:JV+4q1jr
そういや (dayOfMonth - 1) / 7 + 1 は (dayOfMonth + 6) / 7 と同じだったな。
と思ってから他の回答見るとみんなそう計算していた。とほほ。
979デフォルトの名無しさん
2021/06/12(土) 20:24:55.76ID:JV+4q1jr
ごめん。Javaのライブラリだともっと簡単にできるんだった。

println(java.time.format.DateTimeFormatter.ofPattern("YYYY/MM/dd/第Weeee/HH:mm").format(java.time.LocalDateTime.now()))

これ、Kotlin かどうかは println() の部分だけで中身は Java でも同じ。
月の中の何週目なのかはFormatterで W を使うと自動でやってくれるので自分で計算しなくても良い。
今実行するとこう出る。

2021/06/12/第2土曜日/20:24
980デフォルトの名無しさん
2021/06/12(土) 20:28:08.93ID:JV+4q1jr
Formatter.ofPattern() での Locale は本当は設定した方が良いかも知れない。>>979は日本語環境で実行したので曜日が日本語になっている。他の言語向け環境だと曜日の文字列は違って出ると思う。
981デフォルトの名無しさん
2021/06/12(土) 21:14:10.13ID:RadmeEVr
>>979
ふーむ
YYYYはweek-based-yearなので2021/12/26が2022/12/26になってしまうよ
Wはweek-of-monthなので6/6が第2日曜日になってしまうよ
982デフォルトの名無しさん
2021/06/12(土) 22:21:51.66ID:RadmeEVr
>>895
Java
https://paiza.io/projects/SCH5eTG--EtxecCRlqTJsA
983デフォルトの名無しさん
2021/06/12(土) 22:24:48.19ID:RadmeEVr
お題
年月と第何曜日が入力されます
その日付を出力してください

入力: 2021-07,第3月曜日
出力: 2021-07-19
984デフォルトの名無しさん
2021/06/13(日) 00:00:30.76ID:EAgJhZrv
>>983 Ruby
def s2d( str )
return '' unless /(\d+)-(\d+),第(\d+)(.)曜日/ =~ str
tm = Time.new( $1.to_i, $2.to_i, 1, 12 )
( tm + 86400 * ( $3.to_i * 7 - 7 + ("日月火水木金土".index($4) - tm.wday) % 7 ) ).strftime( '%F' )
end

puts s2d( '2021-07,第3月曜日' ) #=> 2021-07-19
閏秒やサマータイムを挟んでもおそらく問題ない
985デフォルトの名無しさん
2021/06/13(日) 00:26:28.82ID:FnAquiwp
JS
const f = (x) => {
let [p,q] = x.split(","); let days = {日:0,月:1,火:2,水:3,木:4,金:5,土:6};
let nth = q.match(/\d/)[0]*1;
let day = (r=>{
for (let [k,v] of Object.entries(days)) { if (q.includes(`${k}曜日`)) {return v}}
})(q)
let i = 1;
while (i<32) {
if (new Date(`${p}/${i}`).getDay()!=day) {i++;}
else if (nth != 1) {i+=7; nth--;}
else {break}
}
return new Date(`${p}/${i}`).toLocaleDateString();
}
やっつけ
986デフォルトの名無しさん
2021/06/13(日) 01:31:13.98ID:yIXAqgJY
>>981
あ。そうか。YYYYはyyyyにするとしても、第xの方は計算しないと駄目か。
987デフォルトの名無しさん
2021/06/13(日) 01:36:37.49ID:zmNVs3Ym
>>984
第10月曜日とかあるのか?
988デフォルトの名無しさん
2021/06/13(日) 01:41:41.76ID:oZLTh/kE
>>983 c
https://ideone.com/t2aQ5O
チェックはできているはず
989デフォルトの名無しさん
2021/06/14(月) 01:12:22.04ID:fkUpCs5d
>>983

haskell

import Data.Time
import Data.Time.Calendar
import Data.List

data Day = Sun | Mon | Tue | Wed | Thu | Fri | Sat deriving ( Eq ,Show )

nthWeekDayOf y m n w = let
Just wn = elemIndex w [ Sun, Mon, Tue, Wed, Thu, Fri, Sat ]
baseDay = ( fromGregorian 2021 6 13 )
firstDay = fromGregorian y m 1
diffDaysOfFst = fromInteger $ diffDays firstDay baseDay
d = 1 + mod ( wn - diffDaysOfFst ) 7 + 7 * ( n - 1 )
in fromGregorian y m d

main = do
print $ nthWeekDayOf 2021 7 3 Mon
990デフォルトの名無しさん
2021/06/14(月) 23:17:42.44ID:m5mozyJ+
>>983
Java
https://paiza.io/projects/wmud5TDZucvX-sng_gQnlQ
991デフォルトの名無しさん
2021/06/15(火) 17:23:21.13ID:mBLvqrdS
c#
OPEN FILE DIALOGで複数画像ファイル取得
配列に入れる
40秒後2枚目表示、また40秒後3枚目表示という感じで5枚表示したい。
表示はpicture BOXで。
992デフォルトの名無しさん
2021/06/15(火) 20:18:18.09ID:dr3N4crz
>>883
Java
https://paiza.io/projects/et2y3RIHniPZJzF0BvBveA?language=java
9939
2021/06/17(木) 00:48:24.30ID:cL+lrU1C
>>983 Perl5

use utf8;
$in = '2021-07,第3月曜日';
%h = map{$_ => ++$i} split '','月火水木金土日';
($y, $m, $wom, $dn) = $in =~ /(\d+)-(\d+),第(\d)(.)曜日/;
$dow = $h{$dn};
use DateTime;
$d = 7 * ($wom - 1) + $dow + DateTime->new(year => $y, month => $m)->day_of_week;
printf "$y-$m-%02d\n", $d;


実行結果
~ $ perl 19_983_day_of_month.pl
2021-07-19
994デフォルトの名無しさん
2021/06/17(木) 20:30:35.17ID:XyG5DJkY
# >>895のPython版、>>898のPython版は>>975コレのほうが簡単
import datetime, locale, math
now = datetime.datetime.now()
locale.setlocale( locale.LC_TIME, 'ja_JP.UTF-8' )
# 今日の日にちを取得、型は文字列
day = now.strftime( '%d' )
div7 = ( int( day ) / 7 )
# 日にちを7で割って割り切れたらそれが第何曜日の何に入る数字
# 割り切れなかったら1を足して小数点以下を切り下げ
# import math ; math.floor( 3.9 ) #実行結果は3
# カレンダーを表示させて日にちを7で割ると分かりやすい
if type( div7 ) == int: num = div7
else: num = math.floor( div7 + 1 )
print( now.strftime( '%Y/%m/%d/' + '第' + str(num) + '%A' + '/%H:%M/' ) )
995デフォルトの名無しさん
2021/06/17(木) 20:41:18.66ID:MdpjMllh
汚いコードだな
996デフォルトの名無しさん
2021/06/17(木) 20:45:10.42ID:LjywRDNy
>>994のコードをPython3の read-evaluate-print loop (REPL)ウィンドウにコピペして実行するときは
最終行手前のelse行の行末までをコピペした後にEnterキーを2回押して
repl画面に>>>を出してから最終行のprint文を実行する
997デフォルトの名無しさん
2021/06/17(木) 21:08:54.55ID:PUHXqTqH
次スレはよ
998デフォルトの名無しさん
2021/06/18(金) 23:51:24.96ID:xh4slIdn
>>983
Kotlin

https://paiza.io/projects/GiZtwd0SiEOY1gIyId565g

紆余曲折の結果、これに落ち着く。
999デフォルトの名無しさん
2021/06/19(土) 00:04:08.81ID:MQWrKSb7
次スレ

プログラミングのお題スレ Part20
http://2chb.net/r/tech/1624028577/
1000デフォルトの名無しさん
2021/06/19(土) 00:04:50.94ID:MQWrKSb7
println(1000)
10011001
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 201日 0時間 0分 46秒
10021002
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

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



lud20250307161025ca
このスレへの固定リンク: http://5chb.net/r/tech/1606662245/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「プログラミングのお題スレ Part19 ->画像>5枚 」を見た人も見ています:
プログラミングのお題スレ Part21
プログラミングのお題スレ Part11
プログラミングのお題スレ Part7
プログラミングのお題スレ Part17
プログラミングのお題スレ Part15
プログラミングの環境づくり教えて
競技プログラミング総合スレ 65
大学生のプログラミング雑談スレ
プログラミングの疑問に俺達が答えるよ 初心者専用
競技プログラミングにハマるプログラマのスレ 124
プログラミングの始め方を教えて&#12316;
プログラミングを趣味としている人達の雑談スレ
競技プログラミングにハマるプログラマのスレ 98
競技プログラミングにハマるプログラマのスレ 9
競技プログラミングにハマるプログラマのスレ 210
競技プログラミングにハマるプログラマのスレ 205
プログラミング義務教育の全容について考えるスレ
競技プログラミング総合スレッド@数学板
競技プログラミングにハマるプログラマのスレ 58
競技プログラミングにハマるプログラマのスレ 46
競技プログラミングにハマるプログラマのスレ 93
悪徳プログラミングスクール・悪徳教材屋観察スレ
競技プログラミングにハマるプログラマのスレ 184
競技プログラミングにハマるプログラマのスレ 126
プログラミングの初歩的な質問をどこですればいいかわからない
競技プログラミングにハマるプログラマのスレ 50
Androidプログラミング質問スレ revision55
何故ニートは絵の練習やプログラミングの勉強を始めるのか?
競技プログラミングにハマるプログラマのスレ 201
競技プログラミングにハマるプログラマのスレ 186
競技プログラミングにハマるプログラマのスレ 162
競技プログラミングにハマるプログラマのスレ 137
競技プログラミングにハマるプログラマのスレ 174
プログラミングの専門学校出れば正社員になれるのか?
競技プログラミングにハマるプログラマのスレ 86
競技プログラミングにハマるプログラマのスレ 64
競技プログラミングにハマるプログラマのスレ 90
競技プログラミングにハマるプログラマのスレ 25
競技プログラミングにハマるプログラマのスレ 51
競技プログラミングにハマるプログラマのスレ 200
競技プログラミングにハマるプログラマのスレ 128
競技プログラミングにハマるプログラマのスレ 208
競技プログラミングにハマるプログラマのスレ 107
競技プログラミングにハマるプログラマのスレ 123
競技プログラミングにハマるプログラマのスレ 138
競技プログラミングにハマるプログラマのスレ 204
競技プログラミングにハマるプログラマのスレ 163
競技プログラミングにハマるプログラマのスレ 202
競技プログラミングにハマるプログラマのスレ 94
ヒッキーの競技プログラミングするスレ 3完
競技プログラミングにハマるプログラマのスレ 169
競技プログラミングにハマるプログラマのスレ 212
プログラミングの仕事斡旋してください(т-т)
競技プログラミングにハマるプログラマのスレ 88
競技プログラミングにハマるプログラマのスレ 83
競技プログラミングにハマるプログラマのスレ 44
競技プログラミングにハマるプログラマのスレ 77
競技プログラミングにハマるプログラマのスレ 52
競技プログラミングにハマるプログラマのスレ 49
競技プログラミングにハマるプログラマのスレ 56
競技プログラミングにハマるプログラマのスレ 39
プログラミングできなくて何も進まない人が集うスレ
競技プログラミングにハマるプログラマのスレ 60
競技プログラミングにハマるプログラマのスレ 63
競技プログラミングにハマるプログラマのスレ 156
01:33:41 up 57 days, 2:32, 0 users, load average: 10.10, 10.13, 10.39

in 1.6529378890991 sec @1.6529378890991@0b7 on 061314