プログラミングのお題スレ Part13at TECH
プログラミングのお題スレ Part13 - 暇つぶし2ch200:デフォルトの名無しさん
19/02/14 12:50:46.70 QGThOkDI.net
>>192 2x3 の時は、1種類のパーツのみで埋めるとすると
111
111
の時は 111 x2個
1,1,1
1,1,1
の時は 1,1(2段) x3個
11,1
1,11
の時は 110,100(2段) 2個とするのか
11 が 2個と 1 が2個 は2種類のパーツだからダメ?

201:デフォルトの名無しさん
19/02/14 13:04:00.12 QGThOkDI.net
>>195 90度回転を認めると、11が、3個で良いね。
回転なしなら、111 2個と 1が6個
1
1
2段のパーツが3個
の3種類が解?

202:デフォルトの名無しさん
19/02/14 13:09:44.77 zlobX1y6.net
上でもう出てんだろ
回転なしなら辺の約数の組み合わせで全部だっつーの

203:デフォルトの名無しさん
19/02/14 13:44:03.89 icHgtaXf.net
ヤング図形考えて終わりじゃねえのコレ

204:デフォルトの名無しさん
19/02/14 13:56:13.92 iDdALKjs.net
abcd
badc
abab
cdcd
aaba
babb
abbb
aaab
同じパターンで埋めるのって色々できそうだけどこういうの全部いいの?

205:デフォルトの名無しさん
19/02/14 18:55:26.99 PxTMiczy.net
>>199 それ何種類も使ってるじゃん。
最低何れかの縦横が連続していないとダメだろ。 パズソーのピースじゃないの?
先ずは2x3で1種類のパーツのみで探せという問題の回答を決めてほしい。

206:デフォルトの名無しさん
19/02/14 19:04:40.56 iDdALKjs.net
いや全部一種類だよ
マスがくっついてないだけで
連続してるとは書かれてなかったし

207:デフォルトの名無しさん
19/02/14 19:56:54.06 IkVUbwNW.net
お題を正しく理解できてない模様 >>176をもう1度確認
1つ目の#は6個、2つ目の###は2個、
3つ目の#    4つ目の###
   #は3個、    ###は1個で2行3列が全て埋まります

208:デフォルトの名無しさん
19/02/14 20:35:35.28 0TijawxO.net
>>210
例えば、 最初の基本バーツは何? どうしてこれが1種類なのかな?
abcd
badc
-----|

209:デフォルトの名無しさん
19/02/14 20:45:00.72 0TijawxO.net
>>202 全く理解できない。
>>176 はどうして一つ目が6個なのかな? 1個しかないじゃん?
一つ目って何? 二つ目って何?
URLリンク(i.imgur.com)
自分が今見てるのは、iPhone BB2C

210:デフォルトの名無しさん
19/02/14 20:54:16.99 RyxU72PZ.net
回答の良し悪しだけじゃない、良問悪問ってあるよね…

211:デフォルトの名無しさん
19/02/14 21:20:53.44 IkVUbwNW.net
>>204
1つ目の #   は6個で2行3列が全て埋まります
###
###

2つ目の ### は2個で2行3列が全て埋まります
###
###

3つ目の #
     #   は3個で2行3列が全て埋まります
###
###

4つ目の ###
     ### は1個で2行3列が全て埋まります
###
###

212:デフォルトの名無しさん
19/02/15 01:14:00.78 Ap6BYDwO.net
>>203
回転を許す立場なら
@_
_@
って言うパーツ一種類だけからできてんじゃん
頭大丈夫か?

213:デフォルトの名無しさん
19/02/15 01:38:17.60 nnYj1Xkq.net
>>207 b と d が同じに見えるそっちこそ頭大丈夫か?
abcd
badc
これのどこが、
--@
@―
なんだよ。

214:デフォルトの名無しさん
19/02/15 02:40:42.39 YMyZWZCa.net
90度回転ありなら
#     #   #     #
 # と #  と  # と # 
で敷きつめられる(=全て埋まる)という意味だろうけど
>>179に抵触するので、これは無しでしょ

215:デフォルトの名無しさん
19/02/15 06:13:53.42 hXoOelh0.net
>>208
回転を許すっつってんだろ氏ねよ糞無能が
@_
_@
を90度回転させたら
_@
@_
だろうが
市ね糞野郎

216:デフォルトの名無しさん
19/02/15 08:54:29.71 nnYj1Xkq.net
>>209 ようやくわかった。
a_
_a
_b
b_
などと並んでるものは、全て同じパーツとみなすという意味か。
>>176 のお題をよく見ると、2 x 3 の正解の回答が書かれてる。 斜めは許していないからダメだろ。
また、回転も許していない。
回転を許すなら

■ ■
というパーツも入るがそれは除外されてるから、回転も無しだ。

217:デフォルトの名無しさん
19/02/15 10:38:13.03 NxGjA/1R.net
>>199のような飛び飛びのパターンまで含めると5x5くらいのサイズなら解けそうでも
10x10くらいの大きさになるとほぼ解けなくなるか?

218:デフォルトの名無しさん
2


219:019/02/15(金) 11:04:50.72 ID:bh7l703i.net



220:デフォルトの名無しさん
19/02/15 11:10:32.09 bh7l703i.net
自己解決しました
この問題には答えなくていいです

221:デフォルトの名無しさん
19/02/15 11:21:16.25 bh7l703i.net
新問題
...
g0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->e
e->f
f->g
f'<-g
e'<-f'
g->a1
g<-a1
a1->b1
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも教えろ
ここで英数字には好きな整数の値を対応させろ

222:デフォルトの名無しさん
19/02/15 11:22:43.57 bh7l703i.net
訂正
d<-e'
追加で

223:デフォルトの名無しさん
19/02/15 11:45:59.15 446NzcaO.net
日本語で書けや

224:デフォルトの名無しさん
19/02/15 11:55:27.68 bh7l703i.net
自己解決しました
この問題には答えなくていいです
>>217
これからは英語で書くので許して下さい

225:デフォルトの名無しさん
19/02/15 12:34:22.87 fQG3bb7R.net
自己解決ってどういうこと?
宿題貼ってるの?

226:デフォルトの名無しさん
19/02/15 12:41:19.85 bh7l703i.net
俺はキチガイだから相手にしないほうが良い

227:デフォルトの名無しさん
19/02/15 12:43:47.27 JRF4Gyvi.net
わけのわからん問題が続くなあ・・・

228:デフォルトの名無しさん
19/02/15 17:27:20.42 DyMjpctN.net
>>211
> 回転もおkかは好きに定めていい

229:デフォルトの名無しさん
19/02/16 02:08:44.97 3MiMTZ5E.net
しかしこの問題は回転を考えないと、曲がったパーツは不可能だね。
かなり単純化される。

230:デフォルトの名無しさん
19/02/16 02:11:07.89 vjYPWj7f.net
なんかスレが新しくなってから湧いてきたPythonのクソみたいなコード連投してる日本語がめちゃくちゃのやつうざい

231:デフォルトの名無しさん
19/02/16 02:16:11.76 bRo2S9Sl.net
前スレから居るんですよそいつね

232:デフォルトの名無しさん
19/02/16 02:35:08.75 zutWNq0P.net
2行3列で回転無しなら以下の4つが答え
#
###
#
#
###
###
回転ありなら更に以下の2つも
##
#
#
##

233:デフォルトの名無しさん
19/02/16 07:00:03.49 wpb3vJTT.net
>>226
> ##
> #
>
> #
> ##
この二つは90度回転した同じものやが

234:デフォルトの名無しさん
19/02/16 09:56:41.50 3oducOde.net
煽りではなく本当に発達障害またはそれに準ずる知的ボーダーを疑うレベルで頭悪いな

235:デフォルトの名無しさん
19/02/16 10:48:56.77 3MiMTZ5E.net
>>228 煽りじゃん。 プログラムを出してくれた方が良い。

236:デフォルトの名無しさん
19/02/16 12:54:53.60 8ZVYBrON.net
お題:バブルソートを実装せよ

