1 名前:デフォルトの名無しさん [2019/02/03(日) 11:21:53.20 ID:72eosYJ+.net] プログラミングのお題スレです。 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ https://mevius.2ch.net/test/read.cgi/tech/1538096947/
333 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 01:19:01.99 ID:CTQXI+x5.net] lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!
334 名前:デフォルトの名無しさん [2019/02/23(土) 02:10:15.51 ID:9pS68leH.net] >>313 bc n = 2; for (i = 3; i <= 21; i++) n*=i; n 出力 51090942171709440000
335 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 03:31:27.03 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 03:32:49.90 ID:R2s6jSV3.net] bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか… for(i=s=1;i<22;)s*=i++;s
337 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 04:30:09.37 ID:R2s6jSV3.net] >>326 恥ずかしながらdcコマンド知らなかった…いいねこれ。 ~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc 51090942171709440000
338 名前:デフォルトの名無しさん [2019/02/23(土) 08:05:10.28 ID:xK8/Ze+A.net] >>313 Maxima print(21!);
339 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 08:20:33.48 ID:znXlogg7.net] >>313 ;; Common Lisp (loop for i from 1 to 21 for r = i then (* r i) finally (print r))
340 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 08:45:55.53 ID:DQY5g4De.net] >>316 これは、本格的だな ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも
341 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 09:18:55.19 ID:IBS/n4EE.net] >>313 Smalltalk (Pharo 7) 21 factorial ==> 51090942171709440000
342 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:01:13.29 ID:+GfRG2y6.net] >>316 Java https://ideone.com/ZhJHKg
343 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:26:35.61 ID:DQY5g4De.net] >>313 Ruby ( 1..21 ).inject( 1, :* )
344 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:44:52.28 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:22:30.58 ID:R2s6jSV3.net] 例がちょっと意味分からない 1#=1 1以下の素数の積なのに1? 3#=4#=6 何これ? 5#=30 これだけ分かる
346 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:25:18.18 ID:R2s6jSV3.net] あ、二番目分かりました。 一行目だけ分からない
347 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:28:26.15 ID:+GfRG2y6.net] >>335 Java https://ideone.com/4M3U1T
348 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:34:54.53 ID:vMXU7Bcc.net] >>337 掛けるもののがないときは1として扱うのが普通だよ 0!とかΠの項数が0の時とか ただこの出題者はそのへん理解してないだろうから解く気がしない
349 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:40:09.27 ID:R2s6jSV3.net] >>339 ありがとう。 数学と同じとは限らないんだね。 1も素数としてやってみます。
350 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:47:45.99 ID:+eBVT+rm.net] >>340 1を素数と見做すんじゃなく空積の1
351 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:53:12.99 ID:W0y17tlk.net] というか数学でも0!=1!=1と定義されているのが普通だと思うし 高校でも大学でもそうじゃない問題を見たことがないのだが
352 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 13:53:38.08 ID:vMXU7Bcc.net] >>340 いや、むしろ数学の世界での慣習なんですけど…
353 名前:デフォルトの名無しさん [2019/02/23(土) 14:28:11.89 ID:DQY5g4De.net] 単位元(初期値)だろ。 足し算は0、掛け算は1 が、単位元 Ruby で、 ( 1..21 ).inject( 1, :* ) 1 が初期値で、:* で掛け算メソッドを渡している
354 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 15:02:20.95 ID:R2s6jSV3.net] >>342 > ただし素数階乗とは与えられた整数n以下のすべての素数の積である と書いてあるので、 「与えられた整数n」が1 のとき、 「与えられた整数n以下のすべての素数の積」 は、 「1以下のすべての素数の積」 となり、 1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。 お騒がせしました。
355 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 15:15:16.07 ID: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 名前:デフォルトの名無しさん [2019/02/23(土) 15:45:56.58 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 15:50:44.94 ID:5fn4St+r.net] Jどこで覚えればいいの? Effective J的な読みやすい書籍ないの?
358 名前:デフォルトの名無しさん [2019/02/23(土) 16:01:13.49 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 16:18:41.85 ID:Z/STDkD0.net] >>335 ruby https://ideone.com/ccP7e9
360 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 17:50:18.29 ID:oGmxRysL.net] >>321 これただのお絵描きやん 規制しろ!
361 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 18:00:12.84 ID:5fn4St+r.net] でかいキノコやらしい…
362 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 18:14:04.27 ID:2kPF298z.net] >>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装) https://ideone.com/XcsBQe
363 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 20:22:19.99 ID:ejRNWGjN.net] >>316 python(pypy) https://ideone.com/DV1w4s 本線: キュー使用したダイクストラ (+ 経路復元)。 サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。 さすがにpythonには少々きつく、pypyに逃げた。
364 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 00:49:59.19 ID:ROsmA06r.net] >>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?
365 名前:デフォルトの名無しさん [2019/02/24(日) 01:37:12.40 ID:jRfp9b62.net] >>313 Kotlin script println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))
366 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 01:45:28.46 ID:W3fm5ADB.net] >>355 何も変えずpython3で実行 https://ideone.com/IArwja 約6秒 vs 約0.2秒 まぁ、本当はpython3向けにもう少し治せそうだが
367 名前:さまよえる蟻人間 mailto:sage [2019/02/24(日) 05:55:10.72 ID:xnYazQgz.net] お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。
368 名前:さまよえる蟻人間 mailto:sage [2019/02/24(日) 06:09:09.10 ID:xnYazQgz.net] お題: スリープソートを実装せよ。
369 名前:さまよえる蟻人間 mailto:sage [2019/02/24(日) 06:27:08.15 ID:xnYazQgz.net] お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。 一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。
370 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 07:40:28.45 ID:lq3Vey6S.net] >>313 @Mathematica ライブラリ版 Factorial[21] 非ライブラリ版 Range[21] // Apply[Times, #] &
371 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:11:35.91 ID:UKaroUbg.net] >>335 Smalltalk (Pharo 7) [:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5 ==> 30
372 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:39:28.32 ID:lq3Vey6S.net] >>335 @Mathematica Range[5] // Select[#, PrimeQ] & // Apply[Times, #] &
373 名前:デフォルトの名無しさん [2019/02/24(日) 08:59:23.56 ID:k3GW1oFG.net] お題 与えられた文字列を縦に表示する 入力 hello 出力 h e l l o
374 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:18:40.92 ID:FkqnBGPg.net] >>364 ruby -e "'hello'.split('').each do |c| puts c end"
375 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:39:23.28 ID:UNsYm68I.net] >>364 octave https://ideone.com/MZvdVC
376 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:41:19.01 ID:gbE7FXAb.net] >>364 Perl5 ~ $ echo -n hello | perl -naF -E 'say for @F' h e l l o
377 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:45:19.09 ID:gbE7FXAb.net] >>358 Perl5 sleep 3*60; print "BEEP!\n";
378 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:51:12.60 ID:5XYYe3Vz.net] >>346 Pythonじゃ緩すぎだろw Brainfu*kとかJで挑戦したいと言わないと 世のマゾヒスト達からマサカリ投げられるぞw
379 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 11:01:40.94 ID: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 { 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
380 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 11:04:08.38 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 14:09:41.21 ID:UKaroUbg.net] Smalltalk (Pharo 7) String cr join: 'hello' ==> 'h e l l o'
382 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 14:14:37.55 ID:lq3Vey6S.net] >>364 @Mathematica "hello" // Characters // Riffle[#, "¥n"] & // StringJoin
383 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 14:37:33.43 ID:ke/CY5a3.net] >>351 いや、21 factorialをSmalltalk-76で実際に計算したものですよ! 動画にしたほうがよかったですか?^^;
384 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:44:30.88 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:56:11.32 ID:R6DRM9b9.net] >>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで) 'hello' joinSeparatedBy: Character cr. "= 'h e l l o' "
386 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:12:06.37 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:18:42.39 ID:+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 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:40:55.70 ID:+6ZRRI/z.net] >>378 pythonista の間違い。
389 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 19:37:23.57 ID: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 名前:デフォルトの名無しさん [2019/02/25(月) 02:16:17.34 ID:VuzBCyor.net] >>364 Kotlin script while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);
391 名前:デフォルトの名無しさん [2019/02/25(月) 02:42:58.27 ID:VuzBCyor.net] >>358 sh sleep 180 ; echo 'BEEP!'
392 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 02:47:11.29 ID:yxDnlxm5.net] >>364 ruby -e "'hello'.each_char do |c| puts(c) end"
393 名前:さまよえる蟻人間 mailto:sage [2019/02/25(月) 02:47:19.11 ID:qxzw13Bf.net] お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。
394 名前:さまよえる蟻人間 mailto:sage [2019/02/25(月) 03:51:24.00 ID:qxzw13Bf.net] >>384 ヒント: 一秒ごとにリセットするカウンターを使う。
395 名前:デフォルトの名無しさん [2019/02/25(月) 09:19:02.25 ID:KMrhrKmq.net] 意味がわからん
396 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 10:35:33.17 ID:OZaxYFd4.net] 模範解答があるんでしょ だからヒントを作れる なら最初から正解を出せと
397 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 10:52:58.23 ID:mBiroDnU.net] このコテうぜえから書き込み禁止にしろ
398 名前:デフォルトの名無しさん [2019/02/25(月) 11:25:48.34 ID:4jlXoier.net] スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。
399 名前:デフォルトの名無しさん [2019/02/25(月) 17:25:13.53 ID:KMrhrKmq.net] わかんないからちょっとやってみて
400 名前:デフォルトの名無しさん [2019/02/25(月) 18:50:50.58 ID:IURODyYm.net] >>364 J smoutput@>'hello'
401 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 19:00:24.37 ID:mboQc3Dn.net] >>364 JavaScript [...'hello'].forEach(c=>console.log(c)) または for(let c of 'hello')console.log(c) または console.log([...'hello'].join`\n`)
402 名前:デフォルトの名無しさん [2019/02/26(火) 01:01:25.98 ID:ZoqutRDZ.net] >>364 Ruby puts "Hello".split("")
403 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 02:14:00.16 ID:Jyzj3K2Z.net] お題:OS名を出力する
404 名前:デフォルトの名無しさん [2019/02/26(火) 02:51:12.85 ID:lsok3PaS.net] >>394 Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、 どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。 uname -o
405 名前:デフォルトの名無しさん [2019/02/26(火) 02:53:03.78 ID:lsok3PaS.net] >>394 Windows のコマンドプロンプトの場合はこれ。ただしバージョンも一緒に出てくる。 ver これもどうしてもプログラムにしたいならバッチファイルでこれだけ実行するようにしておけばよい。
406 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 07:52:39.56 ID: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 名前:デフォルトの名無しさん [2019/02/26(火) 08:17:26.80 ID: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 名前:デフォルトの名無しさん [2019/02/26(火) 10:23:47.93 ID:E0EMtjG2.net] >>394 Perl5 print "$^O\n";
409 名前:デフォルトの名無しさん [2019/02/26(火) 15:46:59.25 ID:N21l9DY8.net] >>364 Lua io.write((io.read("*a"):gsub(".","%0\n")))
410 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 15:54:05.05 ID:gjK+vdjr.net] お題: 任意のn-オミノを全種類出力するプログラム
411 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 15:55:57.75 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 18:05:30.42 ID: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 名前:デフォルトの名無しさん [2019/02/26(火) 20:30:26.61 ID:cNXsTeTJ.net] お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。
414 名前:デフォルトの名無しさん [2019/02/26(火) 23:29:53.47 ID:Tg4W+a2u.net] お題: 円の最大重複数を求めよ 例題 以下画像の場合、最大重複数は4です。 https://imgur.com/pbh3VSE.png 円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。 また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。 (理由は重複している面積は0だから。) 以下、本題。 画像のようなNo.0からNo.99までの100個の円があります。 これの円の最大重複数を整数で答えなさい。 https://imgur.com/WiRHA1F.png 入力データ: https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3 入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。 与えられる入力データは -800.0 ≦ x ≦ 800.0 -800.0 ≦ y ≦ 800.0 100.0 ≦ r ≦ 400.0 の条件を満たします。 画像は自作、多分正しい。
415 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 11:44:25.97 ID:wHsSBDML.net] お題: 自分自身のコードのコメントと非コメントを入れ替えたコードを出力するプログラムの コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに なっているプログラム
416 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 12:50:19.00 ID:haTnnqie.net] S式かRPNで書いてくれややこしい
417 名前:デフォルトの名無しさん [2019/02/27(水) 16:44:46.91 ID:1o6M4rID.net] >>406 サンプルプリーズ
418 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 19:23:18.85 ID: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 名前:デフォルトの名無しさん [2019/02/27(水) 19:25:22.96 ID:sZAuINQ9.net] お題 英今文字からなる文字列が与えられる。 各文字の大文字、小文字の組み合わせをすべて求める。 "ab"の場合 ab aB Ab AB
420 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 19:42:57.27 ID:haTnnqie.net] エーコン文字って何
421 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 19:49:50.41 ID:fYEBa3GD.net] >>409 これって要するにcombinationのfirstとlastじゃねえの next_combination()の一番最初と最後だよ
422 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 20:08:19.81 ID:Tij8CMAh.net] >>409 こんな感じ? https://paiza.io/projects/YfC3K-dnEC7TuEXJjDFMGw
423 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 21:30:26.97 ID: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 名前:デフォルトの名無しさん [2019/02/28(木) 04:32:37.78 ID:oRFlldUh.net] >>410 Kotlin https://paiza.io/projects/y4eoD5DUuLdHi6S6hcFvrw
425 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 06:17:40.15 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 08:43:33.13 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 09:14:29.16 ID: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 名前:デフォルトの名無しさん [2019/02/28(木) 10:31:36.11 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 10:34:43.50 ID:7nNuTdUM.net] 簡単な問題にはものすごい勢いでこたえるのに、難しい問題には見てみぬふりをするのなwwww 難しい問題にはわかりませんだろ
431 名前:デフォルトの名無しさん [2019/02/28(木) 13:46:39.00 ID:oAFMMcaR.net] >>420 わからないとかやる気が起きないお題に対してわざわざわからないだのなんだのとみんなで書いてたらそういった書き込みでこのスレはすぐに一杯になるだろう。 そんなの無駄で邪魔だから一々書かんでスルーしてくれた方が良い。
432 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 14:39:02.28 ID:7nNuTdUM.net] >>421 別の問題を答えるときに一緒にわかりませんと書けば1行消費するだけで済むだろ? それも嫌なのか?
433 名前:デフォルトの名無しさん mailto:sage [2019/02/28(木) 14:50:46.53 ID:wVeu6yBT.net] >>422 で、もちろんお前自身はそれを実践しているんだよね? 全答しているなら別にいいんだけどさwww