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/
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] リーマン幾何の多様体上で計算しとけ なお、サラリーマンのリーンマン じゃないからな。