237:デフォルトの名無しさん
19/02/16 15:04:36.49 PD6v+6Vh.net
>>230 Perl5
use feature qw{current_sub say};
sub bblsort {
for (0..@_) {
sub {
if (@_ >= 2) {
__SUB__->(@_[1..$#_]);
($_[1], $_[0]) = ($_[0], $_[1])
if $_[0] > $_[1]
}
}->(@_[$_..$#_]);
}
}
use List::Util shuffle;
@a = shuffle 1..20;
say "1) @a";
bblsort @a;
say "2) @a";
実行結果
~ $ perl 13_230_bblsort.pl
1) 13 6 18 7 15 1 11 8 20 16 14 4 9 10 12 17 2 19 5 3
2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

238:デフォルトの名無しさん
19/02/16 16:42:44.41 hxDCwUVz.net
お題:数値Xを4つの方法で整数に丸めよ
(1) 0に向かう
(2) 0から遠ざかる
(3) 正の無限大に向かう
(4) 負の無限大に向かう

X = 0.5
=> 0 1 1 0
X = -1.1
=> -1 -2 -1 -2
X = 3
=> 3 3 3 3

239:デフォルトの名無しさん
19/02/16 16:47:26.55 akVlWGeE.net
ふたたび、円の内部の整数点を求めるやつ。個数ごとその最小半径を求める。
41個、47個とかが難し目だった気が。

240:デフォルトの名無しさん
19/02/16 17:07:10.46 wpb3vJTT.net
内部じゃなくて円周上のやろ

241:デフォルトの名無しさん
19/02/16 17:07:42.16 cltO7Ts6.net
>>230

242:デフォルトの名無しさん
19/02/16 17:27:32.65 PD6v+6Vh.net
>>232 組み込み使っていいんだよね? (面倒になるけど、使わなくても書けるけどサ…)
Perl5
use POSIX qw(floor ceil);
for (0.5, -1.1, 3) {
@a = ("$_ => ",
sprintf('%d', $_), #int($_),
($_ > 0 ? ceil($_) : ceil($_-1)),
ceil($_),
floor($_)
);
print "@a\n";
}

実行結果
~ $ perl 13_232_round.pl
0.5 => 0 1 1 0
-1.1 => -1 -2 -1 -2
3 => 3 3 3 3

243:デフォルトの名無しさん
19/02/16 17:33:21.11 PfkkbXxw.net
>>230 Ruby
def bs(ary)
  ary.tap do |a|
    (a.size**2).times do
      (a.size - 1).times do |i|
        a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
      end
    end
  end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]
>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}
[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3

244:デフォルトの名無しさん
19/02/16 17:34:37.44 PD6v+6Vh.net
>>236 これだと
入力が0のとき
>(2) 0から遠ざかる
が-1になっちゃう。
($_ > 0 ? ceil($_) : ceil($_-1)),
↓を
($_ >= 0 ? ceil($_) : ceil($_-1)),
とすべきでしょうね。スマソ

245:デフォルトの名無しさん
19/02/16 18:34:59.76 akVlWGeE.net
>>234
円周上が正解

246:デフォルトの名無しさん
19/02/16 22:05:48.79 lcFO2eao.net
>>262 J
f =: (**<.@|),(**>.@|),<.,>.
f 0.5
0 1 1 0
f _1.1
_1 _2 _1 _2
f 3
3 3 3 3

247:デフォルトの名無しさん
19/02/16 22:20:47.39 yZTjSyit.net
>>262に期待。

248:デフォルトの名無しさん
19/02/16 22:38:05.19 lcFO2eao.net
>>240
間違えました
262ではなく>>232でした

249:デフォルトの名無しさん
19/02/16 23:30:26.24 ReDOqu2L.net
>>232 octave
URLリンク(ideone.com)

250:
19/02/17 00:20:40.59 TOi2tzGo.net
>>232 をやろうとおもって、IEEE754 の float/double を直接触る方法を探しているのですが、なにかいい方法はないでしょうか…

251:デフォルトの名無しさん
19/02/17 00:24:40.58 xZHcxwZO.net
言語も言わずに(ry
URLリンク(qiita.com)

252:
19/02/17 00:30:56.20 TOi2tzGo.net
>>245
thx a lot !!

253:デフォルトの名無しさん
19/02/17 01:04:30.52 iMRi3xg5.net
>>244
あった

254:デフォルトの名無しさん
19/02/17 08:30:18.08 SfPzlMrR.net
>>233
これ

「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」
例)
x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。
(x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。

255:デフォルトの名無しさん
19/02/17 09:09:13.01 SfPzlMrR.net
>>248
網羅的は、きりがなく一つの予想をたてた。
一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。
半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。
たとえば上の例だと、r=1で、r → 2/4 r で、
(2x -1)^2 + (2y -1)^2 = 2r
両辺4倍して中心ずらした式

256:デフォルトの名無しさん
19/02/17 14:03:58.61 SfPzlMrR.net
整数比かけるので有理数半径ならすべて作り出せるから当たり前か
無駄なく高速に半径縮められる手法が大事か

257:デフォルトの名無しさん
19/02/17 14:06:36.33 SfPzlMrR.net
あと半径は間違いで、半径でなく右辺、半径^2 だった

258:デフォルトの名無しさん
19/02/17 19:56:30.00 qArvPplr.net
お題
パンケーキソートを実装する

259:デフォルトの名無しさん
19/02/18 22:45:5


260:7.31 ID:Gp2d+oGP.net



261:デフォルトの名無しさん
19/02/19 22:19:54.18 sIqHxZ1N.net
; Common Lisp
(defun flip (seq n)
 (concatenate (type-of seq) (nreverse (subseq seq 0 (1+ n))) (subseq seq (1+ n))))
(defun pancake-sort (seq predicate)
 (loop for s = seq
   then (if j (flip (flip (flip (flip s (1- j)) (1- i)) i) j) s)
   for i from 1 to (1- (length seq))
   for j = (position (elt s i) s :end i :test predicate)
   finally (return s)))

262:デフォルトの名無しさん
19/02/19 22:25:14.24 flzwRht/.net
お題:1から8までのカードを混ぜ、2枚そこから引いた時1枚目*10+2枚目が素数になる確率を求める。
ただし、
1. 小数第3位で四捨五入した後に回答すること。
2. 数学的な証明は禁止。
3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する)
4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。

263:デフォルトの名無しさん
19/02/20 00:45:46.98 VV/V1Ls8.net
python
print(0.31)

264:デフォルトの名無しさん
19/02/20 00:55:56.83 SyQ4jkRO.net
>>255 Perl5
$R = 0.0;
@s = map{($_) x (9-$_)} 1..8; #say "@s";
$t = @s; #say $t;
for (qw{11 13 17 23 31 37 41 43 47 53 61 67 71 73 83}) {
 @o = split'';
 my %h;
 $h{$_}++ for @s;
 my $r = $h{$o[0]}-- / $t;
 $r *= $h{$o[1]}-- / ($t - 1);
 $R += $r;
}
printf "%3.2f\n", $R;
実行結果
~ $ perl 13_255.pl
0.31

265:さまよえる蟻人間
19/02/20 00:58:27.33 5PEVWiZL.net
お題: URLで場所を指定された、インターネット上のテキストファイルをダウンロードするプログラム。

266:デフォルトの名無しさん
19/02/20 01:16:40.92 SyQ4jkRO.net
>>258 Perl5
require LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)');
use HTTP::Cookies;
$ua->cookie_jar(HTTP::Cookies->new(file => 'lwp-cookies.txt', autosave => 1));
$url = 'URLリンク(ftp.iij.ad.jp)';
$file = './0_README.txt';
$res = $ua->mirror($url, $file);
print $res->status_line, "\n";
実行例
~ $ perl 13_258.pl
200 OK

(※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました)

267:さまよえる蟻人間
19/02/20 01:37:18.13 jAMIqMc6.net
WSHでダウンロードできるヤツ、おる?

268:デフォルトの名無しさん
19/02/20 01:40:03.52 SyQ4jkRO.net
>>260
wget.exe か curl 使えば?

269:デフォルトの名無しさん
19/02/20 02:05:29.76 Te3YpcYw.net
>>260 download.js
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.Open("GET", "URLリンク(ftp.iij.ad.jp) false);
xmlhttp.Send();
var stream = new ActiveXObject("Adodb.Stream");
stream.Type = 1;
stream.Open();
stream.Write(xmlhttp.responseBody);
stream.SaveToFile("0_README.txt", 2);

270:デフォルトの名無しさん
19/02/20 02:28:54.15 PF1BNO4k.net
pythonista stash 反則?
$ wget URLリンク(ftp.iij.ad.jp)
$ ls -la *.txt
0_README.txt (2.4K) 2019-02-20 02:21:45

271:デフォルトの名無しさん
19/02/20 02:51:47.69 qYIek1dL.net
>>255
;; Common Lisp
(let ((prime (list 2)))
 (defun primep (n)
  (loop for i from (1+ (car prime)) upto n
      unless (find-if (lambda (j) (zerop (mod i j))) prime :from-end t)
      do (push i prime))
  (find n prime)))
(defun nearest (i j)
 (/ (floor (+ (* i (expt 10 j)) 0.5)) (expt 10 j)))
(loop with cards = (loop for i from 1 to 8 nconc (make-list (- 9 i) :initial-element i))
    and n = 0 and p = 0
    for one in cards
    do (loop for two in (remove one cards :count 1)
         do (incf n)
         if (primep (+ (* 10 one) two)) do (incf p))
    finally (format t "~,3F~%" (nearest (* (/ p n)) 3)))

272:さまよえる蟻人間
19/02/20 03:32:48.09 jAMIqMc6.net
わーい、これでダウンロード制限された端末でDLできるぞ。やったー!

273:デフォルトの名無しさん
19/02/20 03:35:30.81 VV/V1Ls8.net
お題スレってそういう趣旨の場所だっけか?

274:デフォルトの名無しさん
19/02/20 03:43:59.14 J4bEIWoi.net
>>265
できるかなあ?どういう制限しているかにもよるぞ。

275:デフォルトの名無しさん
19/02/20 05:32:07.81 B2QSVSiS.net
PowerShell にも、curl, wget ある
get-alias (gal)
curl -> Invoke-WebRequest
wget -> Invoke-WebRequest
と言うことは、Ruby からも、そのコマンドを呼べる

276:268
19/02/20 09:30:07.43 B2QSVSiS.net
なんと、コマンドプロンプトで、
where curl と入力すると、
C:\Windows\System32\curl.exe
PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !

277:デフォルトの名無しさん
19/02/20 09:49:14.61 hK+DOQws.net
>>268>>269
死ね

278:デフォルトの名無しさん
19/02/20 09:52:59.12 PF1BNO4k.net
>>258 >>265 なんだ下心があったのか。
pythonista stash は以下のコマンドが使える。
help(StaSh) v0.7.1
alias, cat, cd, clear, cowsay, cp, crypt, curl, cut, dropbox_setup, du, easy_config, echo, edit, exit, fg, find, ftpserver, gci, gh, git, grep, head, httpserver,
jobs, kill, latte, ls, mail, man, mc, md5sum, mkdir, monkeylord, more, mount, mv, openin, pbcopy,
pbpaste, ping, Usage, pip, printenv, printhex, ptinstaller, pwd, py-tree, python, python3, quicklook, rm, rmdir, scp, selfupdate, sha1sum, sha256sum,
sort, source, sqlite, ssh, ssh-keygen, stashconf, tail, tar, telnet, totd, touch, umount, uniq, unzip, version,
wc, webviewer, wget, whatis, which, wol, xargs, zip
ftpserver や、httpserverは簡易的なサーバーになる。
ssh やscp 、tar zip などは使い道多そう。
webviewer てpython の下でブラウザが立ち上がってるみたいなんだがどんな使い道があるんだろう?
なお、標準python用のシェルは、xonsh と言うのがあるらしい。 xonsh では、標準的なshellコマンドと並行してpython スクリプトも実行できるから強力。
stash ではそれはできない。

279:268
19/02/20 10:31:11.68 B2QSVSiS.net
WSH はわからないけど、Ruby では、
require 'nokogiri'
html = `curl URLリンク(www.example.com)
# curl は書き込めないので、全角に変換した
doc = Nokogiri::HTML( html )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

280:デフォルトの名無しさん
19/02/20 11:50:14.05 hK+DOQws.net
>>272
死ね

281:デフォルトの名無しさん
19/02/20 13:03:16.05 agArr1lp.net
>>269
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。

282:デフォルトの名無しさん
19/02/20 17:40:48.68 3A0CDvTh.net
>>263 今度は反則なしで。python
import requests as r
url = 'URLリンク(ftp.iij.ad.jp)'
g= r.get( url )
print('読んだサイズは',len(g.text) )
# 読んだサイズは 2495

283:デフォルトの名無しさん
19/02/20 17:58:34.75 t1mcuuOB.net
>>258
Pharo 7
'URLリンク(ftp.iij.ad.jp)' asUrl retrieveContents

284:デフォルトの名無しさん
19/02/20 18:10:48.97 3A0CDvTh.net
>>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。

285:デフォルトの名無しさん
19/02/20 23:51:29.53 MUUM+ThN.net
>>230 pike
URLリンク(ideone.com)

286:デフォルトの名無しさん
19/02/21 18:54:22.61 1axkeZoV.net
お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。
URLリンク(ideone.com)

287:デフォルトの名無しさん
19/02/21 19:06:17.90 TUYpSwcQ.net
>>279 JavaScript
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango

288:デフォルトの名無しさん
19/02/21 19:17:09.75 eUc7EqKm.net
>>279 python
l = [ 1,2,3,4,5]
print( *l[0:-1] ,'and' , l[-1])
# 1 2 3 4 and 5

289:デフォルトの名無しさん
19/02/21 19:27:21.23 2zdYL4u2.net
>>279
Haskell
main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]]
addCanma s = s ++ ","
lst = ["apple","banana","orange","mango"]

output:
apple,banana,orange,and,mango

290:デフォルトの名無しさん
19/02/21 19:31:58.30 lqQG1Hmj.net
題意は
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ

291:デフォルトの名無しさん
19/02/21 19:43:56.00 YnrfI9YG.net
そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな

292:デフォルトの名無しさん
19/02/21 19:51:21.05 2zdYL4u2.net
>>283
あ、そうか。
不恰好だけどこれで一応対応。
(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]
スマートな解答も考えてみるよ。

293:デフォルトの名無しさん
19/02/21 20:16:12.26 eUc7EqKm.net
>>283 ごめん、俺もカンマが抜けてた。
数字の場合の模範解答をよろしく。

294:デフォルトの名無しさん
19/02/21 20:20:50.88 2zdYL4u2.net
スマートかは兎も角、一応マシな形に。
空リストや要素数1にも対応。
Haskell
main = putStrLn $ last2 lst
last2::[String] -> String
last2 [] = []
last2 [x] = x
last2 [x,y] = concat [x," and ", y]
last2 (x:xs) = x ++ "," ++ last2 xs
lst = map show [0..5]

output:
0,1,2,3,4 and 5

295:デフォルトの名無しさん
19/02/21 20:59:38.40 lqQG1Hmj.net
>>286
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk
要素数が1個以下の場合はifで分離するだけなので略

296:デフォルトの名無しさん
19/02/21 21:09:47.73 y3+CYNZ6.net
>>279 Common Lisp
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
URLリンク(ideone.com)

297:デフォルトの名無しさん
19/02/21 21:21:18.07 lqQG1Hmj.net
intとstrが混在してる場合でも大丈夫で入力数が1以下ならそのまま返すワンライナー
python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))
JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))
冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは

298:さまよえる蟻人間
19/02/21 21:21:18.26 PQQkN+7n.net
ラティス、再び。
お題: >>99 の場合分けのラティス構造を使って、複数の入力文字列について、共通部分をまとめ、1つの文字列に凝縮せよ。
(例)
ああい
ああ
あう
→あ{{あ{い/}}/う}

299:デフォルトの名無しさん
19/02/21 21:30:40.21 lqQG1Hmj.net
よく考えたらreversedなんか使わんでも
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし

300:さまよえる蟻人間
19/02/21 21:32:52.15 3Jj6vI7v.net
出力文字列の長さは最短でなければならない。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。

301:さまよえる蟻人間
19/02/21 21:37:53.05 3Jj6vI7v.net
一番外側の { } は省略可能。
共通部分がないときは、/で区切って出力せよ。

302:279
19/02/21 21:39:50.99 1axkeZoV.net
>>279 pike
URLリンク(ideone.com)

303:さまよえる蟻人間
19/02/21 21:55:49.44 PQQkN+7n.net
このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。

304:デフォルトの名無しさん
19/02/21 22:55:49.76 2zdYL4u2.net
>>279
>>292
Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし)
発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。
main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst]
lst = map show [0..5]
個人的に >>287 の方が発想も読みやすさも好みの書き方。
(読み難くなるなら関数分ける派)
pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。

305:デフォルトの名無しさん
19/02/21 22:59:16.06 2zdYL4u2.net
>>297
弄ってる�


306:、ちに要素一以下だとバグ出てた。 正しいコードはこっち。 putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]



307:デフォルトの名無しさん
19/02/21 23:36:37.11 un6uIa3F.net
>>282 Perl5
sub f {
 my $a = shift;
 @_ ? (@_ > 1 ? "$a, " : "$a and ").f(@_) : $a
}
use feature say;
say f(qw[red green black white]);
say f(qw[apple banana]);
say f(qw[one]);

実行結果
~ $ perl 13_279_and.pl
red, green, black and white
apple and banana
one

308:デフォルトの名無しさん
19/02/22 00:04:51.72 EatRhjER.net
>>279 Squeak/Pharo Smalltalk
(0 to: 3) asCommaStringAnd "=> '0, 1, 2 and 3' "

309:デフォルトの名無しさん
19/02/22 00:07:27.55 wSgiM5bY.net
>>299
アンカー間違えた >>279 宛だった…orz

>>279 もう一丁 Perl5
sub g {
 my $z = ' and '.pop @_ if @_ > 1;
 join(', ', @_).$z;
}
use feature say;
say g(qw[red green black white]);
say g(qw[apple banana]);
say g(qw[one]);
実行結果
~ $ perl 13_279_and_2.pl
red, green, black and white
apple and banana
one

310:デフォルトの名無しさん
19/02/22 00:28:04.99 9PVAJM4v.net
>>300
そういう関数が既にあるの?

311:デフォルトの名無しさん
19/02/22 00:31:28.15 wSgiM5bY.net
>>302
ググルとあるみたいよ。
組み込みMethodを山のように持っていそう

312:デフォルトの名無しさん
19/02/22 00:49:22.57 9PVAJM4v.net
ほえー

313:デフォルトの名無しさん
19/02/22 06:09:02.19 HhIJRo4K.net
>>279
Smalltalk (Pharo 7)
#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'
#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'
#('apple') asCommaStringAnd
==> 'apple'

314:デフォルトの名無しさん
19/02/22 06:36:03.41 S1fPIClY.net
>>279 python
def f(lst): return ('空だ' if not lst else
','.join([str(x) for x in lst[:-1]])
+ (' and ' if len(lst)>1 else'')
+ str(lst[-1])
)

print(f( [ 1,'二',3,4,'五'] )) # 1,二,3,4 and 五
print(f( [1,'二'] )) # 1 and 二
print(f( [1] )) # 1
print(f([])) # 空だ

315:305
19/02/22 07:07:04.28 HhIJRo4K.net
しまった既出だったorz

316:デフォルトの名無しさん
19/02/22 07:58:55.12 6TNKk8ap.net
>>279 Ruby
f = -> a {a[0..-2].join(', ').sub(/.\K\z/, ' and ') << a[-1].to_s}
(-1..3).each{|r| puts f[[*0..r]]} # =>
0
0 and 1
0, 1 and 2
0, 1, 2 and 3

317:デフォルトの名無しさん
19/02/22 08:05:10.35 6TNKk8ap.net
>>291
あ{{あ{い/}}/う} // 12文字
ああい/ああ/あう // 9文字
あ{あい/あ/う} // 9文字

318:デフォルトの名無しさん
19/02/22 08:11:07.14 EatRhjER.net
>>302
Smalltalkは1970年代頃にはすでにこんな感じで
URLリンク(upload.wikimedia.org)
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!

319:デフォルトの名無しさん
19/02/22 09:34:06.68 Ao+GBu+d.net
ラティス構造って要するに正規表現を生成すりゃーいいのか?

320:デフォルトの名無しさん
19/02/22 19:34:29.73 CY9He0wk.net
>>233
海外の人の
URLリンク(enigmaticcode.wordpress.com)
URLリンク(github.com)

321:デフォルトの名無しさん
19/02/22 19:43:43.74 FMSx1nas.net
お題:21の階乗を計算して表示せよ。
URLリンク(ideone.com)

322:デフォルトの名無しさん
19/02/22 20:16:33.34 9PVAJM4v.net
>>310
ほえー

323:デフォルトの名無しさん
19/02/22 21:26:47.09 py41/SAb.net
>>313 JavaScript
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));

324:デフォルトの名無しさん
19/02/22 21:42:16.23 THqrb0iU.net
お題:
長方形のフィールドが与えられる。フィールド


325:上では上下左右に移動することができる。 各マスの数字はそのマスに入るためのコストを表す。 SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする) S5111 1115G => 6 S1111 98642 G1111 => 9 13457689768914512071934123457 G4578901258901212890361125312 37890423076834712378998725463 16890102569615902061456259893 34582934765923812893461515232 57896123896741378915691551697 89013897456123457162501835479 21389046013845610034623405686 8902346203948612341356362342S => ?



326:デフォルトの名無しさん
19/02/22 21:49:55.63 2ARSyvEs.net
>>279
>>289
Common Lispで~#[...~]を使ってみた
(format t "~{~S~#[~; and ~:;, ~]~}" '(apple banana orage mango))

327:デフォルトの名無しさん
19/02/22 22:00:24.05 py41/SAb.net
こういう文章題好き。
でも実力不足で解けない…
a*かな?

328:デフォルトの名無しさん
19/02/22 22:05:57.76 AX8XyL13.net
>>313 Perl5
use bignum (l=>GMP);
$n = 1;
$n *= $_ for 2..21;
print "$n\n";

実行例
~ $ perl 13_313.pl
51090942171709440000

329:デフォルトの名無しさん
19/02/22 22:26:00.12 eQxt3fSm.net
>>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))

330:デフォルトの名無しさん
19/02/23 00:16:14.24 KCAwaSn8.net
>>313 Smalltalk-76
URLリンク(imgur.com)

331:デフォルトの名無しさん
19/02/23 00:27:48.65 khwKgkQE.net
>>313 python
#階乗1
import math
print('階乗1',math.factorial(21))
#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))
#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))

332:デフォルトの名無しさん
19/02/23 01:14:20.46 9pS68leH.net
>>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。
println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))
出力
abc, def and xyz

333:デフォルトの名無しさん
19/02/23 01:19:01.99 CTQXI+x5.net
lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!

334:デフォルトの名無しさん
19/02/23 02:10:15.51 9pS68leH.net
>>313
bc
n = 2; for (i = 3; i <= 21; i++) n*=i; n
出力
51090942171709440000

335:デフォルトの名無しさん
19/02/23 03:31:27.03 nkO3lkCA.net
>>313 dc
~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc
51090942171709440000

336:デフォルトの名無しさん
19/02/23 03:32:49.90 R2s6jSV3.net
bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s

337:デフォルトの名無しさん
19/02/23 04:30:09.37 R2s6jSV3.net
>>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000

338:デフォルトの名無しさん
19/02/23 08:05:10.28 xK8/Ze+A.net
>>313 Maxima
print(21!);

339:デフォルトの名無しさん
19/02/23 08:20:33.48 znXlogg7.net
>>313
;; Common Lisp
(loop for i from 1 to 21 for r = i then (* r i) finally (print r))

340:デフォルトの名無しさん
19/02/23 08:45:55.53 DQY5g4De.net
>>316
これは、本格的だな
ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも

341:デフォルトの名無しさん
19/02/23 09:18:55.19 IBS/n4EE.net
>>313
Smalltalk (Pharo 7)
21 factorial
==> 51090942171709440000

342:デフォルトの名無しさん
19/02/23 12:01:13.29 +GfRG2y6.net
>>316 Java
URLリンク(ideone.com)

343:デフォルトの名無しさん
19/02/23 12:26:35.61 DQY5g4De.net
>>313
Ruby
( 1..21 ).inject( 1, :* )

344:デフォルトの名無しさん
19/02/23 12:44:52.28 W0y17tlk.net
python3
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))
ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である

1#=1
3#=4#=6
5#=30

345:デフォルトの名無しさん
19/02/23 13:22:30.58 R2s6jSV3.net
例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる

346:デフォルトの名無しさん
19/02/23 13:25:18.18 R2s6jSV3.net
あ、二番目分かりました。
一行目だけ分からない

347:デフォルトの名無しさん
19/02/23 13:28:26.15 +GfRG2y6.net
>>335 Java
URLリンク(ideone.com)

348:デフォルトの名無しさん
19/02/23 13:34:54.53 vMXU7Bcc.net
>>337
掛けるもののがないときは1として扱うのが普通だよ
0!とかΠの項数が0の時とか
ただこの出題者はそのへん理解してないだろうから解く気がしない

349:デフォルトの名無しさん
19/02/23 13:40:09.27 R2s6jSV3.net
>>339
ありがとう。
数学と同じとは限らないんだね。
1も素数としてやってみます。

350:デフォルトの名無しさん
19/02/23 13:47:45.99 +eBVT+rm.net
>>340
1を素数と見做すんじゃなく空積の1

351:デフォルトの名無しさん
19/02/23 13:53:12.99 W0y17tlk.net
というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが

352:デフォルトの名無しさん
19/02/23 13:53:38.08 vMXU7Bcc.net
>>340
いや、むしろ数学の世界での慣習なんですけど…

353:デフォルトの名無しさん
19/02/23 14:28:11.89 DQY5g4De.net
単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元
Ruby で、
( 1..21 ).inject( 1, :* )
1 が初期値で、:* で掛け算メソッドを渡している

354:デフォルトの名無しさん
19/02/23 15:02:20.95 R2s6jSV3.net
>>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である
と書いてあるので、
「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。

355:デフォルトの名無しさん
19/02/23 15:15:16.07 R2s6jSV3.net
できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30
今夜はPythonで>>316に挑戦したい

356:デフォルトの名無しさん
19/02/23 15:45:56.58 xK8/Ze+A.net
>>335 J
f =: 3 : 0
*/ 1 , I. 1 p: i. >:y
)
f@> 1 3 4 5 21
1 6 6 30 9699690

357:デフォルトの名無しさん
19/02/23 15:50:44.94 5fn4St+r.net
Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?

358:デフォルトの名無しさん
19/02/23 16:01:13.49 BD+5EZ0V.net
>>313 Common Lisp
(defun ! (n)
  (apply #'* (loop for i from 1 upto n collect i)))
CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>

359:デフォルトの名無しさん
19/02/23 16:18:41.85 Z/STDkD0.net
>>335 ruby
URLリンク(ideone.com)

360:デフォルトの名無しさん
19/02/23 17:50:18.29 oGmxRysL.net
>>321
これただのお絵描きやん
規制しろ!

361:デフォルトの名無しさん
19/02/23 18:00:12.84 5fn4St+r.net
でかいキノコやらしい…

362:デフォルトの名無しさん
19/02/23 18:14:04.27 2kPF298z.net
>>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装)
URLリンク(ideone.com)

363:デフォルトの名無しさん
19/02/23 20:22:19.99 ejRNWGjN.net
>>316
python(pypy) URLリンク(ideone.com)
本線: キュー使用したダイクストラ (+ 経路復元)。
サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。

364:デフォルトの名無しさん
19/02/24 00:49:59.19 ROsmA06r.net
>>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?

365:デフォルトの名無しさん
19/02/24 01:37:12.40 jRfp9b62.net
>>313
Kotlin script
println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))

366:デフォルトの名無しさん
19/02/24 01:45:28.46 W3fm5ADB.net
>>355
何も変えずpython3で実行 URLリンク(ideone.com)
約6秒 vs 約0.2秒
まぁ、本当はpython3向けにもう少し治せそうだが

367:さまよえる蟻人間
19/02/24 05:55:10.72 xnYazQgz.net
お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。

368:さまよえる蟻人間
19/02/24 06:09:09.10 xnYazQgz.net
お題: スリープソートを実装せよ。

369:さまよえる蟻人間
19/02/24 06:27:08.15 xnYazQgz.net
お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。

370:デフォルトの名無しさん
19/02/24 07:40:28.45 lq3Vey6S.net
>>313
@Mathematica
ライブラリ版
Factorial[21]
非ライブラリ版
Range[21] // Apply[Times, #] &

371:デフォルトの名無しさん
19/02/24 08:11:35.91 UKaroUbg.net
>>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30

372:デフォルトの名無しさん
19/02/24 08:39:28.32 lq3Vey6S.net
>>335
@Mathematica
Range[5] // Select[#, PrimeQ] & // Apply[Times, #] &

373:デフォルトの名無しさん
19/02/24 08:59:23.56 k3GW1oFG.net
お題
与えられた文字列を縦に表示する
入力
hello
出力
h
e
l
l
o

374:デフォルトの名無しさん
19/02/24 09:18:40.92 FkqnBGPg.net
>>364
ruby -e "'hello'.split('').each do |c| puts c end"

375:デフォルトの名無しさん
19/02/24 09:39:23.28 UNsYm68I.net
>>364 octave
URLリンク(ideone.com)

376:デフォルトの名無しさん
19/02/24 10:41:19.01 gbE7FXAb.net
>>364 Perl5
~ $ echo -n hello | perl -naF -E 'say for @F'
h
e
l
l
o

377:デフォルトの名無しさん
19/02/24 10:45:19.09 gbE7FXAb.net
>>358 Perl5
sleep 3*60;
print "BEEP!\n";

378:デフォルトの名無しさん
19/02/24 10:51:12.60 5XYYe3Vz.net
>>346
Pythonじゃ緩すぎだろw
Brainfu*kとかJで挑戦したいと言わないと
世のマゾヒスト達からマサカリ投げられるぞw

379:デフォルトの名無しさん
19/02/24 11:01:40.94 gbE7FXAb.net
>>359 Perl5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
&nbsp;&nbsp;my $n = shift;
&nbsp;&nbsp;sleep $n;
&nbsp;&nbsp;push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5

380:デフォルトの名無しさん
19/02/24 11:04:08.38 gbE7FXAb.net
>>370 しまった、&nbsp;がそのまま表示されている…orz 全角スペースに置換して修正
>>359 Perl5
use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";
use threads;
use threads::shared;
my @b: shared;
sub f {
 my $n = shift;
 sleep $n;
 push @b, $n;
}
push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;
print "sorted ) @b\n";
実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5

381:デフォルトの名無しさん
19/02/24 14:09:41.21 UKaroUbg.net
Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'

382:デフォルトの名無しさん
19/02/24 14:14:37.55 lq3Vey6S.net
>>364
@Mathematica
"hello" // Characters // Riffle[#, "¥n"] & // StringJoin

383:デフォルトの名無しさん
19/02/24 14:37:33.43 ke/CY5a3.net
>>351
いや、21 factorialをSmalltalk-76で実際に計算したものですよ!
動画にしたほうがよかったですか?^^;

384:デフォルトの名無しさん
19/02/24 15:44:30.88 R6DRM9b9.net
>>335 Squeak Smalltalk (このコードは Pharo では動かない)
| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "

385:デフォルトの名無しさん
19/02/24 15:56:11.32 R6DRM9b9.net
>>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで)
'hello' joinSeparatedBy: Character cr.
"= 'h
e
l
l
o' "

386:デフォルトの名無しさん
19/02/24 16:12:06.37 ke/CY5a3.net
>>359 Pharo/Squeak Smalltalk
| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].
sleepsort value: #(2 1 5 10 7 8 3 6 4 9)
"=> #(1 2 3 4 5 6 7 8 9 10) "

387:デフォルトの名無しさん
19/02/24 17:18:42.39 +6ZRRI/z.net
>>358 puthonista ( iPhone )
# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time
alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)

388:デフォルトの名無しさん
19/02/24 17:40:55.70 +6ZRRI/z.net
>>378 pythonista の間違い。

389:デフォルトの名無しさん
19/02/24 19:37:23.57 Wf3q+Rvy.net
>>359 Bash
#!/usr/bin/bash
N=5
IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "
[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
 echo "$s"
 sh -c "${s}" &
done
wait
cat ./result

~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5

390:デフォルトの名無しさん
19/02/25 02:16:17.34 VuzBCyor.net
>>364
Kotlin script
while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);

391:デフォルトの名無しさん
19/02/25 02:42:58.27 VuzBCyor.net
>>358
sh
sleep 180 ; echo 'BEEP!'

392:デフォルトの名無しさん
19/02/25 02:47:11.29 yxDnlxm5.net
>>364
ruby -e "'hello'.each_char do |c| puts(c) end"

393:さまよえる蟻人間
19/02/25 02:47:19.11 qxzw13Bf.net
お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。

394:さまよえる蟻人間
19/02/25 03:51:24.00 qxzw13Bf.net
>>384
ヒント: 一秒ごとにリセットするカウンターを使う。

395:デフォルトの名無しさん
19/02/25 09:19:02.25 KMrhrKmq.net
意味がわからん

396:デフォルトの名無しさん
19/02/25 10:35:33.17 OZaxYFd4.net
模範解答があるんでしょ
だからヒントを作れる
なら最初から正解を出せと

397:デフォルトの名無しさん
19/02/25 10:52:58.23 mBiroDnU.net
このコテうぜえから書き込み禁止にしろ

398:デフォルトの名無しさん
19/02/25 11:25:48.34 4jlXoier.net
スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。

399:デフォルトの名無しさん
19/02/25 17:25:13.53 KMrhrKmq.net
わかんないからちょっとやってみて

400:デフォルトの名無しさん
19/02/25 18:50:50.58 IURODyYm.net
>>364 J
smoutput@>'hello'

401:デフォルトの名無しさん
19/02/25 19:00:24.37 mboQc3Dn.net
>>364 JavaScript
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)

402:デフォルトの名無しさん
19/02/26 01:01:25.98 ZoqutRDZ.net
>>364 Ruby
puts "Hello".split("")

403:デフォルトの名無しさん
19/02/26 02:14:00.16 Jyzj3K2Z.net
お題:OS名を出力する

404:デフォルトの名無しさん
19/02/26 02:51:12.85 lsok3PaS.net
>>394
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。
uname -o

405:デフォルトの名無しさん
19/02/26 02:53:03.78 lsok3PaS.net
>>394
Windows のコマンドプロンプトの場合はこれ。ただしバージョンも一緒に出てくる。
ver
これもどうしてもプログラムにしたいならバッチファイルでこれだけ実行するようにしておけばよい。

406:デフォルトの名無しさん
19/02/26 07:52:39.56 xb9W0X9p.net
pythonista
import os,sys
print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')
print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios
from distutils.util import get_platform
print(get_platform())
# darwin-18.2.0-iPhone11,6

407:デフォルトの名無しさん
19/02/26 08:17:26.80 N21l9DY8.net
>>394 J
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)

408:デフォルトの名無しさん
19/02/26 10:23:47.93 E0EMtjG2.net
>>394
Perl5
print "$^O\n";

409:デフォルトの名無しさん
19/02/26 15:46:59.25 N21l9DY8.net
>>364 Lua
io.write((io.read("*a"):gsub(".","%0\n")))

410:デフォルトの名無しさん
19/02/26 15:54:05.05 gjK+vdjr.net
お題: 任意のn-オミノを全種類出力するプログラム

411:デフォルトの名無しさん
19/02/26 15:55:57.75 IBhh82RD.net
>>364
標準出力から与えられる場合
import sys
for x in sys.stdin.read() : print(x)
>>394と混合
import os
for x in os.getenv("OS"): print(x)

412:デフォルトの名無しさん
19/02/26 18:05:30.42 KX5s2hIr.net
>>384 Squeak/Pharo Smalltalk
| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.
ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "

413:デフォルトの名無しさん
19/02/26 20:30:26.61 cNXsTeTJ.net
お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。

414:デフォルトの名無しさん
19/02/26 23:29:53.47 Tg4W+a2u.net
お題: 円の最大重複数を求めよ
例題 以下画像の場合、最大重複数は4です。
URLリンク(imgur.com)
円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)

以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
URLリンク(imgur.com)
入力データ:
URLリンク(drive.google.com)
入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。

画像は自作、多分正しい。

415:デフォルトの名無しさん
19/02/27 11:44:25.97 wHsSBDML.net
お題: 自分自身のコードのコメントと非コメントを入れ替えたコードを出力するプログラムの
コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに
なっているプログラム

416:デフォルトの名無しさん
19/02/27 12:50:19.00 haTnnqie.net
S式かRPNで書いてくれややこしい

417:デフォルトの名無しさん
19/02/27 16:44:46.91 1o6M4rID.net
>>406
サンプルプリーズ

418:デフォルトの名無しさん
19/02/27 19:23:18.85 1o0vhyUy.net
お題
整数N(N>=6)を相異なる3つの整数(0<a<b<c)の和で表すことを考える。
数列(a,b,c)として考えられるもののうち、辞書式順序で最小のものと最大のものを求めよ
N=6
=> (1,2,3)/(1,2,3)
N=100
=> (1,2,97)/(32,33,35)

419:デフォルトの名無しさん
19/02/27 19:25:22.96 sZAuINQ9.net
お題
英今文字からなる文字列が与えられる。
各文字の大文字、小文字の組み合わせをすべて求める。
"ab"の場合
ab
aB
Ab
AB

420:デフォルトの名無しさん
19/02/27 19:42:57.27 haTnnqie.net
エーコン文字って何

421:デフォルトの名無しさん
19/02/27 19:49:50.41 fYEBa3GD.net
>>409
これって要するにcombinationのfirstとlastじゃねえの
next_combination()の一番最初と最後だよ

422:デフォルトの名無しさん
19/02/27 20:08:19.81 Tij8CMAh.net
>>409
こんな感じ?
URLリンク(paiza.io)

423:デフォルトの名無しさん
19/02/27 21:30:26.97 WT+xSYik.net
>>410 JavaScript
const acorn = s => {
for (let i=0; i < 2**s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc+String.fromCharCode(c.charCodeAt() - 32 * i.toString(2).padStart(s.length, 0)[j]), '')
);
}
}
acorn('ab'); // の実行結果:
ab
aB
Ab
AB
acorn('ufo'); // の実行結果:
ufo
ufO
uFo
uFO
Ufo
UfO
UFo
UFO

424:デフォルトの名無しさん
19/02/28 04:32:37.78 oRFlldUh.net
>>410
Kotlin
URLリンク(paiza.io)

425:デフォルトの名無しさん
19/02/28 06:17:40.15 9oEuhY5c.net
>>410 Ruby
s = "ufo"
a = []
s.each_char do |c| a.push([c, c.upcase]) end
b = a[0]
a[1..-1].each do |e| b = b.product(e) end
b.each do |e| puts(e.join) end

426:デフォルトの名無しさん
19/02/28 08:43:33.13 qFD89Rtd.net
>>410 Squeak Smalltalk(#perform: を二変数ブロックにすればPharoでも動く)
| fn |
fn := [:str |
| ans |
ans := OrderedCollection new.
#(asLowercase asUppercase) asDigitsToPower: str size do


427:: [:comb | ans add: (str with: comb collect: #perform:) ]. ans asArray ]. fn value: 'ab'. "=> #('ab' 'aB' 'Ab' 'AB') " fn value: 'ufo'. "=> #('ufo' 'ufO' 'uFo' 'uFO' 'Ufo' 'UfO' 'UFo' 'UFO') "



428:デフォルトの名無しさん
19/02/28 09:14:29.16 vBJFBkkc.net
uppercaseメソッドのことスッカリ忘れてた>>414
const acorn = s => {
for (let i=0; i < 2 ** s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc + (+i.toString(2).padStart(s.length, 0)[j] ? c.toUpperCase() : c), '')
);
}
}

429:デフォルトの名無しさん
19/02/28 10:31:36.11 PtOlEBM/.net
>>410 Ruby
def f(s)
a=s.chars.map{|c|[c,c.upcase]}
a.shift.product(*a).map(&:join)
end
p f("abc")
["abc", "abC", "aBc", "aBC", "Abc", "AbC", "ABc", "ABC"]

430:デフォルトの名無しさん
19/02/28 10:34:43.50 7nNuTdUM.net
簡単な問題にはものすごい勢いでこたえるのに、難しい問題には見てみぬふりをするのなwwww
難しい問題にはわかりませんだろ

431:デフォルトの名無しさん
19/02/28 13:46:39.00 oAFMMcaR.net
>>420
わからないとかやる気が起きないお題に対してわざわざわからないだのなんだのとみんなで書いてたらそういった書き込みでこのスレはすぐに一杯になるだろう。
そんなの無駄で邪魔だから一々書かんでスルーしてくれた方が良い。

432:デフォルトの名無しさん
19/02/28 14:39:02.28 7nNuTdUM.net
>>421
別の問題を答えるときに一緒にわかりませんと書けば1行消費するだけで済むだろ?
それも嫌なのか?

433:デフォルトの名無しさん
19/02/28 14:50:46.53 wVeu6yBT.net
>>422
で、もちろんお前自身はそれを実践しているんだよね?
全答しているなら別にいいんだけどさwww

434:デフォルトの名無しさん
19/02/28 15:02:45.97 7nNuTdUM.net
>>423
自分の都合のいい問題にしか答えないのはわがままとしかいいようがない

435:デフォルトの名無しさん
19/02/28 15:25:18.89 oAFMMcaR.net
>>422
たまたまわからない問題が連続したらわかりませんしか書けないだろうが。

436:デフォルトの名無しさん
19/02/28 15:26:43.33 oAFMMcaR.net
>>424
全ての問題に答える義務は誰にもない。

437:デフォルトの名無しさん
19/02/28 15:35:33.99 7nNuTdUM.net
>>426
自分に都合の悪いことは無かったことにするのは良くない
現実と向き合って自分の非を認めるべき

438:デフォルトの名無しさん
19/02/28 16:05:54.17 K7dGf2QC.net
>>427 まだ誰も回答していない問題があるが、君はわかりませんと言っていないね。 まだ考え中かな?

439:デフォルトの名無しさん
19/02/28 16:22:56.91 7nNuTdUM.net
>>1-1000
ほとんどの問題が難しくてわかりませんでした
これで満足か?wwww

440:デフォルトの名無しさん
19/02/28 17:35:56.73 swPpvqd8.net
小手先問題は得意

441:デフォルトの名無しさん
19/02/28 17:48:58.57 +01UgAVr.net
>>420
そんなの当たり前じゃん

442:デフォルトの名無しさん
19/02/28 17:51:09.02 +01UgAVr.net
出題する側のセンスも問われる

443:デフォルトの名無しさん
19/02/28 18:46:34.61 oAFMMcaR.net
>>427
便所の落


444:書きに時たま書かれる問題にうんこしながら答えを書くか書かないかで都合が良くなったり悪くなったりする者は居ない。



445:デフォルトの名無しさん
19/02/28 18:49:07.23 KtyAfxmO.net
しかし最近は便所の落書きは亡くなったに等しいな。
それにもかかわらず2chには便所の落書きが多い。
ここはまだましだけどな。

446:デフォルトの名無しさん
19/02/28 19:23:16.75 7nNuTdUM.net
公園の便所とかもちゃんと調べていってるのか?

447:デフォルトの名無しさん
19/02/28 19:52:08.39 KtyAfxmO.net
うちの近くの公園にはまずないな。
十人くらいしか遊べない公園も、数千人も遊べる公園も同じ。

448:デフォルトの名無しさん
19/02/28 20:27:06.93 oAFMMcaR.net
ああいうのもブロークンウィンドウズ理論通りに汚くなればなるほど余計に汚くなって尚且つその地区の犯罪率も上昇しちゃうんだろうな。

449:デフォルトの名無しさん
19/02/28 20:28:03.31 fDwT3kht.net
ID:7nNuTdUM が便所の落書きしかしてないのは分かる

450:デフォルトの名無しさん
19/02/28 20:59:59.90 KtyAfxmO.net
>>437 もちろんどんな公園にもバカな書き込みをする奴はいるだろう。 でも管理された公園では、次の日には修復されてるから書かれてたことにすら気づかなくて、誰も描かなくなる。
10年に1度くらいアホが便器を壊すなんて馬鹿なことをする事件もあるが、バカはどこにでもいるから仕方ない。

451:デフォルトの名無しさん
19/02/28 21:01:11.76 6vlCNc4e.net
もうちょっと気の利いた比喩がほしいね。

452:デフォルトの名無しさん
19/02/28 21:58:37.50 dSln4xk/.net
お題
四角形の羅列を、'#'と'.'を使った表現から罫線を使った表現に変換せよ
(例)等幅フォントで見てください
#

┌┬┐
├┼┤
└┴┘
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
┌┬┐   ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐  
├┼┤   ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤  
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
    ├┼┤         ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤       ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤       ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
        ├┼┤ ├┼┤     ├┼┤  
        └┴┘ └┴┘     └┴┘  

453:デフォルトの名無しさん
19/02/28 22:09:31.89 DbAr3TBt.net
なにこれ?組み立てたらガンダムになるの?

454:デフォルトの名無しさん
19/02/28 22:33:12.22 lyW2+AsV.net
>>410 ruby
URLリンク(ideone.com)
f = -> s {[''].product(*s.chars.map {|c| [c, c.upcase]}).map(&:join)}
p %W(#{} a ab).map {|s| [s, f.(s)]}

[["", [""]], ["a", ["a", "A"]], ["ab", ["ab", "aB", "Ab", "AB"]]]

455:デフォルトの名無しさん
19/03/01 11:41:54.16 RkKCNcIA.net
>>411 下らんお題出すなよ。

456:デフォルトの名無しさん
19/03/01 14:53:48.06 ber2ILYj.net
>>444
それお題じゃない

457:デフォルトの名無しさん
19/03/01 16:58:28.80 KMRxw/mf.net
>>444 >>441 の間違い

458:デフォルトの名無しさん
19/03/01 17:54:01.28 nsJzseJ0.net
読み手の環境を変えさせるようなお題は不適切。

459:デフォルトの名無しさん
19/03/01 18:00:52.30 nsJzseJ0.net
というか >>441 の問題が意味不明。 スクリーンショットで示してみなよ。 俺はやらんだろうけど。

460:デフォルトの名無しさん
19/03/01 18:05:43.92 nsJzseJ0.net
>>441 なんかプログラムの練習の前に、日本語のおさらいをした方が良い人間が見受けられるな。
プログラムはチームワークだから、他人に仕様が正確に伝えられなければその時点でそのプロジェクトは失敗。
理解しやすい言葉で混乱が起きない様に示すのが当たり前では?
それができない人はプログラムで問題を出しなさいよ。

461:デフォルトの名無しさん
19/03/01 18:35:43.56 ber2ILYj.net
え?>>441はわかるよ。俺がエスパーなだけ?w

462:デフォルトの名無しさん
19/03/01 18:38:47.53 nQNJhNQv.net
俺もわかるけどわかりにくいと思った

463:デフォルトの名無しさん
19/03/01 19:02:55.70 KgoMIpD3.net
なぜ#1つで4つの4角形になるんた?
#を図形として見た場合一致しないと思うんだが

464:デフォルトの名無しさん
19/03/01 19:26:25.34 ber2ILYj.net
記号を罫線ので作った四角にしろってことでこの場合は#だったってだけでは?
なんだったら「田」から変換するようにすれば雰囲気がマッチして良いかも知れんな。気分の問題だが。

465:デフォルトの名無しさん
19/03/01 19:55:55.91 HvpZFnzz.net
>>441 Common Lisp
URLリンク(ideone.com)

466:デフォルトの名無しさん
19/03/02 01:29:28.31 og4HVKiE.net
>>441 でたらめだろ。 #が田形3マスになるのは良いとして、ドットが何で3マスになったり、1マスになってるんだよ。
#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
123456789いろはにほ123456789へと
┌┬┐   ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐  
├┼┤   ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤  
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
    ├┼┤         ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤       ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤       ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
        ├┼┤ ├┼┤     ├┼┤  
        └┴┘ └┴┘     └┴┘  

467:デフォルトの名無しさん
19/03/02 01:35:36.81 og4HVKiE.net
>>455 ごめん、罫線だから、0.5ずれてたのか。 しかしわかりにくい問題だな。 
もしかして自分の仕事を人に押し付けようとしていないか? 

468:デフォルトの名無しさん
19/03/02 03:13:42.38 xuPe2CJ9.net
>>441 Java
URLリンク(ideone.com)

469:デフォルトの名無しさん
19/03/02 11:02:58.51 H6jPx1zC.net
専用ブラウザじゃ等副フォントなんて選べないのがあるのを知らないのか?
BB2Cでは、英字は等幅が選べても、漢字にはフォント設定すらない。
Jane Doe View も MSゴシックを選択しても等幅にならない。
読み手の設定を変えさせる問題なんて2chにはふさわしくない。

470:デフォルトの名無しさん
19/03/02 11:17:11.62 xuPe2CJ9.net
俺は等幅で見てくれってあったら、設定を変えるんじゃなくてメモ帳にコピペして見るけどなー

471:デフォルトの名無しさん
19/03/02 11:41:44.38 og4HVKiE.net
>>459 そうやって見たけど面倒くさい。 やるならどこかのサイトに張り付けるか画像で出題すべきだろ。

472:デフォルトの名無しさん
19/03/02 11:42:35.75 jZcAiOx4.net
おれなら出題を諦めるなw

473:デフォルトの名無しさん
19/03/02 11:43:11.78 chZTsz9F.net
問題とかずに問題への文句ばかり垂れるってお前らにしては珍しいな
問題とけよクズども

474:デフォルトの名無しさん
19/03/02 11:55:57.51 xuPe2CJ9.net
>>462
お…おれはやってるよっ

475:デフォルトの名無しさん
19/03/02 11:55:57.58 jZcAiOx4.net
>>462
ぐ、ぐむーっ

476:デフォルトの名無しさん
19/03/02 11:56:34.18 xuPe2CJ9.net
>>463-464
この間0.07秒である

477:デフォルトの名無しさん
19/03/02 12:11:05.29 JYk2NVzi.net
この広い日本のどこかに同じ時に同じレスに反応してしまった二人がいる。
プログラミングの世界は奥が深いな……

478:デフォルトの名無しさん
19/03/02 13:30:29.30 og4HVKiE.net
>>466 良いお題を解いたね。

479:デフォルトの名無しさん
19/03/02 16:02:22.23 xke/YE7F.net
>>453
なるほどそういうことか

480:デフォルトの名無しさん
19/03/02 16:22:52.10 ZN4ZPl7z.net
>>457
なるほど
>>411 Common Lisp (>>457の移植)
URLリンク(ideone.com)
すごいなあ、こんなの全然思いつけない
文字を文字のままどうにかしようとしてぐちゃぐちゃになったのが>>454でした

481:デフォルトの名無しさん
19/03/02 16:25:46.70 ZN4ZPl7z.net
>>469
アンカミス
>>411>>441

482:デフォルトの名無しさん
19/03/02 16:49:20.52 R507/Kbo.net
全く面白くない。

483:デフォルトの名無しさん
19/03/02 20:23:12.84 bDAZjPpu.net
>>471
自分の好みじゃないと面白くないなんて小学生か。
黙ってスルーするか、自分が好みの問題だして盛り上げたらどうだ?

484:デフォルトの名無しさん
19/03/03 08:56:00.68 NMVimqZR.net
お題:2つの円が重なった時、重なった部分の面積を求めなさい。

485:デフォルトの名無しさん
19/03/03 13:28:27.28 TjAANgsg.net
含まれている場合も考えなきゃならんな…

486:デフォルトの名無しさん
19/03/03 17:19:17.78 e91Lt8pq.net
>>473
わかりません。

487:さまよえる蟻人間
19/03/03 17:21:20.86 KlFuUPR7.net
距離と半径くらい指定しろよ。

488:デフォルトの名無しさん
19/03/03 17:48:01.52 EHdvkNdx.net
>>475
分からない人は答えなくていいし黙って見ていればいいよ

489:デフォルトの名無しさん
19/03/03 18:41:09.09 TjAANgsg.net
>>476
任意に対応すべきだろJK

490:デフォルトの名無しさん
19/03/03 18:55:07.69 TjAANgsg.net
>>476
URLリンク(detail.chiebukuro.yahoo.co.jp)
このサイトは具体的な座標と半径について手計算で解いた例だけど、
座標と半径を一般化して連立二次方程式を解いて交点を求め、
三角形と円弧の面積の差を求めれば重なり合う2円弧の面積が算出できる。
小さい円の中心が大きい円の内側にある場合は、
三角形と円弧の面積の差の求め方を逆にする。
小さい円が大きい円の完全に内側にある場合は、小さい円の面積とする。
x,y座標で式を立てるより、曲座標で表して三角関数使うほうが楽かもしれない。
これをプログラム化すれば良い、筈【だと思う。
以上。

491:デフォルトの名無しさん
19/03/03 19:21:30.98 yjYtaUkW.net
2つの中心を通る線をX軸としてX軸と交わる点の端っこを原点して円の交点と半径で
円一個ずつ積分して面積を出して合わせるしかないだろ。

492:デフォルトの名無しさん
19/03/03 19:28:30.68 r5nrErEk.net
半径と中心間の距離から円の交点間の距離(=弦)がわかるから
正弦定理とarcsinで中心角を求めればあとはただの掛け算と引き算だろ

493:デフォルトの名無しさん
19/03/03 19:33:55.32 TjAANgsg.net
>>481
二次方程式解かないで済みそうだな

494:デフォルトの名無しさん
19/03/03 20:19:21.58 ot+8d2KD.net
それが一番シンプルそうだな

495:デフォルトの名無しさん
19/03/03 20:23:33.79 8CruhG40.net
プログラム的には円同士の位置関係で場合分けして、あとは計算一発だから二次方程式をいやがる必要もなくない?

496:デフォルトの名無しさん
19/03/03 21:06:33.77 XGcp5yLx.net
>>473 C
URLリンク(ideone.com)
画像も参照。
URLリンク(imgur.com)

497:デフォルトの名無しさん
19/03/03 22:28:24.90 XGcp5yLx.net
>>485
条件分岐が間違っていたので修正。おそらくあってると思う
URLリンク(ideone.com)
余弦定理を使う方法しか思いつかなかったから、それでやった

498:デフォルトの名無しさん
19/03/04 01:00:55.59 q2TdavLp.net



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch