プログラミングのお題スレ Part16 at TECH
[2ch|▼Menu]
[前50を表示]
100:デフォルトの名無しさん
19/12/04 13:07:17.16 61i6ZWvj.net
>>97
すいません。ブロックされて書き込みができないのでいろいろテスト中。

101:デフォルトの名無しさん
19/12/04 17:21:06 0j0R5u4a.net
>>95>>96
打ちまつがえた。
そしてリロードしてなくて書いた直後に上にPerl5の書き込みが出現orz

102:デフォルトの名無しさん
19/12/04 22:22:08.38 gi4YpuTv.net
>>67 Perl5
print "@{[1..100]}\n";

103:デフォルトの名無しさん
19/12/04 23:37:13.25 h1My/is4.net
お題: 1~100までの数列の和を計算する

104:デフォルトの名無しさん
19/12/04 23:58:51 +9nEsnh/.net
>>101 Ruby

$><<101.times.sum # => 5050

105:デフォルトの名無しさん
19/12/05 00:15:30 5juZ/T5v.net
>>101 julia

print(sum(1:100))

106:デフォルトの名無しさん
19/12/05 06:49:18 5PaJAEA2.net
return 100*101/2;

107:デフォルトの名無しさん
19/12/05 07:16:44 P/hgT5Y1.net
>>104
なぜ return 5050; でないのか小一時間ほど問い詰めたい

108:デフォルトの名無しさん
19/12/05 07:38:40 5PaJAEA2.net
自分で計算したくないから

109:デフォルトの名無しさん
19/12/05 07:40:32 8H7awdOo.net
最適化されるから一緒
意図がわからない
変数に置き換えて汎用化できない

一時間しゃべってみろよおい

110:デフォルトの名無しさん
19/12/05 07:43:45 5PaJAEA2.net
>>105に対する>>104の利点

(比較的)変数に置き換えやすい
計算式がわかる
自分で計算しなくて良い

111:デフォルトの名無しさん
19/12/05 07:46:36 5PaJAEA2.net
>>104 に対する >>105 の利点は何?

112:デフォルトの名無しさん
19/12/05 07:47:29 5PaJAEA2.net
5文字少ない

だけかな?

113:デフォルトの名無しさん
19/12/05 10:43:44 P/hgT5Y1.net
>>108
そういうことを言うならせめて
return 100*(100+1)/2;
って書けよ

114:デフォルトの名無しさん
19/12/05 13:14:45 2uRKrxFi.net
+1
は手計算の手間もないし見ればわかる
非常に利点が少なく
文字入力の手間が相対的に大きくなる

115:デフォルトの名無しさん
19/12/05 13:17:19 2uRKrxFi.net
どっちでも大差無いけど

116:デフォルトの名無しさん
19/12/05 13:21:01 2uRKrxFi.net
次は>>105の利点を語ってくれよ
小一時間

117:デフォルトの名無しさん
19/12/05 14:27:21 esMh+bxM.net
>>101
Kotlin script

println((1..100).sum())

118:デフォルトの名無しさん
19/12/05 14:31:48 esMh+bxM.net
ま、しかし、昔々算数で四角を描いて 100 * (100 + 1) / 2 で出来ると習ったような気がするので馬鹿正直に1から100まで足す必要はないな。

119:デフォルトの名無しさん
19/12/05 15:17:30 2uRKrxFi.net
工夫出来るところは工夫する
>>105は間違った工夫の例

120:デフォルトの名無しさん
19/12/05 18:32:49.00 27clmKvC.net
>>105が小一時間いったい何を問い詰めるつもりだったのか気になる

121:デフォルトの名無しさん
19/12/05 18:59:48.69 2GEt9xQA.net
おっすおら小一時間!
これからの議論におらわくわくすっぞ!

122:デフォルトの名無しさん
19/12/05 20:44:21.68 lop64poz.net
>>101
Cの冗談
URLリンク(ideone.com)

123:デフォルトの名無しさん
19/12/05 21:05:41.72 jKYC5XJL.net
決まり文句のネタレスにえらく執着すんねw

124:デフォルトの名無しさん
19/12/05 21:06:33.94 5PaJAEA2.net
1個目の関数で値だけ返すほうが簡単じゃ?

125:デフォルトの名無しさん
19/12/05 21:35:53.74 P/hgT5Y1.net
>>118
お前のアホさとか、多分一時間じゃ足りないw

126:デフォルトの名無しさん
19/12/05 21:36:32.26 P/hgT5Y1.net
>>117
中途半端な工夫ならしないほうがマシ

127:デフォルトの名無しさん
19/12/05 21:55:42.81 5PaJAEA2.net
出て来れないと思ったのに
面の皮厚いね

128:デフォルトの名無しさん
19/12/05 22:09:17.41 P/hgT5Y1.net
>>111にレスできないアホがなにか言ってるなw

129:デフォルトの名無しさん
19/12/05 22:40:10.86 JeZRd2se.net
小一時間とかサムいフレーズでウケると思ってるからウザがられんだよ

130:デフォルトの名無しさん
19/12/05 23:12:12.53 2GEt9xQA.net
俺は別にうざがってないぞ
なに全員がうざがってるみたいなまとめ方するんだよ

131:デフォルトの名無しさん
19/12/05 23:23:32.05 d0dfL3uy.net
いいからおまえはどっかで2GEtしてこい

