プログラミングのお題スレです。
【出題と回答例】
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+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
363デフォルトの名無しさん
2019/02/24(日) 08:39:28.32ID:lq3Vey6S364デフォルトの名無しさん
2019/02/24(日) 08:59:23.56ID:k3GW1oFG お題
与えられた文字列を縦に表示する
入力
hello
出力
h
e
l
l
o
与えられた文字列を縦に表示する
入力
hello
出力
h
e
l
l
o
365デフォルトの名無しさん
2019/02/24(日) 09:18:40.92ID:FkqnBGPg >>364
ruby -e "'hello'.split('').each do |c| puts c end"
ruby -e "'hello'.split('').each do |c| puts c end"
366デフォルトの名無しさん
2019/02/24(日) 09:39:23.28ID:UNsYm68I367デフォルトの名無しさん
2019/02/24(日) 10:41:19.01ID:gbE7FXAb368デフォルトの名無しさん
2019/02/24(日) 10:45:19.09ID:gbE7FXAb369デフォルトの名無しさん
2019/02/24(日) 10:51:12.60ID:5XYYe3Vz370デフォルトの名無しさん
2019/02/24(日) 11:01:40.94ID:gbE7FXAb >>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
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
371デフォルトの名無しさん
2019/02/24(日) 11:04:08.38ID:gbE7FXAb >>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
>>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
372デフォルトの名無しさん
2019/02/24(日) 14:09:41.21ID:UKaroUbg Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'
String cr join: 'hello'
==> 'h
e
l
l
o'
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
