プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
https://mevius.2ch.net/test/read.cgi/tech/1538096947/
探検
プログラミングのお題スレ Part13
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/03(日) 11:21:53.20ID:72eosYJ+263デフォルトの名無しさん
2019/02/20(水) 02:28:54.15ID: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
$ 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
264デフォルトの名無しさん
2019/02/20(水) 02:51:47.69ID: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)))
;; 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)))
265さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 03:32:48.09ID:jAMIqMc6 わーい、これでダウンロード制限された端末でDLできるぞ。やったー!
266デフォルトの名無しさん
2019/02/20(水) 03:35:30.81ID:VV/V1Ls8 お題スレってそういう趣旨の場所だっけか?
267デフォルトの名無しさん
2019/02/20(水) 03:43:59.14ID:J4bEIWoi >>265
できるかなあ?どういう制限しているかにもよるぞ。
できるかなあ?どういう制限しているかにもよるぞ。
268デフォルトの名無しさん
2019/02/20(水) 05:32:07.81ID:B2QSVSiS PowerShell にも、curl, wget ある
get-alias (gal)
curl -> Invoke-WebRequest
wget -> Invoke-WebRequest
と言うことは、Ruby からも、そのコマンドを呼べる
get-alias (gal)
curl -> Invoke-WebRequest
wget -> Invoke-WebRequest
と言うことは、Ruby からも、そのコマンドを呼べる
269268
2019/02/20(水) 09:30:07.43ID:B2QSVSiS なんと、コマンドプロンプトで、
where curl と入力すると、
C:\Windows\System32\curl.exe
PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !
where curl と入力すると、
C:\Windows\System32\curl.exe
PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !
270デフォルトの名無しさん
2019/02/20(水) 09:49:14.61ID:hK+DOQws >>268>>269
死ね
死ね
271デフォルトの名無しさん
2019/02/20(水) 09:52:59.12ID: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 ではそれはできない。
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 ではそれはできない。
272268
2019/02/20(水) 10:31:11.68ID: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
require 'nokogiri'
html = `curl http://www.example.com/`
# curl は書き込めないので、全角に変換した
doc = Nokogiri::HTML( html )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
273デフォルトの名無しさん
2019/02/20(水) 11:50:14.05ID:hK+DOQws >>272
死ね
死ね
274デフォルトの名無しさん
2019/02/20(水) 13:03:16.05ID:agArr1lp >>269
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。
275デフォルトの名無しさん
2019/02/20(水) 17:40:48.68ID: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
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
276デフォルトの名無しさん
2019/02/20(水) 17:58:34.75ID:t1mcuuOB >>258
Pharo 7
'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents
Pharo 7
'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt' asUrl retrieveContents
277デフォルトの名無しさん
2019/02/20(水) 18:10:48.97ID:3A0CDvTh >>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。
278デフォルトの名無しさん
2019/02/20(水) 23:51:29.53ID:MUUM+ThN279デフォルトの名無しさん
2019/02/21(木) 18:54:22.61ID:1axkeZoV お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。
https://ideone.com/pVuO7T
https://ideone.com/pVuO7T
280デフォルトの名無しさん
2019/02/21(木) 19:06:17.90ID:TUYpSwcQ >>279 JavaScript
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango
281デフォルトの名無しさん
2019/02/21(木) 19:17:09.75ID:eUc7EqKm282デフォルトの名無しさん
2019/02/21(木) 19:27:21.23ID: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
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
283デフォルトの名無しさん
2019/02/21(木) 19:31:58.30ID:lqQG1Hmj 題意は
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ
284デフォルトの名無しさん
2019/02/21(木) 19:43:56.00ID:YnrfI9YG そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな
285デフォルトの名無しさん
2019/02/21(木) 19:51:21.05ID:2zdYL4u2 >>283
あ、そうか。
不恰好だけどこれで一応対応。
(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]
スマートな解答も考えてみるよ。
あ、そうか。
不恰好だけどこれで一応対応。
(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]
スマートな解答も考えてみるよ。
286デフォルトの名無しさん
2019/02/21(木) 20:16:12.26ID:eUc7EqKm >>283 ごめん、俺もカンマが抜けてた。
数字の場合の模範解答をよろしく。
数字の場合の模範解答をよろしく。
287デフォルトの名無しさん
2019/02/21(木) 20:20:50.88ID: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
空リストや要素数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
288デフォルトの名無しさん
2019/02/21(木) 20:59:38.40ID:lqQG1Hmj >>286
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk
要素数が1個以下の場合はifで分離するだけなので略
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk
要素数が1個以下の場合はifで分離するだけなので略
289デフォルトの名無しさん
2019/02/21(木) 21:09:47.73ID:y3+CYNZ6 >>279 Common Lisp
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9
290デフォルトの名無しさん
2019/02/21(木) 21:21:18.07ID: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"))
冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは
python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))
JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))
冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは
291さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:21:18.26ID:PQQkN+7n292デフォルトの名無しさん
2019/02/21(木) 21:30:40.21ID:lqQG1Hmj よく考えたらreversedなんか使わんでも
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし
293さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:32:52.15ID:3Jj6vI7v 出力文字列の長さは最短でなければならない。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。
294さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:37:53.05ID:3Jj6vI7v 一番外側の { } は省略可能。
共通部分がないときは、/で区切って出力せよ。
共通部分がないときは、/で区切って出力せよ。
295279
2019/02/21(木) 21:39:50.99ID:1axkeZoV296さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/21(木) 21:55:49.44ID:PQQkN+7n このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。
297デフォルトの名無しさん
2019/02/21(木) 22:55:49.76ID: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のはワンライナーでも比較的読みやすくて、ちょっと羨ましい。
>>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のはワンライナーでも比較的読みやすくて、ちょっと羨ましい。
298デフォルトの名無しさん
2019/02/21(木) 22:59:16.06ID:2zdYL4u2 >>297
弄ってるうちに要素一以下だとバグ出てた。
正しいコードはこっち。
putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]
弄ってるうちに要素一以下だとバグ出てた。
正しいコードはこっち。
putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]
299デフォルトの名無しさん
2019/02/21(木) 23:36:37.11ID: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
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
300デフォルトの名無しさん
2019/02/22(金) 00:04:51.72ID:EatRhjER301デフォルトの名無しさん
2019/02/22(金) 00:07:27.55ID:wSgiM5bY302デフォルトの名無しさん
2019/02/22(金) 00:28:04.99ID:9PVAJM4v >>300
そういう関数が既にあるの?
そういう関数が既にあるの?
303デフォルトの名無しさん
2019/02/22(金) 00:31:28.15ID:wSgiM5bY304デフォルトの名無しさん
2019/02/22(金) 00:49:22.57ID:9PVAJM4v ほえー
305デフォルトの名無しさん
2019/02/22(金) 06:09:02.19ID:HhIJRo4K >>279
Smalltalk (Pharo 7)
#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'
#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'
#('apple') asCommaStringAnd
==> 'apple'
Smalltalk (Pharo 7)
#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'
#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'
#('apple') asCommaStringAnd
==> 'apple'
306デフォルトの名無しさん
2019/02/22(金) 06:36:03.41ID: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([])) # 空だ
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([])) # 空だ
307305
2019/02/22(金) 07:07:04.28ID:HhIJRo4K しまった既出だったorz
308デフォルトの名無しさん
2019/02/22(金) 07:58:55.12ID: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
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
309デフォルトの名無しさん
2019/02/22(金) 08:05:10.35ID:6TNKk8ap310デフォルトの名無しさん
2019/02/22(金) 08:11:07.14ID:EatRhjER >>302
Smalltalkは1970年代頃にはすでにこんな感じで
https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!
Smalltalkは1970年代頃にはすでにこんな感じで
https://upload.wikimedia.org/wikipedia/commons/6/6e/Smalltalk-76.blowup.png
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!
311デフォルトの名無しさん
2019/02/22(金) 09:34:06.68ID:Ao+GBu+d ラティス構造って要するに正規表現を生成すりゃーいいのか?
312デフォルトの名無しさん
2019/02/22(金) 19:34:29.73ID:CY9He0wk313デフォルトの名無しさん
2019/02/22(金) 19:43:43.74ID:FMSx1nas お題:21の階乗を計算して表示せよ。
https://ideone.com/gQAd37
https://ideone.com/gQAd37
314デフォルトの名無しさん
2019/02/22(金) 20:16:33.34ID:9PVAJM4v >>310
ほえー
ほえー
315デフォルトの名無しさん
2019/02/22(金) 21:26:47.09ID:py41/SAb >>313 JavaScript
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));
316デフォルトの名無しさん
2019/02/22(金) 21:42:16.23ID:THqrb0iU お題:
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)
S5111
1115G
=> 6
S1111
98642
G1111
=> 9
13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)
S5111
1115G
=> 6
S1111
98642
G1111
=> 9
13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?
317デフォルトの名無しさん
2019/02/22(金) 21:49:55.63ID:2ARSyvEs318デフォルトの名無しさん
2019/02/22(金) 22:00:24.05ID:py41/SAb こういう文章題好き。
でも実力不足で解けない…
a*かな?
でも実力不足で解けない…
a*かな?
319デフォルトの名無しさん
2019/02/22(金) 22:05:57.76ID:AX8XyL13 >>313 Perl5
use bignum (l=>GMP);
$n = 1;
$n *= $_ for 2..21;
print "$n\n";
実行例
~ $ perl 13_313.pl
51090942171709440000
use bignum (l=>GMP);
$n = 1;
$n *= $_ for 2..21;
print "$n\n";
実行例
~ $ perl 13_313.pl
51090942171709440000
320デフォルトの名無しさん
2019/02/22(金) 22:26:00.12ID:eQxt3fSm >>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))
console.log((f=n=>n?n*f(n-1):1)(21))
321デフォルトの名無しさん
2019/02/23(土) 00:16:14.24ID:KCAwaSn8322デフォルトの名無しさん
2019/02/23(土) 00:27:48.65ID: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 })))
#階乗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 })))
323デフォルトの名無しさん
2019/02/23(土) 01:14:20.46ID:9pS68leH >>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。
println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))
出力
abc, def and xyz
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。
println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))
出力
abc, def and xyz
324デフォルトの名無しさん
2019/02/23(土) 01:19:01.99ID:CTQXI+x5 lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!
325デフォルトの名無しさん
2019/02/23(土) 02:10:15.51ID:9pS68leH326デフォルトの名無しさん
2019/02/23(土) 03:31:27.03ID: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
~$ 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
327デフォルトの名無しさん
2019/02/23(土) 03:32:49.90ID:R2s6jSV3 bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s
for(i=s=1;i<22;)s*=i++;s
328デフォルトの名無しさん
2019/02/23(土) 04:30:09.37ID:R2s6jSV3 >>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000
329デフォルトの名無しさん
2019/02/23(土) 08:05:10.28ID:xK8/Ze+A >>313 Maxima
print(21!);
print(21!);
330デフォルトの名無しさん
2019/02/23(土) 08:20:33.48ID:znXlogg7331デフォルトの名無しさん
2019/02/23(土) 08:45:55.53ID:DQY5g4De332デフォルトの名無しさん
2019/02/23(土) 09:18:55.19ID:IBS/n4EE333デフォルトの名無しさん
2019/02/23(土) 12:01:13.29ID:+GfRG2y6334デフォルトの名無しさん
2019/02/23(土) 12:26:35.61ID:DQY5g4De335デフォルトの名無しさん
2019/02/23(土) 12:44:52.28ID:W0y17tlk 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
標準ライブラリ内の数学関数の例
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
336デフォルトの名無しさん
2019/02/23(土) 13:22:30.58ID:R2s6jSV3 例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる
337デフォルトの名無しさん
2019/02/23(土) 13:25:18.18ID:R2s6jSV3 あ、二番目分かりました。
一行目だけ分からない
一行目だけ分からない
338デフォルトの名無しさん
2019/02/23(土) 13:28:26.15ID:+GfRG2y6339デフォルトの名無しさん
2019/02/23(土) 13:34:54.53ID:vMXU7Bcc340デフォルトの名無しさん
2019/02/23(土) 13:40:09.27ID:R2s6jSV3341デフォルトの名無しさん
2019/02/23(土) 13:47:45.99ID:+eBVT+rm >>340
1を素数と見做すんじゃなく空積の1
1を素数と見做すんじゃなく空積の1
342デフォルトの名無しさん
2019/02/23(土) 13:53:12.99ID:W0y17tlk というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが
高校でも大学でもそうじゃない問題を見たことがないのだが
343デフォルトの名無しさん
2019/02/23(土) 13:53:38.08ID:vMXU7Bcc >>340
いや、むしろ数学の世界での慣習なんですけど…
いや、むしろ数学の世界での慣習なんですけど…
344デフォルトの名無しさん
2019/02/23(土) 14:28:11.89ID:DQY5g4De 単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元
Ruby で、
( 1..21 ).inject( 1, :* )
1 が初期値で、:* で掛け算メソッドを渡している
足し算は0、掛け算は1 が、単位元
Ruby で、
( 1..21 ).inject( 1, :* )
1 が初期値で、:* で掛け算メソッドを渡している
345デフォルトの名無しさん
2019/02/23(土) 15:02:20.95ID:R2s6jSV3 >>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である
と書いてあるので、
「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である
と書いてあるので、
「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。
346デフォルトの名無しさん
2019/02/23(土) 15:15:16.07ID:R2s6jSV3 できた
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に挑戦したい
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に挑戦したい
347デフォルトの名無しさん
2019/02/23(土) 15:45:56.58ID:xK8/Ze+A348デフォルトの名無しさん
2019/02/23(土) 15:50:44.94ID:5fn4St+r Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?
Effective J的な読みやすい書籍ないの?
349デフォルトの名無しさん
2019/02/23(土) 16:01:13.49ID:BD+5EZ0V >>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>
(defun ! (n)
(apply #'* (loop for i from 1 upto n collect i)))
CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>
350デフォルトの名無しさん
2019/02/23(土) 16:18:41.85ID:Z/STDkD0351デフォルトの名無しさん
2019/02/23(土) 17:50:18.29ID:oGmxRysL352デフォルトの名無しさん
2019/02/23(土) 18:00:12.84ID:5fn4St+r でかいキノコやらしい…
353デフォルトの名無しさん
2019/02/23(土) 18:14:04.27ID:2kPF298z354デフォルトの名無しさん
2019/02/23(土) 20:22:19.99ID:ejRNWGjN >>316
python(pypy) https://ideone.com/DV1w4s
本線: キュー使用したダイクストラ (+ 経路復元)。
サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
python(pypy) https://ideone.com/DV1w4s
本線: キュー使用したダイクストラ (+ 経路復元)。
サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。
355デフォルトの名無しさん
2019/02/24(日) 00:49:59.19ID:ROsmA06r >>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?
356デフォルトの名無しさん
2019/02/24(日) 01:37:12.40ID:jRfp9b62 >>313
Kotlin script
println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
Kotlin script
println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
357デフォルトの名無しさん
2019/02/24(日) 01:45:28.46ID:W3fm5ADB358さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 05:55:10.72ID:xnYazQgz お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。
359さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 06:09:09.10ID:xnYazQgz お題: スリープソートを実装せよ。
360さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/24(日) 06:27:08.15ID:xnYazQgz お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
361デフォルトの名無しさん
2019/02/24(日) 07:40:28.45ID:lq3Vey6S362デフォルトの名無しさん
2019/02/24(日) 08:11:35.91ID:UKaroUbg >>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も ★2 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- 円安・株安・物価高・少子高齢化・戦争前夜・インフラ崩壊 日本の未来は世界が羨む… [667744927]
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- んなっても良いお🏡
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【朗報】中国との戦争、世論調査で「賛成」が「反対」を上回るwwwwwwwww
