20/03/13 01:42:47.06 0rEhys36.net
プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
URLリンク(ideone.com)
URLリンク(codepad.org)
URLリンク(compileonline.com)
URLリンク(rextester.com)
URLリンク(runnable.com)
URLリンク(code.hackerearth.com)
URLリンク(melpon.org)
URLリンク(paiza.io)
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part16
スレリンク(tech板)
2:デフォルトの名無しさん
20/03/13 08:41:14.93 RXilWx3L.net
>>1おつ
3:デフォルトの名無しさん
20/03/14 15:24:12 L+5etp1i.net
お題:
日本式ローマ字の文字列をひらがなに変換してください
入力:tokugawayosimunehaedozidaidaihatidaisyougun
4:デフォルトの名無しさん
20/03/14 16:53:59 R7iBZnY8.net
何スレか前にやったじゃん。ネタ切れかよ
5:デフォルトの名無しさん
20/03/14 17:13:09 ZPl207sd.net
ネタ切れだよ
文句言うな
6:蟻人間 ◆T6xkBnTXz7B0
20/03/15 02:13:51 IdLAz5Ve.net
お題: なるべく短い文字数のコマンドで自動的にMS-DOSのシステムを完全停止させる。
7:蟻人間
20/03/15 02:20:41.61 IdLAz5Ve.net
>>6
ただし、システムは破壊しないものとする。
8:蟻人間
20/03/15 02:41:15.46 IdLAz5Ve.net
ヒント:外部コマンド
9:蟻人間 ◆T6xkBnTXz7B0
20/03/15 03:52:16 IdLAz5Ve.net
>>6
やっぱりお題を撤回します。古いハードディスクの関係で、システムを強制終了するとドライブが壊れる可能性があるらしいので。つまんないの。
10:蟻人間
20/03/15 04:20:10.12 IdLAz5Ve.net
お題: 一辺2000メートルの正方形の平面上にランダムに動く物体5個がある。正方形の中心に自機があり、自機を中心にレーダー電波が一定速度で回転しながら常に放射されている。
物体がレーダー電波に当たるとその瞬間にその物体までの距離と方向がわかる仕組みになっている。
各物体が直線等速運動をしていると仮定して随時に各物体の速度を推定し、物体が100メートルより近いときは、それが当たりそうな場所に向かってミサイルを自動的に発射する次のようなアルゴリズムを作れ。
1. 毎分ごとに物体5個の位置(Pxn, Pyn)と推定速度(Vxn, Vyn)を報告すること。
2. 自機は動かない。
3. ミサイルを発射するときは方向(Tn; ラジアン)を報告すること。ミサイルの速さは毎秒5メートルである。
4. ミサイルの個数には制限がない。
5. ミサイルと物体座標が2メートル以内であれば、ミサイル命中と見なす。命中すれば物体は消える。実際に消えたときは消えた位置を報告する。
11:デフォルトの名無しさん
20/03/15 05:43:09.27 fxB2xu91.net
前スレの6N+1型と6N-1型の素数どちらが多いかという問題
それぞれの素数全てからなる集合をA, B としたとき、A, Bの濃度はどちらも?_0であり等しい。
問題(と出題者の)頭が悪すぎ
12:蟻人間
20/03/15 08:04:53.86 C2+jTQYL.net
頭悪いと言われるけど、技術的な問題を作れるヤツが少ないから困ってるんだ。
80年代の防衛システムを作れる奴が居ないんだぜ。
ひつじのような学生ばかり作って必要な分野に投資しない。この国はお金を動かす奴等が馬鹿ばかりだ。
13:蟻人間
20/03/15 09:44:00.57 IdLAz5Ve.net
ぼくが指導者になるしかないのかな。。。
14:デフォルトの名無しさん
20/03/15 10:11:20.50 R5iQYFh6.net
インパール作戦の指揮者のような死導者になるのかな
15:デフォルトの名無しさん
20/03/16 16:23:53.04 8T/rxY7p.net
>>11
どちらも有限個でない証明がいるんじゃね?
双子素数の無限存在の十分条件だな(´・ω・`)
16:デフォルトの名無しさん
20/03/16 16:31:49.21 8T/rxY7p.net
Oops sorry 6nプラマイ型の無限性じゃ双子予想導けなかった(´・ω・`)
17:デフォルトの名無しさん
20/03/16 18:20:29 GOFQMBOW.net
>>15
Dirichlet prime number theoremでググれ
初等的な照明は6n±1どちらも簡単
18:デフォルトの名無しさん
20/03/17 12:37:21.90 55EeZ8o4.net
2種類のSSRキャラが各2%、2種類のSRキャラが各2.5%の確率で排出されるガチャがある
これら4種のキャラが全て(各1体以上)出るまでに必要なガチャ回数の期待値は何回か
また、一日3回ガチャした場合に、イベント期間中の2週間(14日)で出る確率はいくらか
19:デフォルトの名無しさん
20/03/17 13:05:48.12 VICFa3qx.net
無限につづく数列の足し算はできる言語あるの?(wolframとか??)
シグマ(k=4から無限まで) Pk
Pnとは n回で出る時の確率であり
Pn = (0.02*0.025)^2 * (0.91)^(n-4) * (n-1 C 3)
20:デフォルトの名無しさん
20/03/17 14:41:18.66 4Vk7SyLR.net
>>6
本当にMS-DOSならばいきなり電源切ればいいのでは?
21:蟻人間
20/03/17 15:11:28.29 jDLeGHZW.net
>>20
Ctrl+Cかexitしないとハードディスクが壊れるというハードウェアがあったらしい。
22:デフォルトの名無しさん
20/03/17 15:46:16.41 4Vk7SyLR.net
>>21
あー。HDD付いてるのか。
フロッピーディスクのみかと思った。
23:デフォルトの名無しさん
20/03/17 20:32:07 WZhpPu/2.net
>>19
数式処理ができる言語なら級数の収束が数式で解けるから
できるはずだが
24:デフォルトの名無しさん
20/03/18 09:09:56 I/71Lz9x.net
(多項式)*(等比数列)の形の級数に限れば多項式をn, n(n+1), n(n+1)(n+2), ... の線形結合で表してΣ[i=0 to Infinity] i(i+1)...(i+n-1)*r^i = n!r/(1-r)^(n-1)を使えば求められる
だから多項式を展開できて連立方程式が解ける言語ならなんでも
25:デフォルトの名無しさん
20/03/19 09:16:32 bOFq5rto.net
>>10
ミサイルの速度遅くね?
敵の速度ってどれくらい?
26:デフォルトの名無しさん
20/03/19 13:17:22 WnokI830.net
お題: ミサイル迎撃システムがある
関数analyzeに敵ミサイルの座標である「緯度」「経度」「高度」が渡されるので敵ミサイルを迎撃せよ
なおこのanalyze関数は敵ミサイルが飛翔している間、座標を更新しながら100ミリ秒ごとに繰り返し呼ばれるものとする
敵ミサイルの高度が0以下になった場合、ミサイルの迎撃に失敗したものとみなす
迎撃ポイントを確定したら関数fireを呼び出し、敵ミサイルを撃墜すること
なお迎撃に使うレーザー砲は敵ミサイルに届くまで1秒かかるものとする
敵ミサイルの軌道は直線的とし、重力や空気抵抗を考慮しないものとする
27:デフォルトの名無しさん
20/03/19 15:56:22.46 GbpHbvNZ.net
レーザーが届くまでに一秒かかるということは
ミサイルの位置も一秒前のものしかわからないわけだな
28:デフォルトの名無しさん
20/03/19 16:21:54.04 SIWc9klw.net
高度は地表からの距離だろうか。
地球が完全な球と仮定してよいか。
地球の半径、迎撃レーザーの発射点の座標とかは勝手に決めてよいのか。
ミサイルの起動について地球の自転は考慮不要か。
ミサイルの起動は直線だとして速度が一定と仮定してよいのか。
29:デフォルトの名無しさん
20/03/19 16:50:52.26 bOFq5rto.net
地球は平面だろ!
30:デフォルトの名無しさん
20/03/19 16:59:57.04 88pUuzIX.net
糞コテのお題だぞ
無視しろよ
31:デフォルトの名無しさん
20/03/19 17:18:21.03 WnokI830.net
>>28
指摘された点を推敲したいと思います・・・
32:デフォルトの名無しさん
20/03/19 18:08:36.94 SIWc9klw.net
>>31
かなり杜撰な問題だと思うけどそもそも自分でちゃんと解いたのか?
33:デフォルトの名無しさん
20/03/19 18:18:34.03 WnokI830.net
>>32
いいえ
34:デフォルトの名無しさん
20/03/19 18:21:33.25 sZ6Ndc8g.net
テキトーすぎる
コテ関係なく質がひどすぎるお題なんて触�
35:黷ネくておk
36:デフォルトの名無しさん
20/03/19 20:14:53 WsP7BoFG.net
おまえらやる気なさすぎワロタw
37:デフォルトの名無しさん
20/03/19 20:33:34 I3A3yd/j.net
奇形のデブス前にしてチンコ勃てろと言ってるようなもの。
それでEDと罵られても困る。
38:デフォルトの名無しさん
20/03/20 06:22:44.72 Edy1QoAW.net
>>29
球なのに平らであると
39:デフォルトの名無しさん
20/03/20 08:51:54 WvSQRAtR.net
リーマン球面は複素平面である。
故に球面は平面である。
Q.E.D.
40:デフォルトの名無しさん
20/03/20 09:12:05 xr3G6R5C.net
お題:Gとなるノノグラムデータを作って下さい。
41:デフォルトの名無しさん
20/03/20 09:29:42 tkx4ScZk.net
Gとなる、というのは解がGの文字の字形になるということか?
Gの文字の字形に定義はあるの?
42:デフォルトの名無しさん
20/03/20 09:49:35 iazeZlcv.net
リーマン球面は複素平面である...???
43:デフォルトの名無しさん
20/03/21 19:49:46 I6z+mtmQ.net
お題: RGBを独自定義の色定数に変換せよ
関数convに引数r, g, bが渡される。それぞれの引数は0~255の範囲の値を持つRGBカラーの値である
このRGB値を以下の色定数に変換し、戻り値として返却せよ
111 ... BLACK
112 ... BLUE
121 ... GREEN
122 ... CYAN
211 ... RED
212 ... MAGENTA
221 ... YELLOW
222 ... WHITE
色の正規化の方法など、詳しいことは一任するが、↑の色定数の名前に近似するように調整すること
44:デフォルトの名無しさん
20/03/21 20:01:40 I6z+mtmQ.net
>>42
訂正: MAGENTA -> PURPLE
45:デフォルトの名無しさん
20/03/21 21:38:46 H1X3lIOS.net
>>42
Java
URLリンク(paiza.io)
46:デフォルトの名無しさん
20/03/21 22:23:41.82 vYB/WqOU.net
int conv(int r, int g, int b){
return (r&0x80?200:100) + (g&0x80?20:10) + (b&0x80?2:1);
}
47:デフォルトの名無しさん
20/03/22 00:11:44 3eM1H9mL.net
>>3
Java
URLリンク(paiza.io)
48:デフォルトの名無しさん
20/03/22 03:48:21 INd1TwL5.net
>>42 Ruby
def conv( *rgb ) rgb.map{|v| v >> 7 & 1 }.inject(0){|r,i| 10*r + i + 1 } end
conv( 0x80, 0, 0 ) #=> 211
49:デフォルトの名無しさん
20/03/22 10:39:01 q38LxNo0.net
>>42 Pharo/Squeak Smalltalk
"すでに機能として組み込まれている"
Color r: 0 g: 0 b: 0. "=> Color black "
Color r: 0 g: 0 b: 1. "=> Color blue "
Color r: 0 g: 1 b: 0. "=> Color green "
Color r: 0 g: 1 b: 1. "=> Color cyan "
Color r: 1 g: 0 b: 0. "=> Color red "
Color r: 1 g: 0 b: 1. "=> Color magenta "
Color r: 1 g: 1 b: 0. "=> Color yellow "
Color r: 1 g: 1 b: 1. "=> Color white "
"カラー名と同名のメソッドコールでオブジェクトを得ることもできる"
Color red + Color green + Color blue. "=> Color white "
Color white - Color yellow "=> Color blue "
50:デフォルトの名無しさん
20/03/22 12:47:56.07 EPda6hnZ.net
>>48
さしがsmalltalkさん
51:デフォルトの名無しさん
20/03/22 23:23:43.84 Bu0KMZaA.net
>>48
恐ろしい子・・・
52:デフォルトの名無しさん
20/03/23 00:59:16 ryqQXgQk.net
>>48
さすスモ
53:デフォルトの名無しさん
20/03/27 23:49:15 7AzyN3tE.net
お題:安価をレス番リストに変換せよ
例:
"1" -> [1]
"1-3" -> [1,2,3]
"1,3" -> [1,3]
"1,3-5" -> [1,3,4,5]
54:デフォルトの名無しさん
20/03/28 00:46:37 xGS8Imsw.net
>>52 Ruby
def anka(str)
nums=[]
str.split(“,”)
55:.each do |s| x,y=s.split(“-“) if y nums+=(x.to_i .. y.to_i).to_a else nums<<x.to_i end end return nums end anka(“1,3-5”) #=> [1,3,4,5]
56:デフォルトの名無しさん
20/03/28 01:05:52 ngUeRIaE.net
お題:>>52
例:
>>52に追加で
"1,1" -> [1]
"1-3,2" -> [1,2,3]
"1-4,2-3" -> [1,2,3,4]
"1-4,3-5" -> [1,2,3,4,5]
57:デフォルトの名無しさん
20/03/28 01:08:29 ngUeRIaE.net
やっぱやめた。
よく考えたら>>53のコードに重複削除追加するだけだった
58:デフォルトの名無しさん
20/03/28 09:55:13 YBto5Ud7.net
>>52 Ruby
%w[1 1-3 1,3 1,3-5].each{|e| p eval "[#{e.gsub(/(\d+)-/, '*\1..')}]"}
# => [1]
[1, 2, 3]
[1, 3]
[1, 3, 4, 5]
59:◆QZaw55cn4c
20/03/28 10:17:31 WJROMx30.net
>>52 >>54
既出
= スレリンク(tech板:34番),41,83,84
スレリンク(tech板:64番)
60:デフォルトの名無しさん
20/03/28 11:14:59 VFdWLa/U.net
>>52 Perl5
$"=',';
for $a (<DATA>) {
$a =~ s/-/.../;
@s = eval $a;
print "[@s]\n";
}
__DATA__
1
1-3
1,3
1,3-5
実行結果
~ $ perl 17_53_ancres.pl
[1]
[1,2,3]
[1,3]
[1,3,4,5]
61:デフォルトの名無しさん
20/03/28 11:21:13.18 VFdWLa/U.net
>>58 Perl5 ちょっと修正
$"=',';
for $a (<DATA>) {
$a =~ s/-/.../g;
@s = sort{$a<=>$b} eval $a;
print "[@s]\n";
}
__DATA__
1
1-3
1,3
1,8-10,3-5
実行
~ $ perl 17_53_ancres.pl
[1]
[1,2,3]
[1,3]
[1,3,4,5,8,9,10]
62:デフォルトの名無しさん
20/03/28 18:22:26.71 ssy5u0i6.net
>>52
Java
URLリンク(paiza.io)
63:デフォルトの名無しさん
20/03/28 18:24:03.79 ssy5u0i6.net
お題:レス番リストを安価に変換せよ
例:
[1] -> "1"
[1,2,3] -> "1-3"
[1,3] -> "1,3"
[1,3,4,5] -> "1,3-5"
64:デフォルトの名無しさん
20/03/28 19:38:54.96 RLgHfGbj.net
前者は2ch browserで使えるけど後者はそうじゃないね
65:デフォルトの名無しさん
20/03/28 23:41:39 X4tW2giy.net
まーたやらな言い訳かー
やる気ねーなw
66:デフォルトの名無しさん
20/03/29 10:50:09 ACisvDeP.net
>>61 js
let レス番リスト=[1,3,4,5];
let 先頭レス番=レス番リスト[0];
let 安価="";
for(let イ=0;イ<レス番リスト.length-1;イ++){
if(レス番リスト[イ]+1!=レス番リスト[イ+1]){
安価+=レス番リスト[イ]==先頭レス番?先頭レス番+",":先頭レス番+"-"+レス番リスト[イ]+",";
先頭レス番=レス番リスト[イ+1];
}
}
安価+=レス番リスト[レス番リスト.length-1]==先頭レス番?先頭レス番:先頭レス番+"-"+レス番リスト[レス番リスト.length-1];
console.log(安価);
=>1,3-5
67:デフォルトの名無しさん
20/03/29 14:05:00.00 kU1QBoxf.net
>>61 Perl5 (もう少しスマートな書き方はあるかもしれないが…)
for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
@a = /(\d+)/g;
%h = map{$_ => $_} @a;
@b = map{$h{$_}//','} 1..1000;
$"=','; $b = "@b";
$b =~ s/^,*(.+?),*$/$1/;
@c = split /,,+/, $b;
@d = map{[eval]} @c;
@e = map{@$_ > 2 ? "$$_[0]-$$_[-1]" : "@$_"} @d;
print "@e\n";
}
実行結果
~ $ perl 17_61_resanc.pl
1
2,3
1-3
1,3
1,3-5
68:デフォルトの名無しさん
20/03/29 18:03:50 5iH4CTSz.net
なにやってるのか全くわからんw
69:デフォルトの名無しさん
20/03/29 18:46:57.43 CipzEZQ7.net
@a = /(\d+)/g; … 文字列から数値だけを抽出しリスト変数@aに格納、たとえば文字列が"[1,3,4,5]" の場合@aは(1, 3, 4, 5)
%h = map{$_ => $_} @a; … 変数@aのリスト例えば(1, 3, 4, 5)を入力として値対値ハッシュ {1=>1, 3=>3, 4=>4, 5=>5}を作り変数%hとする
@b = map{$h{$_}//','} 1..1000; … 1~1000までの数値に対しハッシュ%hを参照し値があればその値、無ければ','文字のリストを生成して変数@bに格納、上記{1=>1, 3=>3, 4=>4, 5=>5}の場合はこんな感じ
# 1 2 3 4 5 6 7 8 9 … 1000
@b: 1 , 3 4 5 , , , , … ,
$"=','; $b = "@b"; … 上記リスト@bを元に要素を区切り文字','で繋いだ文字列を作り変数$bに設定
上記@b: 1 , 3 4 5 , , , … ,
の場合 $b = "1,,,3,4,5,,,,,,,…,,"
2や6以降は無いので,となっている
$b =~ s/^,*(.+?),*$/$1/; … 文字列$bの先頭と末尾に','があれば除去
例 $b = "1,,,3,4,5,,,,,,,…,," ⇒ "1,,,3,4,5"
@c = split /,,+/, $b; … $bを正規表現/,,+/を区切りとして分割したリストを@cに格納
例 $b = "1,,,3,4,5" ⇒ @c = ("1", "3,4,5")
@d = map{[eval]} @c; … リスト@cの文字列をそれぞれevalして数値リストのreferenceの配列を@dに設定
例 @c = ("1", "3,4,5") ⇒ @d = ([1], [3, 4, 5])
@e = map{@$_ > 2 ? "$$_[0]-$$_[-1]" : "@$_"} @d;
@dの夫々の数値リストに対し、要素が1だったらその数値自体を文字列に、2個だったら数値を','で連結した文字列に、
3個以上だったら"最初の数値-最後の数値"という文字列に変換
例 @d = ([1], [3, 4, 5]) ⇒ @e = ("1", "3-5")
print "@e\n";
@e の文字列リストを','で繋いで印字(上の方で区切り文字$"は=','に設定済)
例 @e = ("1", "3-5") ⇒ 1,3-5
@dと@eを作るところがもう少しエレガントにできればよかったけれど
70:デフォルトの名無しさん
20/03/29 19:07:03 5iH4CTSz.net
なるほど、そうやって並んだ部分でグループ化するのか
71:デフォルトの名無しさん
20/03/30 22:44:25.79 xSpiMCgD.net
>>65 Perl5 少しスマートに書けた(文字列マッチンク処理゙主体になっちまったけれど…)
$"=',';
for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
@a = /(\d+)/g;
%h = map{$_ => $_} @a;
@b = map{$h{$_}//' '} 1..20;
$b = "@b";
@c = $b =~ /(\d(?:,\d)*)/g;
s/(,\d+)+,/-/ for @c;
print "@c\n";
}
実行
~ $ perl 17_61_resanc_0330.pl
1
2,3
1-3
1,3
1,3-5
72:デフォルトの名無しさん
20/03/30 22:45:46.57 q7KIsR+X.net
>>69 テスト時のcodeが残ってた…orz
× @b = map{$h{$_}//' '} 1..20;
○ @b = map{$h{$_}//' '} 1..1000;
73:デフォルトの名無しさん
20/03/31 23:56:04.38 9DwI/QO9.net
>>59
めったに使えない evalが入てて楽しい
74:デフォルトの名無しさん
20/04/03 19:14:26.56 tv+k2Xei.net
お題
文字列の先頭から続く、0 は、8進数と解釈されるため、バグります!
なので、それらを除去して、10進数と解釈できる文字列にして下さい。
以下は、すべて文字列です
090 → 90
0080 → 80
123 → 123
0 → 0
000 → 0
"" → ""
75:デフォルトの名無しさん
20/04/03 19:53:54.22 MoLJYTUl.net
>>72 マルチポスト&スレチ
スレリンク(tech板)
76:72
20/04/03 20:02:16.50 tv+k2Xei.net
向こうのスレから移動したので、このスレで続けて下さい!
77:デフォルトの名無しさん
20/04/03 20:06:07.16 etO49JcP.net
粘着者湧いてるじゃん
78:デフォルトの名無しさん
20/04/03 20:13:05 D8CnMwXH.net
>>72
js
result=input==""?"":Number(input)
79:デフォルトの名無しさん
20/04/03 20:17:14 Ea8es11U.net
>>72
perl5
URLリンク(pastebin.com)
80:デフォルトの名無しさん
20/04/03 20:17:36 D8CnMwXH.net
すまん、よく読んでなかったわ
81:デフォルトの名無しさん
20/04/04 00:40:59 oi+wB/l2.net
>>72 Perl5
for $a (qw{090 0080 123 0 000}) {
($b = $a) =~ s/^0*([\d])/$1/;
print "$a → $b\n"
}
実行結果
~ $ perl 17_72_0dec.pl
090 → 90
0080 → 80
82:123 → 123 0 → 0 000 → 0
83:デフォルトの名無しさん
20/04/04 00:43:04 7bsK3hPl.net
>>79 いや、([\d])は(\d)で十分だた…
for $a (qw{090 0080 123 0 000}) {
($b = $a) =~ s/^0*(\d)/$1/;
print "$a → $b\n"
}
84:デフォルトの名無しさん
20/04/04 01:02:31.09 PfYZfNM0.net
>>80
r オプションつかうと括弧省ける
$b = $a =~ s/^0*(\d)/$1/r;
85:デフォルトの名無しさん
20/04/04 01:49:49 jL2VaRwC.net
>>81
そっか、今度から置換代入にはr使ってみる。
も少し書き換えたら、こうなった
for (qw{090 0080 123 0 000}) {
/^0*(\d+)/;
print "$_ → $1\n"
}
~ $ perl 17_72_0dec.pl
090 → 90
0080 → 80
123 → 123
0 → 0
000 → 0
86:72
20/04/04 12:46:11.12 1ehA2Rbs.net
>>72
Ruby で
def delete_successive_zero( str )
return "" if str == ""
str.to_i.to_s # 10進数
end
ary = %w(090 0080 123 0 000)
ary.push ""
p ary.map { |str| delete_successive_zero( str ) }
出力
[ "90", "80", "123", "0", "0", "" ]
87:デフォルトの名無しさん
20/04/04 13:37:45 tmNSQTrZ.net
>>52 Dart
void main() {
final List<String> anchors = ["1", "1-3", "1,3", "1,3-5"];
anchors.forEach((anchor) => print("$anchor => ${toNums(anchor)}"));
}
List<int> toNums(str) {
final List<int> result = [];
str.split(",").forEach((param){
if(param.contains("-")) {
result.addAll(hoge(param));
} else {
result.add(int.parse(param));
}
});
return result;
}
List<int> hoge(str) {
final List<int> result = [];
final range = str.split("-");
for(var i = int.parse(range[0]);i <= int.parse(range[1]); i++) result.add(i);
return result;
}
// =>
1 => [1]
1-3 => [1, 2, 3]
1,3 => [1, 3]
1,3-5 => [1, 3, 4, 5]
88:デフォルトの名無しさん
20/04/04 13:48:29 qnbQjwAi.net
>>72 Python
def strip(s):
s = s.lstrip('0')
if not len(s):
return '0'
return s
89:デフォルトの名無しさん
20/04/04 14:34:09.15 VszBH+2q.net
>>72
Java
URLリンク(paiza.io)
90:デフォルトの名無しさん
20/04/04 23:52:04.74 sokSr0we.net
>>85
""が0になりませんか
91:デフォルトの名無しさん
20/04/05 01:07:14.83 14D27qM5.net
>>72
>>85修正
URLリンク(ideone.com)
92:デフォルトの名無しさん
20/04/05 05:36:36.03 sZO7YFrq.net
>>72
Perl5
ある意味手抜きなプログラムである。
URLリンク(paiza.io)
オマケ機能としてマイナスの時に -00009 みたいなやつも -9 になるようにした。
更に、整数の数でない場合(文字列の場合)はダブルクォーテーションで括って出すようにした。
93:デフォルトの名無しさん
20/04/05 05:42:34.94 sZO7YFrq.net
>>72
Kotlin
URLリンク(paiza.io)
>>89よりも更にもっと手抜きである。びっくりするほど何もやってない。仕様は同じ。
94:デフォルトの名無しさん
20/04/05 06:46:49.40 14D27qM5.net
あ~マイナス値は考慮してなかったな~
95:デフォルトの名無しさん
20/04/05 06:56:54 RExqiO2w.net
教えて君の質問に馬鹿正直に答えてやるなよ
96:デフォルトの名無しさん
20/04/05 07:43:19 14D27qM5.net
>>72 Python
URLリンク(ideone.com)
PerlとKotlinの人のに比べると長くなってしまったのが心残り
97:デフォルトの名無しさん
20/04/05 12:55:09.83 SfC0ZJYK.net
粘着君の意に反して回答わっさわっさ来ててワロタ
98:デフォルトの名無しさん
20/04/05 12:56:43.55 yw9/uuhJ.net
粘着君ってなんやねん
スレチだって言われてんだろ
99:デフォルトの名無しさん
20/04/05 13:01:09.81 SfC0ZJYK.net
えw それ言ってるのが粘着君じゃないの?w
どの辺がスレチなのか知らんけど君の意見なんか誰も同調しないかのように回答わさわさなのを見てどんな気持ち???w
100:デフォルトの名無しさん
20/04/05 13:06:14.44 yw9/uuhJ.net
あほくさ
101:デフォルトの名無しさん
20/04/05 13:06:52.23 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 '' )
URLリンク(ideone.com)
102:デフォルトの名無しさん
20/04/05 13:07:50.11 SfC0ZJYK.net
わざわざ他スレから出張してまで粘着するも自分の思い通りにならず涙目敗北草不可避w
103:デフォルトの名無しさん
20/04/05 13:08:52.29 5b4pXRMu.net
ID:SfC0ZJYKは有名な荒しだよ
スルーしな
104:デフォルトの名無しさん
20/04/05 13:10:52.18 SfC0ZJYK.net
そのように言っている自分自身の策略書き込みがスルーされているという悲劇ww
105:デフォルトの名無しさん
20/04/05 13:13:48.87 QyCQlkmw.net
共有NG入ってて草
>>72が自力で解けない時点で脳みそに障害あるだろコイツ
106:デフォルトの名無しさん
20/04/05 13:15:17.06 SfC0ZJYK.net
ブツブツと負け惜しみを垂れ流しているその姿はまさに哀愁満点 w
107:デフォルトの名無しさん
20/04/07 16:39:18 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:デフォルトの名無しさん
20/04/07 19:00:27.59 i9ABTPYd.net
であればもうこれで十分って感じがしてきた^^;
>>72 GNU Smalltalk
#(090 0080 123 0 000 '') display.
=> (90 80 123 0 0 '' )
URLリンク(ideone.com)
109:デフォルトの名無しさん
20/04/08 07:58:45 5CDGaVzP.net
お題: レスの被アンカー数をレスごとにカウントし、降順に整列して出力せよ
入力は1レス1行で入力され、1行のフォーマットは「レス番:レス内容」でコロンで区切ってある
レスの入力がすべて終わった段階でレスごとに被アンカー数を計算し、「レス番:カウント数」のフォーマットで出力せよ
入力と出力例: URLリンク(ideone.com)
110:デフォルトの名無しさん
20/04/08 16:25:56 gvYQZ6Pp.net
こんな感じで作ったな
select_word_and_anchor.pl
URLリンク(ideone.com)
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:デフォルトの名無しさん
20/04/08 16:30:02 gvYQZ6Pp.net
動作はこんな感じ 例にあるような常用2chアンカー機能する
URLリンク(i.imgur.com)
112:デフォルトの名無しさん
20/04/08 23:06:09 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;
実行結果
URLリンク(ideone.com)
113:デフォルトの名無しさん
20/04/09 00:05:07.49 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;
実行結果
URLリンク(ideone.com)
114:デフォルトの名無しさん
20/04/09 10:38:42 Sx5ouxFp.net
>>106
話題そらそうと粘着君が必死だねwww負け組だっさwww
115:デフォルトの名無しさん
20/04/09 12:42:58.73 5swiwcjH.net
?
116:デフォルトの名無しさん
20/04/09 15:48:38 pqMoXxyo.net
荒らしは必ず、2回書き込む。
「そうだよね」とか、同意するレスを付けて、人数が多いように見せる
くだすれPython(超初心者用) その47【Ruby禁止】
Ruby禁止とか、色々なスレのタイトルを勝手に変える
工学部というコテハンだろ。
ソースコードを書かないし、プログラマーじゃないから相手をしないように!
117:デフォルトの名無しさん
20/04/09 16:48:05.84 G208HopB.net
>>113
そのスレは別のスレであり話題としてスレ違い。
そもそもそれらのスレでRuby禁止と付けられる原因を作っているお前が言うな。
お前こそコテハンをつけるか書き込みをやめるかしろよ。
118:デフォルトの名無しさん
20/04/09 16:59:35 EoH4bsm+.net
>>113
悔しいんでしょwwそうゆう風にいつまでも負け惜しみ言ってなよwww
119:デフォルトの名無しさん
20/04/10 15:52:58 FxL3k9Tv.net
>>110
コード短いね
120:デフォルトの名無しさん
20/04/10 15:53:17 FxL3k9Tv.net
ageてしまった
121:デフォルトの名無しさん
20/04/10 17:33:36 gIxx/WN6.net
気にすんな
122:デフォルトの名無しさん
20/04/10 17:34:13 GWaBtrPd.net
age禁止ってまだやってんの?
123:デフォルトの名無しさん
20/04/10 17:42:36 7f4O8kzL.net
非常事態を宣言します
124:デフォルトの名無しさん
20/04/10 20:50:54 gIxx/WN6.net
このスレは放っておくとすぐ過疎っちゃうんだからむしろもっともっと激しくテッテ的にage続けるべきだ。
125:デフォルトの名無しさん
20/04/11 00:56:36 qHx8Q1G9.net
>>110
for (´・ω・`) {
}
126:デフォルトの名無しさん
20/04/11 01:07:31 Rbw4pROQ.net
>>106 Python
URLリンク(ideone.com)
127:デフォルトの名無しさん
20/04/11 01:11:10 fnqXUaLM.net
(><)
128:デフォルトの名無しさん
20/04/12 00:40:37.82 j0O/fDVx.net
>>106
Java
URLリンク(paiza.io)
129:デフォルトの名無しさん
20/04/13 23:30:53.99 +Sqc38Tr.net
>>106
Kotlin
URLリンク(paiza.io)
130:デフォルトの名無しさん
20/04/14 00:06:26.40 hs9mI5+o.net
>>106
Kotlin
正規表現使わない版
URLリンク(paiza.io)
更に最初から SortedMap に入れるようにした。
131:デフォルトの名無しさん
20/04/14 01:39:02.43 hs9mI5+o.net
>>106
C
URLリンク(paiza.io)
やっぱCで標準のライブラリしか使わないと長くなるな。
132:デフォルトの名無しさん
20/04/14 01:44:11 cZOfM+S5.net
if(m[n]==null) m[n]=1
の部分と三項演算子の部分の後分は機能が被ってませんか?
133:デフォルトの名無しさん
20/04/14 12:04:01 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
20/04/14 12:53:55 QRiFiZHs.net
お題: 整数の閉区間がいくつか与えられる。
それらの和集合を求め、それをいくつかの閉区間で出力せよ。
出力の閉区間の個数はなるべく少なくすること。
(
135:例) [1, 5], [2, 6], [-1, 10] ==> [-1, 10]. [2, 3], [3, 4], [7, 10] ==> [2, 4], [7, 10].
136:デフォルトの名無しさん
20/04/14 14:56:59.99 vknfd45S.net
>>129
三項演算子ではない(Kotlinには三項演算子はない)。?: はエルビス演算子で、左側の式が null だったら右側の値を使うというやつ。nullでなければそのまま左側の値を使う。
で、その部分は先頭のレス番号のキーがまだ作られてなかったら0で初期化する部分だ。
m[n] = m[n] ?: 0
とも書けるが、これは何か無駄な感じがする。nullでなければ同じ値の代入になるので。だからifで必要な時だけの代入(初期化)にした。
137:デフォルトの名無しさん
20/04/14 15:14:57 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:デフォルトの名無しさん
20/04/14 15:35:48 cZOfM+S5.net
>>132
なるほど。ありがとうございます。
139:デフォルトの名無しさん
20/04/14 17:17:14 h96nPay3.net
数式を標準入力から与えられる。
計算結果を出力しなさい。
条件
・数式の長さが1000を超える場合や、不正な数式についてはErrorと出力すること
・整数を出力しなさい
・小数点が出る場合は切り捨てた値を出力すること
・eval禁止
・数式に利用できる文字 0123456789+-*/()
・数式に半角スペースは含まれない
140:デフォルトの名無しさん
20/04/14 17:45:13.26 SdOMVfQl.net
>>135 数式のサンプルよろ
141:デフォルトの名無しさん
20/04/14 17:50:15.21 OuRgqSbO.net
100/2(3+4)
はいくつですか?
142:デフォルトの名無しさん
20/04/14 17:56:57 7oi1O/kb.net
>>137
*が省かれているからErrorとする
あるいは100/2*(2+3)とみなして250
じゃまいか
143:蟻人間 ◆T6xkBnTXz7B0
20/04/14 19:35:28 Ozse1OSh.net
お題: CD/DVDドライブのトレイを開きなさい。
144:デフォルトの名無しさん
20/04/14 19:48:22 rsqvGSlE.net
>>135 Ruby
eval gets rescue $><<:Error
145:デフォルトの名無しさん
20/04/14 19:50:23 rsqvGSlE.net
typo
p eval$_ rescue$><<:Error while gets
146:デフォルトの名無しさん
20/04/14 20:13:52.06 AV9/Nsy0.net
>>139
言語:日本語
実行:日本人
CD/DVDドライブのトレイを開きなさい。
147:
20/04/14 20:35:51.72 42R+WK0w.net
>>142
言語:日本語
実行:日本語を理解する人
の方が正確ですね
148:デフォルトの名無しさん
20/04/14 22:24:45 8w/NVh3l.net
>>139 Python
import ctypes
ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
149:デフォルトの名無しさん
20/04/15 01:04:36.72 RHvlA1sV.net
三項演算子ないとかゴミだな
150:デフォルトの名無しさん
20/04/15 12:23:24 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:デフォルトの名無しさん
20/04/15 12:57:38 qoEmvMwd.net
>>135 F#
URLリンク(ideone.com)
152:デフォルトの名無しさん
20/04/15 15:02:35.67 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:デフォルトの名無しさん
20/04/15 15:04:17.94 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
20/04/15 21:28:09 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:デフォルトの名無しさん
20/04/15 21:56:01.64 //wWJwAN.net
はい、次の方どうぞ
156:蟻人間 ◆T6xkBnTXz7B0
20/04/15 22:30:18 mz+a7+dL.net
お題: 次のようなプログラムを作れ。プログラムを起動したとき、ファイル「times.txt」に現在の日時を秒単位で記録した後、
前回の起動日時との差を求め、時間差の秒数を表示せよ。
ただし、うるう秒を考慮すること。
157:デフォルトの名無しさん
20/04/15 23:31:28 /1JmN5U2.net
>>150
慣性が働いて抵抗が無いなら収束などしない
永遠に振動し続ける
初速度も書いて無いし
離れすぎ、近づきすぎの条件も書いてない
158:デフォルトの名無しさん
20/04/16 00:11:24 qhHxDSDQ.net
>>131 c
URLリンク(ideone.com)
159:デフォルトの名無しさん
20/04/16 00:30:51 qxGCpnz3.net
乙。
160:デフォルトの名無しさん
20/04/16 01:19:43 6omvFBXS.net
>>153
アスペルガー症候群は黙ってた方がいい
161:デフォルトの名無しさん
20/04/16 01:25:27 Yc0fbgtG.net
初速度や離れすぎ、近づきすぎの条件が書いてないのは事実で回答しようも無いんだし
そういうのはやめたらどうかと思うんだが
162:デフォルトの名無しさん
20/04/16 01:27:18 iTxUXfYH.net
そういう柔軟性のなさがアスペルガー症候群くさいんだよなぁ…
まあ本当は出題の意図は分かってて敢えてイチャモン付けてるんだろうけど
163:デフォルトの名無しさん
20/04/16 01:28:44 Yc0fbgtG.net
>>158
じゃあ、お前さんがお題の回答プログラム
どうぞよろしく
164:デフォルトの名無しさん
20/04/16 01:37:52 iTxUXfYH.net
俺なら初期位置も計算の打ち止め条件も完全に無視してポテンシャルの極小値を求めるプログラムを書いて提示するかな
出題者が期待してるのはそういうものだろうし些細な出題の問題点をいちいち指摘してボツにさせる気なんか起きないな
165:デフォルトの名無しさん
20/04/16 01:40:49 s4YIDkZq.net
>>160
そのプログラムを投稿すればいいだけの話
166:デフォルトの名無しさん
20/04/16 01:43:39 iTxUXfYH.net
じゃあ俺はアスペルガー症候群では?って言っただけの話
167:デフォルトの名無しさん
20/04/16 01:47:00 s4YIDkZq.net
>>161
自分では回答も提示せず人様をアスペ呼ばわりして
でも周りはアスペではなかったどうするの
168:デフォルトの名無しさん
20/04/16 01:49:51 s4YIDkZq.net
無名掲示板とはいえ、人様に言う言葉にはもう少し気を使え
169:デフォルトの名無しさん
20/04/16 01:50:45 XsJA9brB.net
せっかく考えて出題してくれてるのに頭ごなしにボツにされようとしてるのを見て許せなかったんだよ
170:デフォルトの名無しさん
20/04/16 01:52:40 s4YIDkZq.net
それとこれとは別問題
お前の気分しだいで人に失礼なことをするのはよせ
171:デフォルトの名無しさん
20/04/16 01:54:43 0k+XXy1f.net
君、ネット向いてないよ
172:デフォルトの名無しさん
20/04/16 01:57:06.29 s4YIDkZq.net
飲むとスルー力が鈍るのは認める。
173:デフォルトの名無しさん
20/04/16 01:58:36.86 XeDXz4LY.net
まるでシラフならスルースキル高いかのような言い草で寒っ
174:デフォルトの名無しさん
20/04/16 02:00:46.80 s4YIDkZq.net
今日はちょっと虫の居所が悪くてな、すまんな。
ちな上の方のレスのうち、どれが俺の回答か分かるかな
175:デフォルトの名無しさん
20/04/16 02:05:16 oMF0NE5s.net
急に語り出して劇寒
176:デフォルトの名無しさん
20/04/16 02:06:03 s4YIDkZq.net
あげあしとりで終わりかよ
つまんねー
177:デフォルトの名無しさん
20/04/16 02:08:57 s4YIDkZq.net
>>150
大体お前が悪いんだよ
もう少し考えて出題できませんかね
178:デフォルトの名無しさん
20/04/16 02:21:19.79 kjXrQDZb.net
今までも同じようにあまりよろしくないお題を出してそのたびにスルーか同じように指摘され続けてるんだからこんなもんでは?
個人的には全く解いてみたいと思えないお題ばかり
お題作るのは難しいなぁとつくづく感じる
179:デフォルトの名無しさん
20/04/16 02:24:22.48 7PlP0fH8.net
ここはすききらいをしゃべるすれではありません
180:デフォルトの名無しさん
20/04/16 02:24:26.49 GrYlaJ67.net
お題作るのは難しいよ
ちょうどいい難易度が難しい
181:デフォルトの名無しさん
20/04/16 02:25:43.69 s4YIDkZq.net
そりゃ気持ちはわかっけどさー
解いてみたいと思えないお題ばかり、ってことはさすがに無い。
お題によって回答したい、したくないはあるぞ、
時間が許せば、それには回答してきた
182:デフォルトの名無しさん
20/04/16 02:27:00.67 /gsmKway.net
おまえ名言()とか好きそうだな
183:デフォルトの名無しさん
20/04/16 02:27:53.73 s4YIDkZq.net
>>178
何か心に響いたか?
184:デフォルトの名無しさん
20/04/16 04:43:54 G88s3oE4.net
糞コテのお題をスルーできてない時点でどっちもゴミ
185:デフォルトの名無しさん
20/04/16 05:18:07 FKJpjkAo.net
お題、JAVA
ウインドウで、ボールを動かして、振り子にしろ。
186:デフォルトの名無しさん
20/04/16 15:33:05.77 CZ2awm/7.net
>>181 js(Javaじゃなくてすまん)
URLリンク(codepen.io)
187:デフォルトの名無しさん
20/04/16 18:34:42.45 Ao1pcPxo.net
眠くなってきた
188:デフォルトの名無しさん
20/04/16 19:17:37.16 A3RNLqkM.net
草
189:デフォルトの名無しさん
20/04/16 19:18:52.09 D2Oboa0/.net
>>182
しゅごい・・・
190:デフォルトの名無しさん
20/04/16 21:50:22 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:デフォルトの名無しさん
20/04/16 22:15:17.40 A3RNLqkM.net
線型代数の問題だな
192:デフォルトの名無しさん
20/04/16 22:30:46.61 +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:デフォルトの名無しさん
20/04/16 22:37:52.73 dbvXh7HJ.net
逆順に並べた方が良いなあ
急増加列?
194:デフォルトの名無しさん
20/04/16 22:57:42 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:デフォルトの名無しさん
20/04/17 00:26:03.00 aBy1G2y60.net
>>186 js
線分交差判定アルゴリズムはググった
URLリンク(ideone.com)
196:デフォルトの名無しさん
20/04/17 02:37:38 GLu8MX8J.net
>>188
Perl5
URLリンク(paiza.io)
単に逆順にして加算しながら比較しているだけの誰にでも出来る簡単なお仕事。
197:デフォルトの名無しさん
20/04/17 09:07:37.71 uUpf2Y3l.net
>>186
URLリンク(ideone.com)
198:デフォルトの名無しさん
20/04/17 09:10:52.22 uUpf2Y3l.net
直線と点の位置関係判別を6回に減らした
199:デフォルトの名無しさん
20/04/17 16:03:16 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:デフォルトの名無しさん
20/04/17 17:08:25 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:デフォルトの名無しさん
20/04/17 17:12:31 tQG0pn8t.net
>>196
内角の和が180°かで判定すると二番目のデータのような
星のひしゃげたような形も星型扱いされてしまう
交線計算が要るんじゃないかな
202:デフォルトの名無しさん
20/04/17 18:56:51 uUpf2Y3l.net
>>193
条件が1個足りなかった
最低7回ですかね
203:デフォルトの名無しさん
20/04/17 19:39:38.21 uUpf2Y3l.net
URLリンク(ideone.com)
204:デフォルトの名無しさん
20/04/17 23:20:45 GLu8MX8J.net
>>188
Kotlin
URLリンク(paiza.io)
やってることは >>192 とほぼ同じ。reduce() という丁度良いやつがあったのでそれを使った。
205:デフォルトの名無しさん
20/04/18 04:51:44 hOyj3UHi.net
お題: クリックすると画面が上下左右に揺れまくるボタンを作りなさい
206:デフォルトの名無しさん
20/04/18 06:43:51.86 YnXQesFn.net
「五角形P0-P1-P2-P3-P4が星形である」と「五角形P0-P2-P4-P1-P3が凸五角形である」は同値でいいのかな
207:デフォルトの名無しさん
20/04/18 06:48:34 N4WXNODD.net
自明だね
208:デフォルトの名無しさん
20/04/18 14:12:42.90 IwpZ9OtG.net
atan2とか要りそう
知らんけど
209:デフォルトの名無しさん
20/04/18 14:40:52 rV7GPkSs.net
内積とかでできそう
知らんけど
210:デフォルトの名無しさん
20/04/18 16:18:27.16 /6mIZfhm.net
>>203 同値ではない
>>186 の三番目のデータは凸五角形だが、順番に線分で結んでも星形にならない
211:デフォルトの名無しさん
20/04/18 16:34:26 N4WXNODD.net
>>206
3番目のデータに関して
「五角形P0-P1-P2-P3-P4が星形である」 => false
「五角形P0-P2-P4-P1-P3が凸五角形である」 => false
反例にはなっていないはずだが?
212:デフォルトの名無しさん
20/04/18 16:47:06 30AxPVCB.net
「五角形P0-P1-P2-P3-P4が凸五角形である」 => true
「五角形P0-P2-P4-P1-P3が星形である」 => true
多分言いたいのはこっちでしょ
いずれにしろ反例になってないけど
213:デフォルトの名無しさん
20/04/18 16:59:35 oyi4MQQP.net
結局コードは同じになりそう
知らんけど
214:デフォルトの名無しさん
20/04/18 17:09:16.93 30AxPVCB.net
そりゃ同値なんだから
点の指定順が変わるだけ
215:デフォルトの名無しさん
20/04/18 17:29:34 8ogfpEcQ.net
同値だと違うアルゴリズムでも同じコードになるのか
知らんかった
216:デフォルトの名無しさん
20/04/18 17:34:30 30AxPVCB.net
何を言ってるんだこの人は
217:デフォルトの名無しさん
20/04/18 17:37:26 8ogfpEcQ.net
なんだ違うのか orz
218:デフォルトの名無しさん
20/04/18 18:04:17.09 U3Va20gw.net
いつものキチガイでしょ。
219:デフォルトの名無しさん
20/04/18 22:39:39.01 9Ypi4rqk.net
>>207
4番目のデータは?
220:デフォルトの名無しさん
20/04/18 22:46:42.32 N4WXNODD.net
>>215
「五角形P0-P1-P2-P3-P4が星形である」 => true
「五角形P0-P2-P4-P1-P3が凸五角形である」 => true
だから反例じゃねえだろ
つーか凸角形の定義と対角線の定義から同値性は自明だろ
何が分からないのかが素でわからん
というか日本語通じてんのかこれ
221:デフォルトの名無しさん
20/04/18 22:48:13.84 n1sMw7/h.net
またキチガイが暴れてるのか…
222:デフォルトの名無しさん
20/04/18 22:50:15.61 H1RDccYw.net
>>216
4番目のデータの「五角形P0-P2-P4-P1-P3」は変な形してない?
223:デフォルトの名無しさん
20/04/18 22:50:52.43 N4WXNODD.net
>>218
綺麗な凸5角形ですがなにか
224:デフォルトの名無しさん
20/04/18 22:52:15 n1sMw7/h.net
ID真っ赤やん
225:デフォルトの名無しさん
20/04/18 22:53:23 r5aLC6gt.net
>>219
「P0-P2-P1-P4-P3」のことを言っている?
「P0-P2-P4-P1-P3」を結んだ五角形みた?
226:デフォルトの名無しさん
20/04/18 22:54:18 N4WXNODD.net
>>221
「P0-P2-P4-P1-P3」が綺麗な凸5角形だと言ってる
>>220
お前は死ね
227:デフォルトの名無しさん
20/04/18 22:57:07 N4WXNODD.net
これ見てよく考えて
_4____
2____1
______
______
______
______
03____
228:デフォルトの名無しさん
20/04/18 22:59:19 GFBeMLbL.net
>>221
ホントだすまんおれの手元の描画ミス
検算プログラム書いたが4番目のデータ、0-2-4-1-3で一周回ってきたときの方向かえる角度の和が2piにならんのよね
ANG: -0.785398163397448 -1.03037682652431 -1.14103404769821 -0.896055384571344 -1.5707963267949
和: -5.42366074898621
なーにかが間違ってるのか…
229:デフォルトの名無しさん
20/04/18 23:19:38 3QrrEgXO.net
五角形の内角の和は540度だぞw
230:デフォルトの名無しさん
20/04/18 23:23:05 N4WXNODD.net
内角じゃなくてどれだけ曲がったかの和を計算してるんだから2PIで良いだろ
数値があってんのかは知らんが
231:デフォルトの名無しさん
20/04/18 23:50:57 tXl890QR.net
ニチャァ…
232:デフォルトの名無しさん
20/04/18 23:58:10 ZN+TZ1sR.net
算数できないやつが単発IDで必死にマウント取ろうとしてて草
233:デフォルトの名無しさん
20/04/19 00:09:28 10eyuplu.net
>>224
どうやって計算したのか知らんが
3番目は2.0005586058915847だな
234:デフォルトの名無しさん
20/04/19 00:25:50 suK8nNv5.net
>>229
検算とヒントありがと、2.00055860589158 - (-1.14103404769821) = 3.14159265358979
プログラの間違い直せたら書き込むわ
235:デフォルトの名無しさん
20/04/19 00:29:16 10eyuplu.net
>>230
普通に余弦定理で内角求めてPIから引くだけだよな?
236:デフォルトの名無しさん
20/04/19 00:35:52.14 suK8nNv5.net
>>231
1)内積⇒arccos
2)外積⇒arcsin
凸判定には角度0や符号反転も要検出なので
2)でやってるがどっかに間違い入っちゃったかもしれなす
237:デフォルトの名無しさん
20/04/19 00:56:56 tNtEbJNg.net
自演と思わないと精神保てないの草
238:デフォルトの名無しさん
20/04/19 01:15:18.71 kCjisW+o.net
お題:マップの縮尺から画面の縮尺バーの長さを求めろ。
縮尺は、現実:画面 = 1:s
バーの長さは100以上で出来るだけ短くする。
バーの現実での長さの数値は 1, 2, 5 が頭にきて以降は0のみが続くもののみ許される。(1桁なら0がなくても良い)
例:
s = 0.003 → 150
0.01 → 100
0.4 → 200
0.96 → 192
239:デフォルトの名無しさん
20/04/19 06:41:17.34 J81tNU7x.net
>>234
問題がよくわからない。
240:デフォルトの名無しさん
20/04/19 07:17:30.86 kCjisW+o.net
説明が下手ですみません。
縮尺バーはGoogleマップの右下にあるようなバーで、画面上のバーの長さが現実では何キロメートルかを示しています。
その現実で何キロメートルかというのがバーの左に表示されています。
バーの長さはズームインしていくと連続的に伸びていき、伸びるすぎるガクッと縮んで、また連続的に伸びていきます。
そしてそのバーの左に表示される距離は2kmや50km、100kmなどの数値のみで中途半端な値は取りません。
この条件下で、縮尺とバーの長さの最小値を定めたときに、どんな長さでバーを画面に表示するかを求める問題です。
バーの長さは取りうるものの中で最小のものでお願いします。
241:デフォルトの名無しさん
20/04/19 07:38:33.09 aJCN2KvM.net
>>234
scheme
URLリンク(ideone.com)
242:デフォルトの名無しさん
20/04/19 07:56:27.14 n5nVZY1D.net
>>233
ひっでえブーメランで草
243:デフォルトの名無しさん
20/04/19 08:58:41.21 OfVksrZS.net
外角って言葉、最近は習わない?
244:デフォルトの名無しさん
20/04/19 12:05:15 bDqlqATM.net
単発IDワラワラ
245:デフォルトの名無しさん
20/04/19 12:16:31 ylCglSST.net
ちょっと数学の話になる度にむきになって荒らすのが必ず一人いるからな
246:デフォルトの名無しさん
20/04/19 12:30:18.52 6WjGzswu.net
お題に答えろよ
247:デフォルトの名無しさん
20/04/19 13:11:54 +exX8g3v.net
日本語や説明が下手なお題だと考える気も起こらない
248:デフォルトの名無しさん
20/04/19 14:11:18 J81tNU7x.net
>>236
現実:画面 = 1:s
という式の意味は?
249:デフォルトの名無しさん
20/04/19 15:33:55 xgV79Bs/.net
>>186 Perl5、P0-P2-P4-P1-P3が凸五角形であるか、で判定
@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]],
[[0,1], [0,0], [1,0],[-1,-2],[-2,-1]]
);
@s = qw{0 2 4 1 3 0 2};
use PDL;
use PDL::Math;
use PDL::Constants qw(PI);
use feature 'signatures';
sub f($v1, $v2) {
my $sp = sum $v1 * $v2;
$v2 = -$v2 if
250: $sp < 0.0; my $ang = asin det pdl $v1 , $v2; $ang = $ang >= 0.0 ? -PI + $ang : PI + $ang if $sp < 0.0; $ang } for $ps (@t) { @vs = map{pdl $ps->[$s[$_]]} 0..6; @es = map{norm($vs[$_+1] - $vs[$_])} 0..5; $angs = pdl map{f $es[$_], $es[$_+1]} 0..4; $ans = 'true'; $ans = 'false' if (grep{abs $angs->at($_) < 0.0001} 0..4) or $angs->min * $angs->max < 0.0; $ttl = sum $angs; $ans = 'false' if abs $ttl < 6.28 or abs $ttl > 6.29; print "$ttl = Σ$angs: $ans\n"; }
251:デフォルトの名無しさん
20/04/19 15:35:04 dE29U5t1.net
>>245 の実行結果
~ $ perl 17_186_convx_pent.pl
The signatures feature is experimental at 17_186_convx_pent.pl line 12, <DATA> line 207.
6.28318528610616 = Σ[ 1.5707963 0.78539816 1.5707963 0.78539816 1.5707963]: true
6.28318530717959 = Σ[ 1.5707963 1.5707963 0 1.5707963 1.5707963]: false
-12.5663706143592 = Σ[-2.2142974 -2.4980915 -2.677945 -2.677945 -2.4980915]: false
-6.28318530717959 = Σ[-0.78539816 -1.0303768 -2.0005586 -0.89605538 -1.5707963]: true
-12.5663706143592 = Σ[-2.0344439 -2.9996956 -2.4980915 -2.9996956 -2.0344439]: false
252:デフォルトの名無しさん
20/04/19 16:09:00.64 wiVZfWUn.net
>>131
Java
URLリンク(paiza.io)
253:デフォルトの名無しさん
20/04/19 16:09:14.25 9DMQwSqL.net
URLリンク(mypage.syosetu.com)
知らねしね
254:デフォルトの名無しさん
20/04/19 16:14:07 o4nQ3+S9.net
>>244
具体的には、地球上で1mの長さの直線の道路があった時、それを画面の地図上で 1m × s の長さで表示するということです。
s=0.01ならその道路は画面に1cmで表示されます。
255:デフォルトの名無しさん
20/04/19 18:05:16.51 3h7RKaJW.net
>>234 Perl5 (問題の意図をくみ取り違えていなければ、下記で良い筈…ただし実の距離が一桁以下の場合はNGかも…)
for $s (qw{0.003 0.01 0.4 0.96}) {
$d = 1;
while ($s * $d < 10) { $d *= 10 }
if (50 <= ($s * $d)) {
$d *= 2;
} elsif (20 <= ($s * $d)) {
$d *= 5;
} else {
$d *= 10;
}
print "$s -> ", $s * $d, "\n";
}
実行結果
~ $ perl 17_234_scale_bar_len.pl
0.003 -> 150
0.01 -> 100
0.4 -> 200
0.96 -> 192
256:デフォルトの名無しさん
20/04/19 20:22:34 3rSuzVma.net
>>250 もっとスンナリ書けるんだった…
for (qw{0.003 0.01 0.4 0.96}) {
$d = $_;
while ($d < 10) { $d *= 10 }
if (50 <= $d) { $d *= 2 }
elsif (20 <= $d) { $d *= 5 }
else { $d *= 10 }
print "$_ -> ", $d, "\n";
}
257:デフォルトの名無しさん
20/04/20 06:02:04 C+lKY/AM.net
>>234 Ruby
def scale( s )
i = (100.0 / s).ceil
j = 100 * 10 ** - Math.log10( s ).to_i
s * j * [ 1, 2, 5 ].each{|k| break k if i <= k * j; 10 }
end
[ 0.003, 0.01, 0.4, 0.96 ].each{|x| puts "%-6g → %d" % [ x, scale(x) ] }
258:デフォルトの名無しさん
20/04/20 16:12:46 EsvxpnHB.net
>>181 Perl5 (Javaじゃなくてスマソ、ActivePerlなどのTkxモジュールがインストールされている環境で実行ください)
use Tkx;
$top = Tkx::widget->new('.');
$c = $top->new_canvas(-width => 300, -height => 300);
$c->g_pack(-expand => 1);
($x0, $y0) = (150, 50);
$r = 200;
($v, $theta) = (0, 3.1415 * 40 / 180);
($x, $y);
$dt = 20;
sub show {
($x, $y) = ($x0 + $r * sin $theta, $y0 + $r * cos $theta);
$c->coords($st
259:ick, $x0, $y0, $x, $y); $c->coords($ball, $x-7, $y-7, $x+7, $y+7); Tkx::after($dt, \&show); $a = -0.00098 * sin $theta; $a *= $a * $v > 0 ? 0.95 : 1/0.95; # dumping $dv = $a * $dt; $dtheta = ($v + $dv/2) * $dt / $r; $theta += $dtheta; $v += $dv; } show; $stick = $c->create_line($x0, $y0, $x, $y, -width => 2.0); $ball = $c->create_oval($x-7, $y-7, $x+7, $y+7, -fill => 'gray'); Tkx::MainLoop();
260:デフォルトの名無しさん
20/04/20 17:09:22.78 CQO/p7b7.net
最下点付近での近似だな
261:デフォルトの名無しさん
20/04/20 17:15:47 CQO/p7b7.net
いや普通のだったわ、すまん
262:デフォルトの名無しさん
20/04/20 18:33:21 SXRlK0qI.net
>>181 Python3 (Javaじゃなくてスマソ >>253 をインプリ, tkinterのインストールされている環境で実行ください)
import math, tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=300)
canvas.pack()
x0, y0 = 150, 50
r = 200
v, theta = 0, 3.1415 * 40 / 180
x, y = x0 + r * math.sin(theta), y0 + r * math.cos(theta)
stick = canvas.create_line(x0, y0, x, y, width=2)
ball = canvas.create_oval(x-7, y-7, x+7, y+7, fill='gray')
dt = 20
def show():
global v, theta, x, y
a = -0.00098 * math.sin(theta)
a *= 0.95 if a * v > 0 else 1/0.95 # dumping
dv = a * dt;
dtheta = (v + dv/2) * dt / r
theta += dtheta;
v += dv;
x, y = x0 + r * math.sin(theta), y0 + r * math.cos(theta)
canvas.coords(stick, x0, y0, x, y)
canvas.coords(ball, x-7, y-7, x+7, y+7)
root.after(dt, show)
show()
root.mainloop()
263:デフォルトの名無しさん
20/04/20 19:55:58 qCtnBvYT.net
そろそろオレ二重振り子見たくなってきちゃったなァ
264:デフォルトの名無しさん
20/04/20 20:37:59.21 7fNLbA/z.net
double pendulumはカオスだからNG
265:デフォルトの名無しさん
20/04/20 21:50:54 3yxFdBsA.net
>>135
Java 操車場アルゴリズム
URLリンク(paiza.io)
266:デフォルトの名無しさん
20/04/20 22:11:41.07 7fNLbA/z.net
>>259
すげえな。
どうやって考えたの?
267:デフォルトの名無しさん
20/04/20 22:36:14 arq8EuUU.net
考えたわけじゃなくね?
268:デフォルトの名無しさん
20/04/20 23:51:34 RmTF1U13.net
これダイクストラなのか
269:デフォルトの名無しさん
20/04/21 00:32:44 2I58wt93.net
スタックに積んで処理していくっていう昔ながらの方法と何か違うの?
270:デフォルトの名無しさん
20/04/21 00:35:59 2I58wt93.net
ウィキペディアにあった
271:デフォルトの名無しさん
20/04/21 19:01:08.06 Nu/0ktL2.net
>>258
数値計算にカオスとか関係なくね?
272:デフォルトの名無しさん
20/04/23 02:45:01 40I0QciX.net
>>135
bash
URLリンク(paiza.io)
eval は使ってないw
273:デフォルトの名無しさん
20/04/23 05:19:07 GeQlI54q.net
>>265
ウルトラマンカオス。
274:デフォルトの名無しさん
20/04/23 22:15:50.71 CuZLC5Yi.net
>>181 Common Lisp (SBCL) + CLX。X Window Systemが使える環境で。>>253, >>256を参考に
(require "asdf")
(asdf:load-system "clx")
(defpackage #:pendulum (:use #:common-lisp #:xlib))
(in-package #:pendulum)
(defvar *display* (open-default-display))
(defvar *screen* (display-default-screen *display*))
(defvar *window* (create-window :parent (
275:screen-root *screen*) :x 0 :y 0 :width 300 :height 300 :background (screen-white-pixel *screen*))) (defvar *gcontext* (create-gcontext :drawable *window*)) (defparameter *x0* 150) (defparameter *y0* 50) (defparameter *r* 200) (defparameter *theta0* (/ (* pi 40) 180)) (defparameter *dt* 0.03) (map-window *window*) (loop for v = 0 then (+ v dv) for theta = *theta0* then (+ theta dtheta) for x = (+ *x0* (floor (* *r* (sin theta)))) for y = (+ *y0* (floor (* *r* (cos theta)))) for a = (let ((a (* -0.00098 (sin theta)))) (funcall (if (> (* a v) 0) #'* #'/) a 0.95)) for dv = (* a *dt*) for dtheta = (/ (* (+ v (/ dv 2)) *dt*) *r*) do (progn (draw-line *window* *gcontext* *x0* *y0* x y) (draw-arc *window* *gcontext* (- x 7) (- y 7) 14 14 0 (* 2 pi) t) (clear-area *window*)))
276:デフォルトの名無しさん
20/04/23 23:35:29 CLpyggBI.net
乙。
277:デフォルトの名無しさん
20/04/23 23:53:39 lusTU/GG.net
お題: 配列と列数が与えられるので配列を行列に再構築して返せ
例:
in < [1, 2, 3, 4], 2
out > [[1, 2], [3, 4]]
278:デフォルトの名無しさん
20/04/24 00:06:04 B1fvRJ4E.net
>>270 Perl5
$s = [1, 2, 3, 4];
$ncol = 2;
push @b, [splice @$s, 0, $ncol] while @$s;
use Data::Dump 'dump';
print dump(\@b,)."\n";
実行結果
~ $ perl 17_270.pl
[[1, 2], [3, 4]]
279:デフォルトの名無しさん
20/04/24 00:32:20 9Lyz0QqN.net
>>270 Ruby
p [*eval(str.sub(/],/,"].each_slice"))] # => [[1, 2], [3, 4]]
280:デフォルトの名無しさん
20/04/24 01:48:19 m2hQekEP.net
>>270 D
void main() @safe {
import std.stdio : writeln;
import std.range : chunks;
[1, 2, 3, 4].chunks(2).writeln;
}
281:デフォルトの名無しさん
20/04/24 02:15:23 XDANT2WI.net
>>270 matlab
reshape([1,2,3,4],[],2)
282:デフォルトの名無しさん
20/04/24 06:44:44 q4hgA9QE.net
入力無視すんなら最初からprint([[1,2,],[3,4]])ってかけばええやんw
283:デフォルトの名無しさん
20/04/24 06:56:30 oaHyD4Kv.net
>>270 J
f =: 4 : 0
(-x) , \ y
)
2 f 1 2 3 4
1 2
3 4
284:デフォルトの名無しさん
20/04/24 13:12:17 UlmQZP6K.net
>>275
あんたバカ?
285:デフォルトの名無しさん
20/04/24 14:03:24 LCR05+vC.net
このスレは入力のハードコーディングは禁止だって>>1に書いてるだろ?
286:デフォルトの名無しさん
20/04/24 15:04:41 SqTnlu82.net
みなのもの戦に備えろ
287:デフォルトの名無しさん
20/04/24 15:36:47.80 fZ+Jqbcm.net
>>270
Kotlin
URLリンク(paiza.io)
こういうことをするための chunked() という拡張関数がライブラリに最初からあるので自分ではほとんど何も考えてない。
288:デフォルトの名無しさん
20/04/24 16:43:36 QbKPO/NJ.net
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ < どうすっかな…… ,,、,、,,,
/三√ ゚Д゚) / \_______
/三/| ゚U゚|\ ,,、,、,,,
,,、,、,,, U (:::::::::::)∪ ,,、,、,,,
//三/|三|\ ,,,, ,,、,、,,,
∪ ∪
,, , ,,,, ,,、,、,,, ,,、,、,,,
,,,,, ∧_∧ うまいモナー,,,,, 、 ,,,,,, ,,,,,,,, ,,,,,
,,, ( ´∀`)___,,,,___ ,, ∧_∧ ゲンキニ シテルカナ・・・___,,
/ ̄ ( つ日ヽ ∧_∧ ( ) /
/ (__)) (´∀` ) ( ) ∧_∧∧_∧ / マターリモナー
∧_∧∧_∧ドーゾ (日ノ ) | | | ( ´∀`) ´∀`)
( ´∀`) ´∀`) ((__) ,(_(_) (○)⊂ ) つ日⊂ ) モーナー
―(つ⊂ ) つ⊂ )――――――ヽ|〃(⌒)(⌒) (⌒)(⌒)
(⌒)(⌒) (⌒)(⌒)グーグー
289:デフォルトの名無しさん
20/04/24 19:26:26 q4hgA9QE.net
>>277
死ねよゴミ
290:デフォルトの名無しさん
20/04/24 19:46:51 OOGSSbp6.net
お題:ABC問題を解いてみましょう。
概要。
URLリンク(originalnews.nico)
サンプル。
URLリンク(wandbox.org)
291:デフォルトの名無しさん
20/04/24 20:10:45 zMxMvQeG.net
解くって何をするん?
292:デフォルトの名無しさん
20/04/24 20:28:58 Ln0giejY.net
論文のurlを表示するとかでいいんじゃね?
293:デフォルトの名無しさん
20/04/24 20:56:21 pA5GOauV.net
お題
XORゲートは4つのNANDゲートで構成できることが知られている
この構成方法をプログラムで探索せよ
i番目のNANDゲートの入力を(ai,bi)、出力をciとする
XORゲートの入力を(X,Y)、出力をZとする
出力例
X->a1
Y->b1
X->a2
c1->b2
Y->a3
c1->b3
c2->a4
c3->b4
c4->Z
294:デフォルトの名無しさん
20/04/24 23:27:45 giWR9tWL.net
>>286
Step 6, Solution 1
0 : -1, -2: 0, 0, 1, 1 : 2
1 : -1, -2: 0, 1, 0, 1 : 2
2 : 1, 0: 1, 1, 1, 0 : 3
3 : 2, 0: 1, 1, 0, 1 : 3
4 : 2, 1: 1, 0, 1, 1 : 3
5 : 4, 3: 0, 1, 1, 0 : 2
295:デフォルトの名無しさん
20/04/25 02:15:29.89 7k5qv/w/.net
謎
296:デフォルトの名無しさん
20/04/25 08:29:40 He4LT43P.net
>>286 Ruby
URLリンク(ideone.com)
対称など考慮せずに 384通りの解が出てきた
ループ判定は手抜き
297:デフォルトの名無しさん
20/04/25 09:02:48 mTthreta.net
[0,0,0,0] は Array.new(4, 0)
[ nil,nil, nil,nil, nil,nil, nil,nil ] は Array.new(8)
って書いた方が分かりやすいな
あとcase-when はthenを使うのが良し
298:デフォルトの名無しさん
20/04/25 13:22:15 o1s8FM4j.net
細かっw
299:289
20/04/27 07:09:24 0mP+psCA.net
>>286 Ruby
URLリンク(ideone.com)
svg で回路図化、配線は手抜き
300:デフォルトの名無しさん
20/04/27 09:21:19.63 Vk+6u7Hb.net
次は全加算器をやってみよう。
4入力セレクタ辺りで限界でしょう。
301:デフォルトの名無しさん
20/04/27 18:53:24.75 KzmnkBMz0.net
このスレってアルゴリズムとかデータ構造を解説してくれる人はあまりいなんだな
302:デフォルトの名無しさん
20/04/27 19:18:51.96 XYadQOO0.net
聞かれなかったから
303:デフォルトの名無しさん
20/04/27 19:29:48 9Rl/jVuf.net
>>294
わからないことあったら聞こうよ
ガキじゃねえんだからさ
304:デフォルトの名無しさん
20/04/27 19:39:12 11UvoXnI.net
そらコードしか書かんわな
305:デフォルトの名無しさん
20/04/27 19:49:07 uF9iuztD.net
アルゴリズムは金になるからここじゃあ書かないよ。
聞きたくなるようなコードをチラ見せするのがプロ。
306:デフォルトの名無しさん
20/04/27 19:50:45 hGnxzjbK.net
聞きたくなるようなのあったか?
307:デフォルトの名無しさん
20/04/27 19:54:18 11UvoXnI.net
そもそもここにそんな高等なお題でねえだろ
308:デフォルトの名無しさん
20/04/27 21:06:36.61 KzmnkBMz.net
知らない言語の長いコードを読むのは難しいからアルゴリズムだけ書いてほしい
そうじゃなかったら何のために披露してるのかわからない
309:デフォルトの名無しさん
20/04/27 21:16:33.23 11UvoXnI.net
知らない言語を知ればいいだけやん
310:デフォルトの名無しさん
20/04/27 21:17:48.49 D3+TkawX.net
(誰かがきっと俺のコードをじっくり読んでくれるはず…!)
311:デフォルトの名無しさん
20/04/27 21:26:35 04Et8o2n.net
perl
312:とかだと全くわからん 暗号にしか見えん まあそれが楽しいんだろうけどw
313:デフォルトの名無しさん
20/04/27 22:44:33.33 9Rl/jVuf.net
アルゴリズムを教えるためのスレじゃないからなw
314:デフォルトの名無しさん
20/04/27 22:46:29.62 Nbm5XyHg.net
アルゴリズムの自信作を披露するスレだろ?
315:デフォルトの名無しさん
20/04/27 22:49:14.07 d54bWA3b.net
やりましたの報告スレじゃね?
しらんけど
316:デフォルトの名無しさん
20/04/27 22:50:44.47 pfA6eg61.net
お題:ワープ付き迷路
始点(S)、終点 (G)、通路(.)、ワープ(0-9)、壁(#)で構成される大きさH×Wの迷路を考える
プレイヤーは、隣接する壁以外のマスにコスト1で移動することができる
ワープマスに入った場合、プレイヤーは対となるワープマスにコスト0で強制的に移動する
迷路中に存在する0-9の個数は、各数字について0個または2個である
始点から終点に移動するときの最小コストを求めよ
ただし、終点に到達できない場合は"impossible"と出力せよ
4 6
1#S...
....#.
#####.
1..G..
=> 7 (ワープを使わずに右に進むとコストは8)
3 3
S1G
###
1##
=> impossible (ワープ先で身動きが取れなくなる)
1 22
S01234567890123498765G
=> 5 (S→0→9→4→5→G)
317:デフォルトの名無しさん
20/04/27 22:57:02.43 EEEc2NVc.net
>>301
披露してる側には意味はあるだろう。
お前の方には読めないコードでは意味がないのかもしれないけど、それはお前の都合でしかないだろう。
318:デフォルトの名無しさん
20/04/27 23:03:37 4xqUIPcT.net
まあそうムキになるな
余裕がある人はコメントなりレスなりで解説入れたりすればいいと思うよ
319:デフォルトの名無しさん
20/04/27 23:15:10 KzmnkBMz.net
>>309
例えば?
320:デフォルトの名無しさん
20/04/27 23:44:27 EEEc2NVc.net
>>311
とりあえず思い付くままにかいてみると、
アルゴリズムだけだったらとるに足らない問題だったり、逆に難しいけどそれただの数学の問題だよねってのが多いけど、それをプログラミング言語で書くから解く方も面白いし見る側も面白い。
同じ問題でも使う言語によって使える機能や記法が異なるから、様々な回答、解法が出てくる。
大抵の人は複数言語が読めるし詳しくなくてもちょっと考えたり調べれば読めるから、読めない人がいることをケアする必要性は特にない。
Jとか一部の言語のワンライナーとかは読めないことが多いけど、むしろそういう読めないようなコードで実現されていることが面白いし、読めないながらも感心してしまう。
アルゴリズムを疑似言語的に書こうとするとどうしても曖昧さや人によって解釈が異なる問題が出てしまうが、仕様が定義された言語を使えばその問題は回避できる。
321:デフォルトの名無しさん
20/04/27 23:47:51 KzmnkBMz0.net
312
>>292とか>>268ってどういうアルゴリズムなん?
やっぱ概要入れてくれたほうが親切だと思う
322:デフォルトの名無しさん
20/04/27 23:51:19 KzmnkBMz0.net
スマホのほうにはslipコマンドが設定してあるのでIDちょっと違いますが
自分はID:KzmnkBMzです
323:デフォルトの名無しさん
20/04/27 23:55:26 EEEc2NVc.net
>>313
説明つけてくれればそりゃ親切だろうけど、回答する人に初めからそこまで求めるなよ。
疑問があれば質問すればいいだけでしょ?
324:デフォルトの名無しさん
20/04/27 23:59:22 KzmnkBMz0.net
>>315
そういう見方もあるかもしれないですね
親切な
325:レスには説明ついていて助かりますね
326:デフォルトの名無しさん
20/04/28 01:00:38.45 0FC2c4TG.net
こういう流れを見てると、つくづくプログラマーって学生時代に冴えなかった奴等の巣窟なんだって痛感するよね…
327:デフォルトの名無しさん
20/04/28 01:33:53 mJox3ckA.net
自分語りかよ…
人を自分と一緒にしないでくれ
>>313 言っちゃー悪いそのレベルだと、まだまだ山のように勉強が必要だと思う
328:デフォルトの名無しさん
20/04/28 01:38:11 LE+4zw96.net
誰かに教えるスレじゃないんだからそういう見方しかないと思うけど…
329:デフォルトの名無しさん
20/04/28 01:38:37 tOE52D5S.net
>>317
それとブラック企業で使い潰され余裕ない奴な
330:デフォルトの名無しさん
20/04/28 01:46:12.43 ljT+88J3.net
俺は職業プログラマではないけどプライド高い人は多そうなイメージ
他板でもプログラミングスレは大抵荒れてる
331:デフォルトの名無しさん
20/04/28 01:48:31.06 dQnTZ6B4.net
勘違いしている底辺が大半
ごく一部が優秀
でもその付加価値に見合った価格が支払われない残念な分野
332:デフォルトの名無しさん
20/04/28 04:03:48 4kUhwH6S.net
教えて欲しいと言えないバカが文句言うスレ
333:デフォルトの名無しさん
20/04/28 04:09:27 lOCVF0xa.net
酷いアスペを見た
334:デフォルトの名無しさん
20/04/28 04:11:48 uDpqz1hl.net
>>324
減った?
335:デフォルトの名無しさん
20/04/28 04:29:18 ayTn4wb+.net
>>294のワード効きすぎだろ
何がそんなに刺さったんだ?
実際は1人が騒いでるだけか??
336:デフォルトの名無しさん
20/04/28 04:53:50 4kUhwH6S.net
スレへのヘイトになってるからねえ
死ねよ自己中
337:デフォルトの名無しさん
20/04/28 04:55:48 4kUhwH6S.net
>>294
こいつだけは絶対に許さない
2chの兵力あげてぶっ潰す
338:デフォルトの名無しさん
20/04/28 05:02:44.84 WLGi8zNs.net
執念やば
339:デフォルトの名無しさん
20/04/28 05:04:21 XMwGDU9f.net
そしてキモ
340:デフォルトの名無しさん
20/04/28 05:17:51 xTCZFQnU.net
とうしつこはい…
341:デフォルトの名無しさん
20/04/28 05:58:30 0ndGBSxH.net
疑問があったら聞けばいいのに
342:デフォルトの名無しさん
20/04/28 06:47:24.12 6K6MgdzD.net
自然科学 + グラフ理論 + 手書き作業 = アルゴリズム
343:デフォルトの名無しさん
20/04/28 06:58:04 cTXOkUEK.net
単振り子のアルゴリズムなんて運動方程式解くだけだろ
近似すれば高校生でも解ける
344:デフォルトの名無しさん
20/04/28 06:58:48 9sR0wNPf.net
アルゴリズムを勉強するスレでもないし
アルゴリズムを競うスレでもない
345:デフォルトの名無しさん
20/04/28 06:59:56 9sR0wNPf.net
>>334
振り子の運動方程式を解くのは非常に難しい
346:デフォルトの名無しさん
20/04/28 07:01:29.73 cTXOkUEK.net
>>336
中学生か?
それとも日本語初心者か?
347:デフォルトの名無しさん
20/04/28 07:03:30.32 9sR0wNPf.net
運動方程式を解く
の意味がわかってないアホ
348:デフォルトの名無しさん
20/04/28 07:04:23.62 cTXOkUEK.net
振幅が小さい時は簡単に微分方程式解けるだろ
日本語が読めないアホ
349:デフォルトの名無しさん
20/04/28 07:05:19.37 9sR0wNPf.net
近似にしても
±90度振れる振り子を近似するのは高校生には出来ない
350:デフォルトの名無しさん
20/04/28 07:05:41.36 9sR0wNPf.net
>>339
条件の後付け
351:デフォルトの名無しさん
20/04/28 07:06:24.06 cTXOkUEK.net
>>334「近似すれば高校生でも解ける」
後付けじゃねえよ。最初から言ってるわ
死ねよ
352:デフォルトの名無しさん
20/04/28 07:06:58.86 9sR0wNPf.net
振幅が小さいとき
353:デフォルトの名無しさん
20/04/28 07:07:14.65 cTXOkUEK.net
単振り子の微分方程式解くときに他にどんな近似するっていうんだ
真面目に精神障害者だろコイツ
354:デフォルトの名無しさん
20/04/28 07:09:17.81 9sR0wNPf.net
>>344
それしか知らないのに簡単とか言うな
355:デフォルトの名無しさん
20/04/28 07:10:42.04 9sR0wNPf.net
解析的には解けない
シミュレーションに頼る
シミュレーションの精度を上げるにも技術がいる
一言で簡単とか言うアホは何もわかってない
356:デフォルトの名無しさん
20/04/28 07:10:47.87 cTXOkUEK.net
>>345
死ねよアホ
お前がアホだからこの程度すら簡単に思えないだけ
死ね
357:デフォルトの名無しさん
20/04/28 07:12:17 cTXOkUEK.net
自分が頭悪いの棚に上げていちゃもんつけられても困るわ
358:デフォルトの名無しさん
20/04/28 07:32:33.87 9sR0wNPf.net
10cmの理想的な単振り子
90度の位置から初速度ゼロで離して
ちょうど10分後の位置を求めよ
簡単だって言うならやってみて
359:デフォルトの名無しさん
20/04/28 07:37:31.08 9sR0wNPf.net
近似が高校で習う1通りしか無いと思ってる時点でアホだし
そもそも近似でしか解けない
「単振動近似なら高校生でも解ける」
これなら誰も反対しない
360:デフォルトの名無しさん
20/04/28 07:38:59.20 9sR0wNPf.net
お題
10cmの理想的な単振り子
90度の位置から初速度ゼロで離して
ちょうど10分後の位置を求めよ
361:デフォルトの名無しさん
20/04/28 07:43:14 cTXOkUEK.net
振り子の運動方程式解くときに近似って言われて振幅が小さい場合を想定できないのは障害者のお前くらいだわ
362:デフォルトの名無しさん
20/04/28 07:44:14 cTXOkUEK.net
>>351
社会の迷惑だからさっさと死んどけ
363:デフォルトの名無しさん
20/04/28 07:56:20.53 UKf6vnXk.net
>>293 Ruby
半加算器
URLリンク(ideone.com)
URLリンク(ideone.com)
364:デフォルトの名無しさん
20/04/28 07:57:37 6K6MgdzD.net
プログラマの99%はリコメンドしない情報盗人。俺調べ。
365:デフォルトの名無しさん
20/04/28 07:58:28 9sR0wNPf.net
そもそも
>>334の「近似すれば」は「高校生でも解ける」にしかかかってないし
366:デフォルトの名無しさん
20/04/28 07:59:19 9sR0wNPf.net
高校生で習う知識が全てと思ってしまう高校生レベルのアホ
367:デフォルトの名無しさん
20/04/28 13:50:52 EhAaIQLq.net
底辺ITドカタは気性が荒いなぁ
368:デフォルトの名無しさん
20/04/28 18:50:58 9sR0wNPf.net
ごめん
369:デフォルトの名無しさん
20/04/28 18:55:56 9sR0wNPf.net
これでもサラリーマンの年収の上位5%に入るんだ
370:◆QZaw55cn4c
20/04/28 18:58:28 cQuYXkHz.net
>>349
重力加速度を指定ください
371:デフォルトの名無しさん
20/04/28 19:02:43 9sR0wNPf.net
9.80665
372:デフォルトの名無しさん
20/04/28 19:31:55 KJ919r2x.net
数学の話になると毎度現れるアスペ君今日も来てて草
アスペが重度なのか数学コンプが重度なのか
373:デフォルトの名無しさん
20/04/28 19:43:22 yUYRMh3W.net
>>308
C 幅優先探索
URLリンク(ideone.com)
374:デフォルトの名無しさん
20/04/28 19:44:24 6K6MgdzD.net
>>293
全加算器
Step 12, Solution 3
0 : -1, -2: 0, 0, 0, 0, 1, 1, 1, 1 : 4
1 : -1, -2: 0, 0, 1, 1, 0, 0, 1, 1 : 4
2 : -1, -2: 0, 1, 0, 1, 0, 1, 0, 1 : 4
3 : 2, 1: 1, 1, 1, 0, 1, 1, 1, 0 : 6
4 : 3, 1: 1, 1, 0, 1, 1, 1, 0, 1 : 6
5 : 3, 2: 1, 0, 1, 1, 1, 0, 1, 1 : 6
6 : 5, 4: 0, 1, 1, 0, 0, 1, 1, 0 : 4
7 : 6, 0: 1, 1, 1, 1, 1, 0, 0, 1 : 6
8 : 7, 0: 1, 1, 1, 1, 0, 1, 1, 0 : 6
9 : 7, 3: 0, 0, 0, 1, 0, 1, 1, 1 : 4 *
10 : 7, 6: 1, 0, 0, 1, 1, 1, 1, 1 : 6
11 : 10, 8: 0, 1, 1, 0, 1, 0, 0, 1 : 4 *
他2
375:デフォルトの名無しさん
20/04/28 21:14:59.05 5Mrr6wN/.net
お題:CapsLock on/offを切り替えながら文字入力
[入力]
A B C S
A : Shiftキーを押さずに1文字入力するのにかかる時間
B : Shiftキーを押しながら1文字入力するのにかかる時間(※)
C : CapsLock on/offの切り替えにかかる時間
S : 入力する文字列(英字のみ)
※CapsLock onで小文字入力、CapsLock offで大文字入力にかかる時間をBとする
[出力]
初期状態をCapsLock offとしたとき、Sを入力するのにかかる時間の最小値を求めよ
(例1)
2 3 4 ABCDE
=> 14
CapsLockを使わない場合、3+3+3+3+3=15
CapsLockを使うと、(4)+2+2+2+2+2=14
(例2)
2 3 4 aBCDe
=> 13
CapsLockを使わない場合、2+3+3+3+2=13
2文字目以降CapsLock onの場合、2+(4)+2+2+2+3=15
376:デフォルトの名無しさん
20/04/29 01:24:53.33 W2Vd/2U1.net
>>364
そんな長いコードよく1日でかけたな
377:デフォルトの名無しさん
20/04/29 02:08:45.13 hFx8dHat.net
つられて開いたら、そんなに長くなかった