132:デフォルトの名無しさん
19/12/05 23:25:08.31 8H7awdOo.net
小一時間問い詰めるとか
具体的に想像すると陰湿極まりないパワハラが思い浮かぶ

133:デフォルトの名無しさん
19/12/05 23:35:21.46 LiE2fHBS.net
5ch初心者かよw

134:デフォルトの名無しさん
19/12/05 23:39:56 8H7awdOo.net
5chのプロかよ

135:デフォルトの名無しさん
19/12/05 23:56:23 uvnytkqs.net
こんな煽り合い久々に見たw

136:デフォルトの名無しさん
19/12/06 00:22:47 N/M0C4CM.net
初心者じゃない奴が全員プロだとでも思ってるのかなぁw
まあとりあえずこれ読んどけ
URLリンク(netyougo.com)

137:デフォルトの名無しさん
19/12/06 01:10:21 Rsc9FZ2h.net
用語とか以前に粘着っぷりがやばい

138:デフォルトの名無しさん
19/12/06 02:06:00 RapGeMK4.net
背筋がサムくなるからもうやめてくれないかな

139:デフォルトの名無しさん
19/12/06 03:33:54.64 BprTHIND.net
ものすごい速度で羊を数えてください
1 sheep two sheep three sheep four sheep ...........

140:デフォルトの名無しさん
19/12/06 05:57:24.96 Ket1H4Yu.net
>>137
とりあえずお題なの?
曖昧すぎてわからん

141:デフォルトの名無しさん
19/12/06 06:42:40.11 yuBnjbMi.net
>>136
>>135

142:デフォルトの名無しさん
19/12/06 14:03:18 zI729h7a.net
>>101 julia
f(a,b)=(a+b)*(b-a+1)÷2
f(1,100) #-> 5050
f(50,80) #-> 2015

143:デフォルトの名無しさん
19/12/06 22:43:04.72 7FicwbM7.net
>>101 Perl5
use feature current_sub;
print sub {$_[0] and $_[0] + __SUB__->($_[0] - 1)}->(100);

144:デフォルトの名無しさん
19/12/06 22:53:13.95 7FicwbM7.net
>>101 Perl5
sub Y_combinator { my $f = shift;
 sub { my $x = shift; $x->($x) }->(
  sub { my $y = shift;
     $f->(sub {$y->($y)(@_)}) }
 )
}
my $series = sub {my $f = shift;
 sub { my $n = shift; $n and $n + $f->($n - 1) }
};
print Y_combinator($series)->(100);

145:蟻人間
19/12/06 23:19:56.34 jz2bvt/z.net
お題: 丸カッコと空白の並びで構成される入力文字列がある。丸カッコは入れ子になっていてそれぞれペアになっている。入力文字列は奇数文字数である。
プレーヤー1は、最初に入力文字列の一番左端に居る。プレーヤー2は最初に入力文字列の一番右端に居る。各プレーヤーは一回のアクションで次のいずれかの動作が可能。
(あ) カッコを飛び越えずにひとつ左か右に移動する。ただし、入力文字列の外側には移動できない。
(い) プレーヤーXがカッコAの外側に居て、AとXが隣接しているとき、XがカッコAに対応する別のカッコBの外側の端に移動する。
(う) カッコをひとつまたいでひとつ左か右に移動する。
入力文字列に対してプレーヤー1と2を何度もターン制でアクションをさせてプレーヤーの位置が衝突するまで鬼ごっこをさせよ。
動かすのはランダムでも知能つきでも構わない。アクションごとに位置を表示せよ。

146:蟻人間
19/12/06 23:33:56.47 jz2bvt/z.net
知能戦略の例)
鬼はなるべく近くなる方を選ぶ。
子どもは鬼からなるべく遠ざかるように動く。

