- 1 名前:デフォルトの名無しさん [2020/03/13(金) 01:42:47.06 ID:0rEhys36.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part16 https://mevius.5ch.net/test/read.cgi/tech/1573948822/
- 101 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 13:06:52.23 ID:liJZihU7.net]
- >>72 GNU Smalltalk
| fn | fn := [:str | str isEmpty ifTrue: [str] ifFalse: [str asNumber]]. (#('090' '0080' '123' '0' '000' '') collect: fn) display. => (90 80 123 0 0 '' ) https://ideone.com/x8y6JM
- 102 名前:デフォルトの名無しさん [2020/04/05(日) 13:07:50.11 ID:SfC0ZJYK.net]
- わざわざ他スレから出張してまで粘着するも自分の思い通りにならず涙目敗北草不可避w
- 103 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 13:08:52.29 ID:5b4pXRMu.net]
- ID:SfC0ZJYKは有名な荒しだよ
スルーしな
- 104 名前:デフォルトの名無しさん [2020/04/05(日) 13:10:52.18 ID:SfC0ZJYK.net]
- そのように言っている自分自身の策略書き込みがスルーされているという悲劇ww
- 105 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 13:13:48.87 ID:QyCQlkmw.net]
- 共有NG入ってて草
>>72が自力で解けない時点で脳みそに障害あるだろコイツ
- 106 名前:デフォルトの名無しさん [2020/04/05(日) 13:15:17.06 ID:SfC0ZJYK.net]
- ブツブツと負け惜しみを垂れ流しているその姿はまさに哀愁満点 w
- 107 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 16:39:18 ID:WiIyPE7p.net]
- >>72
部分解なら lisp で (loop for i in (list 090 0080 123 0 000 ) do (format t "~d~%" i)) 90 80 123 0 0
- 108 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 19:00:27.59 ID:i9ABTPYd.net]
- であればもうこれで十分って感じがしてきた^^;
>>72 GNU Smalltalk #(090 0080 123 0 000 '') display. => (90 80 123 0 0 '' ) https://ideone.com/e0kdys
- 109 名前:デフォルトの名無しさん [2020/04/08(水) 07:58:45 ID:5CDGaVzP.net]
- お題: レスの被アンカー数をレスごとにカウントし、降順に整列して出力せよ
入力は1レス1行で入力され、1行のフォーマットは「レス番:レス内容」でコロンで区切ってある レスの入力がすべて終わった段階でレスごとに被アンカー数を計算し、「レス番:カウント数」のフォーマットで出力せよ 入力と出力例: https://ideone.com/XOytlP
- 110 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 16:25:56 ID:gvYQZ6Pp.net]
- こんな感じで作ったな
select_word_and_anchor.pl https://ideone.com/bpypjv cat ~/.w3m/keymap # vim: set nowrap keymap a EXEC_SHELL "w3m -cols 200 $( echo $W3M_URL| sed 's/[-l][0-9]\+//' ) | /home/web/extract_body_of_2ch.sh | /home/bin/select_word_and_anchor.pl|less"
- 111 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 16:30:02 ID:gvYQZ6Pp.net]
- 動作はこんな感じ 例にあるような常用2chアンカー機能する
https://i.imgur.com/Bw5tlnl.png
- 112 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 23:06:09 ID:jh8IMM/7.net]
- >>106 Perl5
for (<>) { ($r, @a) = /([-\d]+)/g; push @s, $r; for (@a) { @b = /(\d+)/g; $h{$_}++ for $b[0]..$b[-1] } } printf "%d: %d\n", $_, $h{$_}//0 for @s; 実行結果 https://ideone.com/UVvDtv
- 113 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 00:05:07.49 ID:VEjEdiDF.net]
- >>106 Perl5、ゴメン「降順に整列」が抜けてた…orz、やり直し
for (<>) { ($r, @a) = /([-\d]+)/g; push @s, $r; for (@a) { @b = /(\d+)/g; $h{$_}++ for $b[0]..$b[-1] } } @t = sort{$h{$b} <=> $h{$a}} @s; printf "$_: %d\n", $h{$_}//0 for @t; 実行結果 https://ideone.com/r4tBGc
- 114 名前:デフォルトの名無しさん mailto:sage [2020/04/09(Thu) 10:38:42 ID:Sx5ouxFp.net]
- >>106
話題そらそうと粘着君が必死だねwww負け組だっさwww
- 115 名前:デフォルトの名無しさん [2020/04/09(木) 12:42:58.73 ID:5swiwcjH.net]
- ?
- 116 名前:デフォルトの名無しさん mailto:sage [2020/04/09(Thu) 15:48:38 ID:pqMoXxyo.net]
- 荒らしは必ず、2回書き込む。
「そうだよね」とか、同意するレスを付けて、人数が多いように見せる くだすれPython(超初心者用) その47【Ruby禁止】 Ruby禁止とか、色々なスレのタイトルを勝手に変える 工学部というコテハンだろ。 ソースコードを書かないし、プログラマーじゃないから相手をしないように!
- 117 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 16:48:05.84 ID:G208HopB.net]
- >>113
そのスレは別のスレであり話題としてスレ違い。 そもそもそれらのスレでRuby禁止と付けられる原因を作っているお前が言うな。 お前こそコテハンをつけるか書き込みをやめるかしろよ。
- 118 名前:デフォルトの名無しさん mailto:sage [2020/04/09(Thu) 16:59:35 ID:EoH4bsm+.net]
- >>113
悔しいんでしょwwそうゆう風にいつまでも負け惜しみ言ってなよwww
- 119 名前:デフォルトの名無しさん [2020/04/10(金) 15:52:58 ID:FxL3k9Tv.net]
- >>110
コード短いね
- 120 名前:デフォルトの名無しさん mailto:sage [2020/04/10(金) 15:53:17 ID:FxL3k9Tv.net]
- ageてしまった
- 121 名前:デフォルトの名無しさん [2020/04/10(金) 17:33:36 ID:gIxx/WN6.net]
- 気にすんな
- 122 名前:デフォルトの名無しさん [2020/04/10(金) 17:34:13 ID:GWaBtrPd.net]
- age禁止ってまだやってんの?
- 123 名前:デフォルトの名無しさん mailto:age [2020/04/10(金) 17:42:36 ID:7f4O8kzL.net]
- 非常事態を宣言します
- 124 名前:デフォルトの名無しさん [2020/04/10(金) 20:50:54 ID:gIxx/WN6.net]
- このスレは放っておくとすぐ過疎っちゃうんだからむしろもっともっと激しくテッテ的にage続けるべきだ。
- 125 名前:デフォルトの名無しさん [2020/04/11(土) 00:56:36 ID:qHx8Q1G9.net]
- >>110
for (´・ω・`) { }
- 126 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 01:07:31 ID:Rbw4pROQ.net]
- >>106 Python
https://ideone.com/BUavn0
- 127 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 01:11:10 ID:fnqXUaLM.net]
- (><)
- 128 名前:デフォルトの名無しさん [2020/04/12(日) 00:40:37.82 ID:j0O/fDVx.net]
- >>106
Java https://paiza.io/projects/vxSOQ88rVG6rpipq_1HAxw
- 129 名前:デフォルトの名無しさん [2020/04/13(月) 23:30:53.99 ID:+Sqc38Tr.net]
- >>106
Kotlin https://paiza.io/projects/HAl3vl4Eq9slJCfOWogfBA
- 130 名前:デフォルトの名無しさん [2020/04/14(火) 00:06:26.40 ID:hs9mI5+o.net]
- >>106
Kotlin 正規表現使わない版 https://paiza.io/projects/HN7v3_Noc9-TkctmYCk5xA 更に最初から SortedMap に入れるようにした。
- 131 名前:デフォルトの名無しさん [2020/04/14(火) 01:39:02.43 ID:hs9mI5+o.net]
- >>106
C https://paiza.io/projects/1bl_PaKjDj3WaMhCIZG0eQ やっぱCで標準のライブラリしか使わないと長くなるな。
- 132 名前:デフォルトの名無しさん [2020/04/14(火) 01:44:11 ID:cZOfM+S5.net]
- if(m[n]==null) m[n]=1
の部分と三項演算子の部分の後分は機能が被ってませんか?
- 133 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 12:04:01 ID:ZuF0W/s6.net]
- >>61 Perl5、正規表現を使った文字列処理ではなく、数値のリストに対する処理として書いてみた
sub f { my @s; while (my $e = shift) { push @s, $e } @_ ? (@s ? (\@s, f(@_)) : f(@_)) : \@s; } sub g { @_ > 2 ? "$_[0]-$_[-1]" : @_ } for ([1], [2,3], [1,2,3], [1,3], [1,3,4,5], [7,9]) { @a = (); @a[@$_] = @$_; @b = f @a; @c = map{g @$_} @b; $"=','; print "[@$_] -> '@c'\n"; } 実行結果 ~ $ perl 17_61_resanc_0414fp.pl [1] -> '1' [2,3] -> '2,3' [1,2,3] -> '1-3' [1,3] -> '1,3' [1,3,4,5] -> '1,3-5' [7,9] -> '7,9'
- 134 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/04/14(火) 12:53:55 ID:QRiFiZHs.net]
- お題: 整数の閉区間がいくつか与えられる。
それらの和集合を求め、それをいくつかの閉区間で出力せよ。 出力の閉区間の個数はなるべく少なくすること。 (
- 135 名前:例)
[1, 5], [2, 6], [-1, 10] ==> [-1, 10]. [2, 3], [3, 4], [7, 10] ==> [2, 4], [7, 10]. [] - [ここ壊れてます]
- 136 名前:デフォルトの名無しさん [2020/04/14(火) 14:56:59.99 ID:vknfd45S.net]
- >>129
三項演算子ではない(Kotlinには三項演算子はない)。?: はエルビス演算子で、左側の式が null だったら右側の値を使うというやつ。nullでなければそのまま左側の値を使う。 で、その部分は先頭のレス番号のキーがまだ作られてなかったら0で初期化する部分だ。 m[n] = m[n] ?: 0 とも書けるが、これは何か無駄な感じがする。nullでなければ同じ値の代入になるので。だからifで必要な時だけの代入(初期化)にした。
- 137 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 15:14:57 ID:U0kTSrBw.net]
- >>131 Perl5
sub f { my @s; while (defined (my $e = shift)) { push @s, $e } @_ ? (@s ? (\@s, f(@_)) : f(@_)) : \@s; } sub g { map{"[$$_[0],$$_[-1]]"} @_ } for ([[1, 5], [2, 6], [-1, 10]], [[2, 3], [3, 4], [7, 10]]) { %h = map{$_ => $_} map{$$_[0]..$$_[1]} @$_; @k = sort{$a <=> $b} keys %h; @l = f map{$h{$_}} $k[0]..$k[-1]; $"=','; @j = g @$_; @k = g @l; print "@j ==> @k\n"; } 実行結果 ~ $ perl 17_131_intrange.pl [1,5],[2,6],[-1,10] ==> [-1,10] [2,3],[3,4],[7,10] ==> [2,4],[7,10]
- 138 名前:デフォルトの名無しさん [2020/04/14(火) 15:35:48 ID:cZOfM+S5.net]
- >>132
なるほど。ありがとうございます。
- 139 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 17:17:14 ID:h96nPay3.net]
- 数式を標準入力から与えられる。
計算結果を出力しなさい。 条件 ・数式の長さが1000を超える場合や、不正な数式についてはErrorと出力すること ・整数を出力しなさい ・小数点が出る場合は切り捨てた値を出力すること ・eval禁止 ・数式に利用できる文字 0123456789+-*/() ・数式に半角スペースは含まれない
- 140 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 17:45:13.26 ID:SdOMVfQl.net]
- >>135 数式のサンプルよろ
- 141 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 17:50:15.21 ID:OuRgqSbO.net]
- 100/2(3+4)
はいくつですか?
- 142 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 17:56:57 ID:7oi1O/kb.net]
- >>137
*が省かれているからErrorとする あるいは100/2*(2+3)とみなして250 じゃまいか
- 143 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/04/14(火) 19:35:28 ID:Ozse1OSh.net]
- お題: CD/DVDドライブのトレイを開きなさい。
- 144 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 19:48:22 ID:rsqvGSlE.net]
- >>135 Ruby
eval gets rescue $><<:Error
- 145 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 19:50:23 ID:rsqvGSlE.net]
- typo
p eval$_ rescue$><<:Error while gets
- 146 名前:デフォルトの名無しさん [2020/04/14(火) 20:13:52.06 ID:AV9/Nsy0.net]
- >>139
言語:日本語 実行:日本人 CD/DVDドライブのトレイを開きなさい。
- 147 名前: mailto:sage [2020/04/14(火) 20:35:51.72 ID:42R+WK0w.net]
- >>142
言語:日本語 実行:日本語を理解する人 の方が正確ですね
- 148 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 22:24:45 ID:8w/NVh3l.net]
- >>139 Python
import ctypes ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
- 149 名前:デフォルトの名無しさん [2020/04/15(水) 01:04:36.72 ID:RHvlA1sV.net]
- 三項演算子ないとかゴミだな
- 150 名前:デフォルトの名無しさん [2020/04/15(水) 12:23:24 ID:229B67vy.net]
- >>131 js
let input = [[2, 3], [3, 4], [7, 10]]; let result = input.reduce((merged, range) => { let under = range.map(n => merged.filter(mrange => mrange[0] <= n && n <= mrange[1])[0]||[]); let extended = [under[0][0] || range[0], under[1][1] || range[1]]; let bored = merged.filter(mrange => !(extended[0] <= mrange[0] && mrange[1] <= extended[1])); return [...bored, extended]; }, []); console.log(result);
- 151 名前:デフォルトの名無しさん [2020/04/15(水) 12:57:38 ID:qoEmvMwd.net]
- >>135 F#
https://ideone.com/7RMvKQ
- 152 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 15:02:35.67 ID:3oL83xUj.net]
- >>145 Perl5、再帰降下parser generator使わせてもらいました
sub evalop { my (@list) = @{$_[0]}; my $val = shift(@list)->(); while (@list) { my ($op, $arg2) = splice @list, 0, 2; $op->($val,$arg2->()); } $val } use Parse::RecDescent; $parse = new Parse::RecDescent(<<'EOG'); formula: expr /\s*\Z/ {$item[1]->()} | <error> expr: <leftop:muldiv add_op muldiv> {sub {::evalop $item[1]}} add_op: '+' {sub {$_[0] += $_[1]}} | '-' {sub{ $_[0] -= $_[1]}} muldiv: <leftop:factor mult_op factor> {sub {::evalop $item[1]}} mult_op: '*' {sub {$_[0] *= $_[1]}} | '/' {sub {$_[0] /= $_[1]}} factor: number | '(' expr ')' {$item[2]} number: /\d+/ {sub {$item[1]}} EOG for (<DATA>) { chomp; $ret = defined ($iret = $parse->formula($_)) ? sprintf('%d', $iret) : 'Error'; printf "$_ = %s\n", $ret; } __DATA__ 1+2*((3-4*5)/6+7)*8-9 100/2(3+4) 100/2*(3+4) *10 1/3*3
- 153 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 15:04:17.94 ID:IXOt/09v.net]
- >>148
アンカーしくった…orz >>135 宛でした。 実行結果 ~ $ perl 17_135_recdecexpr.pl ERROR (line 1): Invalid formula: Was expecting /\s*\Z/ but found "(3+4)" instead ERROR (line 1): Invalid formula: Was expecting expr 1+2*((3-4*5)/6+7)*8-9 = 58 100/2(3+4) = Error 100/2*(3+4) = 350 *10 = Error 1/3*3 = 1
- 154 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/04/15(水) 21:28:09 ID:mz+a7+dL.net]
- お題: 二次元空間にナゾの物体Pが2個ある。2個のPは初期状態に(-3, -2), (3, 1)[単位:m]にあるものと仮定する。
2個のPは離れすぎると距離r[m]に比例する引力加速度2*r[m/s^2]を生じ、近づきすぎると距離r[m]に反比例する反発 加速度k/r[m/s^2]が発生する。rが収束するとき(一秒あたりの距離の変化が0.01[m]以下)の距離をRと表す。 kとRの関係を調べたい。kを1.0から1.5まで0.1刻みで動かし、それぞれで数値積分によって2つのPの収束位置を近似計算し、Rを求め、(k, R)の組を出力せよ。
- 155 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 21:56:01.64 ID://wWJwAN.net]
- はい、次の方どうぞ
- 156 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/04/15(水) 22:30:18 ID:mz+a7+dL.net]
- お題: 次のようなプログラムを作れ。プログラムを起動したとき、ファイル「times.txt」に現在の日時を秒単位で記録した後、
前回の起動日時との差を求め、時間差の秒数を表示せよ。 ただし、うるう秒を考慮すること。
- 157 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 23:31:28 ID:/1JmN5U2.net]
- >>150
慣性が働いて抵抗が無いなら収束などしない 永遠に振動し続ける 初速度も書いて無いし 離れすぎ、近づきすぎの条件も書いてない
- 158 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 00:11:24 ID:qhHxDSDQ.net]
- >>131 c
https://ideone.com/2oXq06
- 159 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 00:30:51 ID:qxGCpnz3.net]
- 乙。
- 160 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:19:43 ID:6omvFBXS.net]
- >>153
アスペルガー症候群は黙ってた方がいい
- 161 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:25:27 ID:Yc0fbgtG.net]
- 初速度や離れすぎ、近づきすぎの条件が書いてないのは事実で回答しようも無いんだし
そういうのはやめたらどうかと思うんだが
- 162 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:27:18 ID:iTxUXfYH.net]
- そういう柔軟性のなさがアスペルガー症候群くさいんだよなぁ…
まあ本当は出題の意図は分かってて敢えてイチャモン付けてるんだろうけど
- 163 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:28:44 ID:Yc0fbgtG.net]
- >>158
じゃあ、お前さんがお題の回答プログラム どうぞよろしく
- 164 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:37:52 ID:iTxUXfYH.net]
- 俺なら初期位置も計算の打ち止め条件も完全に無視してポテンシャルの極小値を求めるプログラムを書いて提示するかな
出題者が期待してるのはそういうものだろうし些細な出題の問題点をいちいち指摘してボツにさせる気なんか起きないな
- 165 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:40:49 ID:s4YIDkZq.net]
- >>160
そのプログラムを投稿すればいいだけの話
- 166 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:43:39 ID:iTxUXfYH.net]
- じゃあ俺はアスペルガー症候群では?って言っただけの話
- 167 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:47:00 ID:s4YIDkZq.net]
- >>161
自分では回答も提示せず人様をアスペ呼ばわりして でも周りはアスペではなかったどうするの
- 168 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:49:51 ID:s4YIDkZq.net]
- 無名掲示板とはいえ、人様に言う言葉にはもう少し気を使え
- 169 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:50:45 ID:XsJA9brB.net]
- せっかく考えて出題してくれてるのに頭ごなしにボツにされようとしてるのを見て許せなかったんだよ
- 170 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 01:52:40 ID:s4YIDkZq.net]
- それとこれとは別問題
お前の気分しだいで人に失礼なことをするのはよせ
- 171 名前:デフォルトの名無しさん [2020/04/16(Thu) 01:54:43 ID:0k+XXy1f.net]
- 君、ネット向いてないよ
- 172 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 01:57:06.29 ID:s4YIDkZq.net]
- 飲むとスルー力が鈍るのは認める。
- 173 名前:デフォルトの名無しさん [2020/04/16(木) 01:58:36.86 ID:XeDXz4LY.net]
- まるでシラフならスルースキル高いかのような言い草で寒っ
- 174 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:00:46.80 ID:s4YIDkZq.net]
- 今日はちょっと虫の居所が悪くてな、すまんな。
ちな上の方のレスのうち、どれが俺の回答か分かるかな
- 175 名前:デフォルトの名無しさん [2020/04/16(Thu) 02:05:16 ID:oMF0NE5s.net]
- 急に語り出して劇寒
- 176 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 02:06:03 ID:s4YIDkZq.net]
- あげあしとりで終わりかよ
つまんねー
- 177 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 02:08:57 ID:s4YIDkZq.net]
- >>150
大体お前が悪いんだよ もう少し考えて出題できませんかね
- 178 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:21:19.79 ID:kjXrQDZb.net]
- 今までも同じようにあまりよろしくないお題を出してそのたびにスルーか同じように指摘され続けてるんだからこんなもんでは?
個人的には全く解いてみたいと思えないお題ばかり お題作るのは難しいなぁとつくづく感じる
- 179 名前:デフォルトの名無しさん [2020/04/16(木) 02:24:22.48 ID:7PlP0fH8.net]
- ここはすききらいをしゃべるすれではありません
- 180 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:24:26.49 ID:GrYlaJ67.net]
- お題作るのは難しいよ
ちょうどいい難易度が難しい
- 181 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:25:43.69 ID:s4YIDkZq.net]
- そりゃ気持ちはわかっけどさー
解いてみたいと思えないお題ばかり、ってことはさすがに無い。 お題によって回答したい、したくないはあるぞ、 時間が許せば、それには回答してきた
- 182 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:27:00.67 ID:/gsmKway.net]
- おまえ名言()とか好きそうだな
- 183 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 02:27:53.73 ID:s4YIDkZq.net]
- >>178
何か心に響いたか?
- 184 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 04:43:54 ID:G88s3oE4.net]
- 糞コテのお題をスルーできてない時点でどっちもゴミ
- 185 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 05:18:07 ID:FKJpjkAo.net]
- お題、JAVA
ウインドウで、ボールを動かして、振り子にしろ。
- 186 名前:デフォルトの名無しさん [2020/04/16(木) 15:33:05.77 ID:CZ2awm/7.net]
- >>181 js(Javaじゃなくてすまん)
https://codepen.io/as124680/full/yLYeRaN
- 187 名前:デフォルトの名無しさん [2020/04/16(木) 18:34:42.45 ID:Ao1pcPxo.net]
- 眠くなってきた
- 188 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 19:17:37.16 ID:A3RNLqkM.net]
- 草
- 189 名前:デフォルトの名無しさん [2020/04/16(木) 19:18:52.09 ID:D2Oboa0/.net]
- >>182
しゅごい・・・
- 190 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 21:50:22 ID:yL7j0Eir.net]
- お題:
2次元平面上の点が5つ与えられる。 これらを順番に線分で結んだとき、星形が構成できるかどうか判定せよ 0 0 1 2 2 0 0 1 2 1 => true 0 0 1 2 2 0 0 2 2 2 => false 0 0 0 1 1 2 2 1 2 0 => false 0 0 5 5 0 5 1 0 1 6 => true
- 191 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 22:15:17.40 ID:A3RNLqkM.net]
- 線型代数の問題だな
- 192 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 22:30:46.61 ID:+l2higCM.net]
- お題
急減少列かどうかを判定せよ。 ただし急減少列とは、(末尾以外の)どの要素もそれ以降の要素の総和より大きい列のこと。 32,16,8,4,2,1 -> true 32,16,8,4,2,1,1 -> false 610,377,144,55,21,8,3,1 -> true 987,610,233,89,34,13,5,2,1 -> false
- 193 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 22:37:52.73 ID:dbvXh7HJ.net]
- 逆順に並べた方が良いなあ
急増加列?
- 194 名前:デフォルトの名無しさん mailto:sage [2020/04/16(Thu) 22:57:42 ID:tWuPngtw.net]
- >>188 Perl5
sub f { my $i = shift; my $r = f(@_) if @_; $i <= $r and die; $i + $r; } for ([32,16,8,4,2,1], [32,16,8,4,2,1,1], [610,377,144,55,21,8,3,1], [987,610,233,89,34,13,5,2,1]) { eval { f @$_ }; $s = "$@" ? 'false' : 'true'; $"=','; print "@$_ = $s\n"; } 実行 ~ $ perl 17_188_shdec.pl 32,16,8,4,2,1 = true 32,16,8,4,2,1,1 = false 610,377,144,55,21,8,3,1 = true 987,610,233,89,34,13,5,2,1 = false
- 195 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 00:26:03.00 ID:aBy1G2y60.net]
- >>186 js
線分交差判定アルゴリズムはググった https://ideone.com/0qMURh
- 196 名前:デフォルトの名無しさん [2020/04/17(金) 02:37:38 ID:GLu8MX8J.net]
- >>188
Perl5 https://paiza.io/projects/nSByfwI4TBgbz-v4RPV_IA 単に逆順にして加算しながら比較しているだけの誰にでも出来る簡単なお仕事。
- 197 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 09:07:37.71 ID:uUpf2Y3l.net]
- >>186
https://ideone.com/NR1SvA
- 198 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 09:10:52.22 ID:uUpf2Y3l.net]
- 直線と点の位置関係判別を6回に減らした
- 199 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 16:03:16 ID:FcD+/8tF.net]
- >>186 Perl5、PDL(Pythonで言うならnumpyとscipyを合わせたようなPerlモジュール)を使わせてもらいました
@t = ([[0,0], [1,2], [2,0], [0,1], [2,1]], [[0,0], [1,2], [2,0], [0,2], [2,2]], [[0,0], [0,1], [1,2], [2,1], [2,0]], [[0,0], [5,5], [0,5], [1,0], [1,6]]); use PDL; use PDL::Math; for $ps (@t) { $ang = 0.0; for ([0,1,2], [1,2,3], [2,3,4], [3,4,0], [4,0,1]) { @p = map{pdl $$ps[$_]} @$_; $v1 = norm($p[0] - $p[1]); $v2 = norm($p[2] - $p[1]); $spro = sum($v1 * $v2); $ang += acos($spro); } $ang = abs($ang); $ans = ($ang > 3.14 and 3.15 < $ang) ? 'true' : 'false'; print "$ans\n"; } 実行結果 ~ $ perl 17_186_istar.pl false false true false
- 200 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 17:08:25 ID:TdOLExdu.net]
- >>195 間違えてた
× $ans = ($ang > 3.14 and 3.15 < $ang) ? 'true' : 'false'; ○ $ans = (3.14 < $ang and $ang < 3.15) ? 'true' : 'false'; しかし、実行結果は ~ $ perl 17_186_istar.pl true true false true 二番目がtrueになってしまう…orz
- 201 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 17:12:31 ID:tQG0pn8t.net]
- >>196
内角の和が180°かで判定すると二番目のデータのような 星のひしゃげたような形も星型扱いされてしまう 交線計算が要るんじゃないかな
|

|