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/
699 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:14:25.92 ID:vvVzV1YI.net] >>676 どこにそんな決まりがあるの? 普通 ver.1 が出て、その後ver.1.0 が出れば、ver.1.0 の方が新しいのは明らかだろ。 総称として、ver.1という場合もあるが、その場合はver.1.9も含まれる。
700 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:14:59.41 ID:ko69m/9G.net] 見つけた RPM::VersionSort - RPM version sorting algorithm, in perl XS - metacpan.org https://metacpan.org/pod/RPM::VersionSort
701 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:16:24.45 ID:vvVzV1YI.net] とにかくバージョン番号が異なれば別のバージョンとみなすのが普通だろ。 同じと思う方がおかしい。
702 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:16:49.16 ID:0tbf1s3D.net] お題:“木”という漢字を使って以下のようなフラクタル図形を描け n=0 木 n=1 -木 木木 n=2 ---木 --木木 -木--木 木木木木 n=3 -------木 ------木木 -----木--木 ----木木木木 ---木------木 --木木----木木 -木--木--木--木 木木木木木木木木 ※ハイフンはスペースだと思ってください
703 名前:さまよえる蟻人間 mailto:age [2019/03/14(木) 20:26:23.57 ID:1+g2CCuw.net] >>683 Win32の固定幅のバージョン情報では4つの整数をドットで区切ったものを使用する。VerInstallFile関数はバージョン番号を比較する。0.0と0.0.0.0が違うバージョンだとアウトだ。
704 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:45:22.76 ID:vvVzV1YI.net] >>687 そんなローカルールなんて知るかよ。 もしそういう意図なら問題を訂正しろよ。 いちいち誰かのいちゃもんに付き合ってる暇はない。
705 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 20:52:19.11 ID:YiVNNcx0.net] >>665 の修正 const vComp = (a, b) => { let verA = a.split `.`; let verB = b.split `.`; const len = Math.max(verA.length, verB.length); verA = [...verA, ...'0'.repeat(len - verA.length)]; verB = [...verB, ...'0'.repeat(len - verB.length)]; const cmps = verA.map((v, i) => Math.sign(verA[i] - verB[i])); return Math.sign(cmps.reduce((acc, v, i) => acc + v * 2 ** (len - i)), 0); }; console.log(vComp('0.1.2', '0.0')); console.log(vComp('1.2.3', '1.3')); console.log(vComp('0.0.0', '0.0')); console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp)); //いいかげん結果省略
706 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 22:10:39.99 ID:8oAE3RnG.net] >>688 例に0.0.0と0.0が等しいって書いてあるんだが
707 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:16:14.88 ID:3EvgP48J.net] >>688 > いちいち誰かのいちゃもんに付き合ってる暇はない。 ならスルーしろよ お前の頓珍漢な解釈なんて要らんし
708 名前:デフォルトの名無しさん mailto:sage [2019/03/14(木) 23:41:35.78 ID:nI5lwjDU.net] >>658 Squeak Smalltalk | fn | fn := [:strs | (strs collect: [:str | (str subStrings: '.') polynomialEval: 1/1e4]) reduce: #<=>]. fn value: #('0.1.2' '0.0'). "=> 1 " fn value: #('1.2.3' '1.3'). "=> -1 " fn value: #('0.0.0' '0.0'). "=> 0 "
709 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 00:00:24.31 ID:27sSd34q.net] >>658 Perl5 use feature current_sub; @is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']); for (@is) { ($l, $r) = @$_; @l = split'\.', $l; @r = split'\.', $r; $z = sub { my $a = shift @l; my $b = shift @r; if (defined $a or defined $b) { $a //= 0; $b //= 0; $a <=> $b or __SUB__->() } else { 0 } }->(); %d = (-1 => ' <', 0 => '==', 1 => '> '); print "$l $d{$z} $r : $z\n"; } 実行結果 ~ $ perl 13_653.pl 0.1.2 > 0.0 : 1 1.2.3 < 1.3 : -1 0.0.0 == 0.0 : 0
710 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 00:10:49.43 ID:27sSd34q.net] >>678 Perl5 @f = (0, 1); push @f, $f[-2] + $f[-1] while @f < 10; print "@f\n"; 実行結果 ~ $ perl 13_673_fib10.pl 0 1 1 2 3 5 8 13 21 34 Prel6、いいな…
711 名前: mailto:sage [2019/03/15(金) 00:29:52.08 ID:LCz/5Veu.net] >>680 >1回の分岐で決めろ! https://ideone.com/15k0PN は題意を満たしていますか?
712 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 00:45:04.99 ID:GUP5tEyB.net] 2回分岐してるように見えるが
713 名前:デフォルトの名無しさん [2019/03/15(金) 00:50:01.20 ID:ltf0XXfV.net] >>671 I 行単位で昇順にソートする場合 exit "hello world" println 文字単位のソートの場合は難しそう。
714 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 00:52:36.60 ID:J+j6Qj2a.net] >>680 Java https://ideone.com/dAlKtw 0回じゃお題満たしてないからだめです?
715 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 01:15:34.20 ID:T0clmjRI.net] >>678 Squeak Smalltalk | fibGen | fibGen := [:a :b | Generator on: [:g | [g yield: a. b := a + b. a := b - a] repeat]]. (fibGen value: 0 value: 1) next: 10. "=> an OrderedCollection(0 1 1 2 3 5 8 13 21 34) "
716 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 01:34:55.02 ID:4EriVrie.net] >>686 Squeak Smalltalk | sp fn | sp := $-. "sp := Character space." fn := [:n | | tree | tree := [:lines :count | (lines collectWithIndex: [:line :idx | line, (String new: idx - 1 * 2 withAll: sp), line ]), lines ]. (((1 to: n) inject: #('木') into: tree) collectWithIndex: [:line :idx | (String new: idx - 1 withAll: sp), line ]) reversed asStringWithCr ]. fn value: 0. "=> '木' " fn value: 1. "=> '-木 木木' " fn value: 2. "=> '---木 --木木 -木--木 木木木木' "
717 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 01:51:53.98 ID:Fj/79Ht+.net] >>678 javascript const take = n => function*(iterable) { const iterator = iterable[Symbol.iterator](); for (let i = 0; i < n; i++) { const {value, done} = iterator.next(); if (done) break; yield value; } }; const fibo = function*() { const memo = [0n, 1n]; const fib = n => n in memo ? memo[n] : memo[n] = fib(n - 2) + fib(n - 1); for(let i = 0; ; i++) yield fib(i); }(); console.log([...take(10)(fibo)]); 結果: [0n, 1n, 1n, 2n, 3n, 5n, 8n, 13n, 21n, 34n]
718 名前:デフォルトの名無しさん [2019/03/15(金) 08:40:18.32 ID:VdqhZ9XO.net] >>678 Common Lisp https://ideone.com/fbbBbx
719 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 10:29:40.47 ID:4uXCwYPV.net] >>701 よく考えたら配列で出力する必要もなかった console.log(...take(10)(fibo)); 結果: 0 1 1 2 3 5 8 13 21 34
720 名前:デフォルトの名無しさん [2019/03/15(金) 10:50:31.62 ID:ltf0XXfV.net] >>671 Lua a=ture a=a or print("hello world")
721 名前:デフォルトの名無しさん [2019/03/15(金) 10:54:07.06 ID:EVqxIhVf.net] >>678 Haskell main = (print.take 10) fibs where fibs = 0:1:zipWith (+) fibs (tail fibs)
722 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 11:30:37.72 ID:gesJPCRi.net] >>675 訂正 Python def ver (v): s = list( map(int , v.split('.') ) ) for _ in s: if s[-1] == 0 :s.pop(-1) return s def cmp(v0,v1): v0 = ver(v0) v1 = ver(v1) if v0==v1: return 0 else: return 1 if (v0 > v1) else -1 print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') , cmp('10.0','9.1') , cmp('1.1', '1.1') , cmp('1.2.0.0','1.2.0') , cmp('1.2.3','1.3') ) # 1 1 1 0 0 -1
723 名前:デフォルトの名無しさん [2019/03/15(金) 12:06:15.98 ID:phFelL6J.net] >>671 「ソートすると」ではなく「ソートしてからその出力を実行またはコンパイルして実行すると」なのでは?
724 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:00:31.13 ID:1zMWa3GW.net] >>707 せやで
725 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 13:38:24.99 ID:CRw2aIHX.net] そーっとしておこう
726 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 15:16:52.97 ID:1zMWa3GW.net] お題: プログラムのコードの文字を縦読みしたコードが実行可能なコード
727 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 17:37:30.24 ID:g4S7Lu9n.net] お題 2桁16進数化したものをつなげた形でIPアドレスが与えられる。(例:192.168.0.1 -> C0A80001) 与えられたIPアドレスからホスト名を逆引きせよ。 例 08080808 -> google-public-dns-a.google.com 9da6e21a -> www.cnn.com
728 名前:デフォルトの名無しさん [2019/03/15(金) 18:51:48.50 ID:phFelL6J.net] >>711 Perl5 https://paiza.io/projects/pgmsypvAWHlJ0UwFis4OFg?language=perl
729 名前:673 mailto:sage [2019/03/15(金) 19:08:00.81 ID:3zDqFokC.net] >>678 java https://ideone.com/vNVR4y >>678 c https://ideone.com/P6eqTd
730 名前:デフォルトの名無しさん mailto:sage [2019/03/15(金) 19:13:09.78 ID:4uXCwYPV.net] >>711 node const reverse = hexIP => require('dns').reverse(hexIP .split(/^(..)(..)(..)(..)$/g) .map(xx => parseInt(xx, 16) || '') .join('.').replace(/^\.|\.$/g, ''), (err, hostnames) => { console.log(hostnames); }); console.log(reverse('08080808')); //=> [ 'google-public-dns-a.google.com' ] console.log(reverse('9da6e21a')); //=> [ 'www.cnn.com' ]
731 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 01:04:28.66 ID:moiau3OK.net] >>693 もっと簡潔に書けるんだった… >>658 Perl5 use feature current_sub; @is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']); for (@is) { ($l, $r) = @$_; @l = split'\.', $l; @r = split'\.', $r; $z = sub { my $a = shift @l; my $b = shift @r; (defined $a or defined $b) ? ($a <=> $b or __SUB__->()) : 0 }->(); %d = qw{-1 < 0 == 1 >}; print "$l $d{$z} $r : $z\n"; } 実行結果 ~ $ perl 13_653.pl 0.1.2 > 0.0 : 1 1.2.3 < 1.3 : -1 0.0.0 == 0.0 : 0
732 名前:デフォルトの名無しさん [2019/03/16(土) 02:33:36.77 ID:ksQagb59.net] >>658 Kotlin https://paiza.io/projects/Uidg2dU-H0l3liAmw1scwQ
733 名前:デフォルトの名無しさん [2019/03/16(土) 06:51:03.68 ID:x9tnPyz1.net] >>671 Haskell 空文字は出力しないと動かないから許して。(動く場合はmain =でパターンマッチして出力文埋め込むだけだけど) ソートした自身の書き込み先、実行先は自身じゃ無いといけないとは書いてない。 import System.Process main = putStr "" >> readFile "runmyself.hs" >>= \f -> writeFile "runmyself2.hs" ((replace.unlines.qsort.lines) f) >> callCommand "runghc runmyself2.hs" replace [] = [] replace (p:u:t:s:t2:r:x:y:z:xs) | (p:u:t:s:t2:r:x:y:z:[]) == "putStr \"\"" = "putStrLn \"Hello World\"" ++ replace xs replace (a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:xs) | (a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:[]) == ">> callCommand \"runghc runmyself2.hs\"" = "" ++ replace xs replace (x:xs) = x:replace xs qsort [] = [] qsort (x:xs) = qsort [s| s <- xs, s <= x] ++ [x] ++ qsort [l| l <- xs, l > x]
734 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 14:50:17.74 ID:0dLFyPZP.net] >>686 Perl5 use feature say; $n = 0; @t = ('木'); say "n=$n\n$t[0]"; for $n (1..2) { $l = '-' x 2**($n-1); @u = map{$l . $_ . $l} @t; @w = map{$t[$_].$t[$_]} 0..$#t; @t = (@u, @w); say "n=$n"; say for @t; } 実行例 ~ $ perl 13_681.pl n=0 木 n=1 -木- 木木 n=2 ---木--- --木木-- -木--木- 木木木木 注) 正直者には、-はスペースに見えます。
735 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 16:51:50.43 ID:EVMD7h0V.net] お題: プログラム言語をなにも知らない人にもプログラムの意味が理解できるコメント無しのhello worldを出力するコプログラム
736 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 17:11:38.87 ID:0dLFyPZP.net] わかりません><
737 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 17:16:48.87 ID:EVMD7h0V.net] お題: 文字列に丁度いい具合にグリッチを入れて超かっこいい文字列を作るプログラム
738 名前:さまよえる蟻人間 mailto:age [2019/03/16(土) 17:18:04.51 ID:PQISp+Pa.net] グリッチは広辞苑には載っていません。説明して下さい。
739 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 17:21:14.90 ID:EVMD7h0V.net] >>722 いやです
740 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 17:36:13.64 ID:0dLFyPZP.net] >>721 perl5 perl-users.jp/articles/advent-calendar/2011/acme/6
741 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:05:38.53 ID:INaBYg0f.net] グリッチってアレでしょ? あの、整いました!ってやつ。 最近みないな。 https://glitch.com
742 名前:707 [2019/03/17(日) 01:26:35.49 ID:5dC2feuc.net] >>711 Kotlin https://paiza.io/projects/PHrLKrBMqZYA6AC9bUWDcg 何故か 9da6e21a の方はホスト名になってくれず IP アドレスの文字列になる。
743 名前:707 [2019/03/17(日) 02:33:00.06 ID:5dC2feuc.net] >>711 C https://paiza.io/projects/ZW4sJq_ea_wQQxe_vOlGjQ gethostbyname() や gethostbyaddr() ではなく getnameinfo() 使ってみました。
744 名前:デフォルトの名無しさん [2019/03/17(日) 06:18:59.33 ID:k04EM+xl.net] 2桁までの足し算の筆算を表示せよ。 例: 29 +15 ---- 14 3 ---- 44 29 + 5 ---- 14 2 ---- 34
745 名前:デフォルトの名無しさん [2019/03/17(日) 06:20:05.97 ID:5dC2feuc.net] >>686 Kotlin https://paiza.io/projects/wzAUkDgm-BUe9ENI4NFDYw
746 名前:デフォルトの名無しさん [2019/03/17(日) 07:23:54.75 ID:1ggb6IGK.net] お題 実数a,b (0<a<b)が与えられたとき、平面座標(a,b),(0,0),(a,-b)の3点を通る円の半径を求める。
747 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:27:24.80 ID:vfP8HMqf.net] 余弦定理と正弦定理1回ずつ使うだけだな
748 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 07:31:01.10 ID:OwOB9RAr.net] 数学で解けてもコードに落とせない人っているよね
749 名前:デフォルトの名無しさん [2019/03/17(日) 08:41:45.83 ID:k04EM+xl.net] >>732 居るけど、そういう人って機械自体が苦手な人。 機械と数学に強くてコードに落とせない人には会ったことがない。 機械には強いけど数学苦手だからコードに落とせないって人は(自分含め)沢山いるが。
750 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:19:22.82 ID:gm8A83sV.net] 自転車修理屋さんが機械に強いけどコードなんて、かけなさそう
751 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:38:59.54 ID:TUY5K+QC.net] >>728 Perl5 for (<DATA>) { ($l, $o, $r) = split; @l = $l =~ /(\d?)(\d)/; @r = $r =~ /(\d?)(\d)/; $a1 = $l[0] + $r[0]; $a0 = $l[1] + $r[1]; @a1 = $a1 =~ /(\d?)(\d)/; @a0 = $a0 =~ /(\d?)(\d)/; $a = 10*$a1 + $a0; $" = ''; print <<"EOF"; @l $o@r --- @a1 @a0 --- $a EOF } __DATA__ 29 + 15 29 + 5
752 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:40:50.32 ID:TUY5K+QC.net] >>735 の実行結果 ~ $ perl 13_723.pl 29 +15 --- 3 14 --- 44 29 +5 --- 2 14 --- 34 せっかくのスペース調整が詰まっちゃって残念なのでアンカーでポップアップして見てね >>736
753 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 12:41:06.87 ID:PfKDQB+U.net] >>730 C++ https://ideone.com/Mvx9Mp
754 名前:デフォルトの名無しさん [2019/03/17(日) 13:19:09.72 ID:k04EM+xl.net] >>728 掛け算に対応したり、1桁どうしの計算用フォーマット作ったりしてたら規模がでかくなった(・ω・`) 1 * 2 ----- 2 10 * 0 ----- 0 Haskell https://ideone.com/SCzGKq
755 名前:デフォルトの名無しさん [2019/03/17(日) 13:39:28.89 ID:yIqzgq0g.net] >>686 Common Lisp https://ideone.com/Mutq4v
756 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:42:43.38 ID:7j/Zhhp5.net] >>728 ネタ回答: WolframAlpha API / node // index.js const {get} = require('http'); const appid = '<<YOUR WolframAlpha APP ID>>'; process.stdin.on('data', data => { get(`api.wolframalpha.com/v2/query?appid=${appid}&input=${encodeURIComponent (data.toString().trim())}&podstate=Result__Step-by-step+solution&format=image&output=json`, res => { res.setEncoding('utf8'); let body = ''; res.on('data', chunk => {body += chunk;}); res.on('end', () => { get(JSON.parse(body).queryresult.pods.filter(({title}) => title === 'Results')[0].subpods.filter(({title}) => title === 'Possible intermediate steps')[0].img.src, res => { res.on('data', data => {process.stdout.write(data)}); }); }); }); }); $ echo 29+15 | node . > ./test1.gif https://i.imgur.com/QxolfNz.gif $ echo 29+5 | node . > ./test2.gif https://i.imgur.com/D0r3sSg.gif $ echo 29*15 | node . > ./test3.gif https://i.imgur.com/imvQO5g.gif 試しに一桁×一桁やってみたらなんだか微妙な計算過程に… $ echo 5*5 | node . > ./test.gif https://i.imgur.com/8z3kZPf.gif あと割り算はAPIからでは計算過程のURL取れなかった
757 名前:デフォルトの名無しさん [2019/03/17(日) 19:54:31.54 ID:k04EM+xl.net] >>740 こうやって足し算の筆算とは言え、人間の思考過程をプログラムで再現してみると小学生から結構複雑な処理してるんだなと思う。 もっと人間の処理に近づけるなら文字列として認識して、1桁目を数字に変換して〜みたいになるんだろうけど。
758 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:48:25.97 ID:t+AGMGYK.net] >>494 (CSVはコンマ区切りの値だよ)
759 名前:デフォルトの名無しさん mailto:age [2019/03/17(日) 23:32:46.95 ID:wEirTeMQ.net] >>742 カンマを逆から読むとマンコですよ
760 名前:デフォルトの名無しさん mailto:age [2019/03/17(日) 23:33:11.60 ID:wEirTeMQ.net] 致命的なミスを犯しました
761 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:35:38.92 ID:QL30OvU4.net] 許さないからな
762 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 00:38:16.94 ID:9+FFV4Nx.net] >>494 >>496 Perl5 use feature say; @data = <DATA>; chomp @data; @tags = split' ', shift @data; %idx = map{$_ => $n++} @tags; @sum = 0 x $n; for (@data) { @fs = split' '; for (0..$n-1) { $v = $fs[$_]; if ($v =~ /^(\d+\.\d*|\d*\.\d+|\d+)$/) { $sum[$_] += $v; } else { warn "変なデータが紛れ込んでいます_ノ乙(、ン、)_`$v'\n"; } } } for (@tags) { say "$_ の合計 = ", $sum[$idx{$_}]; } __DATA__ カラム1 カラム2 カラム3 カラム4 1,0 2.0 3.0 4.0 2.1 3.1 4.1 5.1 ~ $ perl 13_494.pl 変なデータが紛れ込んでいます_ノ乙(、ン、)_`1,0' カラム1 の合計 = 2.1 カラム2 の合計 = 5.1 カラム3 の合計 = 7.1 カラム4 の合計 = 9.1
763 名前:デフォルトの名無しさん [2019/03/18(月) 01:13:14.07 ID:4b49AUHf.net] >>743 マンコ・カパックは、インカ神話によるクスコ王国の初代国王である。
764 名前:デフォルトの名無しさん [2019/03/21(木) 03:20:09.08 ID:ZuEvTwkR.net] >>728 Kotlin https://paiza.io/projects/IQdiv40t3eXnM8CEXzF2Og
765 名前:デフォルトの名無しさん [2019/03/21(木) 05:20:06.50 ID:ZuEvTwkR.net] >>680 Kotlin https://paiza.io/projects/SlCrKgxVJRghtvESdUMR_A リストの中の最小値をループして探し出しように作っただけなんだけど、こんなんで良いのか? (MutableListなのでsort()しちゃうという手抜きワザもあったがそれだと表面上分岐が一つもない状態になるので止めた)。
766 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 11:30:55.91 ID:4Lv8Ku6J.net] >>494 Squeak Smalltalk。コンマを分割と見なしそれぞれについての和を出力させてみた | fn | fn := [:columnName | FileStream oldFileNamed: 'data.txt' do: [:file | | index sum | index := (file nextLine subStrings: ' ') indexOf: columnName. sum := 0. [file atEnd] whileFalse: [ | next | next := ((file nextLine subStrings: ' ') at: index) subStrings: ','. sum := sum + (next size = 1 ifTrue: [next anyOne] ifFalse: [next])]. sum ] ]. fn value: 'カラム3'. "=> 7.1 " fn value: 'カラム1'. "=> #(3.1 2.1) "
767 名前:デフォルトの名無しさん [2019/03/21(木) 13:37:55.15 ID:p+hkSRzH.net] お題 長方形の盤で左上から上下左右に一マスずつ移動して全てのマスを 辿る。 移動の順番を表した数字を向きと終点を表す文字(↑↓←→★、 上下左右終、UDLRG、^V<>Gなど)に変換する。 入力 1 4 5 6 2 3 8 7 15 14 9 10 16 13 12 11 出力 ↓→→↓ →↑↓← ↓←→↓ ★↑←←
768 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 14:37:03.32 ID:Krn8F3T2.net] >>751 Perl5 @a = map{[split]} <DATA>; for $y (0..$#a) { $h{$a[$y][$_]} = [$y,$_,''] for 0..$#a; } @s = keys %h; %r = qw{-1,0 ↑ 1,0 ↓ 0,-1 ← 0,1 →}; for $i (1..@s) { if ($i == @s) { $d = '★' } else { $y = $h{$i+1}->[0] - $h{$i}->[0]; $x = $h{$i+1}->[1] - $h{$i}->[1]; $d = $r{"$y,$x"} } $h{$i}->[2] = $d; } ($y, $x, $d) = @$_, $a[$y][$x] = $d for values %h; use feature say; say "@$_" for @a; __DATA__ 1 4 5 6 2 3 8 7 15 14 9 10 16 13 12 11 実行結果 ~ $ perl 13_746.pl ↓ → → ↓ → ↑ ↓ ← ↓ ← → ↓ ★ ↑ ← ←
769 名前:デフォルトの名無しさん mailto:sage [2019/03/21(木) 22:33:42.92 ID:4Lv8Ku6J.net] >>728 Squeak Smalltalk | fn | fn := [:int1 :int2 | | strings width digits interms ans max line | strings := {int1. int2} collect: #asString. width := (strings detectMax: #size) size. digits := strings collect: [:str | (str forceTo: width padd
770 名前:ingStartWith: $0) reversed asArray collect: #asString]. interms := (digits reduce: #+) collectWithIndex: [:interm :idx | interm, (String new: idx-1 withAll: Character space)]. ans := interms polynomialEval: '10'. strings atLast: 1 put: '+ ', strings last. max := ((strings, {ans}) collect: #size) max. line := String new: max withAll: $-. (strings, {line}, interms, {line. ans} collect: [:str | (str forceTo: max paddingStartWith: Character space) withoutTrailingBlanks ]) asStringWithCr ]. fn value: 987 value: 65. "=> ' 987 + 65 ---- 12 14 9 ---- 1052' " [] [ここ壊れてます]
771 名前:デフォルトの名無しさん [2019/03/22(金) 05:04:29.93 ID:NMDgNTgg.net] >>751 Kotlin https://paiza.io/projects/kKx0DA0gpsZ6He2ZxKSF_A
772 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 12:12:43.26 ID:bmKj2SZK.net] >>751 Squeak Smalltalk | fn | fn := [:str | | map range sign goal position next atEnd | map := str lines collect: [:line | line subStrings collect: #asInteger]. range := 1@1 extent: map first size @ map size. sign := (0 asPoint fourNeighbors with: #(→ ↓ ← ↑) collect: #->) as: Dictionary. goal := #★. position := 1@1. next := 2. atEnd := false. [atEnd] whileFalse: [ | found | found := position fourNeighbors detect: [:neighPos | (range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next] ] ifNone: [atEnd := true. Float nan]. (map at: position y) at: position x put: (sign at: found - position ifAbsent: goal). position := found. next := next + 1. ]. (map collect: #join) asStringWithCr ]. fn value: '1 4 5 6 2 3 8 7 15 14 9 10 16 13 12 11' "=> '↓→→↓ →↑↓← ↓←→↓ ★↑←←' "
773 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 20:50:59.33 ID:KB/r9SyN.net] >>751 octave https://ideone.com/BacNm6
774 名前:デフォルトの名無しさん [2019/03/22(金) 21:14:53.89 ID:97922Y7I.net] まだ見にくいなあ。線を繋いで矢印を入れることはできないかな。
775 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 21:41:47.96 ID:nZ/OoXFx.net] 罫線 │┌─┐ └┘┌┘ ┌┐└┐ ★└─┘ 直線部に矢印 │┌→┐ └┘┌┘ ┌┐└┐ ★└←┘ こんな感じ?
776 名前:デフォルトの名無しさん mailto:sage [2019/03/22(金) 21:43:03.63 ID:nZ/OoXFx.net] スタート部も矢印に出来るやん… ↓┌→┐ └┘┌┘ ┌┐└┐ ★└←┘
777 名前:747 mailto:sage [2019/03/22(金) 23:30:54.68 ID:DMg7GUli.net] code、プリーズ
778 名前:デフォルトの名無しさん [2019/03/23(土) 01:24:21.91 ID:Bvojjkpo.net] >>759 Kotlin https://paiza.io/projects/jjP3AHDkfJ4t_Lfsd3wmlA >>754 を改造して作った。
779 名前:デフォルトの名無しさん [2019/03/23(土) 01:27:24.77 ID:Bvojjkpo.net] 罫線や矢印が半角で★が全角で表示されてしまうとずれるな。 ま、しょうがないか。
780 名前:デフォルトの名無しさん [2019/03/23(土) 02:35:34.66 ID:FcxASXew.net] >>751 Common Lisp https://ideone.com/7h7HT4
781 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 05:47:57.62 ID:ZlGSstH0.net] >>759 Squeak Smalltalk | fn | fn := [:str | | map range signs sign goal position from next atEnd | map := str lines collect: [:line | line subStrings collect: #asInteger]. range := 1@1 extent: map first size @ map size. goal := #★. signs := #(┌ ┌ ← → └ └ ┐ ┐ ↑ ↓ ┘ ┘) readStream. sign := Dictionary new. 0 asPoint fourNeighbors combinations: 2 atATimeDo: [:combi | sign at: combi copy put: signs next; at: combi reversed put: signs next]. position := 1@1. from := nil. next := 2. atEnd := false. [atEnd] whileFalse: [ | found delta | found := position fourNeighbors detect: [:neighPos | (range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next] ] ifNone: [atEnd := true. Float nan]. delta := found - position. (map at: position y) at: position x put: (sign at: {from ifNil: [delta negated]. delta} ifAbsent: goal). position := found. from := delta negated. next := next + 1]. (map collect: #join) asStringWithCr ]. fn value: '1 4 5 6 2 3 8 7 15 14 9 10 16 13 12 11' . "=> '↓┌→┐ └┘┌┘ ┌┐└┐ ★└←┘' "
782 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 06:18:42.67 ID:ZlGSstH0.net] >>764 758の入力例を拝借 fn value: '1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9'. "=> '→→→→┐ ┌→→┐↓ ↑┌★↓↓ ↑└←┘↓ └←←←┘' " fn value: '1 4 5 8 9 12 2 3 6 7 10 11'. "=> '↓┌┐┌┐★ └┘└┘└┘' " fn value: '1 4 5 6 2 3 8 7 16 14 9 10 15 13 12 11' . "=> 繋げられるところまでで終点にする。 '↓┌→┐ └┘┌┘ 16★└┐ 15└←┘' "
783 名前:デフォルトの名無しさん [2019/03/23(土) 22:17:53.61 ID:4V4ijAbJ.net] S : Start E : End X : 行けない所 で、表す方がよいかも
784 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 23:35:50.10 ID:4ExQ31KE.net] 縦読み
785 名前:デフォルトの名無しさん mailto:sage [2019/03/23(土) 23:49:28.93 ID:5/UQAxw+.net] >>766 セックス!
786 名前:デフォルトの名無しさん [2019/03/24(日) 01:17:54.50 ID:TWBa+gHA.net] >>751 C https://ideone.com/dQ2NRt 行けないところがある場合■で表示した
787 名前:デフォルトの名無しさん [2019/03/24(日) 13:31:32.22 ID:Vlgf6sT0.net] お題 :次のようなジョブパラメータで表されるジョブ(製造工程)があります。全て完成するための最小時間とマシンスケジュールを求めてください。貧乏なので同じ番号のマシンは一台しかありません。{A, B}とあれば;Aマシン番号、B:所要時間 int job_param[JOBNUM][STP][2] = { {{3, 10}, {4, 10}, {2, 12}, {0, 18}, {1, 4}}, {{1, 11}, {2, 6}, {3, 2}, {4, 8}, {0, 15}}, {{2, 10}, {4, 16}, {3, 2}, {1, 8}, {0, 14}}, {{2, 15}, {1, 12}, {0, 16}, {3, 6}, {4, 17}}, {{4, 14}, {0, 2}, {1, 15}, {2, 6}, {3, 10}}};
788 名前:デフォルトの名無しさん [2019/03/24(日) 13:50:50.08 ID:ynFGlX0q.net] >>770 順序に対する制限とかは? それとなんで5つに分かれているのか? 全部一塊で25個のマシン番号と所要時間のペアがある状態だと順序の関係で何かまずいのか?
789 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 13:56:04.93 ID:xOvhcY6B.net] >>771 5つのタスクでそれぞれ5つの工程があるってことだろう
790 名前:デフォルトの名無しさん [2019/03/24(日) 14:40:55.72 ID:ynFGlX0q.net] >>772 その辺の制限やルールが書かれていないからどうやれば良いのかが分からない、ということ。 順序も何もかも(マシン番号と所要時間も)入れ替えて構わないなら0〜4のマシン全体に所要時間を平均的に 詰め込むだけになると思うが、わざわざジョブとか分けてるんだからどうやらそうではなさそうだよな。 どうやら順序や入れ替えには制限があるように見える。しかしその制限が書かれていない。
791 名前:デフォルトの名無しさん [2019/03/24(日) 17:03:38.93 ID:Ou399CfX.net] >>770 >>771 >>772 ジョブショップスケジューリング問題です。この問題はジョブや機械が増加すると調べなければならない組み合わせが爆発的に増加してしまうため、現実的な時間で最適解を求めることが難しいとされています(NP困難として知られています)。 マシンを配列順に使用することで1つの製品ができます。 私の実験では10分ぐらい待っても95で終わりませんでした。
792 名前:デフォルトの名無しさん [2019/03/24(日) 17:35:40.10 ID:Ou399CfX.net] >>774 途中結果 Solution 4 COST_TIME: 95 0 : ( 3, 0, 10), ( 4, 15, 25), ( 2, 27, 39), ( 0, 46, 64), ( 1, 65, 69) 1 : ( 1, 0, 11), ( 2, 40, 46), ( 3, 54, 56), ( 4, 57, 65), ( 0, 80, 95) 2 : ( 2, 16, 26), ( 4, 27, 43), ( 3, 44, 46), ( 1, 47, 55), ( 0, 65, 79) 3 : ( 2, 0, 15), ( 1, 16, 28), ( 0, 29, 45), ( 3, 47, 53), ( 4, 66, 83) 4 : ( 4, 0, 14), ( 0, 15, 17), ( 1, 29, 44), ( 2, 47, 53), ( 3, 57, 67) MACHIN Schedule 0 : (46, 64), (80, 95), (65, 79), (29, 45), (15, 17) 1 : (65, 69), ( 0, 11), (47, 55), (16, 28), (29, 44) 2 : (27, 39), (40, 46), (16, 26), ( 0, 15), (47, 53) 3 : ( 0, 10), (54, 56), (44, 46), (47, 53), (57, 67) 4 : (15, 25), (57, 65), (27, 43), (66, 83), ( 0, 14)
793 名前:デフォルトの名無しさん [2019/03/24(日) 20:02:05.47 ID:TWBa+gHA.net] >>775 ttps://imgur.com/upBqhWN.png 手動で調べたら90時間(単位は適当)まで縮んだ。最小時間か知らんが。 こういうのガントチャートっていうんだな
794 名前:デフォルトの名無しさん mailto:sage [2019/03/24(日) 22:58:01.17 ID:3fqiTHWE.net] ちなみに、 >>751 の問題で、行列の周りに、番兵を作って、処理した人はいる? 漏れは、いつもこの手の問題では、番兵で周りを囲む
795 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 12:18:06.31 ID:7aW5s/71.net] ……プログラミングやっててガントチャートしらないヤツもいるのか 勉強になった
796 名前:デフォルトの名無しさん [2019/03/25(月) 12:23:06.98 ID:T0osdeZX.net] 名前知らなかっただけでは?
797 名前:デフォルトの名無しさん [2019/03/25(月) 12:26:24.36 ID:VWPF1Bqz.net] ロシア国防省「東アジアの地震の多い某国は数十年にわたり、地震を偽装した地下核実験を繰り返して
798 名前:「る」 https://rosie.5ch.net/test/read.cgi/liveplus/1550888671/l50 自衛隊の中に熊本人工地震を発生させた連中がいることは震源地が自衛隊駐屯地地下であることから自明。 http://open.mixi.jp/user/38378433/diary/1953066799 そればかりか、いま熊本の地下から出ている放射線量が「謎の赤丸急上昇中」だというのだ。 https://quasimoto2.exblog.jp/22729487/ 今、自民党政権が、原発再稼働を進めている本当の理由は、核武装計画だけである。 経済的にとっくに破綻した原子力発電など、最初から眼中にないのだ。 東海アマブログentry-688.html [] [ここ壊れてます]
799 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 14:02:28.57 ID:FL0Sj0Av.net] いちいちガントチャートなんて銘打たんしな 進捗管理するときには普通に使うもんだ
800 名前:デフォルトの名無しさん [2019/03/25(月) 14:57:20.21 ID:T0osdeZX.net] みんな名前知らないけど気づいたら作ってるようなものじゃないか?
801 名前:デフォルトの名無しさん mailto:sage [2019/03/25(月) 21:13:29.59 ID:wbp6GG9F.net] ナップザック問題の一種じゃないの?
802 名前:デフォルトの名無しさん [2019/03/26(火) 00:12:39.41 ID:xyG5xdoY.net] お題1: 整数値に対して K, M, G 等の単位を付けて人間に読みやすく文字列に変換して出力する。(ls -lh の時の容量の出力と同じで良い)。2^10 = K, 2^20 = M, 2^30 = G とする。 小数点以下を何桁にするかはご自由に。但しあまりあり過ぎると人間には分かり辛いので1桁か2桁が望ましい。 お題2: お題1の逆変換。但し欠落した下位桁があったとしても考慮しなくて良い。 お題3: お題1, お題2 の10^3 = K, 10^6 = M, 10^9 = G 版。 回答のプログラムはまとめた形でも良い。例えばお題1を処理する関数のオプションとして0を与えると2^10単位、1を与えると10^3単位にするなど。 また、K, M, G よりも上の単位ができても良い。
803 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 03:32:10.56 ID:xI3rzKRA.net] いまどき容量系の接頭辞はKi, Mi, Gi使えや
804 名前:デフォルトの名無しさん [2019/03/26(火) 03:42:21.20 ID:xyG5xdoY.net] >>785 そうしたければそうしてもいいよ。
805 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 13:05:28.20 ID:8ujFPLE9.net] お題1と3まとめてswitch-case文って 筋悪いですかねえ あるいはお題1とお題2をまとめて、enum型でINVERSEとか作るとか、あるいは TRUE / FALSE で分岐とか
806 名前:デフォルトの名無しさん mailto:sage [2019/03/26(火) 19:22:41.61 ID:NbUyZWCM.net] 誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 95286 https://you-can-program.hatenablog.jp
807 名前:デフォルトの名無しさん mailto:sage [2019/03/27(水) 00:34:27.07 ID:KJlt8YQv.net] >>784 c https://ideone.com/N64nDG ・十分に小さい値のときしか動かない ・大きい値を与えたときの挙動もケアされない
808 名前:デフォルトの名無しさん [2019/03/27(水) 23:48:37.99 ID:oM4knkxt.net] >>784 Kotlin https://paiza.io/projects/BisWbp363VArN7FaHYwmoA Long 型使って正の整数しか考慮してないので63bitまで。
809 名前:さまよえる蟻人間 mailto:sage [2019/03/28(木) 00:18:20.27 ID:JS1PpMcc.net] Windows付属のshlwapi.dllにStrFormatByteSizeという関数があるようだね。
810 名前:デフォルトの名無しさん [2019/03/28(木) 17:17:39.60 ID:vvqhH31/.net] >>770 乱数使ったプログラム書いてみたけど動かした瞬間90まで行くけど そこから何分待っても動かなさそう
811 名前:デフォルトの名無しさん [2019/03/30(土) 20:23:23.36 ID:ghZBhzgh.net] お題 表示画面におさまる最大の正三角形を描画する
812 名前:デフォルトの名無しさん mailto:sage [2019/03/30(土) 23:07:23.94 ID:DyxzEuK/.net] つまらん次
813 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 08:20:57.83 ID:JrOSOdLx.net] >>793 最大の定義ぐらい書けよ…
814 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 13:16:21.13 ID:m8dr8/PB.net] >>795 「たとえば表示画面が640x400なら、一辺が400の正三角形を描画する」ことではないのか 貴殿が想定する「最大の定義」とやらを示してもらえんかの?
815 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 13:25:41.80 ID:+5DxT57L.net] ん? その場合、一辺は400*2/sqrt(3)になるんじゃない?
816 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 13:28:01.88 ID:EfWeZY5f.net] >>796 高さ400の正三角形だと一辺461.88じゃね?
817 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 15:30:18.52 ID:uX30LzG9.net] 怒涛のツッコミw
818 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 19:30:51.59 ID:KJRyWF55.net] コンソール画面なら、画面の横幅と縦幅を取得しなきゃならんから言語によってはめんどくさいだろうな 標準でcurses使える言語ってなにがあるかな
819 名前:デフォルトの名無しさん mailto:sage [2019/03/31(日) 20:25:37.50 ID:P4y0w1jO.net] 表示画面が球体だったら…
820 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 00:15:16.48 ID:ucc1UNjR.net] リーマン幾何の多様体上で計算しとけ なお、サラリーマンのリーンマン じゃないからな。
821 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 01:51:36.50 ID://wZRuJn.net] でしゃばんな
822 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 03:15:46.62 ID:Mx+j7LaB.net] Windows環境だとdirectx叩くことになるのかな VT100とかXとかは全く知らないけど DisplayWidth とか DisplayHeight とか使うのか あるいは何らかのクラスのメンバー関数を呼ぶのか
823 名前:デフォルトの名無しさん mailto:sage [2019/04/01(月) 03:16:52.56 ID:Mx+j7LaB.net] >>800 pdcursesがあるじゃないか(あらゆる環境で使えるとは言ってない
824 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 22:24:58.61 ID:pFhU6MbP.net] エスケープシーケンスで座標指定とか文字色変更って、今はできないんだっけ?
825 名前:デフォルトの名無しさん mailto:sage [2019/04/15(月) 23:06:48.83 ID:1nT5zSFt.net] エスケープシーケンス powershell で、ググってみ
826 名前:デフォルトの名無しさん [2019/04/16(火) 09:06:19.32 ID:wCqxjGzR.net] >>806 文字を出す端末による。 WindowsだったとしてもWSLでUbuntu動かした時のbashの端末では使えてるので多分設定次第なんだろうな。 逆に言うと設定によっては意図した通りに動かない。
827 名前:デフォルトの名無しさん [2019/04/16(火) 16:33:57.42 ID:wCqxjGzR.net] お題 アミダくじの作成、表示、及び余力があれば実行 ・縦線の本数と横線の最大本数は入力できるようにする。 ・左右の縦線への横線だけでなく飛び越えて他の縦線へ移動する横線もオプションで作れるようにする。 ・表示方法は罫線キャラクタを使っても良いがGUI等他の方法でも良い。 ・実行時はアニメーションでも良いし、いきなり結果が出るだけでも良い。 ・面倒なら作成して表示するだけで実行しなくても良い。
828 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 16:45:06.33 ID:GDkTCt4E.net] N88-BASIC(86)で出来そうな気がするが
829 名前:デフォルトの名無しさん [2019/04/16(火) 17:51:22.60 ID:wCqxjGzR.net] ・PC-8001で動作すること。 いや、動かんでもいい。
830 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:37:53.31 ID:GDkTCt4E.net] PRINT CHR$(12)
831 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:38:10.10 ID:GDkTCt4E.net] CONSOLE 80,25,0,1 だっけ
832 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:40:11.47 ID:GDkTCt4E.net] 10 WIDTH 80,25 からか…
833 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 18:46:35.84 ID:GDkTCt4E.net] DEFINTA-Z:PRINT"HOW MANY COLUMNS":INPUTA:A0=160/A
834 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 19:26:49.12 ID:pJc8eu0c.net] お題:要素数が同じふたつの数値配列を受け取り、要素ごとに足した配列を返す。 中級:同様に、三つの配列を受け取る。 上級:同様に、三つの配列を受け取り、掛けて割ったもの返す。 ocaml https://ideone.com/GyC6yJ octave https://ideone.com/NwYyqs
835 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 21:28:55.51 ID:47ewAOC/.net] 簡単過ぎる、次
836 名前:デフォルトの名無しさん mailto:sage [2019/04/18(木) 23:26:27.73 ID:izaVyiw1.net] >>816 Squeak/Pharo Smalltalk #(1 2 3) + #(4 5 6). "=> #(5 7 9) " #((1 2 3) (4 5 6) (7 8 9)) sum. "=> #(12 15 18) " #(1 2 3) * #(4 5 6) / #(7 8 9). "=> {(4/7) . (5/4) . 2} "
837 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 00:02:01.58 ID:ODUYGH1G.net] お題そのものは簡単でも、マイナー言語での解き方を見るのは面白いね
838 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 00:09:49.99 ID:fWzUUJvd.net] 自演乙
839 名前:デフォルトの名無しさん [2019/04/19(金) 07:15:46.60 ID:TxABBsFf.net] >>816 main = do print $ zipWith (+) [1,2,3] [4,5,6] print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9] print $ zipWith3 (\a b c -> a * b / c) [1,2,3] [4,5,6] [7,8,9] Out: [5,7,9] [12,15,18] [0.571428571428571,1.25,2.0]
840 名前:デフォルトの名無しさん [2019/04/19(金) 08:40:44.50 ID:TxABBsFf.net] >>818 Haskellでは%記号が分数を表すので、Data.Ratioをインポートして import Data.Ratio main = do print $ zipWith (+) [1,2,3] [4,5,6] print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9] print $ zipWith3 (\a b c -> a * b % c) [1,2,3] [4,5,6] [7,8,9] Out: [5,7,9] [12,15,18] [4 % 7,5 % 4,2 % 1]
841 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:21:00.80 ID:R45IcBKG.net] お題:円の中心の座標と、円の半径の2乗が与えられる。 この円の円周上にある格子点の数を求めよ。 (X座標 Y座標 半径の2乗) 9/22 5/22 138125/242 => 7 7/38 5/38 785817263725/722 => 77 17/38 13/38 13603053979519731025/722 => 777 9/38 6/38 23959256988683736880737131790625/1444 => ? 12/38 7/38 23959256988683736880737131790625/1444 => ? 15/38 14/38 23959256988683736880737131790625/1444 => ?
842 名前:デフォルトの名無しさん [2019/04/20(土) 18:57:22.37 ID:4zW2+iPl.net] また数学か・・・
843 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 19:51:50.54 ID:JrfgKJuX.net] しょっちゅう出てくるけどこれ宿題か?
844 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 23:55:49.29 ID:R45IcBKG.net] 宿題じゃないんやけどなー 12/38 7/38 23959256988683736880737131790625/1444 => ? の答えと円周上の格子点一覧…俺が間違えてなければ https://pastebin.com/pnGbWPfM
845 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 00:12:56.57 ID:E83GoNC+.net] コードを出せコードを!
846 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 01:28:16.84 ID:TAIIcaTj.net] プログラムでの解き方が思い付かないわ 円の方程式に整数代入して満たすかみればいいのか?
847 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 02:14:46.56 ID:H/Se0iAi.net] 解法を考えるのも回答能力のうちだからね 今の時代、参照・検索も当然 可だけれど
848 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 06:09:56.50 ID:/+hkU7cH.net] >>822 割り算が%とか、そのモジュール書いた奴、頭腐ってんじゃないの?
849 名前:デフォルトの名無しさん [2019/04/21(日) 13:14:42.53 ID:ay9waDdy.net] >>830 ? >>821 見てないの? Haskellでは少数を返す割り算は「/」、整数を返す割り算は「`div`」と返す型で使い分ける。 「%」が返すのは分数型(Rational)
850 名前:デフォルトの名無しさん mailto:sage [2019/04/21(日) 14:45:56.49 ID:/+hkU7cH.net] やっぱ頭腐ってるな。
851 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:43:26.25 ID:NALZs80Z.net] お題: 日本語の文章の句読点を , や . に置き換える。 ただし、, や . の直後には半角のスペースを置き、さらに改行の手前や文末のスペースは削除すること。 例: In < これは、日本語の文章です。ふひひ。 Out > これは, 日本語の文章です. ふひひ.
852 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:50:03.68 ID:WcGowxU3.net] しょうもな
853 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:51:59.82 ID:Y8OSWYHv.net] 文末のスペースが消えてないやん どっちやねん
854 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:52:14.50 ID:NALZs80Z.net] お題: 簡易なテーブルを綺麗に整形する 余力があればカラムの左揃え、右揃えをオプションで選択できるようにする(出力は中央揃え) 入力: a|aaaaa|bb ccc|ddd|ee 出力: **a***|*aaaaa*|***bb* ------+-------+------ *ccc**|**ddd**|***ee*
855 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 20:54:35.53 ID:NALZs80Z.net] >>836 ×(出力は中央揃え) 〇(例は中央揃え)
856 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:01:38.43 ID:Y8OSWYHv.net] bとeが中央じゃなくね
857 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 21:05:36.09 ID:NALZs80Z.net] >>838 例に使ったスクリプトがバグってた
858 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 22:36:14.15 ID:lwqMqFKi.net] 左のaとcもおかしい
859 名前:デフォルトの名無しさん mailto:sage [2019/04/24(水) 23:50:33.64 ID:NSCbK96M.net] 各列の文字数は一致する必要があるのか
860 名前:デフォルトの名無しさん [2019/04/25(木) 04:26:28.66 ID:D6NtakiX.net] >>836 入出力のエンコードは? ASCII以外はあるのか?
861 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 05:01:51.18 ID:XVamjpPA.net] >>842 ASCIIのみで
862 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 07:44:22.82 ID:XVamjpPA.net] >>839 いやバグってなかったわ >>836 が正常 | の前後に*が一つ入るから | の前後の*は入れても入れなくてもいいけど入れたほうが綺麗になるかもしれん
863 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 10:34:23.81 ID:J1W60oTI.net] 「綺麗」とか言うお気持ちワードが入るとダメだな
864 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 10:41:43.51 ID:aGd2Nt87.net] 「楽しいプログラミング」w 「美しく書ける」ww
865 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 12:39:16.14 ID:J1W60oTI.net] 何がキレイなのか定義出来ず言うことが主観でコロコロ変わる、マジで今の日本のサイコパス上司そのものだ 「オレの心情をさっしろ」みたいな屑がいいそうなこと 頭が悪いから定義が出来ないし自分の言ってることが支離滅裂になってる 曖昧な用語(綺麗)で押し通そうとする コレ全部サイコパスの特徴
866 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:02:10.38 ID:pYdb89HV.net] 美を定義できる人間がいるなら会いたいものだ
867 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 13:47:48.74 ID:BUlwZIC7.net] >>848 プラトンのスュンポスィオーンって本で定義されてたぞ
868 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 16:18:28.13 ID:ThHN2jz5.net] 美しいコードなんて求められてない。小学生でも知ってる。 https://tr.twipple.jp/ps/3f/af4715.html
869 名前:デフォルトの名無しさん [2019/04/25(木) 18:30:28.28 ID:/IwwINNy.net] 美しい半角カナ
870 名前:デフォルトの名無しさん [2019/04/25(木) 18:35:37.23 ID:/IwwINNy.net] >>850 変数に日本語が使えないとか書いてあるな。 Javaとか普通に使えるんだがな。
871 名前: mailto:sage [2019/04/25(木) 20:27:10.98 ID:6xUIrXDu.net] >>849 倉橋由美子のが面白かったと思っています
872 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:32:18.97 ID:siWhi4pR.net] >>852 そんなに日本語使いたいならなでしこでも書いとけ
873 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 22:33:30.90 ID:X6smEgNz.net] >>852 そんな大昔の話をするなよ。 今はPython3 なんだから日本語も使えるよ。 なな = 7 print(なな) # 7
874 名前:デフォルトの名無しさん mailto:sage [2019/04/25(木) 23:27:23.78 ID:jZ4+eHeJ.net] 今時C++とかでも普通に日本語識別子使えるだろ…
875 名前:デフォルトの名無しさん [2019/04/25(木) 23:39:11.26 ID:D6NtakiX.net] >>856 あ、そうなの? 知らなかった。
876 名前:デフォルトの名無しさん [2019/04/26(金) 18:55:29.49 ID:YRtkzMZR.net] >>836 Kotlin https://paiza.io/projects/RCbBPGrxaB1uoB-tj_1hJg 入力は1行目に 0, 1, 2 の何れかのオプションを指定する。 意味は 0=中央、1=左寄せ、2=右寄せ になっている。 2行目からは | 区切りで文字列を入れる。 空行またはファイルの終わりで表を出力する。 空行だった場合はまた次の表の最初のオプションから入れられる。
877 名前:デフォルトの名無しさん mailto:sage [2019/04/26(金) 19:49:06.87 ID:RVSBatxL.net] >>858 ほとぼりが冷めたと思ってんのか屑? お前が>>844 だろ ID変わったからっていい気になんなよ ゴミみたいな出力のまさにゴミだ 全然綺麗じゃない
878 名前:853 [2019/04/27(土) 04:31:22.65 ID:dVFnhFQW.net] >>859 違うよ。俺はもっと上の方であみだくじのお題を出したやつだよ。 自分でもプログラム作るには作ったけど表示するところまでだな。 しかしブラウザの実行環境で表示すると罫線の幅の問題でずれるので画像で出力しようかと思っている。 これな。 https://paiza.io/projects/2mINZHiEB6ciPWHEpkCJig
879 名前:デフォルトの名無しさん [2019/04/27(土) 15:02:49.57 ID:TtYrpMGa.net] お題:ジョブショップスケジューリングの問題です。 int job_param[JOBNUM][STP][2] = { {{4, 342}, {1, 244}, {2, 351}, {3, 293}, {0, 342}}, // 1572 {{2, 306}, {4, 342}, {3, 386}, {1, 386}, {0, 413}}, // 1833 {{3, 168}, {0, 266}, {2, 182}, {1, 106}, {4, 368}}, // 1090 {{3, 368}, {2, 151}, {4, 284}, {0, 84}, {1, 164}}, // 1051 {{4, 240}, {1, 191}, {0, 351}, {3, 408}, {2, 275}}, // 1465 {{2, 342}, {3, 351}, {4, 191}, {0, 333}, {1, 426}}, // 1643 {{0, 93}, {1, 235}, {2, 422}, {3, 244}, {4, 151}}, // 1145 {{0, 75}, {4, 217}, {1, 111}, {3, 195}, {2, 435}}, // 1033 {{2, 173}, {4, 435}, {3, 186}, {1, 137}, {0, 53}}, // 984 {{1, 93}, {2, 231}, {4, 71}, {3, 115}, {0, 315}}}; // 825
880 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 16:10:46.35 ID:nhVWQaIp.net] 宿題は自分でやれ
881 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 16:24:49.19 ID:VMurKVDA.net] まずジョブスケジューリングが何か説明してもらおう
882 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 17:28:59.65 ID:PUfIYz8D.net] 適当に詰めて行くプログラムで2928まではなった h0 0-75 g0 75-168 c1 168-434 e2 434-785 j4 1002-1317 d3 1505-1589 f3 1696-2029 b4 2029-2442 a4 2442-2784 i4 2875-2928 j0 0-93 e1 240-431 h2 457-568 a1 799-1043 g1 1043-1278 c3 1385-1491 b3 1607-1993 d4 1993-2157 f4 2157-2583 i3 2738-2875 f0 0-342 j1 342-573 b0 573-879 i0 879-1052 d1 1052-1203 c2 1203-1385 a2 1385-1736 g2 1736-2158 e4 2158-2433 h4 2433-2868 c0 0-168 d0 168-536 f1 536-887 j3 887-1002 h3 1002-1197 b2 1221-1607 e3 1607-2015 a3 2015-2308 g3 2308-2552 i2 2552-2738 e0 0-240 h1 240-457 a0 457-799 j2 799-870 b1 879-1221 d2 1221-1505 f2 1505-1696 c4 1696-2064 i1 2064-2499 g4 2552-2703
883 名前:デフォルトの名無しさん mailto:sage [2019/04/27(土) 17:44:35.53 ID:PUfIYz8D.net] 今2889になってたけどSegmentation faultで落ちてた 前回のやつでJOBNUMとかSTPとかをわざわざ直接5 5とか書いてて 今回どんなコードかもう忘れて片方を適当に10に直したからか元からバグがあったのか分からないけど 結果自体は間違ってなそうだと思うけど
884 名前:818 mailto:sage [2019/04/27(土) 18:03:52.53 ID:63A0HxGX.net] >>823 の(最適化していない)コード Java https://ideone.com/72sNsk >>827 出したで
885 名前:デフォルトの名無しさん [2019/04/28(日) 08:12:15.68 ID:3xnz0I0C.net] >>861 COST_TIME: 2932 0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1275, 1626), ( 3, 2017, 2310), ( 0, 2417, 2759) 1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 2004, 2417) 2 : ( 3, 0, 168), ( 0, 784, 1050), ( 2, 1093, 1275), ( 1, 1279, 1385), ( 4, 2389, 2757) 3 : ( 3, 168, 536), ( 2, 942, 1093), ( 4, 1586, 1870), ( 0, 1920, 2004), ( 1, 2473, 2637) 4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 433, 784), ( 3, 1609, 2017), ( 2, 2221, 2496) 5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1395, 1586), ( 0, 1587, 1920), ( 1, 2047, 2473) 6 : ( 0, 75, 168), ( 1, 1044, 1279), ( 2, 1799, 2221), ( 3, 2310, 2554), ( 4, 2757, 2908) 7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 892, 1087), ( 2, 2496, 2931) 8 : ( 2, 1626, 1799), ( 4, 1954, 2389), ( 3, 2554, 2740), ( 1, 2741, 2878), ( 0, 2879, 2932) 9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1087, 1202), ( 0, 1203, 1518) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 433, 784), ( 2, 784, 1050), ( 9, 1203, 1518), ( 5, 1587, 1920), ( 3, 1920, 2004), ( 1, 2004, 2417), ( 0, 2417, 2759), ( 8, 2879, 2932) 1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 6, 1044, 1279), ( 2, 1279, 1385), ( 1, 1610, 1996), ( 5, 2047, 2473), ( 3, 2473, 2637), ( 8, 2741, 2878) 2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 942, 1093), ( 2, 1093, 1275), ( 0, 1275, 1626), ( 8, 1626, 1799), ( 6, 1799, 2221), ( 4, 2221, 2496), ( 7, 2496, 2931) 3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 892, 1087), ( 9, 1087, 1202), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2554, 2740) 4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1395, 1586), ( 3, 1586, 1870), ( 8, 1954, 2389), ( 2, 2389, 2757), ( 6, 2757, 2908)
886 名前:デフォルトの名無しさん [2019/04/28(日) 19:46:09.95 ID:4L316qYF.net] COST_TIME: 2868 0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1212, 1563), ( 3, 2017, 2310), ( 0, 2410, 2752) 1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 1997, 2410) 2 : ( 3, 0, 168), ( 0, 169, 435), ( 2, 1030, 1212), ( 1, 1213, 1319), ( 4, 2
887 名前:326, 2694) 3 : ( 3, 168, 536), ( 2, 879, 1030), ( 4, 1523, 1807), ( 0, 1857, 1941), ( 1, 2703, 2867) 4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 435, 786), ( 3, 1609, 2017), ( 2, 2158, 2433) 5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1332, 1523), ( 0, 1524, 1857), ( 1, 1996, 2422) 6 : ( 0, 75, 168), ( 1, 1319, 1554), ( 2, 1736, 2158), ( 3, 2310, 2554), ( 4, 2694, 2845) 7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 887, 1082), ( 2, 2433, 2868) 8 : ( 2, 1563, 1736), ( 4, 1891, 2326), ( 3, 2379, 2565), ( 1, 2566, 2703), ( 0, 2752, 2805) 9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1082, 1197), ( 0, 1198, 1513) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 169, 435), ( 4, 435, 786), ( 9, 1198, 1513), ( 5, 1524, 1857), ( 3, 1857, 1941), ( 1, 1997, 2410), ( 0, 2410, 2752), ( 8, 2752, 2805) 1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 2, 1213, 1319), ( 6, 1319, 1554), ( 1, 1610, 1996), ( 5, 1996, 2422), ( 8, 2566, 2703), ( 3, 2703, 2867) 2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 879, 1030), ( 2, 1030, 1212), ( 0, 1212, 1563), ( 8, 1563, 1736), ( 6, 1736, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868) 3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2379, 2565) 4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1332, 1523), ( 3, 1523, 1807), ( 8, 1891, 2326), ( 2, 2326, 2694), ( 6, 2694, 2845) [] [ここ壊れてます]
888 名前:デフォルトの名無しさん mailto:sage [2019/04/28(日) 23:28:25.99 ID:l2GeSHcv.net] >>868 3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017 , 2310), ( 6, 2310, 2554), ( 8, 2379, 2565) ( 6, 2310, 2554), ( 8, 2379, 2565) ここが重複してるから間違ってる
889 名前:デフォルトの名無しさん [2019/04/29(月) 05:34:40.52 ID:8r4CfxJG.net] >>869 ご指摘ありがとうございます。
890 名前:デフォルトの名無しさん [2019/05/02(木) 08:14:38.07 ID:y6AdJjmd.net] お題:ジョブショップスケジューリングの問題です。 int job_param[JOBNUM][STP][2] = { {{4, 100}, {1, 100}, {2, 100}, {3, 100}, {0, 100}}, // 500 {{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500 {{3, 100}, {0, 100}, {2, 100}, {1, 100}, {4, 100}}, // 500 {{3, 100}, {2, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500 {{4, 100}, {1, 100}, {0, 100}, {3, 100}, {2, 100}}, // 500 {{2, 100}, {3, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500 {{0, 100}, {1, 100}, {2, 100}, {3, 100}, {4, 100}}, // 500 {{0, 100}, {4, 100}, {1, 100}, {3, 100}, {2, 100}}, // 500 {{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500 {{1, 100}, {2, 100}, {4, 100}, {3, 100}, {0, 100}}}; // 500
891 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 10:15:40.84 ID:uedhNxa1.net] 死ね
892 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 10:36:17.75 ID:aiQlF5oy.net] >>871 時間全部同じなら1にしちゃってえーんちゃう?
893 名前:デフォルトの名無しさん mailto:sage [2019/05/02(木) 12:40:19.89 ID:6TxNQP9X.net] 死んで良し。こんな長たらしいのを貼るなんて迷惑。 どこかに貼ってリンクだけにしろ。
894 名前:デフォルトの名無しさん [2019/05/03(金) 00:09:09.98 ID:zqE/J/GT.net] >>836 C https://ideone.com/UPx6IS もうどうでもいいかもしれんが、各列で幅調整ができるようにした
895 名前:デフォルトの名無しさん [2019/05/07(火) 18:32:57.10 ID:dWjIX09N.net] COST_TIME: 2903 0 : ( 4, 799, 1141), ( 1, 1141, 1385), ( 2, 1385, 1736), ( 3, 2023, 2316), ( 0, 2477, 2819) 1 : ( 2, 0, 306), ( 4, 457, 799), ( 3, 1114, 1500), ( 1, 1500, 1886), ( 0, 1980, 2393) 2 : ( 3, 368, 536), ( 0, 913, 1179), ( 2, 1203, 1385), ( 1, 1385, 1491), ( 4, 2122, 2490) 3 : ( 3, 0, 368), ( 2, 1052, 1203), ( 4, 1838, 2122), ( 0, 2393, 2477), ( 1, 2639, 2803) 4 : ( 4, 0, 240), ( 1, 240, 431), ( 0, 562, 913), ( 3, 1615, 2023), ( 2, 2593, 2868) 5 : ( 2, 306, 648), ( 3, 763, 1114), ( 4, 1141, 1332), ( 0, 1332, 1665), ( 1, 1886, 2312) 6 : ( 0, 75, 168), ( 1, 568, 803), ( 2, 1736, 2158), ( 3, 2508, 2752), ( 4, 2752, 2903) 7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 457, 568), ( 3, 568, 763), ( 2, 2158, 2593) 8 : ( 2, 879, 1052), ( 4, 1403, 1838), ( 3, 2316, 2502), ( 1, 2502, 2639), ( 0, 2819, 2872) 9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 1332, 1403), ( 3, 1500, 1615), ( 0, 1665, 1980) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 562, 913), ( 2, 913, 1179), ( 5, 1332, 1665), ( 9, 1665, 1980), ( 1, 1980, 2393), ( 3, 2393, 2477), ( 0, 2477, 2819), ( 8, 2819, 2872) 1 : ( 9, 0, 93), ( 4, 240, 431), ( 7, 457, 568), ( 6, 568, 803), ( 0, 1141, 1385), ( 2, 1385, 1491), ( 1, 1500, 1886), ( 5, 1886, 2312), ( 8, 2502, 2639), ( 3, 2639, 2803) 2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 3, 1052, 1203), ( 2, 1203, 1385), ( 0, 1385, 1736), ( 6, 1736, 2158), ( 7, 2158, 2593), ( 4, 2593, 2868) 3 : ( 3, 0, 368), ( 2, 368, 536), ( 7, 568, 763), ( 5, 763, 1114), ( 1, 1114, 1500), ( 9, 1500, 1615), ( 4, 1615, 2023), ( 0, 2023, 2316), ( 8, 2316, 2502), ( 6, 2508, 2752) 4 : ( 4, 0, 240), ( 7, 240, 457), ( 1, 457, 799), ( 0, 799, 1141), ( 5, 1141, 1332), ( 9, 1332, 1403), ( 8, 1403, 1838), ( 3, 1838, 2122), ( 2, 2122, 2490), ( 6, 2752, 2903)
896 名前:デフォルトの名無しさん mailto:sage [2019/05/07(火) 19:09:14.64 ID:T//WWibe.net] 死ねやマジで
897 名前:デフォルトの名無しさん [2019/05/09(木) 08:23:28.37 ID:iHKmUIWi.net] COST_TIME: 2868 0 : ( 4, 970, 1312), ( 1, 1312, 1556), ( 2, 1807, 2158), ( 3, 2177, 2470), ( 0, 2470, 2812) 1 : ( 2, 0, 306), ( 4, 557, 899), ( 3, 1197, 1583), ( 1, 1583, 1969), ( 0, 1969, 2382) 2 : ( 3, 0, 168), ( 0, 394, 660), ( 2, 1474, 1656), ( 1, 1969, 2075), ( 4, 2222, 2590) 3 : ( 3, 168, 536), ( 2, 1656, 1807), ( 4, 1938, 2222), ( 0, 2382, 2466), ( 1, 2696, 2860) 4 : ( 4, 292, 532), ( 1, 532, 723), ( 0, 723, 1074), ( 3, 1583, 1991), ( 2, 2158, 2433) 5 : ( 2, 306, 648), ( 3, 731, 1082), ( 4, 1312, 1503), ( 0, 1512, 1845), ( 1, 2133, 2559) 6 : ( 0, 75, 168), ( 1, 723, 958), ( 2, 1052, 1474), ( 3, 2470, 2714), ( 4, 2714, 2865) 7 : ( 0, 0, 75), ( 4, 75, 292), ( 1, 292, 403), ( 3, 536, 731), ( 2, 2433, 2868) 8 : ( 2, 879, 1052), ( 4, 1503, 1938), ( 3, 1991, 2177), ( 1, 2559, 2696), ( 0, 2812, 2865) 9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 899, 970), ( 3, 1082, 1197), ( 0, 1197, 1512) MACHINE Schedule 0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 394, 660), ( 4, 723, 1074), ( 9, 1197, 1512), ( 5, 1512, 1845), ( 1, 1969, 2382), ( 3, 2382, 2466), ( 0, 2470, 2812), ( 8, 2812, 2865) 1 : ( 9, 0, 93), ( 7, 292, 403), ( 4, 532, 723), ( 6, 723, 958), ( 0, 1312, 1556), ( 1, 1583, 1969), ( 2, 1969, 2075), ( 5, 2133, 2559), ( 8, 2559, 2696), ( 3, 2696, 2860) 2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 6, 1052, 1474), ( 2, 1474, 1656), ( 3, 1656, 1807), ( 0, 1807, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868) 3 : ( 2, 0, 168), ( 3, 168, 536), ( 7, 536, 731), ( 5, 731, 1082), ( 9, 1082, 1197), ( 1, 1197, 1583), ( 4, 1583, 1991), ( 8, 1991, 2177), ( 0, 2177, 2470), ( 6, 2470, 2714) 4 : ( 7, 75, 292), ( 4, 292, 532), ( 1, 557, 899), ( 9, 899, 970), ( 0, 970, 1312), ( 5, 1312, 1503), ( 8, 1503, 1938), ( 3, 1938, 2222), ( 2, 2222, 2590), ( 6, 2714, 2865)
898 名前:デフォルトの名無しさん [2019/05/09(木) 09:37:18.89 ID:pu1Iu6no.net] ここはプログラミングのお題スレであって結果と思われる出力を書き込むスレではない。
899 名前:デフォルトの名無しさん [2019/05/09(木) 19:00:51.34 ID:n0QdGvKz.net] コラッツ数列を作る関数chainを書け コラッツ数列の定義 任意の自然数から開始する 数が 1ならば 、終了 数が偶数なら 、 2で割る 数が奇数なら 、 3倍して 1を足す 新しい値でこのアルゴリズムを繰り返す 使用例 >chain 10 [ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ] >chain 1 [ 1 ] >chain 30 [ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]
900 名前:デフォルトの名無しさん [2019/05/09(木) 21:28:06.85 ID:V3giiBFx.net] >>880 C https://ideone.com/vpQG5P
901 名前:さまよえる蟻人間 mailto:sage [2019/05/09(木) 22:20:55.24 ID:sZO2t0w0.net] お題: 改行とスペースを含むASCII文字列が与えられる。 改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。 (入力) a b c d (出力) [a, 0, 0] [b, 2, 0] [c, 5, 0] [d, 0, 2]
902 名前:デフォルトの名無しさん [2019/05/10(金) 08:21:41.55 ID:Z1uC1A15.net] >>880 python def chain(n): lst = [] if n < 1: raise ValueError("Please n > 0 number") while n != 1: lst.append(n) if n % 2 == 0: n //= 2 else: n = n * 3 + 1 lst.append(1) return lst for i in [10,1,30,0]: print(chain(i))
903 名前:デフォルトの名無しさん [2019/05/10(金) 08:24:53.49 ID:Z1uC1A15.net] >>880 Haskell main = mapM_ (print.chain) [10,1,30,0] chain 1 = [1] chain n | n < 1 = error "Please n > 0 number" chain n | even n = n:chain (n `div` 2) chain n = n:chain (n * 3 + 1)
904 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:11:44.01 ID:VtNtFyvg.net] >>880 C https://ideone.com/mBt0yE 1未満の値の判定はchain関数に実装すべきなのかどうなのか……
905 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 11:56:36.34 ID:sggjdX/2.net] >>882 [c, 5, 0]? [c, 4, 0]じゃなくて?
906 名前:さすらいの蟻人間 mailto:sage [2019/05/10(金) 12:18:04.49 ID:8LSsTFj9.net] >>882 >>886 4の間違いでした。訂正。
907 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 12:30:05.58 ID:k7gY5pMP.net] >>882 出力は、行列番号が0から始まるとして 文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの? (入力) a b c d (出力) [a, 0, 0] [b, 2, 0] [c, 4, 0] << 5じゃなくて4だろ。 [d, 0, 2]
908 名前:デフォルトの名無しさん [2019/05/10(金) 12:47:01.79 ID:6xQjM2XG.net] >>881 ,885 この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、 Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。
909 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 12:53:54.51 ID:KAkBQh2y.net] 宿題誘導か 最近のアホは小賢しいな
910 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 13:27:19.10 ID:k7gY5pMP.net] >>882 python st = '''a b c d ''' line = 0 ; col = 0 for c in st : __if c == '\n' : ____line += 1 ____col = 0 ____continue __if c != ' ' : ____print ('['+c, col,str(line)+']', sep=',') __col += 1
911 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 13:40:11.78 ID:k7gY5pMP.net] >>891 出力フォーマットが ['a', 0, 0] ['b', 2, 0] ['c', 4, 0] ['d', 0, 2] でもよければ print文は簡単になる print ([c, col,line])
912 名前:さすらいの蟻人間 mailto:sage [2019/05/10(金) 14:51:58.21 ID:CF7UUf9v.net] お題: >>882 の入出力を逆転。
913 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 15:12:02.76 ID:bODSyEKx.net] >>893 手抜きすんな面白くない
914 名前:デフォルトの名無しさん [2019/05/10(金) 15:43:29.85 ID:aTy0NCJ4.net] >>880 与えられた数の3倍以上の個数を持つ系列を を3個示せ。
915 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 17:50:33.37 ID:58PV3kUA.net] >>880 ,889 Squeak Smalltalk | chain | chain := [:n | Array streamContents: [:ss | ss nextPut: n. [n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])] ] ]. chain value: 10. "=> #(10 5 16 8 4 2 1) " (1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "
916 名前:デフォルトの名無しさん [2019/05/10(金) 20:05:13.80 ID:0Zlxa6bH.net] >>880 Perl のワンライナー。 perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"' 実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。 標準入力から1行1データで入力して結果を出力するようにした。
917 名前:デフォルトの名無しさん [2019/05/10(金) 20:29:31.76 ID:/+/am3CQ.net] >>895 27のとき112個 31のとき107個 10億くらいまで回したけど、これら以外なくね? 数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。 ttps://imgur.com/wm0kCEQ グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。
918 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 21:48:47.85 ID:LM2YqzO0.net] お題 https://www.youtube.com/watch?v=2JNgkMMaNlw このようなルートの数を数え上げるプログラムを作る N=5位まででよい
919 名前:デフォルトの名無しさん mailto:sage [2019/05/10(金) 22:09:58.71 ID:KAkBQh2y.net] ZDDやるなら出来合いのもの使って終わりじゃねえの? https://github.com/junkawahara/frontier-basic https://hs-nazuna.github.io/tdzdd-manual/intro.html
920 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 11:54:01.37 ID:Ze1v8w/9.net] >>880 Perl5 sub chain { my $i = shift; $i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2))) } for (qw{10 1 30}) { @a = chain $_; print "[@a]\n"; } 実行 ~ $ perl 13_875_collatz.pl [10 5 16 8 4 2 1] [1] [30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]
921 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 12:16:05.54 ID:Ze1v8w/9.net] >>882 Perl5 @in = map{[split'']} map{split '\n'} <<EOF; a b c d EOF for $j (0..$#in) { for $i (0..$#{$in[$j]}) { $c = $in[$j][$i]; print "[$c,$i,$j]\n" if $c =~ /\w/; } } 実行 ~ $ perl 13_877.pl [a,0,0] [b,2,0] [c,4,0] [d,0,2]
922 名前:デフォルトの名無しさん [2019/05/11(土) 13:06:48.39 ID:bKjSBhWB.net] >>880 Ruby で module Collatz def self.next_number( num ) if num.even? # 偶数 num / 2 else # 奇数 num * 3 + 1 end end def self.chain( num ) @@results = [ ] tmp = num while true @@results.push tmp break if tmp == 1 tmp = next_number( tmp ) end @@results end end [ 1, 27 ].each do | num | p Collatz.chain( num ) end
923 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 18:55:11.91 ID:fAbbaveG.net] >>880 c https://ideone.com/jwtvbF >>880 ruby https://ideone.com/MIKeM7 >>880 ocaml https://ideone.com/CEassZ
924 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 20:54:08.94 ID:wddfxsLz.net] ideone.comはMATLABに対応してないのね。 書いてみた後で気がついた。
925 名前:デフォルトの名無しさん mailto:sage [2019/05/11(土) 23:44:29.57 ID:fAbbaveG.net] >>880 octave https://ideone.com/eNqIim
926 名前:デフォルトの名無しさん [2019/05/12(日) 02:01:10.46 ID:FbICTnq7.net] >>880 Java https://paiza.io/projects/VSqA-UZgWeXB-YzVTnrQRg takeUntilが欲しいなー
927 名前:デフォルトの名無しさん [2019/05/12(日) 06:46:28.87 ID:R9TUiFuu.net] >>880 コラッツ樹で作れば出力を減らせる。
928 名前:デフォルトの名無しさん [2019/05/14(火) 02:59:08.35 ID:3xJ0OqNt.net] >>882 Kotlin https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA for や while ループ使わずに forEachIndexed で入れ子にしてみました。
929 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 09:26:15.81 ID:zeev4Evh.net] >>882 Ruby で text = <<"EOT" a b c d EOT re = /[^ ]+/ # 空白以外 text.each_line.with_index do | line, idx | # 1行ずつ処理する line.strip! # trim # $~.begin は、マッチした先頭文字の位置 line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" } end
930 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 10:07:03.30 ID:rKVVoOG1.net] >>891 をスッキリ修正してみた 改行コード指定をやめ、for loop のカウンタを利用 >>882 の解 st = '''a b c d ''' for line,l in enumerate(st.splitlines()) : for col,c in enumerate(l): if c != ' ' : print('['+c, col,str(line)+']',sep=',')
931 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 14:12:15.49 ID:8QdSJZ63.net] >>910 空白以外は\Sでマッチするぞ
932 名前:デフォルトの名無しさん mailto:sage [2019/05/14(火) 23:52:44.04 ID:AtHJrRxM.net] >>882 Squeak Smalltalk | fn | fn := [:str | ((str lines collectWithIndex: [:line :lIdx | (line reject: #isSeparator) asArray collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]] ) concatenation select: #notEmpty) asStringWithCr ]. fn value: 'a b c d' "=> '#($a 0 0) #($b 2 0) #($c 4 0) #($d 0 2)' "
933 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 01:06:44.65 ID:tCUIeJeC.net] >>913 smalltalk って全く知らないけど、最後が出力のつもり? だったらお題の出力フォーマットと似ても似つかないじゃん。
934 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 03:57:52.07 ID:i8y0s24p.net] いや似てる
935 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 04:50:48.17 ID:TsVBVaTo.net] >>882 Squeak/Pharo Smalltalk 出力はともかく同行に同文字があるとダメだった^^;ので>>913 差し替え | fn | fn := [:str | ((str lines collectWithIndex: [:line :lIdx | (line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}] ) reject: [:each | each first isSeparator]] ) concatenation select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr ]. fn value: 'a b c d' "=> [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] "
936 名前:905 [2019/05/15(水) 09:57:59.71 ID:AfKgri37.net] >>912 re = /[^ ]+/ 空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい 問題の意図がどちらなのか、よく分からない
937 名前:デフォルトの名無しさん mailto:sage [2019/05/15(水) 23:43:58.92 ID:jmndeABE.net] >>882 c https://ideone.com/tIcQPK >>882 ruby https://ideone.com/qMREyy >>882 ocaml https://ideone.com/uaNmRF >>882 octave https://ideone.com/psnXl5
938 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 01:50:16.53 ID:4fy8zsNP.net] >>918 C以外は助長だな
939 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 03:57:55.40 ID:6BLr95cC.net] >>919 具体的にはどの処理のどの部分を冗長に感じられたのでしょうか? たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!
940 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 08:25:20.49 ID:MujhV/Cm.net] >>918 故意にpython 外しはずるい。 >>882 python https://ideone.com/yvFuOl printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
941 名前:デフォルトの名無しさん [2019/05/16(木) 10:18:52.91 ID:YVMjr/q8.net] >>882 Go https://ideone.com/mJOisR コンパクトにならんね
942 名前:デフォルトの名無しさん [2019/05/16(木) 14:34:08.16 ID:YVMjr/q8.net] >>893 Go https://ideone.com/x2iyka
943 名前:デフォルトの名無しさん [2019/05/16(木) 19:26:40.27 ID:ktv4pd0R.net] >>882 C++ https://ideone.com/cbDkCt
944 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 20:28:13.91 ID:3sIrlJF4.net] お題 整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ ただし1番小さい要素は1にすること 入力 -6 3 9 5 3 -7 出力 2 3 5 4 3 1
945 名前:デフォルトの名無しさん [2019/05/16(木) 21:00:21.83 ID:/dAesd8e.net] >>925 c++ https://ideone.com/zEwKOk
946 名前: mailto:sage [2019/05/16(木) 21:47:12.78 ID:m1RdOLwU.net] >>925 >値をなるべく小さくせよ 絶対値を小さく、という意味ですか?
947 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 22:59:47.34 ID:0eZXbfha.net] >>925 Pharo/Squeak Smalltalk | fn | fn := [:arr | | sorted | sorted := arr asSet sorted. arr collect: [:x | sorted indexOf: x] ]. fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "
948 名前:913 mailto:sage [2019/05/16(木) 23:00:52.84 ID:02wuysYU.net] >>882 ocaml https://ideone.com/waZZh7 ・自分に正直になってrefとforループで書いた >>919 じょ、助長… >>921 外しと言うより、たんに不勉強 python書けないんよね(´・ω・`)
949 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:34:17.56 ID:YXKZQo24.net] >>928 Perl5 @a = qw{-6 3 9 5 3 -7}; $h{$_}=1 for @a; %o = map{$_=>++$i} sort{$a<=>$b} keys %h; @b = map{$o{$_}} @a; print "@a => @b\n"; 実行 ~ $ perl 13_920.pl -6 3 9 5 3 -7 => 2 3 5 4 3 1
950 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:42:11.94 ID:YXKZQo24.net] >>930 アンカーしくった、>>925 宛だった…orz
951 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 23:44:54.09 ID:02wuysYU.net] >>925 octave https://ideone.com/f9S91N
952 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:26:31.35 ID:SI3/qEwo.net] >>893 Pharo/Squeak Smalltalk | fn | fn := [:arr | String streamContents: [:ss | | cIdx lIdx | cIdx := lIdx := 0. arr do: [:spec | spec third > lIdx ifTrue: [ ss nextPutAll: (String new: spec third - lIdx withAll: Character cr). lIdx := spec third. cIdx := 0 ]. ss nextPutAll: (String new: spec second - cIdx withAll: Character space). ss nextPutAll: spec first. cIdx := spec second + 1. ] ] ]. fn value: #( (a 0 0) (b 2 0) (c 4 0) (d 0 2)). "=> a b c d "
953 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:35:47.85 ID:HrEfbPs9.net] >>932 重複除去でソート後のインデックスを返す関数? チート過ぎてわろたw
954 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 00:55:59.72 ID:TuAgku6e.net] 最近jニキ来ないな
955 名前:デフォルトの名無しさん [2019/05/17(金) 01:23:24.98 ID:UHIjSpei.net] >>925 Kotlin https://paiza.io/projects/NMOKqrUnEfwIbLSRmrMMmQ
956 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 07:54:47.22 ID:9a+COZnd.net] >>893 s = '''\ [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] ''' from parse import * #pip install col2 = 0 ; line2 = 0 for l in s.splitlines(): col = col2 ; line = line2 r=parse('[{},{},{}]',l) c= r[0] col2 = int(r[1]) ; line2 = int(r[2]) {print() for _ in range(line2-line) } {print(' ',end='') for _ in range(col2-col)} print(c, end='') col2 += 1 print() '''#出力 a b c d '''
957 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 08:32:11.25 ID:9a+COZnd.net] >>937 parse に型指定追加 >>893 Python s = '''\ [a, 0, 0] [b, 2, 0] [c, 4, 0] [d, 0, 2] ''' from parse import * #pip install col2 = 0 ; line2 = 0 for l in s.splitlines(): col = col2 ; line = line2 (c,col2,line2) = parse('[{},{:d},{:d}]',l) {print() for _ in range(line2-line) } {print(' ',end='') for _ in range(col2-col)} print(c, end='') col2 += 1 print() '''#出力 a b c d '''
958 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:14:50.20 ID:8VLhbVxR.net] >>925 は、ランク付けの問題だろ 入力データ -6 3 9 5 3 -7 出力・ランク 2 3 5 4 3 1 入力データの最も小さい数字を、ランク1 にして、 数字が大きくなるほど、ランクも大きくしていく 同値の場合は、同じランクにして、次のランクも間隔を空けない。 ランク3 が2つあっても、次は、ランク4 つまり、ランクが欠けることはない!
959 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:23:14.18 ID:99nnd/tf.net] >>939 うるせぇ死ね
960 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:39:09.53 ID:L8EHraRu.net] 難しく書いてたけど結局これだけなのか 問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
961 名前:デフォルトの名無しさん [2019/05/17(金) 12:49:18.63 ID:ut9H1r3U.net] プログラム作る前に気づいたので>>936 のリンク先のブログラムのタイトルは密かに「順位」にしといたw
962 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 12:50:56.11 ID:l82uGMBO.net] >>941 わざと難しく見せかけているというよ
963 名前:閨Aたんに説明が下手なだけだと思う [] [ここ壊れてます]
964 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 13:23:46.56 ID:gFFtTihX.net] 別に難しくない件
965 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 13:29:01.98 ID:L8EHraRu.net] そうですね 難易度は主観ですね なら短さ長さを比べるとこうなります ・各値の大小関係を変えないように値をなるべく小さくせよ ・ランク付けせよ もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
966 名前:デフォルトの名無しさん [2019/05/17(金) 13:36:08.80 ID:/5AjAxyT.net] >ランク付けだと分かるまで何人が挑戦するかを試してみる まさにそうじゃないの?
967 名前:デフォルトの名無しさん [2019/05/17(金) 13:44:50.72 ID:mxL0YWmq.net] >>925 J f =: >: @ (i.~ /:~ @ ~.) f _6 3 9 5 3 _7 2 3 5 4 3 1
968 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:19.69 ID:gFFtTihX.net] >>945 アスペ
969 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:08:53.72 ID:gFFtTihX.net] 問題文を添削しちゃう皆さん
970 名前:デフォルトの名無しさん mailto:age [2019/05/17(金) 14:20:43.10 ID:gFFtTihX.net] >>927
971 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:06:17.59 ID:Jb6joIEA.net] さすがにいちゃもん付け過ぎだろ 元の問題文読めば普通はわかるだろ
972 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 15:51:11.97 ID:99nnd/tf.net] 問題: おっぱいをなるべく小さくせよ。
973 名前:デフォルトの名無しさん [2019/05/17(金) 16:00:34.70 ID:ut9H1r3U.net] >>952 (・)(・) ↓ (・)(・)
974 名前:デフォルトの名無しさん [2019/05/17(金) 16:18:22.99 ID:X2USxdO3.net] お題:自然数を隙間なく自分自身以外の数に対応させよ。
975 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 16:46:21.83 ID:9GdSR9hc.net] >>954 先生、対応させると言う日本語がわかりません。 日本人には難しいです。
976 名前:デフォルトの名無しさん [2019/05/17(金) 17:04:52.99 ID:ut9H1r3U.net] >>954 君が何を言っているのかわからない。
977 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 17:24:51.97 ID:L8EHraRu.net] >>954 パッ見で分からん
978 名前:デフォルトの名無しさん [2019/05/17(金) 18:07:07.73 ID:nEasvejW.net] 偶数なら1引く 奇数なら1足すとかでいいんじゃないの
979 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 18:39:31.46 ID:9GdSR9hc.net] >>958 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。 これじゃ小学校の国語で平均点以下だろ。 日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
980 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:30:38.86 ID:Jb6joIEA.net] 要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ
981 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:35:23.29 ID:Jb6joIEA.net] あ、単射じゃなくてもいいか
982 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:40:06.71 ID:9GdSR9hc.net] >>960 あのさ、それで人に通じると思ってるの? そんな仕様書を書いて誰がコーディングするんだよ。 日本語に翻訳して明後日出直してこい。 言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。 狭い世界で通用しても社会では通用しない。
983 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:47:34.60 ID:9GdSR9hc.net] ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。 それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。 バカにわからせなければ、PLは務まらないよ。 と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
984 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 19:50:16.70 ID:Jb6joIEA.net] 教養のないやつに限ってブチ切れる
985 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:11:05.80 ID:KIX3RA0i.net] >>952 桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
986 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:11:56.63 ID:9a+COZnd.net] >>964 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。
987 名前: mailto:sage [2019/05/17(金) 20:21:17.94 ID:e+Q6zZPk.net] >>961 単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね… >>962 全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね
988 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:46:06.10 ID:Jb6joIEA.net] >>966 出題者に言えよ >>967 %じゃ全射にも単射にもならんぞ 上で誰かが言ってた遇奇を入れ替えたりだとか f(n) = n - 1, f(0) = 0以外の任意の値 とかなんでもありだね。つまらんけど
989 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 20:48:13.95 ID:99nnd/tf.net] 顔射は普通に使う単語ですか?
990 名前: mailto:sage [2019/05/17(金) 20:51:49.11 ID:e+Q6zZPk.net] >>968 >%じゃ全射にも単射にもならんぞ そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう
991 名前:デフォルトの名無しさん [2019/05/17(金) 21:06:32.38 ID:ut9H1r3U.net] >>969 はい。
992 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 21:09:38.99 ID:Jb6joIEA.net] >>970 そりゃなんでもありよ その場合は0の時だけ別の値を定義すれば良し
993 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 21:30:53.57 ID:0M7uQZeH.net] 920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
994 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 22:36:31.21 ID:gcMK/Ofn.net] 数値のリストを入力し、値の小さい順に1から順位を付けて、 順位のリストを出力する。同じ値は同じ順位とする
995 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 22:47:54.41 ID:TGYryIO4.net] ほんとそれ ピラフ改めピッコロはさっさと自害しろ
996 名前:デフォルトの名無しさん mailto:sage [2019/05/17(金) 23:20:58.53 ID:L8EHraRu.net] >>954 やっぱりどういう入出力の具体例になるのか分からない どういうことなんだよ
997 名前:デフォルトの名無しさん [2019/05/17(金) 23:47:24.37 ID:xYITnAAv.net] >>976 あくまで俺の推測だが 一例として、自分自身の数が3のとき自然数から3を除去して (1) 1, 2, 3, 4, 5, 6, ... ↓ (2) 1, 2, NULL, 4, 5, 6, ... NULLになった部分をなくすために4以降を左へシフトする (3) 1, 2, 4, 5, 6, 7, ... こんな感じで(1)の入力を(3)のような出力にする関数じゃないか? ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、 定数関数でもハッシュ関数でもいいはず。 ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
998 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 00:15:42.42 ID:w6U4ewGf.net] >>977 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。 それのどこがプログラミングのお題なんだ? バカじゃないのか?
999 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 01:03:14.81 ID:bbC9YGRR.net] >>947 乙、見事。
1000 名前:デフォルトの名無しさん [2019/05/18(土) 01:57:48.06 ID:jjK+y75q.net] >>925 C# https://paiza.io/projects/OXVNCyMqgCySX7dUhwYh5Q
1001 名前:デフォルトの名無しさん [2019/05/18(土) 02:15:29.87 ID:jjK+y75q.net] >>925 Java https://paiza.io/projects/VRVZT8GnP7oLaOjx4B8LtQ?language=java
1002 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 07:46:37.95 ID:w6U4ewGf.net] >>925 Python ol = [-6, 3, 9, 5, 3, -7] print([ sorted(set(ol)).index(x)+1 for x in ol ] ) # [2, 3, 5, 4, 3, 1]
1003 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 10:52:55.70 ID:0WkfcTHM.net] >>976 1. すべての自然数nに対してf(n)≠n 2. 自然数m,nがm≠nを満たすときf(m)≠f(n) を満たすような関数f(n)を作れってこと 例えば 1. 入力が1のとき出力は1以外 2. 入力が1のときと2のときで出力が同じになってはダメ
1004 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 11:06:29.35 ID:spo9+l+a.net] >>983 2はいらんやろ 適当なコト抜かすなごかすぞぼけ
1005 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 11:10:21.66 ID:vBrA8iCH.net] 単射である必要はない。全射でさえあればよい
1006 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 12:08:52.78 ID:R97vL30T.net] 難しすぎて全くわからん… ハローワールド始めて間もない男にも分かる問題を出してくれぬか 優しく教えて欲しい
1007 名前:デフォルトの名無しさん [2019/05/18(土) 12:10:33.89 ID:HBaY+7WM.net] >>954 これがあれば1Mbyteのファイルが2byteになっちゃうのか?
1008 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 12:48:31.15 ID:PrlqGkYa.net] >>983 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か? 例えば自然数が 1から4までとした場合、f(n) の出力配列は f(1) 2,3,4 f(2) 1,3,4 f(3) 1,2,4 f(4) 1,2,3 と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
1009 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:29:45.05 ID:5ij/PJHb.net] >>925 c https://ideone.com/JBbm04
1010 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:46:59.19 ID:0WkfcTHM.net] >>984 「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる 全射の条件より単射の条件のほうが説明が楽だから許してくれ >>988 出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている f(n)が返すのは自然数であってベクトル(配列)ではない
1011 名前: mailto:sage [2019/05/18(土) 14:50:54.64 ID:To+6m73X.net] >>985 >単射である必要はない。全射でさえあればよい ??? >>983 2. 自然数m,nがm≠nを満たすときf(m)≠f(n) これって単射の定義そのものなのでは? だから単射である必要があるのでは? f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない
1012 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 14:57:54.95 ID:jXb4UL4k.net] def f(n) n + 1 end 一応>>983 は満たしてる
1013 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:16:22.17 ID:0WkfcTHM.net] >>990 追記 単射なら全射になるのは有限集合の場合だったわ お詫びにお題 入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ 入力例) 28 2002 216653 出力例) 2^2*7 2*7*11*13 216653
1014 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:45:24.30 ID:kdcwh9zo.net] >>893 Perl5 @a=([a, 0, 0], [b, 2, 0], [c, 4, 0], [d, 0, 2]); sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a; @b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t; undef $"; $s = join'', map{"@$_\n"} @b; print $s; 実行 ~ $ perl 13_888.pl a b c d
1015 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 15:57:05.04 ID:0itJzGag.net] ハローワールドなら任せて欲しい
1016 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 16:05:30.57 ID:5ij/PJHb.net] >>993 octave https://ideone.com/V5luwe
1017 名前:デフォルトの名無しさん [2019/05/18(土) 16:32:58.07 ID:BaKYgAyw.net] >>995 任せた。
1018 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:19:27.10 ID:4C+see96.net] >>995 はよ次スレをハローワールドしろや
1019 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:34:28.08 ID:BWmpW4IF.net] >>995 C89 https://ideone.com/IJb1ar
1020 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:35:58.58 ID:BWmpW4IF.net] >>998 次スレ https://mevius.5ch.net/test/read.cgi/tech/1558168409/
1021 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 17:56:26.22 ID:4C+see96.net] >>1000 乙。
1022 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:05:17.15 ID:sChpoVCN.net] >>993 Pharo/Squeak Smalltalk | fn | fn := [:n | | m bag | m := n. bag := Bag new. Integer primesUpTo: n sqrt + 1 do: [:prime | [m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)] ]. m > 1 ifTrue: [bag add: m]. String streamContents: [:ss | bag valuesAndCounts associations sort do: [:assoc | ss nextPutAll: assoc key asString. assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString] ] separatedBy: [ss nextPut: $*] ] ]. fn value: 28. "=> '2^2*7' " fn value: 2002. "=> '2*7*11*13' " fn value: 216653. "=> '216653' "
1023 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:18:36.25 ID:PrlqGkYa.net] >>992 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。 大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。 一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが) f978 = lambda x,n:[i for i in range(1,n+1) if i != x] xが自分の数字、n は自然数の数 https://ideone.com/iMUZ96 呼び出しは、f978(3,10**6) の様に 出力の配列数が大きくなると全ての数のPrint はアホらしいので、 10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが ) out(1,4) out(2,4) out(4,4) out(10**2,10**7) stdout 個数 n= 4 自数 x= 1 自数以外の数= 3 [2, 3, 4] 個数 n= 4 自数 x= 2 自数以外の数= 3 [1, 3, 4] 個数 n= 4 自数 x= 4 自数以外の数= 3 [1, 2, 3] 個数 n= 10000000 自数 x= 100 自数以外の数= 9999999
1024 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:29:48.34 ID:PrlqGkYa.net] 問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。
1025 名前:デフォルトの名無しさん mailto:sage [2019/05/18(土) 21:31:36.43 ID:gB6Wr8nG.net] (´・_・`)
1026 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 104日 10時間 9分 43秒
1027 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています