[過去ログ]
プログラミングのお題スレ Part13 (1002レス)
プログラミングのお題スレ Part13 http://mevius.5ch.net/test/read.cgi/tech/1549160513/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
233: デフォルトの名無しさん [] 2019/02/16(土) 16:47:26.55 ID:akVlWGeE ふたたび、円の内部の整数点を求めるやつ。個数ごとその最小半径を求める。 41個、47個とかが難し目だった気が。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/233
234: デフォルトの名無しさん [sage] 2019/02/16(土) 17:07:10.46 ID:wpb3vJTT 内部じゃなくて円周上のやろ http://mevius.5ch.net/test/read.cgi/tech/1549160513/234
235: デフォルトの名無しさん [sage] 2019/02/16(土) 17:07:42.16 ID:cltO7Ts6 >>230 http://mevius.5ch.net/test/read.cgi/tech/1549160513/235
236: デフォルトの名無しさん [sage] 2019/02/16(土) 17:27:32.65 ID:PD6v+6Vh >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/236
237: デフォルトの名無しさん [sage] 2019/02/16(土) 17:33:21.11 ID:PfkkbXxw >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/237
238: デフォルトの名無しさん [sage] 2019/02/16(土) 17:34:37.44 ID:PD6v+6Vh >>236 これだと 入力が0のとき >(2) 0から遠ざかる が-1になっちゃう。 ($_ > 0 ? ceil($_) : ceil($_-1)), ↓を ($_ >= 0 ? ceil($_) : ceil($_-1)), とすべきでしょうね。スマソ http://mevius.5ch.net/test/read.cgi/tech/1549160513/238
239: デフォルトの名無しさん [] 2019/02/16(土) 18:34:59.76 ID:akVlWGeE >>234 円周上が正解 http://mevius.5ch.net/test/read.cgi/tech/1549160513/239
240: デフォルトの名無しさん [] 2019/02/16(土) 22:05:48.79 ID:lcFO2eao >>262 J f =: (**<.@|),(**>.@|),<.,>. f 0.5 0 1 1 0 f _1.1 _1 _2 _1 _2 f 3 3 3 3 3 http://mevius.5ch.net/test/read.cgi/tech/1549160513/240
241: デフォルトの名無しさん [sage] 2019/02/16(土) 22:20:47.39 ID:yZTjSyit >>262に期待。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/241
242: デフォルトの名無しさん [] 2019/02/16(土) 22:38:05.19 ID:lcFO2eao >>240 間違えました 262ではなく>>232でした http://mevius.5ch.net/test/read.cgi/tech/1549160513/242
243: デフォルトの名無しさん [sage] 2019/02/16(土) 23:30:26.24 ID:ReDOqu2L >>232 octave https://ideone.com/7nvSr1 http://mevius.5ch.net/test/read.cgi/tech/1549160513/243
244: ◆QZaw55cn4c [sage] 2019/02/17(日) 00:20:40.59 ID:TOi2tzGo >>232 をやろうとおもって、IEEE754 の float/double を直接触る方法を探しているのですが、なにかいい方法はないでしょうか… http://mevius.5ch.net/test/read.cgi/tech/1549160513/244
245: デフォルトの名無しさん [sage] 2019/02/17(日) 00:24:40.58 ID:xZHcxwZO 言語も言わずに(ry https://qiita.com/nia_tn1012/items/d26f0fc993895a09b30b http://mevius.5ch.net/test/read.cgi/tech/1549160513/245
246: ◆QZaw55cn4c [sage] 2019/02/17(日) 00:30:56.20 ID:TOi2tzGo >>245 thx a lot !! http://mevius.5ch.net/test/read.cgi/tech/1549160513/246
247: デフォルトの名無しさん [sage] 2019/02/17(日) 01:04:30.52 ID:iMRi3xg5 >>244 あった http://mevius.5ch.net/test/read.cgi/tech/1549160513/247
248: デフォルトの名無しさん [] 2019/02/17(日) 08:30:18.08 ID:SfPzlMrR >>233 これ 「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」 例) x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。 (x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/248
249: デフォルトの名無しさん [] 2019/02/17(日) 09:09:13.01 ID:SfPzlMrR >>248 網羅的は、きりがなく一つの予想をたてた。 一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。 半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。 たとえば上の例だと、r=1で、r → 2/4 r で、 (2x -1)^2 + (2y -1)^2 = 2r 両辺4倍して中心ずらした式 http://mevius.5ch.net/test/read.cgi/tech/1549160513/249
250: デフォルトの名無しさん [] 2019/02/17(日) 14:03:58.61 ID:SfPzlMrR 整数比かけるので有理数半径ならすべて作り出せるから当たり前か 無駄なく高速に半径縮められる手法が大事か http://mevius.5ch.net/test/read.cgi/tech/1549160513/250
251: デフォルトの名無しさん [] 2019/02/17(日) 14:06:36.33 ID:SfPzlMrR あと半径は間違いで、半径でなく右辺、半径^2 だった http://mevius.5ch.net/test/read.cgi/tech/1549160513/251
252: デフォルトの名無しさん [] 2019/02/17(日) 19:56:30.00 ID:qArvPplr お題 パンケーキソートを実装する http://mevius.5ch.net/test/read.cgi/tech/1549160513/252
253: デフォルトの名無しさん [sage] 2019/02/18(月) 22:45:57.31 ID:Gp2d+oGP >>252 Perl5 (効率の良いアルゴリズムではないけれど、まずは…) use List::Util shuffle; @a = shuffle 1..20; print "shuffled) @a\n"; sub flip { ($m, $n) = @_; @a[0..$m] = reverse @a[0..$m]; @a[0..$n] = reverse @a[0..$n]; } for $i (reverse 1..$#a) { $k = undef; for (0..$i) { $k = $_ if (!defined($k) or $a[$k] < $a[$_]) } flip($k, $i) if $k < $i; } print "sorted ) @a\n"; 実行例 ~ $ perl 13_252_clumsy_pancake_sort.pl shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8 sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 http://mevius.5ch.net/test/read.cgi/tech/1549160513/253
254: デフォルトの名無しさん [sage] 2019/02/19(火) 22:19:54.18 ID:sIqHxZ1N ; 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))) http://mevius.5ch.net/test/read.cgi/tech/1549160513/254
255: デフォルトの名無しさん [sage] 2019/02/19(火) 22:25:14.24 ID:flzwRht/ お題:1から8までのカードを混ぜ、2枚そこから引いた時1枚目*10+2枚目が素数になる確率を求める。 ただし、 1. 小数第3位で四捨五入した後に回答すること。 2. 数学的な証明は禁止。 3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する) 4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/255
256: デフォルトの名無しさん [sage] 2019/02/20(水) 00:45:46.98 ID:VV/V1Ls8 python print(0.31) http://mevius.5ch.net/test/read.cgi/tech/1549160513/256
257: デフォルトの名無しさん [sage] 2019/02/20(水) 00:55:56.83 ID:SyQ4jkRO >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/257
258: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/20(水) 00:58:27.33 ID:5PEVWiZL お題: URLで場所を指定された、インターネット上のテキストファイルをダウンロードするプログラム。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/258
259: デフォルトの名無しさん [sage] 2019/02/20(水) 01:16:40.92 ID:SyQ4jkRO >>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 = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt'; $file = './0_README.txt'; $res = $ua->mirror($url, $file); print $res->status_line, "\n"; 実行例 ~ $ perl 13_258.pl 200 OK (※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました) http://mevius.5ch.net/test/read.cgi/tech/1549160513/259
260: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/20(水) 01:37:18.13 ID:jAMIqMc6 WSHでダウンロードできるヤツ、おる? http://mevius.5ch.net/test/read.cgi/tech/1549160513/260
261: デフォルトの名無しさん [sage] 2019/02/20(水) 01:40:03.52 ID:SyQ4jkRO >>260 wget.exe か curl 使えば? http://mevius.5ch.net/test/read.cgi/tech/1549160513/261
262: デフォルトの名無しさん [sage] 2019/02/20(水) 02:05:29.76 ID:Te3YpcYw >>260 download.js var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp.Open("GET", "http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt", false); xmlhttp.Send(); var stream = new ActiveXObject("Adodb.Stream"); stream.Type = 1; stream.Open(); stream.Write(xmlhttp.responseBody); stream.SaveToFile("0_README.txt", 2); http://mevius.5ch.net/test/read.cgi/tech/1549160513/262
263: デフォルトの名無しさん [sage] 2019/02/20(水) 02:28:54.15 ID:PF1BNO4k pythonista stash 反則? $ wget http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt $ ls -la *.txt 0_README.txt (2.4K) 2019-02-20 02:21:45 http://mevius.5ch.net/test/read.cgi/tech/1549160513/263
264: デフォルトの名無しさん [sage] 2019/02/20(水) 02:51:47.69 ID:qYIek1dL >>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))) http://mevius.5ch.net/test/read.cgi/tech/1549160513/264
265: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/20(水) 03:32:48.09 ID:jAMIqMc6 わーい、これでダウンロード制限された端末でDLできるぞ。やったー! http://mevius.5ch.net/test/read.cgi/tech/1549160513/265
266: デフォルトの名無しさん [sage] 2019/02/20(水) 03:35:30.81 ID:VV/V1Ls8 お題スレってそういう趣旨の場所だっけか? http://mevius.5ch.net/test/read.cgi/tech/1549160513/266
267: デフォルトの名無しさん [] 2019/02/20(水) 03:43:59.14 ID:J4bEIWoi >>265 できるかなあ?どういう制限しているかにもよるぞ。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/267
268: デフォルトの名無しさん [sage] 2019/02/20(水) 05:32:07.81 ID:B2QSVSiS PowerShell にも、curl, wget ある get-alias (gal) curl -> Invoke-WebRequest wget -> Invoke-WebRequest と言うことは、Ruby からも、そのコマンドを呼べる http://mevius.5ch.net/test/read.cgi/tech/1549160513/268
269: 268 [sage] 2019/02/20(水) 09:30:07.43 ID:B2QSVSiS なんと、コマンドプロンプトで、 where curl と入力すると、 C:\Windows\System32\curl.exe PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、 curl.exe は、本物のcurl ! http://mevius.5ch.net/test/read.cgi/tech/1549160513/269
270: デフォルトの名無しさん [sage] 2019/02/20(水) 09:49:14.61 ID:hK+DOQws >>268>>269 死ね http://mevius.5ch.net/test/read.cgi/tech/1549160513/270
271: デフォルトの名無しさん [sage] 2019/02/20(水) 09:52:59.12 ID:PF1BNO4k >>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 ではそれはできない。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/271
272: 268 [sage] 2019/02/20(水) 10:31:11.68 ID:B2QSVSiS WSH はわからないけど、Ruby では、 require 'nokogiri' html = `curl http://www.example.com/` # curl は書き込めないので、全角に変換した doc = Nokogiri::HTML( html ) elements = doc.css( "h1" ) puts elements.first.content #=> Example Domain http://mevius.5ch.net/test/read.cgi/tech/1549160513/272
273: デフォルトの名無しさん [sage] 2019/02/20(水) 11:50:14.05 ID:hK+DOQws >>272 死ね http://mevius.5ch.net/test/read.cgi/tech/1549160513/273
274: デフォルトの名無しさん [] 2019/02/20(水) 13:03:16.05 ID:agArr1lp >>269 なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/274
275: デフォルトの名無しさん [sage] 2019/02/20(水) 17:40:48.68 ID:3A0CDvTh >>263 今度は反則なしで。python import requests as r url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' g= r.get( url ) print('読んだサイズは',len(g.text) ) # 読んだサイズは 2495 http://mevius.5ch.net/test/read.cgi/tech/1549160513/275
276: デフォルトの名無しさん [sage] 2019/02/20(水) 17:58:34.75 ID:t1mcuuOB >>258 Pharo 7 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents http://mevius.5ch.net/test/read.cgi/tech/1549160513/276
277: デフォルトの名無しさん [sage] 2019/02/20(水) 18:10:48.97 ID:3A0CDvTh >>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/277
278: デフォルトの名無しさん [sage] 2019/02/20(水) 23:51:29.53 ID:MUUM+ThN >>230 pike https://ideone.com/VZzxoA http://mevius.5ch.net/test/read.cgi/tech/1549160513/278
279: デフォルトの名無しさん [sage] 2019/02/21(木) 18:54:22.61 ID:1axkeZoV お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。 https://ideone.com/pVuO7T http://mevius.5ch.net/test/read.cgi/tech/1549160513/279
280: デフォルトの名無しさん [sage] 2019/02/21(木) 19:06:17.90 ID:TUYpSwcQ >>279 JavaScript const arr = ['apple', 'banana', 'orange', 'mango']; const last = ' and ' + arr.pop(); console.log(arr.join`, ` + last); //=> apple, banana, orange and mango http://mevius.5ch.net/test/read.cgi/tech/1549160513/280
281: デフォルトの名無しさん [sage] 2019/02/21(木) 19:17:09.75 ID:eUc7EqKm >>279 python l = [ 1,2,3,4,5] print( *l[0:-1] ,'and' , l[-1]) # 1 2 3 4 and 5 http://mevius.5ch.net/test/read.cgi/tech/1549160513/281
282: デフォルトの名無しさん [] 2019/02/21(木) 19:27:21.23 ID:2zdYL4u2 >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/282
283: デフォルトの名無しさん [sage] 2019/02/21(木) 19:31:58.30 ID:lqQG1Hmj 題意は list = ["red","green","black","white"] print(", ".join(list[:-1]),"and",list[-1]) # red, green, black and white だろ http://mevius.5ch.net/test/read.cgi/tech/1549160513/283
284: デフォルトの名無しさん [sage] 2019/02/21(木) 19:43:56.00 ID:YnrfI9YG そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな http://mevius.5ch.net/test/read.cgi/tech/1549160513/284
285: デフォルトの名無しさん [] 2019/02/21(木) 19:51:21.05 ID:2zdYL4u2 >>283 あ、そうか。 不恰好だけどこれで一応対応。 (putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]] スマートな解答も考えてみるよ。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/285
286: デフォルトの名無しさん [sage] 2019/02/21(木) 20:16:12.26 ID:eUc7EqKm >>283 ごめん、俺もカンマが抜けてた。 数字の場合の模範解答をよろしく。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/286
287: デフォルトの名無しさん [] 2019/02/21(木) 20:20:50.88 ID:2zdYL4u2 スマートかは兎も角、一応マシな形に。 空リストや要素数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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/287
288: デフォルトの名無しさん [sage] 2019/02/21(木) 20:59:38.40 ID:lqQG1Hmj >>286 list = [str(x) for x in range(1,5)] とか map(lambda x : str(x), list) でもおk 要素数が1個以下の場合はifで分離するだけなので略 http://mevius.5ch.net/test/read.cgi/tech/1549160513/288
289: デフォルトの名無しさん [] 2019/02/21(木) 21:09:47.73 ID:y3+CYNZ6 >>279 Common Lisp (format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4)) https://ideone.com/6DcwO9 http://mevius.5ch.net/test/read.cgi/tech/1549160513/289
290: デフォルトの名無しさん [sage] 2019/02/21(木) 21:21:18.07 ID:lqQG1Hmj 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")) 冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは http://mevius.5ch.net/test/read.cgi/tech/1549160513/290
291: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/21(木) 21:21:18.26 ID:PQQkN+7n ラティス、再び。 お題: >>99 の場合分けのラティス構造を使って、複数の入力文字列について、共通部分をまとめ、1つの文字列に凝縮せよ。 (例) ああい ああ あう →あ{{あ{い/}}/う} http://mevius.5ch.net/test/read.cgi/tech/1549160513/291
292: デフォルトの名無しさん [sage] 2019/02/21(木) 21:30:40.21 ID:lqQG1Hmj よく考えたらreversedなんか使わんでも print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1]) でいけるか。join削減できるし http://mevius.5ch.net/test/read.cgi/tech/1549160513/292
293: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/21(木) 21:32:52.15 ID:3Jj6vI7v 出力文字列の長さは最短でなければならない。 場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/293
294: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/21(木) 21:37:53.05 ID:3Jj6vI7v 一番外側の { } は省略可能。 共通部分がないときは、/で区切って出力せよ。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/294
295: 279 [sage] 2019/02/21(木) 21:39:50.99 ID:1axkeZoV >>279 pike https://ideone.com/0nn6Wt http://mevius.5ch.net/test/read.cgi/tech/1549160513/295
296: さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2019/02/21(木) 21:55:49.44 ID:PQQkN+7n このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/296
297: デフォルトの名無しさん [] 2019/02/21(木) 22:55:49.76 ID:2zdYL4u2 >>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のはワンライナーでも比較的読みやすくて、ちょっと羨ましい。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/297
298: デフォルトの名無しさん [] 2019/02/21(木) 22:59:16.06 ID:2zdYL4u2 >>297 弄ってるうちに要素一以下だとバグ出てた。 正しいコードはこっち。 putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst] http://mevius.5ch.net/test/read.cgi/tech/1549160513/298
299: デフォルトの名無しさん [sage] 2019/02/21(木) 23:36:37.11 ID:un6uIa3F >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/299
300: デフォルトの名無しさん [sage] 2019/02/22(金) 00:04:51.72 ID:EatRhjER >>279 Squeak/Pharo Smalltalk (0 to: 3) asCommaStringAnd "=> '0, 1, 2 and 3' " http://mevius.5ch.net/test/read.cgi/tech/1549160513/300
301: デフォルトの名無しさん [sage] 2019/02/22(金) 00:07:27.55 ID:wSgiM5bY >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/301
302: デフォルトの名無しさん [sage] 2019/02/22(金) 00:28:04.99 ID:9PVAJM4v >>300 そういう関数が既にあるの? http://mevius.5ch.net/test/read.cgi/tech/1549160513/302
303: デフォルトの名無しさん [sage] 2019/02/22(金) 00:31:28.15 ID:wSgiM5bY >>302 ググルとあるみたいよ。 組み込みMethodを山のように持っていそう http://mevius.5ch.net/test/read.cgi/tech/1549160513/303
304: デフォルトの名無しさん [sage] 2019/02/22(金) 00:49:22.57 ID:9PVAJM4v ほえー http://mevius.5ch.net/test/read.cgi/tech/1549160513/304
305: デフォルトの名無しさん [sage] 2019/02/22(金) 06:09:02.19 ID:HhIJRo4K >>279 Smalltalk (Pharo 7) #('apple' 'banana' 'orange' 'mango') asCommaStringAnd ==> 'apple, banana, orange and mango' #('apple' 'banana') asCommaStringAnd ==> 'apple and banana' #('apple') asCommaStringAnd ==> 'apple' http://mevius.5ch.net/test/read.cgi/tech/1549160513/305
306: デフォルトの名無しさん [sage] 2019/02/22(金) 06:36:03.41 ID:S1fPIClY >>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([])) # 空だ http://mevius.5ch.net/test/read.cgi/tech/1549160513/306
307: 305 [sage] 2019/02/22(金) 07:07:04.28 ID:HhIJRo4K しまった既出だったorz http://mevius.5ch.net/test/read.cgi/tech/1549160513/307
308: デフォルトの名無しさん [sage] 2019/02/22(金) 07:58:55.12 ID:6TNKk8ap >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/308
309: デフォルトの名無しさん [sage] 2019/02/22(金) 08:05:10.35 ID:6TNKk8ap >>291 あ{{あ{い/}}/う} // 12文字 ああい/ああ/あう // 9文字 あ{あい/あ/う} // 9文字 http://mevius.5ch.net/test/read.cgi/tech/1549160513/309
310: デフォルトの名無しさん [sage] 2019/02/22(金) 08:11:07.14 ID:EatRhjER >>302 Smalltalkは1970年代頃にはすでにこんな感じで https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png IDEからお絵かきツールまで処理系に組み込みだったので 生活に密着したメソッドが揃っています! http://mevius.5ch.net/test/read.cgi/tech/1549160513/310
311: デフォルトの名無しさん [sage] 2019/02/22(金) 09:34:06.68 ID:Ao+GBu+d ラティス構造って要するに正規表現を生成すりゃーいいのか? http://mevius.5ch.net/test/read.cgi/tech/1549160513/311
312: デフォルトの名無しさん [sage] 2019/02/22(金) 19:34:29.73 ID:CY9He0wk >>233 海外の人の https://enigmaticcode.wordpress.com/2013/10/15/enigma-136-twelve-point-square/ https://github.com/enigmatic-code/lattice_circles http://mevius.5ch.net/test/read.cgi/tech/1549160513/312
313: デフォルトの名無しさん [sage] 2019/02/22(金) 19:43:43.74 ID:FMSx1nas お題:21の階乗を計算して表示せよ。 https://ideone.com/gQAd37 http://mevius.5ch.net/test/read.cgi/tech/1549160513/313
314: デフォルトの名無しさん [sage] 2019/02/22(金) 20:16:33.34 ID:9PVAJM4v >>310 ほえー http://mevius.5ch.net/test/read.cgi/tech/1549160513/314
315: デフォルトの名無しさん [sage] 2019/02/22(金) 21:26:47.09 ID:py41/SAb >>313 JavaScript console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v)); http://mevius.5ch.net/test/read.cgi/tech/1549160513/315
316: デフォルトの名無しさん [sage] 2019/02/22(金) 21:42:16.23 ID:THqrb0iU お題: 長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。 各マスの数字はそのマスに入るためのコストを表す。 SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする) S5111 1115G => 6 S1111 98642 G1111 => 9 13457689768914512071934123457 G4578901258901212890361125312 37890423076834712378998725463 16890102569615902061456259893 34582934765923812893461515232 57896123896741378915691551697 89013897456123457162501835479 21389046013845610034623405686 8902346203948612341356362342S => ? http://mevius.5ch.net/test/read.cgi/tech/1549160513/316
317: デフォルトの名無しさん [sage] 2019/02/22(金) 21:49:55.63 ID:2ARSyvEs >>279 >>289 Common Lispで~#[...~]を使ってみた (format t "~{~S~#[~; and ~:;, ~]~}" '(apple banana orage mango)) http://mevius.5ch.net/test/read.cgi/tech/1549160513/317
318: デフォルトの名無しさん [sage] 2019/02/22(金) 22:00:24.05 ID:py41/SAb こういう文章題好き。 でも実力不足で解けない… a*かな? http://mevius.5ch.net/test/read.cgi/tech/1549160513/318
319: デフォルトの名無しさん [sage] 2019/02/22(金) 22:05:57.76 ID:AX8XyL13 >>313 Perl5 use bignum (l=>GMP); $n = 1; $n *= $_ for 2..21; print "$n\n"; 実行例 ~ $ perl 13_313.pl 51090942171709440000 http://mevius.5ch.net/test/read.cgi/tech/1549160513/319
320: デフォルトの名無しさん [sage] 2019/02/22(金) 22:26:00.12 ID:eQxt3fSm >>313 JavaScript console.log((f=n=>n?n*f(n-1):1)(21)) http://mevius.5ch.net/test/read.cgi/tech/1549160513/320
321: デフォルトの名無しさん [sage] 2019/02/23(土) 00:16:14.24 ID:KCAwaSn8 >>313 Smalltalk-76 https://imgur.com/a/a7MClxL http://mevius.5ch.net/test/read.cgi/tech/1549160513/321
322: デフォルトの名無しさん [sage] 2019/02/23(土) 00:27:48.65 ID:khwKgkQE >>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 }))) http://mevius.5ch.net/test/read.cgi/tech/1549160513/322
323: デフォルトの名無しさん [] 2019/02/23(土) 01:14:20.46 ID:9pS68leH >>279 Kotlin script 最後のカンマを正規表現の文字列置換で and にしただけ。 println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1")) 出力 abc, def and xyz http://mevius.5ch.net/test/read.cgi/tech/1549160513/323
324: デフォルトの名無しさん [sage] 2019/02/23(土) 01:19:01.99 ID:CTQXI+x5 lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い! http://mevius.5ch.net/test/read.cgi/tech/1549160513/324
325: デフォルトの名無しさん [] 2019/02/23(土) 02:10:15.51 ID:9pS68leH >>313 bc n = 2; for (i = 3; i <= 21; i++) n*=i; n 出力 51090942171709440000 http://mevius.5ch.net/test/read.cgi/tech/1549160513/325
326: デフォルトの名無しさん [sage] 2019/02/23(土) 03:31:27.03 ID:nkO3lkCA >>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 http://mevius.5ch.net/test/read.cgi/tech/1549160513/326
327: デフォルトの名無しさん [sage] 2019/02/23(土) 03:32:49.90 ID:R2s6jSV3 bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか… for(i=s=1;i<22;)s*=i++;s http://mevius.5ch.net/test/read.cgi/tech/1549160513/327
328: デフォルトの名無しさん [sage] 2019/02/23(土) 04:30:09.37 ID:R2s6jSV3 >>326 恥ずかしながらdcコマンド知らなかった…いいねこれ。 ~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc 51090942171709440000 http://mevius.5ch.net/test/read.cgi/tech/1549160513/328
329: デフォルトの名無しさん [] 2019/02/23(土) 08:05:10.28 ID:xK8/Ze+A >>313 Maxima print(21!); http://mevius.5ch.net/test/read.cgi/tech/1549160513/329
330: デフォルトの名無しさん [sage] 2019/02/23(土) 08:20:33.48 ID:znXlogg7 >>313 ;; Common Lisp (loop for i from 1 to 21 for r = i then (* r i) finally (print r)) http://mevius.5ch.net/test/read.cgi/tech/1549160513/330
331: デフォルトの名無しさん [sage] 2019/02/23(土) 08:45:55.53 ID:DQY5g4De >>316 これは、本格的だな ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも http://mevius.5ch.net/test/read.cgi/tech/1549160513/331
332: デフォルトの名無しさん [sage] 2019/02/23(土) 09:18:55.19 ID:IBS/n4EE >>313 Smalltalk (Pharo 7) 21 factorial ==> 51090942171709440000 http://mevius.5ch.net/test/read.cgi/tech/1549160513/332
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 670 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s