147:デフォルトの名無しさん
19/12/07 00:07:48.78 n8phrA6e.net
動き方がわかりません
1文字右が ( の場合
(あ)1文字右に動く
(い)右の ( に対応する ) の右の文字に動く
(う)2文字右に動く
のいずれかが出来る
ただし、(い) (う) の移動先が文字列の外になる場合は移動出来ない
でいい?

148:デフォルトの名無しさん
19/12/07 00:25:15.68 FrJsgiML.net
あ と う は合わせられないか?

149:デフォルトの名無しさん
19/12/07 00:25:52.72 7zlttp1T.net
>>101 Perl5
no warnings 'experimental::signatures';
use feature qw(say signatures);
sub f($n) {$n and $n + f($n - 1)};
say f(100);
sub Y($f) { sub {$f->(Y($f))->(@_)} }
say Y(sub($f) { sub($n) { $n and $n + $f->($n - 1) } })->(100);

150:デフォルトの名無しさん
19/12/07 00:44:47.39 7zlttp1T.net
>>101 Perl5
no warnings 'experimental::signatures';
use feature qw(say signatures);
sub Y($f) { sub {$f->(Y($f))->(@_)} } # Y combinator w/ recursive
$s = sub ($n) {$n and $n + $s->($n - 1)}; # calc series recursive
say Y(sub ($f) { $s })->(100);

151:デフォルトの名無しさん
19/12/07 01:33:07.92 7zlttp1T.net
>>101 Perl5
use List::Util 'sum';
print sum 1..100;

152:デフォルトの名無しさん
19/12/07 03:39:00.62 GrS1V5od.net
お題
1以上、20以下の整数がランダムに10個与えられます。
与えられた整数の集合から1つ以上の整数を抜き出し、残った整数の集合からまた1つ以上の整数を抜き出します。
この時2つの抜き出した整数の集合のそれぞれの和が同値であり、かつ最小のものを出力して下さい。


与えられた整数の集合 : 2 3 4 5 6 7 8 9 10 11
期待される出力 : 5
この場合、与えられた整数の集合から
「2,3」「5」の整数を抜き出しています。

153:デフォルトの名無しさん
19/12/07 03:47:40.06 GrS1V5od.net
元ネタ
スレリンク(news4vip板:18番)

154:デフォルトの名無しさん
19/12/07 04:00:27.84 G4M88S/c.net
・「同値」の意味が謎
・解がない時の処理が謎(e.g. input: 9 10 11 12 13 14 15 16 17 18
・同値の使い方が間違っているのでそもそも「集合」の元が重複しないものとしてよいものか悩ましい

155:デフォルトの名無しさん
19/12/07 04:23:11 GrS1V5od.net
>>152
同値は単に同じ(等しい)値という意味で使っています。

解が存在しない場合は「ないよー」と出力して下さい。

与えられる整数は重複する可能性があります。

156:デフォルトの名無しさん
19/12/07 05:16:02 HQTo5ewj.net
ならば結局こういうことでよいのかね.
もとのスレを見ても出題者本人の主張が不明瞭なうえに二転三転していて気持ち悪いが.

与えられた数列を {a_n} に対して,
{a_n} の異なる項からなる任意の部分列の内それぞれの和が等しくなるものを {b_n}, {c_n} として
Σb_n (= Σc_n) が最小となる {b_n}, {c_n} を求めよ.

そして今回は b, c の項数をそれぞれ 2, 1 に限るものとすると.

157:デフォルトの名無しさん
19/12/07 05:38:25.75 GrS1V5od.net
もう少し例を載せるべきでした。
すいません。
例えば
>>152
さんの解が存在しないとしているものですが、
9 10 11 12 13 14 15 16 17 18
を与えられた場合の出力は
21となります。(10,11と9,12)

入力が
1 1 1 1 1 1 1 1 1 1
の場合の出力は
1となります。(1と1)

158:デフォルトの名無しさん
19/12/07 06:50:35.03 HQTo5ewj.net
>>155
なるほど、概ね理解した

159:デフォルトの名無しさん
19/12/07 09:57:16.56 WrheNqRo.net
>>150
取り敢えずRで力任せ。これでも瞬時に終わるので工夫の必要なし。
URLリンク(ideone.com)

160:デフォルトの名無しさん
19/12/07 15:33:28.08 WrheNqRo.net
実は>>157は「残った整数の集合から」の条件を忘れていて、元の集合から抜き出すと
勘違いして書いてしまったプログラム。
が、改めて条件を考えてみると、既に抜き出された数と同じものを選んでしまうのは、
「片方の部分集合の要素が2個以上で、もう片方の部分集合の要素が3個以上の場合」(A)
に限られる。例えば、2+9=11と2+3+6=11。この場合、2回選んでしまった2を取り除いた
部分集合は、和9=9と3+6=9が11より小さく、かつ(A)の場合に該当しないので2回選んで
しまった数は存在しない。
だから結局、>>157のプログラムのままで正解が得られることになる。

161:デフォルトの名無しさん
19/12/07 16:28:15.65 tj55yZgB.net
へなへななお題へなへなな回答

162:デフォルトの名無しさん
19/12/07 20:45:08.83 HU7sPj+p.net
>>150
この問題から関連して考えてたんだけど
5を
1 1 1 1 1
1 1 1 2
1 1 3
1 2 2
1 4
2 3
5
このように分割する方法は7通り、10だと42通りあった
数が与えられたとき何通りの分け方があるかどうやって計算するのか考えてたけど
そんな簡単な問題ではないようだった
とりあえず数が与えられたら上の例のように全ての分け方を列挙する
というのを問題としてみる

163:デフォルトの名無しさん
19/12/07 22:36:30.68 WrheNqRo.net
>>160
Rでお決まりの再帰呼び出し。
URLリンク(ideone.com)

164:デフォルトの名無しさん
19/12/07 23:22:48 eT8T+vHJ.net
分割数でググれば考え方いっぱい出てくるよ

165:デフォルトの名無しさん
19/12/08 13:36:47.70 jvur7pXC.net
>>160
C++
URLリンク(ideone.com)

166:デフォルトの名無しさん
19/12/08 13:57:09.43 FOSx0Jk/.net
>>154
最後の文はどこから出てきたの?

167:デフォルトの名無しさん
19/12/08 13:58:38.12 xElyalHo.net
>>164
元のスレ

168:デフォルトの名無しさん
19/12/08 14:21:04.90 FOSx0Jk/.net
しらんがな

169:デフォルトの名無しさん
19/12/08 14:22:15.55 FOSx0Jk/.net
その制限が無い方がアルゴリズムとしておもしろい
制限があるとつまらなすぎる

170:デフォルトの名無しさん
19/12/08 17:19:46.37 xElyalHo.net
知らんがなって
なら聞くなアホ

171:デフォルトの名無しさん
19/12/08 17:53:26.22 FOSx0Jk/.net
すまん
不満は>>150に言ったつもり
そんな重要な事を省略すんなって

172:デフォルトの名無しさん
19/12/08 19:17:22.87 DgjgjjxW.net
別に項数の制限はつけていませんよ
「項数の制限が無い」という事を省略したのに怒っているのならすいません。
ですが制限があるのなら普通に問題文に加えますし、別に書くほどの事では無いかな〜と

173:デフォルトの名無しさん
19/12/08 19:37:55.14 KCeBLlvA.net
>>150
URLリンク(ideone.com)
C++。総当たりです。スカイレークのi7で12秒くらいかかります。
久しぶりにまじめに総当たりを書いた気がしました。

174:デフォルトの名無しさん
19/12/08 19:44:34.35 KCeBLlvA.net
>>150
URLリンク(ideone.com)
オマケで、答えが見える版を置いておきます。C++。

175:デフォルトの名無しさん
19/12/08 20:22:49.16 KCeBLlvA.net
ちなみにオーダーは大体O(N!)位です。(笑

176:デフォルトの名無しさん
19/12/08 20:35:11.71 KCeBLlvA.net
ギャグですけど、並列化は比較的簡単なのでそれで時間短縮はできます。
底の値をシェアードにすると早く終わります。Nになってると思うんだけど。

177:デフォルトの名無しさん
19/12/08 20:48:51.01 KCeBLlvA.net
一回を関数に切り出して実行した場合、
一回のイテレーションが大体100回のループに収まるはずなのでザクザクおわります。
多分。

178:デフォルトの名無しさん
19/12/08 20:49:16.37 KCeBLlvA.net
一回を関数に切り出して実行した場合、
一回のイテレーションが大体100回のループに収まるはずなのでザクザクおわります。
多分。

179:デフォルトの名無しさん
19/12/08 20:59:32.19 KCeBLlvA.net
ぐあ、重複した・・・。

180:デフォルトの名無しさん
19/12/08 21:17:04.79 FKbRmDMb.net
>>150
これは問題の設定がつまらないな。1〜20の中から10個を選んで元の集合を作るから、
結果に1個か2個の和しかほとんど現れず、集合の最初の方をパッと見ただけで
暗算でも分かってしまう。1〜5000の中から10個を選ぶ設定にすると、
結果がなしだったり、3個の和と


181:4個の和だったり、2個の和と6個の和だったり、 変化に富んで面白くなる。https://ideone.com/kmihyT 例えば、リンク先にある 入力: [63, 70, 269, 949, 1337, 2670, 3538, 3764, 4183, 4320] 出力: Σ[3764, 4183] = Σ[63, 70, 269, 1337, 2670, 3538] = 7947 なんてパッと見では思いつかないから、コンピュータに探させる意義がある。



182:デフォルトの名無しさん
19/12/08 21:27:36.39 KCeBLlvA.net
>>178
異様に早いなーと思ったら、言語にコンビネーションあるんかいな。
裏山シー。

183:デフォルトの名無しさん
19/12/08 22:01:27.05 h14g0YSH.net
サンプルだから人間が簡単に検証できるようにしてるんでしょ
普通それぐらいはわかりそうなもんだけど、>>165みたいに項数だと思う奴とか>>178みたいにイチャモンつける奴とか世の中広いわw

184:デフォルトの名無しさん
19/12/08 22:35:33.47 FKbRmDMb.net
>>180
そんなことは分かっているよ。だから、お題通りの1〜20の場合も>>157でちゃんと回答した。
その上で、もっと面白い場合の追加を提案してみただけ。

185:デフォルトの名無しさん
19/12/09 00:06:03 QbXWD96q.net
>>150
N!より速い方法ある?

186:デフォルトの名無しさん
19/12/09 00:53:44 rq2SBWAq.net
>>182
動的計画法?

187:デフォルトの名無しさん
19/12/09 01:15:42 2eMu76Ef.net
URLリンク(ideone.com)
全ての和を計算して並べ替えるだけ
多分最も愚直な方法

188:デフォルトの名無しさん
19/12/09 01:57:50 2eMu76Ef.net
bit演算で面倒なことやってたけどpairっての使えば良かったのか

189:デフォルトの名無しさん
19/12/09 02:04:04.39 vzskLW//.net
>>150 URLリンク(ideone.com)
By PyPy、 ノーマルpythonでは力業の(N=20)が8秒くらいかな、
力業が 2^N * N
最小値だけなら、N*数列の合計 = N^2 * 数の平均(/2) ででる(みたい?)
(自信ががないDP解)

190:デフォルトの名無しさん
19/12/09 02:51:44 ElWitvQQ.net
>>180
日本語が読め無い馬鹿発見

191:デフォルトの名無しさん
19/12/09 04:54:54.63 wE9bCkNR.net
>>181
わかってたら
> これは問題の設定がつまらないな。
なんていう物言いにはならんだろ
>>187
夜中まで必死だな…
何に必死なのかよくわからんけどw

192:デフォルトの名無しさん
19/12/09 05:00:22.33 ElWitvQQ.net
必死なのはお前だろ
お前一人だけ日本語すらまともに読めてない馬鹿だって気づけよ

193:デフォルトの名無しさん
19/12/09 06:12:33.29 wE9bCkNR.net
うわっ、アホが無駄に絡んできたよw

194:デフォルトの名無しさん
19/12/09 06:42:21 QCNDYaVq.net
明け方からどんだけ必死なんだよ
以降、劣等感の塊のID:wE9bCkNRくんが全レスしてくれるってよ!

195:デフォルトの名無しさん
19/12/09 06:46:34 PLlkWb6P.net
こいつ少し上の方でレスバしてたアホやろ?
さんざん馬鹿にされて悔しい思いしたから早朝にちょろっと顔出してるんやろ

196:デフォルトの名無しさん
19/12/09 07:23:51 RwnUxfkW.net
単芝ガイジ君、情けなさ過ぎて草

197:デフォルトの名無しさん
19/12/09 12:30:02.62 G+LM1RHL.net
>>192
自己紹介乙ww

198:デフォルトの名無しさん
19/12/09 15:19:21 gONUrOAf.net
URLリンク(ideone.com)
C++面白いな

199:デフォルトの名無しさん
19/12/09 15:48:30 gONUrOAf.net
(sum[i].second & sum[i + 1].second) == 0
この比較はいらないのかな
これが重なってるならより小さい重なってない組合せが必ず存在するか

200:デフォルトの名無しさん
19/12/09 21:07:53.73 l5WymCFL.net
お題:2つの素数(2つは同じでもよい)の積で表される数は半素数と呼ばれる。
1万以下の半素数をすべて表示せよ。

201:デフォルトの名無しさん
19/12/09 21:20:18.06 QbXWD96q.net
int prime[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,91};

202:デフォルトの名無しさん
19/12/09 21:22:25.12 QbXWD96q.net
91じゃなかった

203:
19/12/09 21:29:40.49 ZryjKmS+.net
>>197
スレリンク(tech板)
2625個、でしょうか?

204:
19/12/09 21:35:00.48 ZryjKmS+.net
やりなおします
>>197
スレリンク(tech板:62番)
2625個

205:デフォルトの名無しさん
19/12/09 22:42:10.29 QbXWD96q.net
ふるいで5000以下の素数を求めて
2重ループで列挙
が速いかな

206:デフォルトの名無しさん
19/12/09 22:48:18.91 l5WymCFL.net
>>201
正解。Rでエラトステネスの篩を使って求めるプログラムを一応貼っておく。
URLリンク(ideone.com)

207:デフォルトの名無しさん
19/12/10 06:55:28 cIwr+d9F.net
>>197 J

(smoutput~ 2=#@q:)@>>:i.10000

4
6
9
10
...
9991
9993
9995
9997
9998

208:デフォルトの名無しさん
19/12/10 07:06:32 qBy9puuu.net
問題の一区分である素数判定、並びに範囲内の素数列挙するコード
URLリンク(ideone.com)
~/bin/is_prime.exe 2 10000
とやれば1万までの素数が列挙され、
~/bin/is_prime.exe 2017
と1つ引数与えればそれだけ判定
引数無いとURLの用にOFする限界付近まで全部


1万までの素数出して、それパイプで処理したら楽かなと思った

209:デフォルトの名無しさん
19/12/10 08:49:47 92MPgAr5.net
5000までの素数で十分だって言ってるのに

210:デフォルトの名無しさん
19/12/10 09:32:39 WOcT9SPT.net
>>197
お題:このお題の回答を論理式で表すとどうなるでしょうか。

211:デフォルトの名無しさん
19/12/10 09:53:12.04 gKYhlG5V.net
>>207
それはプログラミングのお題なのか?

212:デフォルトの名無しさん
19/12/10 13:07:12.61 bINIS1ks.net
また数(ry

213:デフォルトの名無しさん
19/12/10 13:10:37.69 FDwwVytW.net
出題者はいろんな言語の表記方法を知りたいだけか?
数学やアルゴリズム的には全然おもしろくないのばかり

214:デフォルトの名無しさん
19/12/10 15:09:39 zIz8I18p.net
>>197
URLリンク(ideone.com)
C++。>>205 の素数判定パクりました。楽すぎ。
と、思ったらこれ、俺の回答間違ってる。

215:デフォルトの名無しさん
19/12/10 15:15:40 zIz8I18p.net
>>197
URLリンク(ideone.com)

C++。こうかいな。

216:デフォルトの名無しさん
19/12/10 16:37:43 hI+yeapE.net
>>210
お前が面白い問題出せばいいじゃん
たぶん誰も解かないだろうけどwww

217:デフォルトの名無しさん
19/12/10 17:22:00.22 Ajx0JUvY.net
過去スレからお題引っ張りたいんだけど、有料会員じゃないからむりぽ

218:デフォルトの名無しさん
19/12/10 17:45:48.68 qBy9puuu.net
2chscとかいうのが無料サルベージに向いていると聞いたことがある

219:デフォルトの名無しさん
19/12/10 17:47:09.91 ClyY78bX.net
>>214
普通のブラウザで見ても出ないんだっけ?

220:デフォルトの名無しさん
19/12/10 18:57:11.15 W3sLZ8lM.net
>>213
問題を出して人に解かせるのはあまり好きじゃない
解く方が好き

221:デフォルトの名無しさん
19/12/10 19:01:43.67 W3sLZ8lM.net
過去の良問があればおしえろください

222:デフォルトの名無しさん
19/12/10 19:30:15.36 Ajx0JUvY.net
>>216
見れた( ゚Д゚)

223:デフォルトの名無しさん
19/12/10 20:07:19.37 ClyY78bX.net
>>219
そうか。普通のブラウザだとエロ広告が激しく付くからそれで過去スレ見せる料金なんとかしてるのかもね。
>>217
そんなあなたにとっておきのお題をひとつ。
お題: 面白いお題を作れ。

224:デフォルトの名無しさん
19/12/10 20:25:27.92 6QYDHDQi.net
じゃあ四角形を全部違う大きさの円で埋める

225:デフォルトの名無しさん
19/12/10 21:05:07.05 0RQ6ozIG.net
>>207
答えは高々有限個の整数でしかないんだから論理式にはならない

226:デフォルトの名無しさん
19/12/10 22:54:03 ZImsJVBi.net
>>210
まあ、そんな所だね。このスレは競技プログラミングじゃないから、アルゴリズムや
パフォーマンスの追求よりは、各自が使う言語で楽な書き方ができるのを披露する方が多い。
>>203も可変長ベクトルへの再代入の繰り返しという非効率なことをやっているが、
自前のforループ不要で簡潔に書けるし、篩い落とす操作を忠実に表してもいる。
昔と違ってこれでも実用な速度で動くので、色々な書き方ができるようになった。

C#, Julia, PowerShellでも類似の書き方ができる(>>206の通り素数は5000までにした)。
C# URLリンク(ideone.com)
Julia URLリンク(ideone.com)
PowerShell URLリンク(ideone.com)
R URLリンク(ideone.com)

C#のstatic void Main()の中だけを抜き出したC#スクリプトも作って、それぞれの実行時間を
PowerShellの

measure-command {semiprime.exe}
measure-command {csi semiprime.csx}
measure-command {julia semiprime.jl}
measure-command {semiprime.ps1}
measure-command {rscript semiprime.R}

で計測すると、C#を1倍として、R 3.40倍、C#スクリプト 10.1倍、Julia 16.6倍、
PowerShell 199倍となった。PowerShellだけは延々と待たされ実用的でない。
他の4つはすぐに終わるが、右へ行くほどややもたつく。Rは遅いと言われているが、
スクリプト言語の中ではかなり速い。

227:デフォルトの名無しさん
19/12/10 22:54:55 ZImsJVBi.net
>>217
じゃあ、これ解いてみる?

整数x, y, z, kに関する方程式x^3 + y^3 + z^3 = kの解を、k = 1から100までの場合について求めよ。
URLリンク(engineer.fabcross.jp)

228:デフォルトの名無しさん
19/12/10 23:25:26 qBy9puuu.net
k = 64, z = 4の時
任意の整数 を+-反転した組が x,yの解であり、その個数は無限

229:デフォルトの名無しさん
19/12/10 23:27:52 W3sLZ8lM.net
なぜ
k=1, z=1
じゃない?

230:デフォルトの名無しさん
19/12/10 23:47:24 qBy9puuu.net
あとから追加されそうな条件の
仮に全部0以上の整数とした時に
5*5*5>125,100>4*4*4のメモ代り

231:デフォルトの名無しさん
19/12/10 23:59:19 RjwvfByt.net
k=1から100のどれかに対してじゃなくて、
k=1から100のそれぞれすべてに対して求めるんじゃろ…

232:デフォルトの名無しさん
19/12/11 00:11:02 10jfhd7e.net
URLリンク(ideone.com)

10000000以下で0.04秒
C++は速い!

233:デフォルトの名無しさん
19/12/11 00:13:04 10jfhd7e.net
C#の10000以下より速い!

234:デフォルトの名無しさん
19/12/11 00:30:48 10jfhd7e.net
>>224
k=1の時からいきなり難しいなあ

235:デフォルトの名無しさん
19/12/11 00:40:32 10jfhd7e.net
>>224
ん?
解を全て求めるのではなく
各kに対して1個解を求めればいいの?

236:デフォルトの名無しさん
19/12/11 09:11:06 aadkbL3F.net
>>197 seq, factor, awk

seq 10000 | factor | awk 'NF == 3'

237:デフォルトの名無しさん
19/12/11 09:24:12 ztpKOEip.net
>>233
awkのとここれどういう意味?わたし女騎士だけど教えて!

238:デフォルトの名無しさん
19/12/11 10:31:05 dG8VWZ74.net
>>234
女騎士?

まあいいや。NFが3になる行だけ出力するんだよ。NFはフィールド数ね。
区切り文字がデフォルトのままだと空白文字で区切った時の個数。例えば行に a b c って入ってたら 3 になる。

239:デフォルトの名無しさん
19/12/11 12:05:48.97 dG8VWZ74.net
>>197
Kotlin
URLリンク(paiza.io)

240:デフォルトの名無しさん
19/12/11 13:38:08.03 ivhCTlPt.net
>>233
素因数分解しちゃえばいいのか
サイコー

241:デフォルトの名無しさん
19/12/11 13:42:56.98 QbvBtpFM.net
>>233
やってみたら
--- Data stack:
って出力が10000行並ぶだけなんだけど…
なんかオプションいる?

242:デフォルトの名無しさん
19/12/11 14:03:27.78 jagg9gKF.net
普通にできたけど
何のシェル使ってるの?

243:デフォルトの名無しさん
19/12/11 14:35:31 QbvBtpFM.net
bash。macで。

244:デフォルトの名無しさん
19/12/11 14:38:38 jagg9gKF.net
俺もbashもだけど
seq 100くらいなら動くの?

245:デフォルトの名無しさん
19/12/11 15:36:13.32 QbvBtpFM.net
$ seq 3 | factor で止めてawk飛ばすと以下の出力です。
Factor 0.98 x86.64 (1886, heads/master-211d69561a, Jul 2 2018 17:46:19)
[Clang (GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.29))] on macosx
IN: scratchpad
--- Data stack:
1
IN: scratchpad
--- Data stack:
1
2
IN: scratchpad
--- Data stack:
1
2
3
IN: scratchpad

246:デフォルトの名無しさん
19/12/11 16:49:11 1E1+DBtw.net
>>233
約数が3個な数を列挙ってこと?
4の約数は1,2,4の3個だけど
6の約数は1,2,3,6の4個だよ

247:デフォルトの名無しさん
19/12/11 17:02:16.44 hUZCfnLs.net
factorみりゃわかんだろ……
素因数の数だっつーの

248:デフォルトの名無しさん
19/12/11 18:01:04.84 10jfhd7e.net
素因数の数が3?

249:デフォルトの名無しさん
19/12/11 18:12:47.35 ivhCTlPt.net
こんな具合だろ
seq 100 | ~/bin/factorization.pl| awk -F, "NF==2" | ~/bin/align.pl "=" 4 2,2
6 2,3
9 3,3
10 2,5
14 2,7
......
9995 5,1999
9997 13,769
9998 2,4999

250:デフォルトの名無しさん
19/12/11 19:33:15.23 ReYSFEXH.net
>>224
とりあえず7個を除いて出来た
ここからが長いのかな?

251:
19/12/11 19:46:53.70 6E3wj7zP.net
>>243
そうそう、それに
8 の約数は 1, 2, 4, 8 の 4 個だけれども、これは >>197 のいう半素数ではないんですよね
>>233 は間違っていますね

252:デフォルトの名無しさん
19/12/11 20:44:53.42 WjX/lCwK.net
QZがそういうなら合ってるんじゃないの?

253:デフォルトの名無しさん
19/12/11 20:51:31.74 7CYZ1E2N.net
反面教師?

254:デフォルトの名無しさん
19/12/11 20:54:12.94 7CYZ1E2N.net
お題
1兆以下の半素数の個数を求めよ
これだとスクリプト系は無理かな?

255:デフォルトの名無しさん
19/12/11 21:07:14.36 ivhCTlPt.net
素数判定で書いた
long long int のC言語でも100億ぐらいを上限でサポートしてる
100億以上の判定は遅くてより優れた判定アルゴリズムが必要だからだ
推定:C系、優れた判定、現代スペックのPCが必要

256:デフォルトの名無しさん
19/12/11 21:11:52.35 7CYZ1E2N.net
素数判定する必要は無いよ

257:
19/12/11 22:08:07.74 6E3wj7zP.net
>>252
>long long int のC言語でも100億ぐらいを上限でサポートしてる
極めて不正確ですよ
C99 後は uint64_t の最大値は 1844'6744'0737'0955'1615=約 1844 京ですね
それに実際に割ってみる方法以外には素数判定があるとでも?そんなものは存在しませんね

258:デフォルトの名無しさん
19/12/11 22:15:54.42 10jfhd7e.net
何年も前に素数の数を数え時は
シングルスレッドのコードで
5000億までで1時間弱
だから>>251もそのくらいで求まるはず

259:デフォルトの名無しさん
19/12/11 22:46:17.34 10jfhd7e.net
>>254
詳しそうなので>>251をよろしく!

260:デフォルトの名無しさん
19/12/11 23:52:51.14 VagVWTF0.net
知り合いから、「子供の宿題なんだけど解けない」と言われた。
「正方形13枚と正三角形を何枚か組み


261:合わせて、凸多面体を作るとき、その頂点数は A 個または B 個である。ただし一つの頂点には同じ枚数の面が集まっているものとし、A < B とする。」 途中経過を適宜表記しつつ解くプログラムを!



262:デフォルトの名無しさん
19/12/12 00:28:15.32 UvCIGzud.net
A=19
B=38

263:デフォルトの名無しさん
19/12/12 00:32:27.86 UvCIGzud.net
>>247
3乗して64bitに収まる範囲全て調べたけど
7個から減らなかった

264:デフォルトの名無しさん
19/12/12 00:35:14.01 UvCIGzud.net
7個になるまで9秒
3乗して64bitに収まる範囲検索2031秒

265:デフォルトの名無しさん
19/12/12 00:42:16.14 UvCIGzud.net
>>257
プログラミングの宿題じゃないはずなので
解き方は他の板で聞いて

266:デフォルトの名無しさん
19/12/12 00:44:42.94 UvCIGzud.net
k=30, 33, 42, 52, 74, 75, 84
の時がわからん

267:デフォルトの名無しさん
19/12/12 06:06:40.97 wmbGd8tm.net
>>254
f(x) = 1 if x is prime
f(x) = 0 otherwise
なる f: R -> R が存在しないってなんで言い切れんの?
頭悪すぎ

268:デフォルトの名無しさん
19/12/12 07:32:31.88 UvCIGzud.net
>>254>>263も頭悪すぎだ

269:デフォルトの名無しさん
19/12/12 07:40:34.14 UvCIGzud.net
>>252
素数判定は不要
>>254
uint64_tの上限じゃなくて素数判定可能な範囲
また、実際に割ってみる以外の方法も色々と存在する
>>263
fは存在する
あなたが書いた通りの定義そのままをfとすれば良い
fの存在と素数判定の方法が存在するかどうかは無関係

270:デフォルトの名無しさん
19/12/12 07:48:51.75 wmbGd8tm.net
>>265
お前も馬鹿だな
簡単な関数で f が定義できるならそれはそのまま簡単な計算で素数判定ができることに他ならない
こちらはそんな方法が存在するといっているわけではなく、無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さを指摘しているだけなんだが

271:デフォルトの名無しさん
19/12/12 08:00:21.80 UvCIGzud.net
>>263
「簡単な関数でfが定義できる」
非常に重要な言葉を後付けだし
これが最初からあったとしても、
単に簡単に素数判定可能可能を言い換えただけの
何の意味もないレス
リテラシーの無さの指摘の方法が頭が悪い

272:デフォルトの名無しさん
19/12/12 08:08:21.73 UvCIGzud.net
現代の技術で言えば
特殊な形であれば高速に判定する方法はある
特殊な形でなければ高速に判定する方法は見つかっていない
実際に割ってみる以外の判別方法は存在する

273:デフォルトの名無しさん
19/12/12 08:25:56.28 UvCIGzud.net
なんでNやZじゃなくてRにしたのか気になる

274:デフォルトの名無しさん
19/12/12 12:56:52.27 wmbGd8tm.net
文脈無視して揚げ足取ってて草
こいつ関数は全射しか存在しないとでも思ってんのか

275:デフォルトの名無しさん
19/12/12 14:55:31.47 2PtCb74v.net
単純な疑問だよ
なんかこだわりとか深い意味とかあるのかと
「実数が素である」とか書かれると、
素数じゃない別の意味を指してると思うわけで
揚げ足取られたと思ったってことは
ミスったと思ったんだよね?

276:デフォルトの名無しさん
19/12/12 15:35:29.90 zRSUYply.net
いつもの連投アスペ君じゃん
相手すんなよ

277:デフォルトの名無しさん
19/12/12 17:58:27.01 2C/x7O5N.net
論破されて捨て台詞
の典型でした

278:デフォルトの名無しさん
19/12/12 18:19:15.31 RcQND7/k.net
5chリテラシーが低いやつもだいぶ減ってはきてるが
このスレはちょいちょい出てくるよなぁ

279:デフォルトの名無しさん
19/12/12 18:27:18.35 cffvEFbc.net
>>263を書いておいて良くいうよ

280:デフォルトの名無しさん
19/12/12 18:39:51.55 JPTMcftT.net
論破を禁止します

281:デフォルトの名無しさん
19/12/12 19:05:41.21 f2lx0DlC.net
まーたロンパンジーが湧いてんのかよ

282:デフォルトの名無しさん
19/12/12 19:12:35.43 cffvEFbc.net
リテラシー君
よほど悔しかったのかな?

283:
19/12/12 19:15:24.80 bwSkQtN1.net
>>256
単に上限値を増やしただけのお題なんて糞だと思います

284:
19/12/12 19:17:30.13 bwSkQtN1.net
>>265
>また、実際に割ってみる以外の方法も色々と存在する
私の初等的な教科書にはウィルソンの定理の証明が載っていました、>>254 はちょっと勇み足でしたね
>>266
>無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さ
まあ、認めましょう

285:デフォルトの名無しさん
19/12/12 19:18:20.83 cffvEFbc.net
>>279
そう思うってことは上限値以外の差がわからんて事だね
決定的な違いがある

286:デフォルトの名無しさん
19/12/12 20:55:40.30 uIjgN9ep.net
お題:
(A) 階乗の下z桁がすべて0となるような最小の自然数を、z = 1, 12, 123, 1234, 12345,
123456, 1234567, 12345678, 123456789の各場合について求めよ。存在しないときは
そう表示せよ。
(B) (A)の「下z桁がすべて0となる」という条件を「0である桁がz個となる」に置き換えて解け。

(A)はちょっと考えれば簡単に解ける。(B)はどうか知らない。多桁整数計算ができるJuliaでは
z = 12345までは力任せでも求められたが。

287:デフォルトの名無しさん
19/12/12 21:21:19.99 qa03h3dy.net
5で割っていく感じだから
整数無視して無限に割ると
おおまかに4で割った感じの数0が並ぶ
126! は4で割って31ぐらい

288:デフォルトの名無しさん
19/12/12 22:14:34.83 WrPVO4K2.net
連投論破野郎が論破されてて草

289:デフォルトの名無しさん
19/12/12 23:15:10.76 UvCIGzud.net
(A)だけ C++
URLリンク(ideone.com)

290:デフォルトの名無しさん
19/12/12 23:18:50.66 UvCIGzud.net
(B)は実際に下限から順番に計算していかないとダメじゃないか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1309日前に更新/270 KB
担当:undef