[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 17:52 / Filesize : 270 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part16



1 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 09:00:22.10 ID:xqEdXdr6.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/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part15
mevius.5ch.net/test/read.cgi/tech/1564310397/

2 名前:デフォルトの名無しさん mailto:sage [2019/11/17(日) 10:53:15.74 ID:uilOlN75.net]
>>1 おつ

3 名前:デフォルトの名無しさん [2019/11/17(日) 17:37:39.46 ID:8gWobnsK.net]
val 乙 = "乙"
prontln(乙)

4 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 02:35:04.18 ID:t9gVOJNg.net]
お題:
https://i.imgur.com/JsMU4uh.jpg
明度が0〜9までのグレーの四角がグラデーション状に横並びにならんでいるとします
この状態だと隣接している四角と四角の明度の差が少ないので境目が見えづらいです
全ての四角同士の明度差ができるだけ大きくなるように並び替えるにはどういうロジックが考えられるでしょう?
四角の数が増えても対応できるような汎用的なロジックが望ましいです
両端は固定のままが理想ですが必須要件ではありません

・ボツ例:1〜4まで一つおきに左右端を入れ替える
(1) 1と8を入れ替える
(2) 2と7はそのまま
(3) 3と6を入れ替える
(4) 4と5はそのまま
※これだと4と5が隣り合ったままで明度差が少ない箇所が残るので最適解ではない

5 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 05:41:33.12 ID:8+qUVevR.net]
Σ|a_n - a_{n+1}| を最大化する問題なのか
inf{|a_n - a_{n+1}|} を最大化する問題なのか
どっちなんだ?

6 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 11:50:33.33 ID:BCetHxzu.net]
>>4
力業で確認したら
>>5 の判定ルールで前者後者ともに最大になるのは
[0, 5, 1, 6, 2, 7, 3, 8, 4, 9] だけみたい、前者 41、後者 4
前者だけだとスコア 41 で 576通り、後者だけだとスコア 4 で 2通り
そのもう一つの解は [0, 4, 8, 3, 7, 2, 6, 1, 5, 9] で前者の判定ルールだとスコア 39

[0, 5, 1, 6, 2, 7, 3, 8, 4, 9] を偶数項と奇数項に分けると…

7 名前:デフォルトの名無しさん mailto:sage [2019/11/18(月) 18:43:37.24 ID:DjoGz+4S.net]
>>4 Java (両端固定ではない
https://ideone.com/tCrXMN

>>6
つまりこういうことかの?
両端固定で奇数個の場合はどうなるんじゃろ

8 名前:デフォルトの名無しさん [2019/11/18(月) 20:03:36.58 ID:EbN/HVpO.net]
>>4
両端固定で最小隣接差を最大化する条件で回答する。Rですべての並べ方を虱潰しに
調べるのが https://ideone.com/paKF2d で、結果は>>6が言う通りになる。
n = 10 ではすぐに終わるが、それを超えると時間がかなりかかるし、環境によっては
メモリ不足になる。

もう少し効率的に調べるのが https://ideone.com/OsmpbQ で、n = 16 までは
すぐに終わる。それを超えると時間がかかるように段々なるので、さらなる効率化が
必要。

n = 10 と n = 16 の結果から、nが偶数の場合は>>6が言うように規則性が見られ、
nが大きくなっても並べ方は常に2通りで、例えば n = 256 のときは

0, 127, 254, 126, 253, 125, 252, ..., 2, 129, 1, 128, 255
0, 128, 1, 129, 2, 130, 3, ..., 253, 126, 254, 127, 255

になると予想されるが、それが正解であることを理論的に説明しないといけないな。

9 名前:デフォルトの名無しさん [2019/11/21(木) 21:52:25.50 ID:1mUnuvuP.net]
>>4
【nが偶数の場合の>>8の予想を理論的に説明する】(等幅フォントでの表示推奨)

n = 10のとき、最小階差をd >= 6と仮定すると  0: 4, 5, 6, 7, 8
4に隣接できる数はなく、d = 5と仮定すると9だ  1: 5, 6, 7, 8, 9
けなので、数列が途切れてしまって続かない。  2: 6, 7, 8, 9
よってd >= 5はあり得ず、d = 4から調べれば良  3: 7, 8, 9
い。d = 4のとき各数が隣接できる数を列挙する  4: 0, 8, 9
と、右図のようになる。            5: 0, 1, 9
                       6: 0, 1, 2
                       7: 0, 1, 2, 3
                       8: 0, 1, 2, 3, 4
                       9: 1, 2, 3, 4, 5

これらの候補からそれぞれ2個(両端の0と9では  0: (4), (5), >6<, >7<, >8<
1個)ずつを選ぶ問題となる。4で、0と9を両方選  1: [5], 6, 7, 8, >9<
ぶと0→4→9で順列が終わってしまうため片方し  2: 6, 7, 8, >9<
か選べないから、8を必ず選ぶことが確定する。  3: 7, 8, >9<
同様に5で1が確定する。選択確定に[]、どちら  4: (0), [8], (9)
か一方を選択に()、非選択の確定に><の印をつ  5: (0), [1], (9)
けると、右図になる。             6: >0<, 1, 2
                       7: >0<, 1, 2, 3
                       8: >0<, 1, 2, 3, [4]
                       9: >1<, >2<, >3<, (4), (5)

10 名前:デフォルトの名無しさん [2019/11/21(木) 21:53:22.41 ID:1mUnuvuP.net]
3と6で候補がそれぞれ2個に絞られたから、それ  0: (4), (5), >6<, >7<, >8<
らが選択確定となり、右図になる。       1: [5], [6], >7<, >8<, >9<
                       2: [6], 7, >8<, >9<
                       3: [7], [8], >9<
                       4: (0), [8], (9)
                       5: (0), [1], (9)
                       6: >0<, [1], [2]
                       7: >0<, >1<, 2, [3]
                       8: >0<, >1<, >2<, [3], [4]
                       9: >1<, >2<, >3<, (4), (5)

2と7で残り候補がそれぞれ1個に絞られたから、  0: (4), (5), >6<, >7<, >8<
それらが選択確定となり、結局、可能な並べ方  1: [5], [6], >7<, >8<, >9<
は右図のように0の次に4か5から始まる2通りし  2: [6], [7], >8<, >9<
かないことが分かる。             3: [7], [8], >9<
                       4: (0), [8], (9)
                       5: (0), [1], (9)
                       6: >0<, [1], [2]
                       7: >0<, >1<, [2], [3]
                       8: >0<, >1<, >2<, [3], [4]
                       9: >1<, >2<, >3<, (4), (5)

同様にして、nが偶数の場合を一般化し、中央の2つの数n / 2 - 1とn / 2でそれぞれ
n - 2と1を選択確定、0とn - 1を一方選択とするところから始めて、順々に選択確定
させていくことができる。

>>8の予想を理論的に説明できたので、それに基づくプログラムを晴れて作成すると、
https://ideone.com/D3zdgX になる。



11 名前:デフォルトの名無しさん [2019/11/21(木) 21:54:24.25 ID:1mUnuvuP.net]
nが奇数の場合にも偶数の場合と似たようにしてd >= (n - 1) / 2 はあり得ず、
d = (n - 1) / 2 - 1 から調べれば良いことが分かるが、偶数の場合と違い
選択確定できる数はない。>>8の元請け関数のforループの開始値をnではなく
n %/% 2 - 1に置き換えるだけでは、実行時間は5〜6%くらいしか短縮されない。
偶数の場合のような図の作成により、調べる組み合わせを減らしていくことは
できるが、プログラムを書くのはかなり面倒そう。

12 名前:デフォルトの名無しさん mailto:sage [2019/11/21(木) 22:40:32.33 ID:vr0RSw67.net]
>>4 Squeak Smalltalk。両端固定せず、対称排除なしの虱潰しで。

| min |
min := 0 -> OrderedCollection new.
(0 to: 9) permutationsDo: [:perm |
   | curr |
   curr := (perm overlappingPairsCollect: #-) abs min.
   curr = min key ifTrue: [min value add: perm copy].
   curr > min key ifTrue: [min := curr -> (OrderedCollection with: perm copy)]
].
^min value asArray "=> #(#(4 9 3 8 2 7 1 6 0 5) #(5 0 6 1 7 2 8 3 9 4)) "



"Pharo向け => ws.stfx.eu/CFADPDGFMTJC "

13 名前:デフォルトの名無しさん mailto:sage [2019/11/22(金) 20:06:41.59 ID:EyqF2Cmi.net]
お題:読み手を一瞬戸惑わせよ
https://ideone.com/OCwpPB

14 名前:デフォルトの名無しさん mailto:sage [2019/11/23(土) 05:56:02 ID:KvoIJqUR.net]
https://twitter.com/AtomDynamics16/status/1197979782719229952
キー入力を一定時間ごとに送るソフトを書いたのだけど、やっぱりグレーですか?
パケット改変して無くて、メモ帳ではうまくいってる。
UOクライアントに使うのが怖くて躊躇している。
(deleted an unsolicited ad)

15 名前:デフォルトの名無しさん mailto:sage [2019/11/23(土) 06:01:06 ID:KvoIJqUR.net]
あ、UOスレに書いたものだと・・・。

16 名前:デフォルトの名無しさん [2019/11/23(土) 22:51:11.49 ID:ubdNKuk5.net]
>>4>>11の方式で求めるプログラムを書いてみた: https://ideone.com/14wgia

nが偶数の場合、n = 8までは>>8の2

17 名前:番目のプログラムと比べて遅いが、n = 10, 12,
14, 16, 18, 20ではそれぞれ1.78倍、7.16倍、49.8倍、327倍、3120倍、30800倍の
速度になり、差がどんどん開いていく。n = 256でも1秒未満で求められる。

nが奇数の場合、n = 11までは遅いが、n = 13で同程度になり、n = 15, 17, 19, 21では
それぞれ3.25倍、12.6倍、58.8倍、325倍の速度で、差がやはりどんどん開いていく。
nが2大きくなるごとに並べ方の通り数が2倍以上に増えるようなので、n = 255では
どんなアルゴリズムを使ってもコンピュータの性能限界をはるかに超えてしまう。
[]
[ここ壊れてます]

18 名前:デフォルトの名無しさん mailto:sage [2019/11/24(日) 20:41:58.58 ID:NMcltmqU.net]
今日は夕焼けが超絶綺麗だったよ。
今まで見たことないくらい。
まだきれいになるだろうか、というのと、これ一回で終わりだろうか。
というのがあった。

19 名前:デフォルトの名無しさん mailto:sage [2019/11/25(月) 01:25:34.58 ID:SBJvKXmI.net]
お題:Diffアルゴリズムを実装せよ。

差分アルゴリズム、さんぷる。
1:abcdef
2:abdef -> -3:c
3:bcdef -> -1:a,+3:c
4:abcdef -> +1a

以上がオレの考えるアルゴリズムだが、
もっとより良いアルゴリズムが世の中にはあるはずなので、
実装しませんか?

20 名前:デフォルトの名無しさん [2019/11/25(月) 09:24:47.39 ID:veETdbiQ.net]
>>18
それはアルゴリズムではなく入力と出力のサンプル。

まあとにかく足された文字は+と位置と足された文字(または文字列?)を出して引かれた文字は-と位置と文字を出す仕様ということだな。
で、位置は先頭が1だと。

後で時間が空いたら考えとく。



21 名前:デフォルトの名無しさん [2019/11/25(月) 22:13:03.88 ID:UwQDpJpg.net]
>>18
https://ideone.com/3VET5r
Rには編集前後の文字列のレーベンシュタイン距離を求める便利な関数adistが
備わっていて、1文字の挿入、削除、置換操作が必要な位置をI, D, S、操作が不要な
位置をMで示す文字列を返してくれる。例えば、"abdef" と "bcdef" を与えると、
"DMIMMM" が得られる。あとは、>>18の出力形式にちょっと加工するだけ。

22 名前:デフォルトの名無しさん [2019/11/26(火) 01:23:24 ID:q8waUqPK.net]
>>18
Kotlin
https://paiza.io/projects/KUt3cPLxHrEYUi0NBvFNow

1文字以上の追加や削除も出せるようにしてある。

23 名前:デフォルトの名無しさん [2019/11/26(火) 11:38:36 ID:JjgFJEIb.net]
>>18
C
https://paiza.io/projects/NTgg4131JYHSiSqBTtNZTw

24 名前:デフォルトの名無しさん [2019/11/26(火) 15:12:16 ID:JjgFJEIb.net]
>>18
Perl
https://paiza.io/projects/71IZPLpIhoNPEexVVb8cCQ

あまりPerlの特性を生かせてないような、かといって今のところこれぐらいしか思い浮かばない。

25 名前:デフォルトの名無しさん mailto:sage [2019/11/26(火) 16:15:14 ID:FF/Zqwz/.net]
>>18
やっぱお前ら高性能だな。言い方悪いけど。

26 名前:デフォルトの名無しさん [2019/11/28(木) 17:24:57.64 ID:mMrv+0Zt.net]
高性能じゃない俺にもできるお題をたのむ

27 名前:デフォルトの名無しさん [2019/11/28(木) 20:14:43.82 ID:mbBdSv/T.net]
お題:自然数aをいくつか[※1]の自然数の組の和で表すとき、それらの自然数の組の
積[※2]が最大となるような自然数の組を、aが1から100までに対して表示せよ[※3]。

[※1] 1つでも構わず、その場合には和も積も自然数n自身となる。
[※2] 例えば、7を1+2+4と表せば積は1*2*4=8、2+5と表せば積は2*5=10であり、
   後者の積の方が大きい。
[※3] 最大となるような自然数の組が複数ある場合は、すべての組を表示せよ。

28 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 20:24:13.35 ID:522sTouZ.net]
>>26
同じ数字は何回も使っていいの?

29 名前:デフォルトの名無しさん [2019/11/28(木) 20:30:31.52 ID:mbBdSv/T.net]
>>27
可。

30 名前:デフォルトの名無しさん [2019/11/28(木) 21:08:44.29 ID:pgFu+V4e.net]
後で虱潰しに全部計算するやつでも作るかな



31 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 21:12:26.03 ID:522sTouZ.net]
同じ数字を何回も使っていいんだったら2と3だけで作って、2*2を4と置き換えたものを追加(※3のため)すればええんかね?
aが1の場合は1
aが偶数の場合2^(a/2)
aが3以上の奇数の場合2^((a-3)/2)+3

32 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 21:20:11.41 ID:EjjwcG+D.net]
f(a,n)=(a/n)^n
df/dn =(a/n)^n * (-1+log[a/n]) な感じなので
ne=aで増減変化な気がするから
それ前後の整数2つだけしらべれば大丈夫?
a<=100, a>=1 だから200回調べる感じ

33 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 22:03:53.95 ID:uZ7jROyS.net]
3で分割できている間は3で残りが1になってしまう場合は最後の4を2x2にするのが最大っぽいね
7だったら3+3+1ではなくて3+2+2
12は3+3+3+3
13は3+3+3+2+2
100までずっとこれ

最大値しか表示しないけど
https://ideone.com/Ck54FP

34 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 22:37:08.59 ID:PoPpbfsh.net]
求める値をf(a)とする
b+c=a, b<=c, b>0, c>0 となる全てのb,cに対して
max { f(b) f(c) } と a の大きい方
となる

f(a) を a=1 の時から順番に調べれば良い

aが十分大きくて小数も許すなら
e=2.7182818... に分けるのが最善
整数なら>>32の通りかな?

35 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 22:43:58.67 ID:522sTouZ.net]
あー、2より3の方がよかったかー

36 名前:デフォルトの名無しさん mailto:sage [2019/11/28(木) 22:48:21.15 ID:PoPpbfsh.net]
1以外の時には1が出ない
5以上は2個以上に分けた方が大きい
4は2+2にしても同じ
6は2+2+2より3+3よ方が大きい

だから
a>=2の時には
2、3、4以外の値はあらわれず
2と4をあわせて6以上にはならないことがわかる

つまり、(順番を無視すれば)以下の形のみになる

3+3+...+3
3+3+...+3+2
3+3+...+3+2+2
3+3+...+3+4

37 名前:デフォルトの名無しさん [2019/11/29(金) 15:19:10.07 ID:Ursk3Xfl.net]
>>35
なぜそれで「だから」となるのかわからない。

38 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:42:19.99 ID:YkvT9y9m.net]
2、3、4以外の値はあらわれず
2と4をあわせて6以上にはならない

どっちがわからない?

39 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:48:24.95 ID:YkvT9y9m.net]
.... が正として、

.... * n * 1 < .... * (n+1)
.... * n < .... * floor(n/2) * ceil(n/2) @nが5以上
.... * 2 * 2 * 2 < .... * 3 * 3
.... * 4 = .... * 2 * 2

40 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 17:57:55.99 ID:YkvT9y9m.net]
一応、
加算と乗算は交換法則と結合法則が成り立つ
ってのも必要な条件です



41 名前:デフォルトの名無しさん [2019/11/29(金) 20:54:17.14 ID:dycaAJcC.net]
>>37
なぜ現れないとわかるのか?

42 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 21:03:35.14 ID:M9vvD3Fp.net]
>>40
38で書いてくれてる
5以上なら分割したほうが大きくなるから最終的な数字は5未満になる

43 名前:デフォルトの名無しさん [2019/11/29(金) 21:19:59.63 ID:dycaAJcC.net]
え?そうなの?わかりづらいな。見てもわからんよ。

44 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 21:29:43.92 ID:57KUyJj8.net]
なんでわからんのかがわからん

45 名前:デフォルトの名無しさん mailto:sage [2019/11/29(金) 21:39:03.80 ID:M9vvD3Fp.net]
38の内容は
1行目で1が無意味なので1が出ない
2行目で5以上は分割したほうがでかくなる
3行目で2*2*2と3*3は同じ
4行目で2*2と4は同じ
を説明している
3行目4行目はパターンを列挙するために必要な内容

46 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 02:03:19 ID:8/O2xSEo.net]
5以上は分割した方が大きくなる事に関しては数学的に証明できてるってこと?

47 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 02:12:04 ID:NRfKrTi3.net]
したつもり en=aのような感じのあれ

48 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 02:28:06 ID:Qe4NE6bn.net]
n/2*n/2=n^2/4
だからn=4ならnと同じ、5以上なら分子が大きくなるからnより大きくなる
整数でに分割なので↑は偶数のときに限定
奇数のときは
(n-1)/2*(n+1)/2=(n^2-1)/4
だからnが5以上ならnより大きい

49 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 07:09:20 ID:WebQyLi7.net]
>>45
より大きくなる具体的な分け方を>>38に書いた

半分の、小数点以下切り上げ
半分の、小数点以下切り捨て
に分ける

これの方が大きい証明はとても簡単
(でもあまりエレガントではない)

もちろんこの分け方が最大というわけではないが
最大の分け方が5以上を含むと仮定すると、
より大きなものが存在するので矛盾
だから5以上は含まない
と言う事が出来る

50 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 07:13:05 ID:WebQyLi7.net]
最大となる分け方が存在する
ってのは有限性から明らか

つまり、
少なくとも1個の分け方が存在する
分け方は有限個しかない
から明らか



51 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 11:15:44.62 ID:WebQyLi7.net]
n ≧ 5 の時

floor(n/2) * ceil(n/2) - n
> { (n - 1) / 2 } * { n / 2 } - n
= n (n - 5) / 4
≧ 0

よって
n < floor(n/2) * ceil(n/2)

52 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 17:07:38.94 ID:0h0IqWCg.net]
これでわからんのなら数学じゃなくて日本語が不自由と断言してよいレベルだな

53 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 17:44:52.22 ID:hV/U21TG.net]
>>26
https://ideone.com/5DzbUt
C++。二進数最強伝説を信じて書いてみたよ。
数学出来ないからいつも通り適当に解いてる。。。

54 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:01:19.21 ID:hV/U21TG.net]
あ、間違ってら。

55 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:08:13.55 ID:+iwJeZ8g.net]
>>44
今更だけど3行目の説明間違えてた
2*2*2より3*3が大きい
なので結果的に解は3がたくさん並んで後ろで足りない分を2、もしくは4つける形になる

56 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:12:03.75 ID:hV/U21TG.net]
>>26
https://ideone.com/nqON70
C++。理屈が良くわからんけど、これが俺の限界。
2で欠けたほうが普通はいいんだけど、3の倍数は2引くと1余るのでそういうところでコスト取られるのでしょうかねぇ??
プリミティブ触ったほうが詰め込めるというのは普遍的にあると思うのだけどね。。。
もしかしたら、どっかの素数がスイートスポットになってて変な切り方しないとうまくないってこともあるかもしれない。

57 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:18:01.40 ID:hV/U21TG.net]
屁理屈だけど、2と3の組み合わせで表せる数字は多いということかなぁ??

58 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:18:52.60 ID:hV/U21TG.net]
2の倍数で且つ3の倍数の時は2を使うのがいいのか3を使うのがいいのか解らない。

59 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:25:54.08 ID:hV/U21TG.net]
>>55も若干間違ってるなぁ。
2と3の倍数を兼ねる数字はその数字単体によって切り方を変えないといけないんだと思う。
なんかゲーム的。

60 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:26:46.97 ID:hV/U21TG.net]
うーん。わけ わか らん 。。



61 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 18:43:15.79 ID:hV/U21TG.net]
https://ideone.com/U2TQGy
オマケ・鼻から悪魔かいな。。。

62 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 19:36:20.16 ID:hV/U21TG.net]
https://ideone.com/EmXq6G
うがー、おまけのオマケ。>>60はオレのバグだった。。。Orz

63 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 19:40:07.22 ID:8+8CeiWg.net]
>>35で終わり
はい次

64 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 19:54:08.36 ID:hV/U21TG.net]
>>62
なるほど。一応そこにはたどり着いたが、迷いの中だ。。。

65 名前:デフォルトの名無しさん [2019/11/30(土) 20:15:09.44 ID:c0k0ajHF.net]
>>26の出題者です。>>32で正解ですが、お題の指示通りに自然数の組み合わせを
出力してもらいたかったな。こういう綺麗な三角形ができるから。

1: [1]
2: [2]
3: [3]
4: [4]
4: [2, 2]
5: [2, 3]
6: [3, 3]
7: [3, 4]
7: [2, 2, 3]
8: [2, 3, 3]
9: [3, 3, 3]
10: [3, 3, 4]
10: [2, 2, 3, 3]
11: [2, 3, 3, 3]
12: [3, 3, 3, 3]
13: [3, 3, 3, 4]
13: [2, 2, 3, 3, 3]
14: [2, 3, 3, 3, 3]
15: [3, 3, 3, 3, 3]
16: [3, 3, 3, 3, 4]
16: [2, 2, 3, 3, 3, 3]
17: [2, 3, 3, 3, 3, 3]
18: [3, 3, 3, 3, 3, 3]
19: [3, 3, 3, 3, 3, 4]
19: [2, 2, 3, 3, 3, 3, 3]
20: [2, 3, 3, 3, 3, 3, 3]
21: [3, 3, 3, 3, 3, 3, 3]
22: [3, 3, 3, 3, 3, 3, 4]
(以下略)

66 名前:デフォルトの名無しさん [2019/11/30(土) 20:17:08.99 ID:c0k0ajHF.net]
1から9までの行頭の半角空白が消えちゃったな。

67 名前:デフォルトの名無しさん mailto:sage [2019/11/30(土) 22:34:49.11 ID:jbs9cucn.net]
並び替えは無視?

68 名前:デフォルトの名無しさん [2019/12/01(日) 01:13:31.67 ID:2OVww3gB.net]
「ループを使わずに1から100を順に出力するコードは書けますか」

69 名前:デフォルトの名無しさん [2019/12/01(日) 01:22:27.49 ID:ed/fyTUF.net]
>>67
C
https://ideone.com/WWuamo

70 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 01:55:41.13 ID:ztn4h68A.net]
seq 100



71 名前:デフォルトの名無しさん [2019/12/01(日) 02:00:13.95 ID:vkZvYyYJ.net]
>>67
void Array.from({length:100}, (_, i) => {
console.log(i + 1);
});
とか
let counter = 0;
void function count() {
if (counter++ < 100) {
console.log(counter);
count();
}
}();
とか。js

72 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 06:08:36 ID:jm8+wa+d.net]
>>67 Ruby アイデアは前スレの誰かのパクリ

p 10**303 / 999**2
# => 10020030040050060070080090100110120130140150160170180190200210220230240250260270
28029030031032033034035036037038039040041042043044045046047048049050051052053054
05505605705805906006106206306406506606706806907007107207307407507607707807908008
1082083084085086087088089090091092093094095096097098099100

73 名前:デフォルトの名無しさん [2019/12/01(日) 09:04:24.78 ID:lTEhnVlg.net]
>>67 julia
println.(1:100)

74 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 17:27:50.28 ID:mlX7masq.net]
>>67 GNU Smalltalk

(1 to: 100) asArray display

https://ideone.com/Ec2oby

75 名前:デフォルトの名無しさん [2019/12/01(日) 18:17:04.86 ID:54WkPiOY.net]
>>67
Kotlin script

(1..100).forEach(::println)

今スマホから書いてて試せないんだが多分これでできる。
forEachはループだというならこれではダメだが(確かに中ではループしていると思う)。

76 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 18:51:37.83 ID:Enyr5Fgf.net]
>>67
PowerShell
1..100

77 名前:デフォルトの名無しさん [2019/12/01(日) 19:26:37.77 ID:IoGKXgrY.net]
>>71
これが日本のIT産業。

78 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 21:21:54.10 ID:3oGVZyBI.net]
お題: アルファベットの文字列の大文字と小文字の対応を反転させて表示しろ

in < Hello, World!
out > hELLO, wORLD!

79 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 21:48:29.67 ID:5gm7V8wf.net]
>>77 Ruby
puts 'Hello, World!'.swapcase # => hELLO, wORLD!

80 名前:デフォルトの名無しさん mailto:sage [2019/12/01(日) 22:32:24.47 ID:ztn4h68A.net]
vim 的には ~ 一発



81 名前:デフォルトの名無しさん [2019/12/01(日) 23:10:18.94 ID:sAJI+X1W.net]
>>77 Common Lisp
(defun string-invert-case (string)
  (map 'string
       (lambda (c)
         (if (l

82 名前:ower-case-p c)
             (char-upcase c)
             (char-downcase c)))
       string))

(write-line (string-invert-case "Hello, World!"))
[]
[ここ壊れてます]

83 名前:デフォルトの名無しさん [2019/12/02(月) 02:15:21 ID:6Q7teWoI.net]
>>77
tr コマンド

tr a-zA-Z A-Za-z

実際に実行するとこうなる。
https://paiza.io/projects/s3D3AA0kePkEOELdCTfFqw

84 名前:デフォルトの名無しさん [2019/12/02(月) 08:36:45.67 ID:gdxsQr6e.net]
>>67 PHP

<?=implode(range(1,100)," ")?>

85 名前:デフォルトの名無しさん mailto:sage [2019/12/02(月) 15:32:31.35 ID:APM7ABg4.net]
お題: コンビニでタバコ(マルボロ)を買いたい
喫煙者がコンビニでタバコを購入して喫煙するまでの疑似コードを書け
詳細にかつ現実的で、エラー/例外に可能な限り対応していれば高得点とする

例:
person.walk_to(conbini)
if conbini.has(person) {
employee = conbini.get_current_employee()
tobacco = person.request_to(employee, "マルボロ")
person.smoke(tobacco)
}

86 名前:デフォルトの名無しさん [2019/12/02(月) 16:09:21.37 ID:KwsHxcvC.net]
ヤニカスはしね

87 名前:デフォルトの名無しさん mailto:sage [2019/12/02(月) 17:33:22.44 ID:54OAxivC.net]
1,マルボロ吸いてー。
2,そうだコンビニへ行こう
3,財布を確認
4,どうやって行こうか
5,準備して家を出る
6,道中色々
7,コンビニ到着
8,コンビニ物色
9,予備で買わなければいいけないモノを示唆
10,カゴ買うモノを入れる
11,レジに行く
12,レジでタバコの番号を「N個クレ」という。
13,ホットスナックを示唆する
14,会計が出る
15,ポイントカードを出す
16,お金を払う
17,品物を受け取る
18,コンビニをでる
19,喫煙スポット検索
20,喫煙スポットへいく
21,道中色々
22,到着
23,タバコを開けて一本取り出す
24,ライターで火をつける
25,吸う
26ぷれじゅあぁあああああああああああ

88 名前:デフォルトの名無しさん mailto:sage [2019/12/02(月) 17:39:36.73 ID:54OAxivC.net]
タバコに火をつける時は、咥えて軽くチューブを吸わないとつかないのDA!!

89 名前:デフォルトの名無しさん [2019/12/02(月) 21:58:19.49 ID:gdxsQr6e.net]
>>67 Pxthon

print(*range(1,101))

90 名前:デフォルトの名無しさん [2019/12/02(月) 22:05:34.98 ID:gdxsQr6e.net]
>>87
すいません Python です



91 名前:デフォルトの名無しさん mailto:sage [2019/12/02(月) 22:07:19.69 ID:/Z+nXxB0.net]
>>76
どゆ意味?

92 名前:デフォルトの名無しさん mailto:sage [2019/12/02(月) 22:09:31.28 ID:az4xQt0G.net]
示唆 ってナニ

93 名前:デフォルトの名無しさん [2019/12/03(火) 01:47:20 ID:dBsSbed7.net]
令和元年(2019年)8月25日(日)・(再)9月1日(日)
テーマ: 未来につながる力を学ぶ プログラミング教育
内容: 2020年度から小学校で始まる「プログラミング教育」。
一体どんな授業が行われるのか?番組では一足先に
プログラミングを取り入れた授業を行っている小学校を取材。
そこには生き生きと楽しく学ぶ子供たちの姿が。さらに、
実際に授業で使われている教材で、徳光さんがプログラミングに初挑戦!
今回は文部科学省プログラミング教育戦略マネージャーの中川哲さんと共に、
進化する学び、「プログラミング教育」に迫ります。
  https://www.gov-online.go.jp/pr/media/tv/shiritai/movie/20190825.html
動画は上のURLにある

94 名前:デフォルトの名無しさん [2019/12/03(火) 17:02:12 ID:/pkZgP0J.net]
>>67 jq

range(1;101)

95 名前:デフォルトの名無しさん mailto:sage [2019/12/03(火) 19:25:09.89 ID:mUaHu9IR.net]
>>67
perl5
perl -e 'print join "\n", 1..100'

96 名前:デフォルトの名無しさん [2019/12/03(火) 20:10:35.90 ID:aor79FgV.net]
>>67
Prel5 ってまだ出てないよね?

print join(' ', 1..100) . "\n";

97 名前:デフォルトの名無しさん [2019/12/04(水) 09:18:44 ID:MGV4EHAd.net]
永久に出ないんじゃないかなPrel5なんて

98 名前:デフォルトの名無しさん mailto:sage [2019/12/04(水) 12:00:08 ID:aCqgWIP/.net]
プレル・ふぁいぶ ならショウガナイ

99 名前:デフォルトの名無しさん [2019/12/04(水) 12:58:50.91 ID:61i6ZWvj.net]
print(isletter(c)

100 名前:デフォルトの名無しさん [2019/12/04(水) 13:07:17.16 ID:61i6ZWvj.net]
>>97
すいません。ブロックされて書き込みができないのでいろいろテスト中。



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

102 名前:デフォルトの名無しさん mailto:sage [2019/12/04(水) 22:22:08.38 ID:gi4YpuTv.net]
>>67 Perl5

print "@{[1..100]}\n";

103 名前:デフォルトの名無しさん mailto:sage [2019/12/04(水) 23:37:13.25 ID:h1My/is4.net]
お題: 1~100までの数列の和を計算する

104 名前:デフォルトの名無しさん mailto:sage [2019/12/04(水) 23:58:51 ID:+9nEsnh/.net]
>>101 Ruby

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

105 名前:デフォルトの名無しさん [2019/12/05(Thu) 00:15:30 ID:5juZ/T5v.net]
>>101 julia

print(sum(1:100))

106 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 06:49:18 ID:5PaJAEA2.net]
return 100*101/2;

107 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 07:16:44 ID:P/hgT5Y1.net]
>>104
なぜ return 5050; でないのか小一時間ほど問い詰めたい

108 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 07:38:40 ID:5PaJAEA2.net]
自分で計算したくないから

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

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

110 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 07:43:45 ID:5PaJAEA2.net]
>>105に対する>>104の利点

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



111 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 07:46:36 ID:5PaJAEA2.net]
>>104 に対する >>105 の利点は何?

112 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 07:47:29 ID:5PaJAEA2.net]
5文字少ない

だけかな?

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

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

115 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 13:17:19 ID:2uRKrxFi.net]
どっちでも大差無いけど

116 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 13:21:01 ID:2uRKrxFi.net]
次は>>105の利点を語ってくれよ
小一時間

117 名前:デフォルトの名無しさん [2019/12/05(Thu) 14:27:21 ID:esMh+bxM.net]
>>101
Kotlin script

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

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

119 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 15:17:30 ID:2uRKrxFi.net]
工夫出来るところは工夫する
>>105は間違った工夫の例

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



121 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 18:59:48.69 ID:2GEt9xQA.net]
おっすおら小一時間!
これからの議論におらわくわくすっぞ!

122 名前:デフォルトの名無しさん [2019/12/05(木) 20:44:21.68 ID:lop64poz.net]
>>101
Cの冗談
https://ideone.com/5VLdfV

123 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 21:05:41.72 ID:jKYC5XJL.net]
決まり文句のネタレスにえらく執着すんねw

124 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 21:06:33.94 ID:5PaJAEA2.net]
1個目の関数で値だけ返すほうが簡単じゃ?

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

126 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 21:36:32.26 ID:P/hgT5Y1.net]
>>117
中途半端な工夫ならしないほうがマシ

127 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 21:55:42.81 ID:5PaJAEA2.net]
出て来れないと思ったのに
面の皮厚いね

128 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 22:09:17.41 ID:P/hgT5Y1.net]
>>111にレスできないアホがなにか言ってるなw

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

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



131 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 23:23:32.05 ID:d0dfL3uy.net]
いいからおまえはどっかで2GEtしてこい

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

133 名前:デフォルトの名無しさん mailto:sage [2019/12/05(木) 23:35:21.46 ID:LiE2fHBS.net]
5ch初心者かよw

134 名前:デフォルトの名無しさん mailto:sage [2019/12/05(Thu) 23:39:56 ID:8H7awdOo.net]
5chのプロかよ

135 名前:デフォルトの名無しさん [2019/12/05(Thu) 23:56:23 ID:uvnytkqs.net]
こんな煽り合い久々に見たw

136 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 00:22:47 ID:N/M0C4CM.net]
初心者じゃない奴が全員プロだとでも思ってるのかなぁw
まあとりあえずこれ読んどけ
https://netyougo.com/2ch/2535.html

137 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 01:10:21 ID:Rsc9FZ2h.net]
用語とか以前に粘着っぷりがやばい

138 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 02:06:00 ID:RapGeMK4.net]
背筋がサムくなるからもうやめてくれないかな

139 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 03:33:54.64 ID:BprTHIND.net]
ものすごい速度で羊を数えてください
1 sheep two sheep three sheep four sheep ...........

140 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 05:57:24.96 ID:Ket1H4Yu.net]
>>137
とりあえずお題なの?
曖昧すぎてわからん



141 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 06:42:40.11 ID:yuBnjbMi.net]
>>136
>>135

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

143 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 22:43:04.72 ID:7FicwbM7.net]
>>101 Perl5

use feature current_sub;
print sub {$_[0] and $_[0] + __SUB__->($_[0] - 1)}->(100);

144 名前:デフォルトの名無しさん mailto:sage [2019/12/06(金) 22:53:13.95 ID: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 名前:蟻人間 mailto:sage [2019/12/06(金) 23:19:56.34 ID:jz2bvt/z.net]
お題: 丸カッコと空白の並びで構成される入力文字列がある。丸カッコは入れ子になっていてそれぞれペアになっている。入力文字列は奇数文字数である。
プレーヤー1は、最初に入力文字列の一番左端に居る。プレーヤー2は最初に入力文字列の一番右端に居る。各プレーヤーは一回のアクションで次のいずれかの動作が可能。

(あ) カッコを飛び越えずにひとつ左か右に移動する。ただし、入力文字列の外側には移動できない。
(い) プレーヤーXがカッコAの外側に居て、AとXが隣接しているとき、XがカッコAに対応する別のカッコBの外側の端に移動する。
(う) カッコをひとつまたいでひとつ左か右に移動する。

入力文字列に対してプレーヤー1と2を何度もターン制でアクションをさせてプレーヤーの位置が衝突するまで鬼ごっこをさせよ。
動かすのはランダムでも知能つきでも構わない。アクションごとに位置を表示せよ。

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

147 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 00:07:48.78 ID:n8phrA6e.net]
動き方がわかりません

1文字右が ( の場合

(あ)1文字右に動く
(い)右の ( に対応する ) の右の文字に動く
(う)2文字右に動く
のいずれかが出来る

ただし、(い) (う) の移動先が文字列の外になる場合は移動出来ない

でいい?

148 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 00:25:15.68 ID:FrJsgiML.net]
あ と う は合わせられないか?

149 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 00:25:52.72 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 00:44:47.39 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 01:33:07.92 ID:7zlttp1T.net]
>>101 Perl5

use List::Util 'sum';
print sum 1..100;

152 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 03:39:00.62 ID:GrS1V5od.net]
お題

1以上、20以下の整数がランダムに10個与えられます。

与えられた整数の集合から1つ以上の整数を抜き出し、残った整数の集合からまた1つ以上の整数を抜き出します。

この時2つの抜き出した整数の集合のそれぞれの和が同値であり、かつ最小のものを出力して下さい。



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

153 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 03:47:40.06 ID:GrS1V5od.net]
元ネタ
itest.5ch.net/test/read.cgi/news4vip/1574130342/18

154 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 04:00:27.84 ID:G4M88S/c.net]
・「同値」の意味が謎

・解がない時の処理が謎(e.g. input: 9 10 11 12 13 14 15 16 17 18

・同値の使い方が間違っているのでそもそも「集合」の元が重複しないものとしてよいものか悩ましい

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

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

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

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

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

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

157 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 05:38:25.75 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 06:50:35.03 ID:HQTo5ewj.net]
>>155
なるほど、概ね理解した

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

160 名前:デフォルトの名無しさん [2019/12/07(土) 15:33:28.08 ID: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 名前:デフォルトの名無しさん [2019/12/07(土) 16:28:15.65 ID:tj55yZgB.net]
へなへななお題へなへなな回答

162 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 20:45:08.83 ID: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 名前:デフォルトの名無しさん [2019/12/07(土) 22:36:30.68 ID:WrheNqRo.net]
>>160
Rでお決まりの再帰呼び出し。
https://ideone.com/LkPChG

164 名前:デフォルトの名無しさん mailto:sage [2019/12/07(土) 23:22:48 ID:eT8T+vHJ.net]
分割数でググれば考え方いっぱい出てくるよ

165 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 13:36:47.70 ID:jvur7pXC.net]
>>160
C++
https://ideone.com/QVywdv

166 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 13:57:09.43 ID:FOSx0Jk/.net]
>>154
最後の文はどこから出てきたの?

167 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 13:58:38.12 ID:xElyalHo.net]
>>164
元のスレ

168 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 14:21:04.90 ID:FOSx0Jk/.net]
しらんがな

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

170 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 17:19:46.37 ID:xElyalHo.net]
知らんがなって
なら聞くなアホ



171 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 17:53:26.22 ID:FOSx0Jk/.net]
すまん

不満は>>150に言ったつもり
そんな重要な事を省略すんなって

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

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

174 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 19:44:34.35 ID:KCeBLlvA.net]
>>150
https://ideone.com/p6FUh4

オマケで、答えが見える版を置いておきます。C++。

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

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

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

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

179 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 20:59:32.19 ID:KCeBLlvA.net]
ぐあ、重複した・・・。

180 名前:デフォルトの名無しさん [2019/12/08(日) 21:17:04.79 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/08(日) 21:27:36.39 ID:KCeBLlvA.net]
>>178
異様に早いなーと思ったら、言語にコンビネーションあるんかいな。
裏山シー。

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

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

185 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 00:06:03 ID:QbXWD96q.net]
>>150
N!より速い方法ある?

186 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 00:53:44 ID:rq2SBWAq.net]
>>182
動的計画法?

187 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 01:15:42 ID:2eMu76Ef.net]
https://ideone.com/52jcdq
全ての和を計算して並べ替えるだけ
多分最も愚直な方法

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

189 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 02:04:04.39 ID:vzskLW//.net]
>>150 https://ideone.com/tKvgv3

By PyPy、 ノーマルpythonでは力業の(N=20)が8秒くらいかな、

力業が 2^N * N

最小値だけなら、N*数列の合計 = N^2 * 数の平均(/2) ででる(みたい?)
(自信ががないDP解)

190 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 02:51:44 ID:ElWitvQQ.net]
>>180
日本語が読め無い馬鹿発見



191 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 04:54:54.63 ID:wE9bCkNR.net]
>>181
わかってたら
> これは問題の設定がつまらないな。
なんていう物言いにはならんだろ

>>187
夜中まで必死だな…
何に必死なのかよくわからんけどw

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

193 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 06:12:33.29 ID:wE9bCkNR.net]
うわっ、アホが無駄に絡んできたよw

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

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

196 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 07:23:51 ID:RwnUxfkW.net]
単芝ガイジ君、情けなさ過ぎて草

197 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 12:30:02.62 ID:G+LM1RHL.net]
>>192
自己紹介乙ww

198 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 15:19:21 ID:gONUrOAf.net]
https://ideone.com/aYEPpX
C++面白いな

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

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



201 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 21:20:18.06 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 21:22:25.12 ID:QbXWD96q.net]
91じゃなかった

203 名前: mailto:sage [2019/12/09(月) 21:29:40.49 ID:ZryjKmS+.net]
>>197
https://mevius.5ch.net/test/read.cgi/tech/1434079972/
2625個、でしょうか?

204 名前: mailto:sage [2019/12/09(月) 21:35:00.48 ID:ZryjKmS+.net]
やりなおします
>>197
https://mevius.5ch.net/test/read.cgi/tech/1434079972/62
2625個

205 名前:デフォルトの名無しさん mailto:sage [2019/12/09(月) 22:42:10.29 ID:QbXWD96q.net]
ふるいで5000以下の素数を求めて
2重ループで列挙

が速いかな

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

207 名前:デフォルトの名無しさん [2019/12/10(火) 06:55:28 ID:cIwr+d9F.net]
>>197 J

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

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

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


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

209 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 08:49:47 ID:92MPgAr5.net]
5000までの素数で十分だって言ってるのに

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



211 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 09:53:12.04 ID:gKYhlG5V.net]
>>207
それはプログラミングのお題なのか?

212 名前:デフォルトの名無しさん [2019/12/10(火) 13:07:12.61 ID:bINIS1ks.net]
また数(ry

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

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

215 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 15:15:40 ID:zIz8I18p.net]
>>197
https://ideone.com/1Vax7p

C++。こうかいな。

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

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

218 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 17:45:48.68 ID:qBy9puuu.net]
2chscとかいうのが無料サルベージに向いていると聞いたことがある

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

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



221 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 19:01:43.67 ID:W3sLZ8lM.net]
過去の良問があればおしえろください

222 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 19:30:15.36 ID:Ajx0JUvY.net]
>>216
見れた( ゚Д゚)

223 名前:デフォルトの名無しさん [2019/12/10(火) 20:07:19.37 ID:ClyY78bX.net]
>>219
そうか。普通のブラウザだとエロ広告が激しく付くからそれで過去スレ見せる料金なんとかしてるのかもね。

>>217
そんなあなたにとっておきのお題をひとつ。

お題: 面白いお題を作れ。

224 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 20:25:27.92 ID:6QYDHDQi.net]
じゃあ四角形を全部違う大きさの円で埋める

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

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

C#, Julia, PowerShellでも類似の書き方ができる(>>206の通り素数は5000までにした)。
C# https://ideone.com/YWc3f8
Julia https://ideone.com/8NdOe3
PowerShell https://ideone.com/DRoOMU
R https://ideone.com/34lnNQ

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 名前:デフォルトの名無しさん [2019/12/10(火) 22:54:55 ID:ZImsJVBi.net]
>>217
じゃあ、これ解いてみる?

整数x, y, z, kに関する方程式x^3 + y^3 + z^3 = kの解を、k = 1から100までの場合について求めよ。
https://engineer.fabcross.jp/archeive/190921_charity-engine.html

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

229 名前:デフォルトの名無しさん mailto:sage [2019/12/10(火) 23:27:52 ID:W3sLZ8lM.net]
なぜ
k=1, z=1
じゃない?

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



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

232 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:11:02 ID:10jfhd7e.net]
https://ideone.com/WP5jkx

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

233 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:13:04 ID:10jfhd7e.net]
C#の10000以下より速い!

234 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 00:30:48 ID:10jfhd7e.net]
>>224
k=1の時からいきなり難しいなあ

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

236 名前:デフォルトの名無しさん [2019/12/11(水) 09:11:06 ID:aadkbL3F.net]
>>197 seq, factor, awk

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

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

238 名前:デフォルトの名無しさん [2019/12/11(水) 10:31:05 ID:dG8VWZ74.net]
>>234
女騎士?

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

239 名前:デフォルトの名無しさん [2019/12/11(水) 12:05:48.97 ID:dG8VWZ74.net]
>>197
Kotlin
https://paiza.io/projects/6zHoXJXw1KuNLWZViVDYug

240 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 13:38:08.03 ID:ivhCTlPt.net]
>>233
素因数分解しちゃえばいいのか
サイコー



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

242 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 14:03:27.78 ID:jagg9gKF.net]
普通にできたけど
何のシェル使ってるの?

243 名前:デフォルトの名無しさん [2019/12/11(水) 14:35:31 ID:QbvBtpFM.net]
bash。macで。

244 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 14:38:38 ID:jagg9gKF.net]
俺もbashもだけど
seq 100くらいなら動くの?

245 名前:デフォルトの名無しさん [2019/12/11(水) 15:36:13.32 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 16:49:11 ID:1E1+DBtw.net]
>>233
約数が3個な数を列挙ってこと?
4の約数は1,2,4の3個だけど
6の約数は1,2,3,6の4個だよ

247 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 17:02:16.44 ID:hUZCfnLs.net]
factorみりゃわかんだろ……
素因数の数だっつーの

248 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 18:01:04.84 ID:10jfhd7e.net]
素因数の数が3?

249 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 18:12:47.35 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 19:33:15.23 ID:ReYSFEXH.net]
>>224
とりあえず7個を除いて出来た
ここからが長いのかな?



251 名前: mailto:sage [2019/12/11(水) 19:46:53.70 ID:6E3wj7zP.net]
>>243
そうそう、それに
8 の約数は 1, 2, 4, 8 の 4 個だけれども、これは >>197 のいう半素数ではないんですよね

>>233 は間違っていますね

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

253 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 20:51:31.74 ID:7CYZ1E2N.net]
反面教師?

254 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 20:54:12.94 ID:7CYZ1E2N.net]
お題
1兆以下の半素数の個数を求めよ

これだとスクリプト系は無理かな?

255 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 21:07:14.36 ID:ivhCTlPt.net]
素数判定で書いた
long long int のC言語でも100億ぐらいを上限でサポートしてる
100億以上の判定は遅くてより優れた判定アルゴリズムが必要だからだ

推定:C系、優れた判定、現代スペックのPCが必要

256 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 21:11:52.35 ID:7CYZ1E2N.net]
素数判定する必要は無いよ

257 名前: mailto:sage [2019/12/11(水) 22:08:07.74 ID:6E3wj7zP.net]
>>252
>long long int のC言語でも100億ぐらいを上限でサポートしてる

極めて不正確ですよ
C99 後は uint64_t の最大値は 1844'6744'0737'0955'1615=約 1844 京ですね
それに実際に割ってみる方法以外には素数判定があるとでも?そんなものは存在しませんね

258 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 22:15:54.42 ID:10jfhd7e.net]
何年も前に素数の数を数え時は
シングルスレッドのコードで
5000億までで1時間弱

だから>>251もそのくらいで求まるはず

259 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 22:46:17.34 ID:10jfhd7e.net]
>>254
詳しそうなので>>251をよろしく!

260 名前:デフォルトの名無しさん mailto:sage [2019/12/11(水) 23:52:51.14 ID:VagVWTF0.net]
知り合いから、「子供の宿題なんだけど解けない」と言われた。

「正方形13枚と正三角形を何枚か組み



261 名前:合わせて、凸多面体を作るとき、その頂点数は A 個または B 個である。ただし一つの頂点には同じ枚数の面が集まっているものとし、A < B とする。」

途中経過を適宜表記しつつ解くプログラムを!
[]
[ここ壊れてます]

262 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:28:15.32 ID:UvCIGzud.net]
A=19
B=38

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

264 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:35:14.01 ID:UvCIGzud.net]
7個になるまで9秒
3乗して64bitに収まる範囲検索2031秒

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

266 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 00:44:42.94 ID:UvCIGzud.net]
k=30, 33, 42, 52, 74, 75, 84
の時がわからん

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

268 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 07:32:31.88 ID:UvCIGzud.net]
>>254>>263も頭悪すぎだ

269 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 07:40:34.14 ID:UvCIGzud.net]
>>252
素数判定は不要

>>254
uint64_tの上限じゃなくて素数判定可能な範囲
また、実際に割ってみる以外の方法も色々と存在する

>>263
fは存在する
あなたが書いた通りの定義そのままをfとすれば良い
fの存在と素数判定の方法が存在するかどうかは無関係

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



271 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:00:21.80 ID:UvCIGzud.net]
>>263
「簡単な関数でfが定義できる」
非常に重要な言葉を後付けだし
これが最初からあったとしても、
単に簡単に素数判定可能可能を言い換えただけの
何の意味もないレス

リテラシーの無さの指摘の方法が頭が悪い

272 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:08:21.73 ID:UvCIGzud.net]
現代の技術で言えば

特殊な形であれば高速に判定する方法はある
特殊な形でなければ高速に判定する方法は見つかっていない
実際に割ってみる以外の判別方法は存在する

273 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 08:25:56.28 ID:UvCIGzud.net]
なんでNやZじゃなくてRにしたのか気になる

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

275 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 14:55:31.47 ID:2PtCb74v.net]
単純な疑問だよ
なんかこだわりとか深い意味とかあるのかと

「実数が素である」とか書かれると、
素数じゃない別の意味を指してると思うわけで

揚げ足取られたと思ったってことは
ミスったと思ったんだよね?

276 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 15:35:29.90 ID:zRSUYply.net]
いつもの連投アスペ君じゃん
相手すんなよ

277 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 17:58:27.01 ID:2C/x7O5N.net]
論破されて捨て台詞
の典型でした

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

279 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 18:27:18.35 ID:cffvEFbc.net]
>>263を書いておいて良くいうよ

280 名前:デフォルトの名無しさん mailto:age [2019/12/12(木) 18:39:51.55 ID:JPTMcftT.net]
論破を禁止します



281 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 19:05:41.21 ID:f2lx0DlC.net]
まーたロンパンジーが湧いてんのかよ

282 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 19:12:35.43 ID:cffvEFbc.net]
リテラシー君
よほど悔しかったのかな?

283 名前: mailto:sage [2019/12/12(木) 19:15:24.80 ID:bwSkQtN1.net]
>>256
単に上限値を増やしただけのお題なんて糞だと思います

284 名前: mailto:sage [2019/12/12(木) 19:17:30.13 ID:bwSkQtN1.net]
>>265
>また、実際に割ってみる以外の方法も色々と存在する
私の初等的な教科書にはウィルソンの定理の証明が載っていました、>>254 はちょっと勇み足でしたね

>>266
>無配慮にそんなものは存在しないと一刀両断する数学的リテラシーの無さ
まあ、認めましょう

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

286 名前:デフォルトの名無しさん [2019/12/12(木) 20:55:40.30 ID: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 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 21:21:19.99 ID:qa03h3dy.net]
5で割っていく感じだから
整数無視して無限に割ると
おおまかに4で割った感じの数0が並ぶ
126! は4で割って31ぐらい

288 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 22:14:34.83 ID:WrPVO4K2.net]
連投論破野郎が論破されてて草

289 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 23:15:10.76 ID:UvCIGzud.net]
(A)だけ C++
https://ideone.com/LTC90E

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



291 名前:デフォルトの名無しさん mailto:sage [2019/12/12(木) 23:52:01.98 ID:UvCIGzud.net]
n ! のゼロの個数は大雑把にはこのくらい
log_10(n !) / 10 + n * 9 / 40

逆算すれば大体の値はわかる
でも最小値だから正確に求めるのには使えない

292 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 18:36:38.11 ID:0Lb/VhZx.net]
[お題]
今月(2019/12)の13日は金曜日。
開始年月と終了年月が与えられる。年は西暦、年月区切りは"/"。
開始年月一日から終了年月末日の間で"13日の金曜日"は何回あるか。
現在のグレゴリオ歴ルールで、終了年月末日まで変わらないとする。

制約: 1970 <= 年 <= 300億, 1 <= 月 <= 12, 開始年月 <= 終了年月

1) 2019/1 2019/12 --> 2   // 今年は9月と12月が該当
2) 1980/1 2012/12 --> 57
3) 213456/8 453212/4 --> 412380
4) 2000/1 2399/12 -->?
5) 2000/11 2800/9 -->?
6) 123456789/11 7301177081/10 -->?
7) 1970/1 30000000000/12 --> 51599996613


※数十万年程度だと力技だけで回っちゃうので、難易度調整で300億に。
 wikiの"グレゴリオ歴#暦法" https://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6#%E6%9A%A6%E6%B3%95

293 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:06:08.48 ID:KAf60mjk.net]
300億にしても年の曜日は14パターンしか無いのであっという間に解ける気が…
曜日は400年周期だから400年分求めればあとは割り算するだけかな?

294 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:15:02.20 ID:QuzLYYNu.net]
C++
https://ideone.com/33NYDY

295 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 20:16:51.71 ID:QuzLYYNu.net]
>>289
今日や

296 名前:らないとダメだよ []
[ここ壊れてます]

297 名前:デフォルトの名無しさん [2019/12/13(金) 20:32:32.43 ID:7JZ8Vcg3.net]
>>288
ずるいやり方だが、取り敢えずPowerShellに
 1..12 |? {([DateTime]"2000/$_/13").DayOfWeek -eq "Friday"}
 1..12 |? {([DateTime]"2400/$_/13").DayOfWeek -eq "Friday"}
と打ち込んでみると、
 10
 10
と表示され、2000年と2400年の13日の金曜日は10月で一致する。
これと閏年調整のパターンが400年周期であることを組み合わせると、
13日の金曜日の出現パターンも400年周期になることが分かる。
だから、400年分の表を作ってしまえば、遅いPowerShellでも余裕で解ける。
https://ideone.com/oV7JFk

--- 実行結果 ---
2019/1 2019/12 -> 2
1980/1 2012/12 -> 57
213456/8 453212/4 -> 412380
2000/1 2399/12 -> 688
2000/11 2800/9 -> 1375
123456789/11 7301177081/10 -> 12345678901
1970/1 30000000000/12 -> 51599996613

298 名前:デフォルトの名無しさん [2019/12/13(金) 20:57:37.29 ID:7JZ8Vcg3.net]
>>285
正解。例によってRで簡潔に書いた解答例: https://ideone.com/RhEtiC

>>287
やっぱり無理か。ちなみに、Juliaでz = 12345まで力任せで求めるプログラム
https://ideone.com/iqMYLa

--- 実行結果 ---
階乗の0である桁が1個になる最小値は5です。
階乗の0である桁が12個になる最小値は37です。
階乗の0である桁が123個になる最小値は299です。
階乗の0である桁が1234個になる最小値は2414です。
階乗の0である桁が12345個になる最小値は20177です。

299 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 21:27:38.91 ID:QuzLYYNu.net]
>>293

>>287の式に20177を入れると12349.7
かなりいい線行ってる

300 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 22:22:01.90 ID:QuzLYYNu.net]
123456個は存在しない



301 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:21:15.30 ID:QuzLYYNu.net]
123457桁になる 30484!
から
下位に0が123457個続く 493840!
までの間に存在しない事を示せば
存在しない証明になりますが
もっと範囲を絞った証明は出来ないですかねえ

確率的には>>287の付近だけ調べれば良いんですが...

302 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:47:17.94 ID:r78PztnN.net]
全部調べる感じでぶん回してるけど1234567までが長いお(´・ω・`) (123456は>>295の言う通り出なかった)
1時間ぶん回して900000!まで行ったが…

303 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:49:02.36 ID:r2S5lo/C.net]
数学でワープできる分手計算のほうが早い

304 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:49:38.96 ID:QuzLYYNu.net]
kwsk

305 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:50:22.63 ID:r2S5lo/C.net]
>283

306 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:52:09.33 ID:QuzLYYNu.net]
(A)は解決済み
(B)の話

307 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:53:42.34 ID:QuzLYYNu.net]
数学で絞れるのは>>296くらいかと

308 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:56:32.85 ID:QuzLYYNu.net]
下限の n! を計算するのは速い
そこから順番に1個ずつnを増やしていって
0を数えていかないとならない

見つからなければ上限までずっと

309 名前:デフォルトの名無しさん mailto:sage [2019/12/13(金) 23:59:51.46 ID:QuzLYYNu.net]
ちなみに私、東大の数学科卒なんで

310 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:07:59.08 ID:ruM/1CH5.net]
ワープ
(* 4 1234567) 4938268
(/ 4938268 5.0) 987653.6
(/ 987653 5.0) 197530.6
(/ 197530 5.0) 39506.0
(/ 39506 5.0) 7901.2
(/ 7901 5.0) 1580.2
(/ 1580 5.0) 316.0
(/ 316 5.0) 63.2
(/ 63 5.0) 12.6
(/ 12 5.0) 2.4
(+ 987653 197530 39506 7901 1580 316 63 12 2) 1234563



311 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:14:15.42 ID:03SKvnKb.net]
>>305
だからそれは>>282の(A)の話じゃろ…

312 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 00:15:48.22 ID:ruM/1CH5.net]
Bの話か

313 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 02:58:36 ID:03SKvnKb.net]
階乗の0である桁が1234567個になる最小値は1542987です。
お、出た…4時間か

314 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 03:55:22 ID:DhSlagHw.net]
お題: 目覚まし時計の現在時刻とアラーム時刻が入力されるので、待機時間を出力しなさい

例:
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時間 = 06:00

現在時刻 = 22:00
アラーム時刻 = 04:00
待機時間 = 06:00

315 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 09:12:53.23 ID:ruM/1CH5.net]
>>309
これだな
https://paiza.io/projects/GgkMgqOqyzwwgbmu-Fn-Vg

~/bin/sleep.pl

316 名前:10:00
2909 00:48:29

のように使ってる
[]
[ここ壊れてます]

317 名前:デフォルトの名無しさん mailto:sage [2019/12/14(土) 09:59:37.97 ID:Lp9CT80F.net]
>>304
進振り何点だった? 連投アスペ君

318 名前:デフォルトの名無しさん [2019/12/14(土) 22:12:52.90 ID:8CJijD11.net]
>>309
この手の処理はPowerShellが得意だな。

function WaitingTime($now, $alarm)
{
  $wait = [DateTime]$alarm - [DateTime]$now
  if ($wait -lt 0) {$wait += [TimeSpan]"12:00" + [TimeSpan]"12:00"}
  "現在時刻 = $now"
  "アラーム時刻 = $alarm"
  "待機時刻 = $wait"
  ""
}

WaitingTime 10:00 16:00
WaitingTime 22:00 4:00
WaitingTime 12:34:56 1:23:45

--- 実行結果 ---
現在時刻 = 10:00
アラーム時刻 = 16:00
待機時刻 = 06:00:00

現在時刻 = 22:00
アラーム時刻 = 4:00
待機時刻 = 06:00:00

現在時刻 = 12:34:56
アラーム時刻 = 1:23:45
待機時刻 = 12:48:49

319 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 00:16:05 ID:K3IRPfAN.net]
>>312
キャスト出来るんだな
楽そう

320 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 06:09:40 ID:K3IRPfAN.net]
お題: あなたは研究所で助手をしています
ある日、博士からこんな手紙が届きました

 助手よ。この数値の名前を教えて欲しい
 16776960

あなたは博士に返事を書こうと思います
その返事の内容をお答えください



321 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 07:44:00 ID:VJoyKt1C.net]
>>314 直感
Yellow

322 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 10:09:42 ID:/SOvb5b/.net]
黄色だな

323 名前:デフォルトの名無しさん [2019/12/15(日) 11:56:51.84 ID:wptEtnNg.net]
お題
与えられた自然数の0を全て右端に寄せる

2019 -> 2190
102030 -> 123000
123 -> 123

324 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 12:02:23.68 ID:fpSJINfx.net]
>>309
Ruby で、

require 'active_support/time'

def calculate_time_span( now, alarm )
current = Time.now
now_time = Time.parse( now, current ) #=> 2019-12-15 22:00:00 +0900
alarm_time = Time.parse( alarm, current ) #=> 2019-12-15 04:00:00 +0900

diff_time = alarm_time - now_time
# アラームが翌日の場合
diff_time = alarm_time.tomorrow - now_time if diff_time < 0

Time.at( diff_time ).utc.strftime( '%H:%M' )
end

inputs = %w(10:00 16:00 22:00 04:00) # (現在時刻, アラーム時刻)の組
inputs.each_slice( 2 ) do |now, alarm| # 2個ずつ処理する
puts calculate_time_span( now, alarm )
end

325 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 13:16:18.52 ID:VJoyKt1C.net]
>>309 Ruby
def waitTime( n, a )
Time.at( (a - n) % 86400 ).utc
end

326 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 15:13:57.70 ID:KhVK4v3Y.net]
>>309
https://ideone.com/cAF5X7
C++。あってるかな?

327 名前:デフォルトの名無しさん [2019/12/15(日) 15:21:49.83 ID:yZPHpztp.net]
>>317 Common Lisp
https://ideone.com/FjISQ9

328 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 15:38:04.40 ID:KhVK4v3Y.net]
>>317
https://ideone.com/rUuquJ
C++。できてるかな?

329 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 16:45:12.24 ID:K3IRPfAN.net]
>>315-316
正解

330 名前:デフォルトの名無しさん [2019/12/15(日) 20:15:30.36 ID:IFqyyeL5.net]
>>317
これもPowerShellで簡単。

function f($n)
{
  $m = -join([char[]]"$n" |? {$_ -ne "0"})
  ($m += "0" * ("$n".length - $m.length))
}

f 2019; f 102030; f 123



331 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 22:45:37.77 ID:myBFLrpG.net]
お題:ハノイの塔の最少手数は一種類しかないのか?
  (Part 13, 055)

結果:n枚の円盤すべてを移動させるには最低 2^n −1 回の手数がかかる。

332 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 22:58:29.31 ID:myBFLrpG.net]
4ピンのハノイの塔(河内塔)
n枚の円盤は最初ピン0にある。n枚すべてをピン3に移動させる。

条件:
 小円盤の上に大円盤を載せられない。
 ピン1とピン2には最大1枚しか置けない。

333 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 23:12:15.95 ID:myBFLrpG.net]
・n=2 のとき
12, -, -, -
2, 1, -, -
-, 1, -, 2
-, -, -, 12  (3手)

・n=3 のとき
123, -, -, -
23, 1, -, -
3, 1, 2, -
-, 1, 2, 3
-, 1, -, 23
-, -, -, 123  (5手)

・n=4 のとき
1234, -, -, -
234, 1, -, -
34, 1, 2, -
4, 1, 2, 3
4, 1, -, 23
-, 1, 4, 23
2, 1, 4, 3
12, -, 4, 3
12, 3, 4, -
12, 3, -, 4
12, -, -, 34
2, 1, -, 34
-, 1, -, 234
-, -, -, 1234  (13手)

334 名前:デフォルトの名無しさん mailto:sage [2019/12/15(日) 23:25:59.52 ID:myBFLrpG.net]
・n=5 のとき
12345, -, -, -
2345, 1, -, -
345, 1, 2, -
45, 1, 2, 3
45, 1, -, 23
45, -, -, 123
5, 4, -, 123
-, 4, 5, 123
4, -, 5, 123
4, 1, 5, 23
24, 1, 5, 3
124, -, 5, 3
124, 3, 5, -
124, 3, -, 5
24, 3, 1, 5
4, 3, 1, 25
4, 3, -, 125
-, 3, 4, 125
3, -, 4, 125
3, 1, 4, 25
23, 1, 4, 5
23, 1, -, 45
3, 1, 2, 45
-, 1, 2, 345
-, 1, -, 2345
-, -, -, 12345  (25手)

335 名前:デフォルトの名無しさん [2019/12/16(月) 08:07:19.12 ID:YuYKZXFs.net]
お題:

ここに単語を登録したリストがある
リストには以下の種類の言葉が存在する

単語:(例)くさり
単語解説:(例)環状の部品を繋げて線状にしたもの

リストには上記ペアを1単位として、ずらずら並んでいる
(数十個くらい)

リストの中の似たような単語を探し、
以下のサンプルのようにボケ、ツッコミを繰り返すプログラムを作れ
似たような単語が見つからない場合には
最後に「こうじ:お前とはもうやってられませんわ」とprintし、
プログラムを終了せよ

動作サンプル:
こうじ:「くさび」を見ると興奮するよね
てつお:ああ、環状の部品を繋げて線状にしたものね
こうじ:それは「くさり」
てつお:ああ、マルスダレガイ科に属する二枚貝ね
こうじ:それは「あさり」
てつお:ああ、慰安婦の嘘を書いた新聞ね
こうじ:それは「あさひ」
こうじ:お前とはもうやってられませんわ

336 名前:デフォルトの名無しさん mailto:sage [2019/12/16(月) 09:38:23.88 ID:UpTR80vx.net]
>>326
・n≧6のとき
ピン1とピン2には各1個しか置けないから 1〜(n-1) を置くことはできない。
∴ n を ピン0 から ピン3 に直送することはできない。
∴ ピン0 → ピン1 → ピン3 と送ろう。
まず 12345 をピン2、ピン3に退避する。(n=6の場合)
 123456, -, -, -
 6, -, m, 12345-m  (1≦m≦5)
 6, -, -, 12345    は m=1 と見なす。
 -, 6, m, 12345-m
次にピン3を空けるため、ピン0とピン2に移すことになる。
しかしピン0には3枚しか移動できず、ピン3に n-5枚残ってしまう。
∴ n≧6 では不可能。

337 名前:デフォルトの名無しさん mailto:sage [2019/12/16(月) 10:03:17.28 ID:UpTR80vx.net]
条件を変えたらどうなるか?

条件(1,1)
 ピン1、ピン2には最大で1枚しか置けない。   >>326

条件(1,2)
 ピン1には最大で1枚、ピン2には最大で2枚しか置けない。

条件(2,2)
 ピン1、ピン2には最大で2枚しか置けない。

338 名前:デフォルトの名無しさん mailto:sage [2019/12/16(月) 12:12:45.33 ID:ZZ8St2Js.net]
>>331
pin1,pin2に置ける枚数(の合計)に上限があれば
移動可能枚数に上限がつく

339 名前:デフォルトの名無しさん mailto:sage [2019/12/16(月) 14:51:32.32 ID:b9yK9thh.net]
>>314
common lisp
(format t "~R" 16776960)
sixteen million, seven hundred and seventy-six thousand, nine hundred and sixty

340 名前:デフォルトの名無しさん mailto:sage [2019/12/16(月) 15:02:43.75 ID:b9yK9thh.net]
>>317
perl5

cat digits
2019
102030
123

cat digits | perl -lane '$zero = 0; while (s/0//) {++$zero}; print $_ . "0" x $zero;'
2190
123000
123



341 名前:デフォルトの名無しさん [2019/12/16(月) 17:56:02.69 ID:rcGH9Ke6.net]
>>317 Ruby

def f(n)
n.to_s.chars.partition{|x| x !="0"}.join .to_i
end

342 名前: mailto:sage [2019/12/16(月) 20:29:58.89 ID:NZyGx79l.net]
>>326
これ昔やったことがありますが、すっかり忘れてしまったのは残念ですね…

343 名前:デフォルトの名無しさん [2019/12/16(月) 22:11:10.55 ID:Ppfui4Eb.net]
>>317 PowerShell
function f($n) {($n -replace "0", "") + ($n -replace "[^0]", "")}

344 名前:デフォルトの名無しさん [2019/12/17(火) 01:24:02.19 ID:XiWpNBJ4.net]
>>317 Common Lisp
https://ideone.com/2BlyuC

345 名前:デフォルトの名無しさん [2019/12/17(火) 04:04:38.21 ID:XiWpNBJ4.net]
>>317 Common Lisp
>>338は間違いでした
修正版: https://ideone.com/YaImKC

346 名前:デフォルトの名無しさん [2019/12/17(火) 13:17:36.43 ID:EDJKyz+u.net]
>>317 julia
function f(n)
  r = ""
  for c = reverse(string(n))
    if c == '0'
  r = r * c
    else
      r = c * r
    end
  end
  parse(Int, r)
end

347 名前:デフォルトの名無しさん mailto:age [2019/12/17(火) 17:33:51.45 ID:/DSBUbt2.net]
お題
任意の文字列からaが連続する最も長い長さを出力してください

入力:acgtaattgaaagggtctt
期待値:3

348 名前:デフォルトの名無しさん [2019/12/17(火) 18:10:05.60 ID:Etag1t/i.net]
>>341 Common Lisp
https://ideone.com/mkHEii

349 名前:デフォルトの名無しさん [2019/12/17(火) 18:50:00.42 ID:Etag1t/i.net]
>>342
うん? またバグってた

>>341 Common Lisp
https://ideone.com/JLYXZw

350 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 19:34:15.94 ID:JvBVW/sd.net]
>>317 C++
数値のままやってみた

https://ideone.com/iUEQFI



351 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 20:02:20.13 ID:bKU/e1zO.net]
>>341 Ruby
p 'acgtaattgaaagggtctt'.gsub(/[^a]+/,' ').split.uniq.sort_by{|s| s.size}.last.size

352 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 21:06:34.08 ID:eGUcswGM.net]
お題

1〜1,000 の整数の内、3 か5 の倍数だけを選んで、その合計を求めよ

353 名前:デフォルトの名無しさん [2019/12/17(火) 21:42:29.19 ID:p+XnOFki.net]
>>346
Rで2通りの求め方

d <- c(3, 5, -3 * 5)
q <- 1000 %/% d
cat(sum(d * q * (q + 1) / 2), "\n")
cat(sum(which(1:1000 %% 3 == 0 | 1:1000 %% 5 == 0)), "\n")

--- 実行結果 ---
234168
234168

354 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 21:42:34.96 ID:Q1C16S4i.net]
>>341 Ruby

p 'acgtaattgaaagggtctt'.scan(/a+/).max.size # => 3


>>346 Ruby

p 0.step(1000,3).sum + 0.step(1000, 5).sum - 0.step(1000, 15).sum # => 234168

355 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 21:45:36.79 ID:Q1C16S4i.net]
>>348
typo
/a+/ => /a*/

356 名前: mailto:sage [2019/12/17(火) 21:47:21.34 ID:780pCLgH.net]
お題:ファイル名の一部に空白文字が使える OS(出題者想定は Windows7) の元で、正常に argc, argv を切り出せるスタートアップ支援ルーチンを作ってください
"" で囲まれている文字列は、それが一つのファイル名またはディレクトリ名として扱うこととし、"" で囲まれていない空白は引数の区切りとします
int main() {
rearrange(...);
...
と main の頭に置いて、xargc, xargv を代わりに使う、見たいな感じでお願いします

例によって私が痛切に欲しいと思っているものです…

357 名前:デフォルトの名無しさん mailto:sage [2019/12/17(火) 23:55:17.00 ID:jG+XSsUd.net]
>>341は簡単すぎるので、
任意の文字列から連続してる文字が最も長い文字とその文字数を求めよ
最も長い文字が複数ある場合は全て出力すること
入力:acgtaattgaaagggtctt
期待値: ("a", 3), ("g",3)

358 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 00:00:22.88 ID:mWocJHci.net]
期待値
の意味って学校で習わなかった?

359 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 00:01:42.93 ID:i+6d3gEf.net]
>>350
依頼禁止

360 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 00:09:07.64 ID:i+6d3gEf.net]
>>346 C

int s(int n){ return (1000/n)*(1000/n+1)/2*n; }
int main(){ return s(3)+s(5)-s(15); }



361 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 00:12:20.91 ID:i+6d3gEf.net]
int main(){ return 234168; }

で良い気がしてきた

362 名前:デフォルトの名無しさん [2019/12/18(水) 00:13:22.10 ID:LTf ]
[ここ壊れてます]

363 名前:Q+mrC.net mailto: 戦が始まります []
[ここ壊れてます]

364 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 00:28:03.60 ID:i+6d3gEf.net]
どうせコンパイルしたら>>355になる

365 名前:デフォルトの名無しさん [2019/12/18(水) 01:55:09 ID:JeMlTDQr.net]
>>351 Common Lisp
https://ideone.com/Ox6TCK

366 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 06:09:15.93 ID:6RKB+CQ3.net]
>>351 Ruby

p 'acgtaattgaaagggtctt'.scan(/((.)\2*)/).group_by{|s, _| s.size}.max&.last&.map{|s, c| [c, s.size]}

# => [["a", 3], ["g", 3]]

367 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 10:45:51.93 ID:AmwvkO78.net]
acgtが出てくんだからながさ1億の文字列なんじゃね

368 名前:蟻人間 mailto:sage [2019/12/18(水) 11:33:42.87 ID:Zo1XP656.net]
>>350
__getmainargs

369 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 12:47:12.26 ID:Xcao9p4E.net]
acgtが出てくんだからDNA配列だろな。
 a=adenine, c=cytosine, g=guanine, t=thymine
ながさ30億の塩基対なんぢゃね?(ヒトの場合)

370 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 13:00:45.28 ID:Xcao9p4E.net]
>>331
・n=7 のとき
 条件(1,2) または 条件(2,2) とする。
 1234567, -, -, -
  (>328)
 67, -, -, 12345
 7, 6, -, 12345
 -, 6, 7, 12345
 6, -, 7, 12345
  (>327)
 12346, -, 7, 5
 12346, 5, 7, -
 12346, 5, -, 7
 12346, -, 5, 7
   (>327)
 6, -, 5, 12347
 6, 5, -, 12347
 -, 5, 6, 12347
 5, -, 6, 12347
   (>327)
 12345, -, 6, 7
 12345, -, -, 67
   (>328)
 -, -, -, 1234567
にて可能。



371 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 13:04:26.11 ID:iEIErwam.net]
(1,2)で8
(2,2)だと12
までは出来たぞ

372 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 13:06:11.00 ID:iEIErwam.net]
(1,3)で11

紙と鉛筆で考えただけなんで
もっと出来るかも

373 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 13:29:12.80 ID:iEIErwam.net]
(n,1)=3n+2

(2,2)以上だと
(m, n)=4(n+m-1)

まではいける

374 名前:デフォルトの名無しさん [2019/12/18(水) 14:02:18.59 ID:1FTJXM5f.net]
>>317
Kotlin
https://paiza.io/projects/-YDoyhCoGEt6IlVbBdxNyA

実は数字かどうかではなく '0' かどうかで見てるだけ。

375 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 14:58:11.70 ID:Xcao9p4E.net]
>>331
・n=8のとき
 条件(1,2) または 条件(2,2) とする。
 12345678, -, -, -    (>328)
 678, -, -, 12345
 78, -, 6, 12345      (>328)
 1234578, -, 6, -
 1234578, -, -, 6     (>328)
 78, -, -, 123456
 8, 7, -, 123456
 -, 7, 8, 123456
 7, -, 8, 123456      (>328)
 123457, -, 8, 6
 123457, 6, 8, -
 123457, 6, -, 8
 123457, -, 6, 8      (>328)
 7, -, 6, 123458
 7, 6, -, 123458
 -, 6, 7, 123458
 6, -, 7, 123458      (>328)
 123456, -, 7, 8
 123456, -, -, 78     (>328)
 6, -, -, 1234578
 -, -, 6, 1234578     (>328)
 12345, -, 6, 78
 12345, -, -, 678     (>328)
 -, -, -, 12345678
にて可能。

・n=9 は 条件(1,2) では無理か・・・・

376 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 16:04:48.01 ID:iEIErwam.net]
(0,0)=1
(n,m)=(n+2)(m+2)-4

ですかね

377 名前:デフォルトの名無しさん [2019/12/18(水) 21:05:50.74 ID:WdZQqUwr.net]
>>359
Rでrle関数を使って楽々

MaxRepChar <- function(s) {
 if (!nchar(s)) return(invisible())
 r <- rle(unlist(strsplit(s, "")))
 b <- r$lengths == max(r$lengths)
 cat(sprintf('("%s", %d)', r$values[b], r$lengths[b]), sep = ", "); cat("\n")
}

MaxRepChar("acgtaattgaaagggtctt")
MaxRepChar("mevius.5ch.net/test/read.cgi/tech/1573948822/")

-- 実行結果 --
("a", 3), ("g", 3)
("t", 2), ("/", 2), ("8", 2), ("2", 2)

378 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 21:06:21.05 ID:H5ShkPcr.net]
f(m, n) : 動かせる最大枚数

m≧n≧1の時

x=f(m-1,n)
A:1,2,3,...,x
B:x+1,...,x+n
C:x+n+1
D:x+n+2

ABCD, -, -, -
CD, -, -, AB
C, D, -, AB
AC, D, -, B
AC, -, -, BD
C, -, - ABD
-, C, -, ABD
A, C, -, BD
A, -, -, BCD
-, -, - ABCD

よって
f(m, n)≧f(m-1,n)+n+2

f(1,0)=2
f(m,n)=f(n,m)
と数学的帰納法により

f(m,n)≧(m+2)(n+2)-4

379 名前: mailto:sage [2019/12/18(水) 22:57:24.30 ID:tbeJyQYA.net]
>>371
理論はどうでもいいから動く

380 名前:コードを出して欲しいです、このスレ的には []
[ここ壊れてます]



381 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 23:01:39.59 ID:i+6d3gEf.net]
ここまで出来ればあとは簡単
他の人に任せた

382 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 00:58:04.71 ID:1AoIgbUn.net]
>>317 文言 wenyan-lang
wenyan-lang.lingdong.works/ide.html

吾有一術。名之曰「零右寄」。欲行是術。必先得一數。曰「数」。乃行是術曰。
吾有三數。曰零。曰零。曰一。名之曰「甲」曰「乙」曰「丙」。
恆為是。若「数」等於零者乃止也。除「数」以十。所餘幾何。昔之「甲」者。今其是矣。
若「甲」等於零者。乘「乙」以十。昔之「乙」者。今其是矣。若非。乘「甲」以「丙」。
加其以「乙」。昔之「乙」者。今其是矣。也。除「数」以十。昔之「数」者。今其是矣。
除其以一。所餘幾何。減「数」以其。昔之「数」者。今其是矣。
乘「丙」以十。昔之「丙」者。今其是矣。云云。乃得「乙」。是謂「零右寄」之術也。
吾有一列。名之曰「丁」。充「丁」以二千零一十九。以一十萬二千零三十。以一百二十三。
凡「丁」中之「戊」。施「零右寄」於「戊」。名之曰「己」吾有三數。曰「戊」。曰「「、」」。曰「己」。書之。云云。

OUTPUT ---------------------
二千零一十九、二千一百九十
一十萬二千零三十、一十二萬三千
一百二十三、一百二十三


なんかGIGAZINEで紹介されていたので

383 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 03:38:08.86 ID:i+MhtJYW.net]
>>363
・n=7 のとき
 条件(1,2) または 条件(2,2)
 {1234}=A と略記する。
 A567, -, -, -   (>327)
 567, -, -, A
 67, 5, -, A
 7, 5, 6, A
 57, -, 6, A    (>327)
 A57, -, 6, -
 A57, -, -, 6   (>327)
 57, -, -, A6
 7, 5, -, A6
 -, 5, 7, A6
 5, -, 7, A6    (>327)
 A5, -, 7, 6
 A5, 6, 7, -
 A5, 6, -, 7
 A5, -, -, 67    (>327)
 5, -, -, A67
 -, -, 5, A67    (>327)
 A, -, 5, 67
 A, -, -, 567    (>327)
 -, -, -, A567
にて可能。

384 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 03:43:24.67 ID:i+MhtJYW.net]
>>368
・n=8のとき
 条件(1,2) または 条件(2,2)
 {12345} = A と略記する。
 A678, -, -, -       (>328)
 678, -, -, A
 78, 6, -, A
 8, 6, 7, A
 68, -, 7, A       (>328)
 A68, -, 7, -
 A68, -, -, 7       (>328)
 68, -, -, A7
 8, 6, -, A7
 -, 6, 8, A7
 6, -, 8, A7       (>328)
 A6, -, 8, 7
 A6, 7, 8, -
 A6, 7, -, 8
 A6, -, -, 78       (>328)
 6, -, -, A78
 -, -, 6, A78     (>328)
 A, -, 6, 78
 A, -, -, 678       (>328)
 -, -, -, A678
にて可能。

385 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 04:34:36.23 ID:i+MhtJYW.net]
・n=12 のとき
 条件(2,2)
{12345678} = A, {9,10} = B, 11=C, 12=D と略記する。
 ABCD, -, -, -   (>376)
 BCD, -, -, A
 CD, -, B, A
 D, C, B, A
 BD, C, -, A    (>376)
 ABD, C, -, -
 ABD, -, -, C   (>376)
 BD, -, -, AC
 D, -, B, AC
 -, D, B, AC
 B, D, -, AC    (>376)
 AB, D, -, C
 AB, D, C, -
 AB, -, C, D
 AB, -, -, CD   (>376)
 B, -, -, ACD
 O, 9, -, ACD   (>376)
 AO, 9, -, CD
 AO, -, -, 9CD   (>376)
 O, -, -, A9CD
 -, O, -, A9CD   (>376)
 A, O, -, 9CD
 A, O, 9, CD
 A, -, 9, OCD
 A, -,-, BCD    (>376)
 -, -, -, ABCD
にて可能。

386 名前:デフォルトの名無しさん [2019/12/19(木) 07:01:53.01 ID:NLbJ7Izu.net]
>>317 J
f =: 3 : 0
a =. ": y
b =. a -. '0'
". b , a -. b
)

387 名前:346 mailto:sage [2019/12/19(木) 11:40:09.74 ID:dMnFAlGo.net]
>>346
Ruby で、234,168

# 蓄積変数の初期値は、0
puts ( 1..1_000 ).inject( 0 ) { |sum, num|
num % 3 == 0 || num % 5 == 0 ? sum + num : sum
}

388 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 13:03:26.44 ID:LRZ6v8WB.net]
>>375-377

>>371で理論は出来たんだから
次は
プログラムにするか
等号の証明をするか
最短手順を調べるか
本数を増やすか

ではないでしょうか?

私は>>371で満足
出題者ありがとう

389 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 14:49:39.96 ID:i+MhtJYW.net]
>>380
う〜む、等号の証明でござる。

390 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 16:03:07.29 ID:POC72xQm.net]
どれが?



391 名前:デフォルトの名無しさん [2019/12/19(木) 16:34:48.53 ID:dMnFAlGo.net]
お題

MY FAVORITE SONGS を、Snake, Camel, Pascal にして!

my_favorite_songs, myFavoriteSongs, MyFavoriteSongs

392 名前:デフォルトの名無しさん [2019/12/19(木) 17:08:15.12 ID:0uPukb6z.net]
>>346
Kotlin script

ただ馬鹿正直に抜き出して足すだけ。

println((1..1000).filter { it % 3 == 0 || it % 5 == 0 }.sum())

393 名前:デフォルトの名無しさん [2019/12/19(木) 17:42:54.73 ID:0uPukb6z.net]
>>383
Kotlin
https://paiza.io/projects/7P7YwhEfK-TZri123sI5xg

394 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 19:39:18.71 ID:xlnTqgd4.net]
>>383 Ruby

str = 'MY FAVORITE SONGS'

puts str.tr('A-Z ', 'a-z_') # => my_favorite_songs
puts str.gsub(/ (\w)/){$1.downcase}.swapcase # => myFavoriteSongs
puts str.split.map(&:capitalize).join # => MyFavoriteSongs

395 名前:デフォルトの名無しさん [2019/12/19(木) 20:42:11.68 ID:M6N2QgoX.net]
>>351 >>362 Common Lisp
https://ideone.com/hTxKo6

30億バイトでの実行結果:

% uname -p
Intel(R) Core(TM) i7-4765T CPU @ 2.00GHz
% /usr/bin/time -p sbcl --script odai-pt16-351-362-lisp-3-hash-table.lisp </tmp/random-acgt-3-billion.txt
((#\T . 17))
real 178.75
user 177.55
sys 1.17
%

*standard-input* ではなく (open "/dev/stdin" ...) を使っているのは *standard-input* が遅いから
ざっと六倍もの時間がかかった

396 名前:デフォルトの名無しさん [2019/12/19(木) 21:46:59.61 ID:XnN+NvoA.net]
>>383
R
https://ideone.com/QeSUF5

397 名前:デフォルトの名無しさん mailto:sage [2019/12/19(木) 22:59:23.08 ID:L7o4TfDh.net]
>>371
f(m,n)≧2mn+m+n+1
が示せました

(2,2)の条件で13枚移動できます

398 名前:383 mailto:sage [2019/12/20(金) 14:24:42 ID:A+TGdcd9.net]
>>383
Ruby で、

ary = "MY FAVORITE SONGS".split.map( &:downcase ) # すべて小文字へ

puts ary.join( "_" ) #=> my_favorite_songs
puts ary.map( &:capitalize ).join #=> MyFavoriteSongs

puts ary.map.with_index { |word, idx|
if idx == 0
word # 最初だけ、そのまま
else
word.capitalize
end
}.join #=> myFavoriteSongs

399 名前:デフォルトの名無しさん [2019/12/20(金) 17:55:37.64 ID:KHh/7LOP.net]
>>346 julia

println(sum(Set([3:3:1000; 5:5:1000])))

400 名前:デフォルトの名無しさん [2019/12/20(金) 19:38:12.53 ID:KibkA5Ab.net]
お題(>>346の改変版)

1から100万までの整数のうち、2か3か5か7か11か13か17か19の倍数の合計を
求める処理を3000回繰り返してから、結果を表示せよ。ただし、ideoneの
実行制限時間(5秒)以内に完了すること。



401 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 20:40:12.54 ID:l1czkVGZ.net]
>>392 C++
https://ideone.com/N01T86

402 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 21:09:48.70 ID:ZH5ZbPnE.net]
今アップしようと思ったら
>>393とそっくりだった

403 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 21:22:01.32 ID:ZH5ZbPnE.net]
素数の数をカウントする代わりに
マイナスを付けて素数を掛け算してるのが違うくらい

404 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 21:28:45.69 ID:ZH5ZbPnE.net]
お題
3000回じゃなくてもっとマシな出し方なかったのかね?
最適化で1回の結果を使い回されて何回やっても時間同じになっちゃってたよ

3000回数分合計して、最後に3000で割ってたんだけど
最適化が頭良すぎた

405 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 21:49:16.14 ID:qHTdS2+z.net]
やったー僕が考えた効率良いプログラムだと5秒以内で3000回も計算できたぞ!
そうだこれを

406 名前:お題にしてやろう! []
[ここ壊れてます]

407 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:16:29.10 ID:ZH5ZbPnE.net]
C/C++だと
ほんのちょっと数学の知識を使えば
コード上の工夫をまったくしなくても0.01秒
コード上の工夫でまだまだ速くなる
スクリプト系言語でも100倍はかからない気がする

なぜ5秒?
なぜ1000000?
なぜ3000回?

謎だ

408 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:30:48.36 ID:fz/tpFJr.net]
些末な最適化など
数学的知識に基づくオーダーの低減に比べたらむなしい

409 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:30:49.77 ID:ZH5ZbPnE.net]
数学的知識を使わないで
単純に足していくアルゴリズムを
コードの工夫で5秒切るって問題?

410 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:38:11.88 ID:PCNOOvYP.net]
>>399

>>393は素数の数に対してオーダーは2^n nだけど、
コード上の工夫で2^nになる

さらに、
乗算の数十倍時間がかかる、変数による除算も
コード上の工夫で無くせる

些細な差では無いと思う



411 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:38:43.75 ID:ZH5ZbPnE.net]
>>399

>>393は素数の数に対してオーダーは2^n nだけど、
コード上の工夫で2^nになる

さらに、
乗算の数十倍時間がかかる、変数による除算も
コード上の工夫で無くせる

些細な差では無いと思う

412 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:39:52.16 ID:ZH5ZbPnE.net]
ダブった

413 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 22:50:38.46 ID:qHTdS2+z.net]
数学も計算機学もどっちも大事

414 名前:デフォルトの名無しさん [2019/12/20(金) 23:00:03.89 ID:KibkA5Ab.net]
>>393
正解。ちなみにRで短く書いたプログラム: https://ideone.com/T9oDqa
結局、奇数個の積の倍数の個数の和から偶数個のそれを引くというやり方は同じだな。

>>397
そう。上のプログラムが5秒以内に余裕を持って終わるように繰り返し回数を設定したw
効率というより短いのが好きで書いた。

>>398
>>393をRにそのまま移植すると5秒以内に終わらず、1000回に減らしても
(https://ideone.com/K94wA8)4.56秒かかって、上のプログラムの2.43秒より
遅いよ。Rでは自前のループを書くよりも、関数や演算子を使って短く書いた方が
速くなることが多い。

415 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 23:06:22.58 ID:ZH5ZbPnE.net]
>>405
Rだと3桁倍も時間がかかるのか
衝撃

416 名前:デフォルトの名無しさん [2019/12/20(金) 23:10:59.45 ID:KibkA5Ab.net]
1000までではなく与えられた自然数までということ以外は>>346と同じ問題が
オライリーの「Modern C++チャレンジ」に載っているが、示されている解答は
if (i % 3 == 0 || i % 5 == 0) sum += i; という単純に足していく方式だな。
本の副題は「C++17プログラミング力を鍛える100問」だが、何が鍛えられられるのか
よく分からない。

417 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 23:11:25.23 ID:ZH5ZbPnE.net]
C/C++で1秒かかる問題は
C/C++限定になっちゃう感じだね

418 名前:デフォルトの名無しさん mailto:sage [2019/12/20(金) 23:14:31.11 ID:ZH5ZbPnE.net]
>>407
算数やアルゴリズムじゃなくて
言語の勉強ってことでしょ

419 名前:デフォルトの名無しさん mailto:sage [2019/12/21(土) 05:43:11.08 ID:vVh8rrgH.net]
連投アスペ君うざいよ
学歴詐称までしてたみたいだけど

420 名前:デフォルトの名無しさん [2019/12/21(土) 17:30:00.35 ID:BSqycIZI.net]
お題
ビットコインの採掘問題です

000 〜 300 までの3桁の整数の文字列を、MD5 で暗号化した時に、
冒頭部分から、5 が最も多く続く、整数は何?

答え、239 : 555d6〜



421 名前:デフォルトの名無しさん [2019/12/21(土) 21:23:49.40 ID:WOeaPgYE.net]
>>411
Java
https://paiza.io/projects/CEzxtHHxdDnP_sglVIdxMg

422 名前:デフォルトの名無しさん [2019/12/21(土) 22:58:23.57 ID:hbXQRpYW.net]
>>411 PowerShell
$MD5 = new-object "System.Security.Cryptography.MD5CryptoServiceProvider"
$a = 0..3

423 名前:00
$hash = $a |% {-join ($MD5.ComputeHash([char[]]("{0:000}" -f $_)) |% {"{0:x2}" -f $_})}
$n = $hash |% {[RegEx]::Match($_, "^5+").length}
$max = ($n | measure -max).Maximum
$a |? {$n[$_] -eq $max} |% {"$_ : " + $hash[$_]}

-- 実行結果 --
239 : 555d6702c950ecb729a966504af0a635
[]
[ここ壊れてます]

424 名前:デフォルトの名無しさん [2019/12/22(日) 03:50:07 ID:lBW/6Z3k.net]
>>411
Kotlin
https://paiza.io/projects/Y5gSI5-FC_UyaaRC1V_69w

425 名前:デフォルトの名無しさん [2019/12/22(日) 14:00:57.91 ID:sfBU8dhx.net]
>>411 Ruby

require 'digest'
p ("000".."300").map{|i|[Digest::MD5.hexdigest(i).index(/[^5]/),i]}.max[1]

426 名前:411 mailto:sage [2019/12/22(日) 19:20:37.12 ID:u+b66RrE.net]
>>411 Ruby

require 'digest'

# :count は、先頭から続く、5の数
Result = Struct.new( :num, :md5, :count )

res = ( "000".."300" ).each_with_object( Result.new( nil, nil, -1 ) ) do |num, res|
md5 = Digest::MD5.hexdigest( num ) # ハッシュ化

md5.each_char.with_index do |char, idx| # 1文字ずつ処理する
if char != "5"
if idx > res.count # 大きい時だけ更新する
res.num = num
res.md5 = md5
res.count = idx
end
break
end
end
end

puts "#{ res.num } : #{ res.md5 }"
#=> 239 : 555d6702c950ecb729a966504af0a635

427 名前:デフォルトの名無しさん [2019/12/23(月) 15:49:57.54 ID:8tSOZ4fL.net]
>>411
Perl5
https://paiza.io/projects/tD4ph2pfNvHIVTsKVqCbuA

428 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 02:05:20.47 ID:3/kDRwCG.net]
>>377
>>389

・n=13 のとき
 条件(2,2)
{12345678} = A, {9,10} = B, 11=C, 12=D, 13=E と略記する。

 ABCDE, -, -, -
  手順1
 CDE, -, -, AB
  手順2
 CD, E, -, AB
 ACD, E, -, B
  手順3
 ACD, -, -, BE
 CD, -, -, ABE
  手順2
 C, D, -, ABE
 AC, D, -, BE 
  手順3
 AC, -, -, BDE
 C, -, -, ABDE
 -, C, -, ABDE
 A, C, -, BDE
  手順3
 A, -, -, BCDE
 -, -, -, ABCDE
にて可能。

429 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 02:16:33.78 ID:3/kDRwCG.net]
 #A = f(2,1) = 8,   #B = 2
* 手順1
 ABX, -, -, -
 BX, -, -, A
 OX, 9, -, A
 AOX, 9, -, -
 AOX, -, -, 9
 OX, -, -, A9
 X, O, -, A9
 AX, O, -, 9
 AX, O, 9, -
 AX, -, 9, O
 AX, -, -, B
 X, -, -, AB
*手順2
 CDY, -, -, *
 DY, C, -, *
 Y, C, D, *
 Y, -, CD, *
 -, Y, CD, *
 -, CY, D, *
 D, CY, -, *
 CD, Y, -, *
* 手順3
 *, Y, -, BZ
 *, 9Y, -, OZ
 *, 9Y, O, Z
 *, Y, B, Z
 *, -, B, YZ
 *, 9, O, YZ
 *, 9, -, OYZ
 *, -, -, BYZ

430 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 06:16:15 ID:cUFUrp77.net]
おめでとう
次は(2,2,2)



431 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 06:33:05.83 ID:cUFUrp77.net]
n=13を考えるとき
真ん中2本が空いてる時にはn=12までは動かせる
っていう仮定を使うと
考え方が楽になりますよ

これが出来たら
あとは(2,1)のn=8から1枚ずつ増やしていく帰納法が使えます

432 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 07:26:03.90 ID:cUFUrp77.net]
a≧b≧c≧d≧e≧1

f(a,b,c,d,e)=f(a-1,b,c,d,e)+2n+1

n = max { a, f(b-1,c,d,e) }
+ max { b, f(c-1,d,e) }
+ max { c, f(d-1,e) }
+ e

433 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 07:43:48.05 ID:cUFUrp77.net]
(a,b,c,d,e) の動かしかた

A : 小さい f(a-1,b,c,d,e) 枚
X : 最大の1枚
(n) : A,X以外の任意のn枚
n : >>422で定義

A(2n)X / - / -
(n)X / - / A(n)
(n) / X / A(n)
A(n) / X / (n)
A(n) / - / (n)X
- / - / A(2n)X

434 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 07:48:24.24 ID:cUFUrp77.net]
ミスった

n = min { a, f(b-1,c,d,e) }
+ min { b, f(c-1,d,e) }
+ min { c, f(d-1,e) }
+ e

435 名前:デフォルトの名無しさん mailto:sage [2019/12/24(火) 19:47:21.14 ID:cUFUrp77.net]
動かせる枚数だけですがコードにしました
https://ideone.com/X01d46

436 名前:デフォルトの名無しさん mailto:sage [2019/12/25 ]
[ここ壊れてます]

437 名前:(水) 16:51:57.78 ID:eBvDhPt7.net mailto: [お題] 2020と素数

 "2020"の省略形は"20"
 異なる素数を20個使って、総合計で2020を作る。

1) 何種類できるか(組合せで)。 --> ?

  以下 数列は昇順でソート済みでの比較
2) 数列の比較で(辞書順)最小な数列を出力。
--> [3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,73,1381]
3) 数列の比較で(辞書順)最大な数列を出力。
--> ?

例) 総合計 26 で要素数 3の場合
 種類は[2,5,19],[2,7,17],[2,11,13]の3種類、
 最小は[2,5,19], 最大は[2,11,13]
[]
[ここ壊れてます]

438 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 19:05:13.68 ID:LrSoTBV6.net]
2) 3) は瞬時だけど
1) は難しい

出題者は出来たんだよね?

439 名前:426 mailto:sage [2019/12/25(水) 19:20:25.05 ID:eBvDhPt7.net]
>>427
1)は二年前の大晦日に、part9で ほぼ既出問題。
とても大きな数字になるから、
全探索しないでね、って意味で1)においたのだが……

440 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 22:46:56.00 ID:LrSoTBV6.net]
https://ideone.com/UhFnyK



441 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 22:48:16.07 ID:LrSoTBV6.net]
合ってる?

442 名前:デフォルトの名無しさん mailto:sage [2019/12/25(水) 22:57:35.89 ID:LrSoTBV6.net]
辞書順最後は
{ 53, 59, 61, 67, 71, 73, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151 }

443 名前:426 mailto:sage [2019/12/25(水) 23:33:28.28 ID:eBvDhPt7.net]
>>429, 431 当方とおなじです。

>>426
 https://ideone.com/SuOGod

数が程々なので、まとめて手抜きの"文字列DP"をやってます。
(pypyで1秒以内で回っているのだから、真面目にやる必要ないでしょう)

444 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 01:18:40.30 ID:rIhsLdYp.net]
がんばって速くしてみたけどあまり速くならなかった

https://ideone.com/lalB7F

445 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 01:28:39.37 ID:rIhsLdYp.net]
C++だから速いはず
だけど大差無いって事は
アルゴリズムで負けてる?

446 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 04:04:05.93 ID:Wc5llTmi.net]
>>421

>>418>>371 にEを追加したものです。

 ピン0⇔ピン3 間で移動する「4ピン手順」と
 ピン{{0,1,2} または {1,2,3} 間で移動する「3ピン手順」
 を交互に行ないます。

*手順1 は4ピン手順で、ABの10個を移動します。
*手順2、手順3 は3ピン手順です。
  ピン0→ピン{1,2} あるいはピン{1,2}→ピン3 間でxを移動するときは
  xより小さい円盤を1本のピンに集めることが必要で、これがネックですね。
  最初に12個移動するのはどうかと思うけど・・・・

447 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 07:13:27.63 ID:rIhsLdYp.net]
>>435
帰納法を使えば
具体的な手順は>>423の手順だけで
≧を示せる

と言ってるだけですよ

帰納法の仮定として
>>422の式より円盤の枚数が少ない時は動かせる
>>422の条件より置ける置ける枚数が少ない時は>>422が成り立つ
を使う

448 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 07:22:33.88 ID:rIhsLdYp.net]
>>371から>>423に進化して
本数も枚数も一般化出来た
( >>425 )

帰納法の仮定を使って
>>423の(n)は任意のn枚に出来る
これによって手順の記述が対称になり
非常に簡略化出来てます

最短手順を求めるのはまた別の話で
これは帰納的には求められないと思っています

449 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 07:28:47.21 ID:rIhsLdYp.net]
ちなみに >>371の式は最大枚数ではなくて
Cをn枚にすることで最大になります

動かせる最大枚数はわかったので
残る

450 名前:課題は「最短手順を求める」のみ []
[ここ壊れてます]



451 名前:蟻人間 mailto:sage [2019/12/26(木) 15:19:10.12 ID:Npbug+/w.net]
お題: 半角英数からなるユーザーIDとパスワードで認証できるアカウントのシステムを以下の要件で作る。

1.新規登録を選んでユーザーIDとパスワードとメールアドレスを入力するとアカウント登録ができる。
2. 複数アカウント対応。ユーザーIDの重複はダメ。
3. アカウント一覧を選ぶとアカウントの一覧とログイン状態が見える。
4. ログインを選んでユーザーIDとパスワードの入力が一致すればログインできる。
5. ログアウトを選べばログアウトできる。
6. パスワードを忘れたとき、アカウントの回復を選んでメルアド入力すると、メールが来てパスワードがリセットされる。

452 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 19:06:46.63 ID:ArA1I+l7.net]
>>432
 https://ideone.com/SuOGod
 
 よくある経路復元方式に変更。
 (大量な文字列のコピーが減った)

453 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 19:20:20.20 ID:nVG7mTn1.net]
>>429を少し速くした
https://ideone.com/Hysp8W

454 名前:デフォルトの名無しさん mailto:sage [2019/12/26(木) 21:44:10.91 ID:nVG7mTn1.net]
https://ideone.com/XFJToQ
vectorを使いまわしするようにしたら速くなった

455 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 00:16:14.43 ID:N7T+QvJX.net]
https://ideone.com/tm5nPe
まだ省くことができた

456 名前:蟻人間 mailto:sage [2019/12/27(金) 18:58:01.81 ID:0l4cUgpw.net]
Web系もプログラミングの一種なんだけど、日本のIT教育では軽視されてるみたいなんだ。

457 名前:デフォルトの名無しさん [2019/12/27(金) 20:56:28.17 ID:JVKHwIo7.net]
<('o')>フーン

458 名前: mailto:sage [2019/12/27(金) 21:03:47.38 ID:9iE1xeZJ.net]
>>444
web 系をはじめるには、どういう環境で学べばいいですか?

459 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 21:12:37.24 ID:IA42SgXa.net]
https://ideone.com/3sneU6

>>440のアルゴリズムの方が速いね

460 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 21:14:11.36 ID:IA42SgXa.net]
↑が100回

これが1回
https://ideone.com/ndU5d2



461 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 22:14:31.51 ID:novkoLBo.net]
>>426 類似問題

素数を20個使って、総合計で2020を作る。
(同じ素数を複数使ってよい)

何種類できるか(組合せで)。 -->?
(同じ数字は区別しない -> ソートして数列が異なるもので1種類)

ちなみに、辞書順最小が[ 2(* 18), 5, 1979] 、最大が[ 101(* 20)]になる。

※ 2020で20個なら、まだint64_tでおさまる

462 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 22:54:15.08 ID:IA42SgXa.net]

>>429の+1を消すだけ

463 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 22:58:27.12 ID:Wx5tgQ31.net]
お題: 「Happy New Year!!」と出力するプログラムを2020年元日に投稿せよ

464 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 23:32:30.61 ID:novkoLBo.net]
>>450
やっぱり(既にできていて)、その程度なのだろう。

自分の方も、ユニーク時は更新が伝播しないように
逆順で処理していたのを、伝播するよう正順に戻すだけ。

>>449
 https://ideone.com/nQJWLb

465 名前:デフォルトの名無しさん mailto:sage [2019/12/27(金) 23:43:22.25 ID:IA42SgXa.net]
>>452
お題
同じ数は4個まで

466 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 01:41:03.72 ID:HU/ZZyYG.net]
>>447のだと
for (j = N - 1; j >= 0; j--) {
これを
for (j = 0; j < N; j++) {
こう逆にすると重複の計算ができるんだね

467 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 03:25:23 ID:HeaGj5a1.net]
>>423

m≧n≧1 のとき
 ピン2に大円盤が1枚以下のときは、ピン0⇔ピン1間、ピン1⇔ピン3間で
 n枚組の円盤を移動できますね。 (3ピン手順)

 A: 1,2,・・・・,x のx個組 ただし x=f(m-1,n)
 B: x+1,...,x+n のn個組
 C: x+n+1,・・・・,x+2n+1 のn個組
 D: x+2n+1
とする。

468 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 03:28:09 ID:HeaGj5a1.net]
 ABCD, -, -, -
 B

469 名前:CD, -, -, A
  手順2
 BC(2..n)D, -, C(1), A
 ABC(2..n)D, -, C(1), -
 ABC(2..n)D, -, -, C(1)
 BC(2..n)D, -, -, AC(1)
  手順2
 BC(3..n)D, -, C(2), AC(1)
 ABC(3..n)D, -, C(2), C(1)
  手順3
 ABC(3..n)D, -, -, C(1..2)
 ・・・・
 同様にしてC(k)とDを移動する。(k=1..n)
 ・・・・
 ABD, -, -, C
 BD, -, -, AC
  手順2
 B, -, D, AC
 AB, -, D, C
  手順3
 AB, -, -, CD
 B, -, -, ACD
 B(2..n), -, B(1), ACD
 AB(2..n), -, B(1), CD
 AB(2..n), -, -, B(1)CD
 B(2..n), -, -, AB(1)CD
 B(3..n), -, B(2), AB(1)CD
 AB(3..n), -, B(2), B(1)CD
  手順3
 AB(3..n), -, -, B(1..2)CD
[]
[ここ壊れてます]

470 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 03:34:05 ID:HeaGj5a1.net]
 B(3..n), -, -, AB(1..2)CD
 ・・・・・
 同様にしてB(k) を移動する。(k=1..n)
 ・・・・・・
 B(n), -, -, AB(1..n-1)CD
 -, -, B(n), AB(1..n-1)CD
 A, -, B(n), B(1..n-1)CD
  手順3’
 A, -, -, BCD
 -, -, -, ABCD

∴ f(m,n) ≧ f(m-1,n) + 2n + 1,

・手順2
 BC(k..n)D, -, -, *
 C(k..n)D, B, -, *
 C(k+1..n)D, B, C(k), *
 BC(k+1..n)D, -, C(k), * 

・手順3
 *, -, C(k), C(1..k-1)
 *, C(1..k-1), C(k), -
 *, C(1..k-1), -, C(k)
 *, -, -, C(1..k)

・手順3’
 *, -, B(k), B(1..k-1)CD
 *, B(1..k-1), B(k), CD
 *, B(1..k-1), -, B(k)CD
 *, -, -, B(1..k)CD



471 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 12:49:55.64 ID:eBmyBfXD.net]
いつまでハノイのメモ帳続けるんだよw

472 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 16:57:29.50 ID:hZH7LPev.net]
>>453
本気でやるには、"もらう"へ作り変える必要もあり、辛い

4つ程度なら、4倍回して出しちゃうだろう。
 (四重ループで汚すぎるのでソースは非公開)
 4と6の結果のみ載せておこう、あっているかも微妙。
 
合計: 2020 使用個数: 20 複数制限: 4-->
15100329420197868
[2, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5, 7, 7, 7, 7, 11, 11, 17, 1913]
[89, 89, 89, 97, 97, 97, 101, 101, 101, 101, 103, 103, 103, 103, 107, 107, 107, 107, 109, 109]
********************************************* 0.43922sec ********************

合計: 2020 使用個数: 20 複数制限: 6-->
16509239212753751
[2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 7, 7, 1951]
[97, 97, 97, 97, 97, 97, 101, 101, 101, 101, 101, 101, 103, 103, 103, 103, 103, 103, 107, 107]
********************************************* 0.30568sec ********************

473 名前:デフォルトの名無しさん [2019/12/28(土) 19:46:33.82 ID:mH66EenF.net]
>>426の1)はRで短く書ける(先頭・末尾行は正味の実行時間計測用)。
https://ideone.com/7eV3Kh

Rでは整数は32ビットまでなので、浮動小数点型(double型)で計算しているが、
double型の有効桁数は15桁なので、小数部を非表示にすれば、答である13桁の
整数は正しく表示される。

64ビット整数を扱うbit64というパッケージも一応あるが、それを使うと
正味の実行時間が4.3倍もかかってしまう。
https://ideone.com/hzr0rq

474 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 21:25:10.79 ID:4BOt7DVD.net]
>>453
>>447を使って書いた
https://ideone.com/EwLCGD
メモリの使用を抑えたのも書いたけど遅くなった

475 名前:デフォルトの名無しさん [2019/12/28(土) 22:48:40.84 ID:AtehPr/g.net]
お題
最小値のあるインデックスから離れるほど数字が大きくなる数列があります
増加量はランダムです
その数列の中から効率よく最小値を探してください

入力: 115, 109, 107, 101, 92, 85, 76, 66, 65, 62, 53, 49, 40, 38, 35, 25, 23, 17, 9, 2, 0, 5, 8, 10, 11, 20, 30, 37, 42, 47
出力: 0

入力: 110, 104, 96, 93, 84, 83, 87, 93, 98, 103, 113, 120, 121, 128, 133, 134, 142, 152, 159, 169, 171, 174, 183, 186, 196, 203, 210, 212, 221, 224
出力: 83

入力: 138, 135, 127, 124, 122, 112, 103, 98, 92, 87, 77, 73, 71, 63, 59, 51, 41, 36, 45, 54, 63, 71, 81, 88, 90, 98, 105, 112, 114, 119
出力: 36

476 名前:デフォルトの名無しさん [2019/12/28(土) 23:28:52.09 ID:mH66EenF.net]
>>462
二分探索で答えてもらいたいんだろ。
https://ideone.com/PKF7cQ

477 名前:デフォルトの名無しさん [2019/12/28(土) 23:34:06.76 ID:AtehPr/g.net]
>>463
私が用意してた答えは二分探索ではありませんでした

478 名前:ェ二分探索でできるんですねすごいです []
[ここ壊れてます]

479 名前:デフォルトの名無しさん [2019/12/28(土) 23:38:08.54 ID:mH66EenF.net]
>>463 訂正。signが抜けていた。
https://ideone.com/28YBxQ

480 名前:デフォルトの名無しさん [2019/12/28(土) 23:42:14.62 ID:mH66EenF.net]
再度訂正。1行目が消えていた。
https://ideone.com/mgNo9a



481 名前:デフォルトの名無しさん mailto:sage [2019/12/28(土) 23:45:03.69 ID:4BOt7DVD.net]
最初に思いつくのが二分探索だからそれより速い方法があるんだろうなと思った

482 名前:デフォルトの名無しさん [2019/12/29(日) 00:04:58.67 ID:Jtzyjysr.net]
https://ideone.com/gcG2Ls

483 名前:デフォルトの名無しさん [2019/12/29(日) 00:15:11.87 ID:Jtzyjysr.net]
https://ideone.com/Oj779u

484 名前:デフォルトの名無しさん [2019/12/29(日) 00:41:31.56 ID:wJ/DeyFk.net]
>>466 最小値が複数ある場合の条件分けが抜けていた。
https://ideone.com/Lcraw3

Rのbinsearch関数は値の返し方に癖があって、条件分けを見落としやすいな。

485 名前:デフォルトの名無しさん [2019/12/29(日) 02:13:42.53 ID:2ZGuf6bc.net]
>>462
Java 三分探索で2/3に範囲を狭めてく
https://paiza.io/projects/NjNBWH-afFYHO5H9w8EJeQ

1/2に減らせる二分探索には敵わない
傾きを二分探索するって発想はなかったわー

486 名前:デフォルトの名無しさん [2019/12/29(日) 02:17:13.97 ID:2ZGuf6bc.net]
>>468
実装の効率はパないすね、効率はそういう意味でもありましたホントです

487 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 09:24:17.66 ID:Y3W4ZjXN.net]
いやいや
ただのリニア検索より遅いのはあり得ん

488 名前:デフォルトの名無しさん [2019/12/29(日) 19:39:43.67 ID:Jtzyjysr.net]
でも出てる中で一番速いけど。

489 名前:デフォルトの名無しさん [2019/12/29(日) 21:33:41.90 ID:wJ/DeyFk.net]
>>474
そりゃ、例の数列では要素数が少なくてアルゴリズムの差が出にくいからだろ。
「効率よく」とわざわざ書いてある問題なんだから、もっと大きなデータを与えた
場合も想定して答えるのが普通。

例えば、100万から1までの連番の後に2から50万までの連番が続く数列を与えれば
アルゴリズム間の違いは歴然。

Rで二分探索、min関数、sort関数で求めたときの1回あたり平均実行時間を計測すると、
0.132, 2.08, 55.2ミリ秒で桁が違う (PCでは二分探索はもう少し速かった)。
計算量オーダーがO(log n), O(n), O(n log n)だから当たり前だが。
https://ideone.com/kuqONz

C++の>>468に同じデータを与えると108ミリ秒かかり、何とRのsort関数より遅い。
Rの関数はCで書かれているものが多いから、この差はつまりはCとC++のSTLの
性能差によるものだろう。
https://ideone.com/jMCCfP

490 名前:デフォルトの名無しさん [2019/12/29(日) 21:37:04.80 ID:Jtzyjysr.net]
>>475
>>469の場合だとどんな感じ?



491 名前:デフォルトの名無しさん [2019/12/29(日) 21:41:48.80 ID:2ZGuf6bc.net]
なんかすまんなみんな、ワイのせいで・・・ワイのせいで・・・ワイは悪くない

492 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 22:06:29.15 ID:Y3W4ZjXN.net]
>>462くらい乱数に法則があれば2分検索より速いアルゴリズムを作れる
例としてはイマイチ

493 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 22:38:51.59 ID:Byl7yBSZ.net]
このスレだけマジで何言ってんのか理解できない

やっぱまずいよなあ、数学勉強し直さなきゃなあ

494 名前:デフォルトの名無しさん [2019/12/29(日) 22:43:46.32 ID:KptD7+e9.net]
>>426
1)数百万規模でありそう。

495 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 08:49:27.55 ID:1DW7Hzfm.net]
>>475
最適化されたCとC++のSTLならCのほうが分があるということ?

496 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 09:13:40.00 ID:W9rqQHA3.net]
突き詰めた機械語にコンバートされるCと
汎用性のSTL
どちらに分があるのか

497 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 11:48:55.51 ID:1DW7Hzfm.net]
戦争になりそうだが、俺は膝にassertを受けちまってな
皆の力にはなれない、すまない

498 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 13:23:07.59 ID:I3iMR+1 ]
[ここ壊れてます]

499 名前:Y.net mailto: Rのsortは基数ソート使ってるらしいからその差かもしれない
c++のもこのデータの場合stable_sortに変えると3倍くらい速くなった
[]
[ここ壊れてます]

500 名前:デフォルトの名無しさん [2019/12/30(月) 15:32:52.11 ID:fFRqMrLq.net]
いいっすねー、新しいお題用意してるからちょっとまってて



501 名前:デフォルトの名無しさん [2019/12/30(月) 15:44:13.04 ID:fFRqMrLq.net]
お題
四角形の縦の長さの数列と
四角形の横の長さの数列と
四角形の面積が与えられます

縦の長さと横の長さを組み合わせて
与えられた面積と一致する四角形をいくつ
作ることができるか求めてください

入力: 41, 9, 25, 92, 48, 15, 69, 61, 85, 22, 82, 79, 7, 34, 86, 29, 36, 77, 16, 79, 57, 8, 9, 58, 86, 0, 24, 83, 63, 46
入力: 12, 79, 11, 65, 9, 33, 44, 54, 30, 43, 76, 23, 24, 86, 15, 35, 21, 97, 57, 96, 6, 3, 59, 51, 29, 58, 93, 94, 49, 8
入力: 195?

502 名前:デフォルトの名無しさん [2019/12/30(月) 15:45:24.75 ID:fFRqMrLq.net]
195の後ろの文字化けは無視してください
195と書きたかったのです

503 名前:デフォルトの名無しさん [2019/12/30(月) 15:47:28.48 ID:fFRqMrLq.net]
入力の数列の長さが数万になってもちょっぱやで計算できるとなお良いです

504 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 16:18:52.49 ID:pgNmBWor.net]
四角形の縦の長さの定義は?
まさか四角形=長方形じゃないでしょ

505 名前:デフォルトの名無しさん [2019/12/30(月) 16:21:26.52 ID:fFRqMrLq.net]
>>489
ではそのまさかということで
四角形とは長方形のことです!

506 名前:デフォルトの名無しさん [2019/12/30(月) 16:26:20.78 ID:fFRqMrLq.net]
問題を書いたときは長方形以外の四角形がこの世に存在するとは思いもよらなかったので四角形と書いたのです

507 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 18:39:14.57 ID:JZjS6BbQ.net]
オーダーは n log n

問題には
数列に同じ値が複数あった場合に1個とするのか別カウントするのかという曖昧性がある

508 名前:デフォルトの名無しさん [2019/12/30(月) 18:41:24.69 ID:fFRqMrLq.net]
>>492
同じ値は別カウントで良いです

509 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 18:54:14.71 ID:JZjS6BbQ.net]
数列が整数限定
数列の数が大きい
面積が小さい

なら
素因数分解っていうアプローチもあるのかな?

510 名前:デフォルトの名無しさん [2019/12/30(月) 19:25:46.59 ID:fFRqMrLq.net]
>>486
同じ値を別カウントにするとベラボーに難しいですね
同じ値は1個とカウントして良いです



511 名前:デフォルトの名無しさん [2019/12/30(月) 19:25:50.71 ID:2F+fuXCx.net]
>>486
数万程度なら、Rで何の工夫もなしに素直に書いても瞬時に求められるな。
https://ideone.com/tLSpKT

512 名前:デフォルトの名無しさん [2019/12/30(月) 19:28:13.92 ID:fFRqMrLq.net]
>>496
マジですか・・・すごいです

513 名前:デフォルトの名無しさん [2019/12/30(月) 19:31:03.47 ID:fFRqMrLq.net]
>>462
そういえばこの問題って.NETのLINQとかJavaのStreamとか
使ってソートすればたぶんヒープが使われて逐次処理が行われるんで
全部の値をソートせずに答えが求められるんじゃないかと思った
ほぼ線形探索

514 名前:デフォルトの名無しさん [2019/12/30(月) 19:34:34.59 ID:2F+fuXCx.net]
>>486
数列が重複要素可で、>>495の条件で求めるなら、>>496のdの右辺をunique()で囲めば良い。

515 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 19:38:11.16 ID:JZjS6BbQ.net]
>>495
アルゴリズム的にはどっちもかわらん
特定の言語で記述しにくいってことはあるかもしれないけど

516 名前:デフォルトの名無しさん [2019/12/30(月) 19:39:21.71 ID:fFRqMrLq.net]
>>500
マジですか・・・

517 名前:デフォルトの名無しさん [2019/12/30(月) 20:14:35.59 ID:2F+fuXCx.net]
>>484
Rのマニュアルを調べたら確かにそういう仕様だね。sort関数のmethod引数で
ソート方式を指定できるが、省略時は2^31要素未満の数値ベクトルに対しては
基数ソート、それ以外に対してはシェルソートが選択されると書かれている。

ということで、method引数を明示的に指定して実行時間を比較してみると、
基数、クイック、シェルソートがそれぞれ50.8, 45.2, 38.2ミリ秒で、基数ソートが
何故か一番遅いな。PCで実行したら基数<クイック<シェルの順だったのに。
RのクイックソートでもC++ STLのsortよりはまだ速い。https://ideone.com/g2JEPF

二分探索をCで書けば爆速で、実行時間は0.042マイクロ秒。Rの二分探索と3桁違う。
(キャッシュの影響があるのかも知れないが)。https://ideone.com/Dm65Sp

Rの関数はCかFortranで書かれているものが多いが、binsearch関数はRで書かれているし、
戻り値のフラグ判定が文字列照合という非効率な処理だから、二分探索としては
あまり速くない。

518 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 20:30:55.63 ID:0ybHI6rZ.net]
>>492
重複なしなら
縦の数列をハッシュテーブルに入れる
横の数値に対して...
・0 ならスキップ
・面積を横の数値で割った余りが0でないならスキップ
・面積を横の数値で割った値がハッシュテーブルになければスキップ
・カウントアップ
を繰り返せばいいだけだからO(n)
(要するに>>496なんだけど)
重複ありで別カウントならハッシュテーブルの代わりにディクショナリにして値に個数を入れといてカウントアップ時に縦横の個数を掛けたものを加算すればいいだけ

519 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 20:46:19.63 ID:JZjS6BbQ.net]
ハッシュテーブルの検索はオーダー1じゃないと思うんだ

520 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 21:43:46.47 ID:0ybHI6rZ.net]
>>504
実装とかによるけど大抵の実装だとほぼO(1)だよ



521 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 22:39:47.32 ID:JZjS6BbQ.net]
ほぼ1ってなんだよwww

オーダー1の実装だと
値の範囲という別のオーダーが生まれる

522 名前:デフォルトの名無しさん [2019/12/30(月) 22:44:20.79 ID:fFRqMrLq.net]
>>506
平均のことかと

523 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 22:53:03.82 ID:JZjS6BbQ.net]
ああ平均か
最悪値は非常に悪いよね

524 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 22:55:25.07 ID:JZjS6BbQ.net]
てっきり超巨大ハッシュテーブルを作るのかと思った

525 名前:デフォルトの名無しさん [2019/12/30(月) 22:58:46.54 ID:fFRqMrLq.net]
たしかにハッシュテーブルの最悪の計算量はO(n)だけれども
そうなることってマレだよ

むかしVBで使われてたScripting.Dictionaryはテーブルサイズが1万固定のようで
それ以上になると計算コストがバク上がりしてた
最近のライブラリだとテーブルサイズが可変になってるので問題ない

あとはWebサービスに対する攻撃としてキーが衝突するデータを大量に送りつけるってのが
数年前に話題になったかな

ハッシュ関数を予測してデータを作為的に作らない限り最悪の計算コストになることはないかと
ハッシュテーブル使うときはO(1)で考えて良いと思う

526 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 23:12:19.04 ID:p3QJuMJ/.net]
Ruby のハッシュでは、データ数と共に、バケット数を増やしていく。
バケット数は、2 の累乗の次に現れる素数。
2^n + a, 2 <= n <= 30

8 + 3 = 11
16 + 3 = 19
32 + 5 = 37
64 + 3 = 67
128 + 3 = 131
256 + 27 = 283
512 + 9 = 521

データ数が、バケット数の5倍を超えると、ハッシュが再構成される。
再構成時には、極端に遅くなる

11 * 5 = 55 だから、データ数が56 個になると、バケット数が19 になる。
19 * 5 = 95 だから、データ数が96 個になると、バケット数が37 になる

527 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 23:30:39.44 ID:JZjS6BbQ.net]
最近は結構インテリジェントに作られてるんだね
unordered_set/map もたまには使ってみようかな

528 名前:デフォルトの名無しさん [2019/12/31(火) 07:26:10.17 ID:kRQlhKMg.net]
制約論理型言語だと変数の上限下限を自動的に切ってくれる。

529 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 09:03:13.10 ID:hkax3Wzu.net]
お題
フィボナッチ数列のn番目をF(n)とした時
F(F(80))の下位8桁を求めよ

フィボナッチ数列は以下で定義される数列である
F(1)=1
F(2)=1
F(n)=F(n-2)+F(n-1)

530 名前:デフォルトの名無しさん [2019/12/31(火) 10:24:38.95 ID:NKLtpqnc.net]
>>514
21055810
あってるかな。
フィボナッチ数列は行列を使うアルゴリズムで



531 名前:O(log n)で計算できるもんね。外側の計算はmod100000000 で計算すればいい。 []
[ここ壊れてます]

532 名前:デフォルトの名無しさん [2019/12/31(火) 12:24:58.82 ID:5aZymNkm.net]
>>515
Rは整数が32ビットまでで桁あふれするから、Juliaで書く。

F = Int64[1 1; 1 0]
n = (F ^ 80)[1, 2]

P = Int64[1 0; 0 1]
R = F
while n > 0
  global r = n % 2
  global n = div(n, 2)
  if r > 0
    global P = P * R .% 100000000
  end
  global R = R * R .% 100000000
end
println(P[1, 2])

-- 実行結果 --
21055810

533 名前:デフォルトの名無しさん [2019/12/31(火) 12:26:30.15 ID:5aZymNkm.net]
>>515じゃなくて>>514だった。

534 名前:デフォルトの名無しさん [2019/12/31(火) 13:18:28.06 ID:5aZymNkm.net]
>>514
Rでも多桁計算パッケージgmpを使ったら、正しく計算できた。
https://ideone.com/OY6Adr

535 名前:デフォルトの名無しさん [2019/12/31(火) 17:23:41.22 ID:NKLtpqnc.net]
>>514
>>516
515です。コード上げてなかった。
https://ideone.com/SPRgPf

536 名前:513 mailto:sage [2019/12/31(火) 18:46:25.67 ID:H+c+1UtF.net]
>>513
64ビットに収まるようにしたので簡単でしたかね

C++
https://ideone.com/VRdN4q

537 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 18:47:43.73 ID:H+c+1UtF.net]
>>514でした
すみません

538 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 19:45:18.11 ID:5fWgt8Ro.net]
>>449
https://ideone.com/nisdwQ
C++。問題勘違いして全探索かいたんだよ〜。
おわらねー。Orz

539 名前:デフォルトの名無しさん [2019/12/31(火) 20:25:50.73 ID:W8YPZd1D.net]
>>522
100億人に2020になる素数をプレゼント出来そうだ。

540 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 20:58:55.61 ID:5fWgt8Ro.net]
>>523
100億!!???マジで??
そら手に余るわ。教えてくれてありがとう。

プレゼントするときは、「あなたに特別な2020を!」って感じか。



541 名前:デフォルトの名無しさん [2020/01/01(水) 07:48:09.89 ID:W9Zu1XGU.net]
>>523
素数2個の2020は41人しかあげられない。

542 名前: mailto:sage [2020/01/01(水) 12:10:34.36 ID:WIYGoppO.net]
あけおめ

543 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 12:56:41.11 ID:WIYGoppO.net]
お題

a^n + b^n + c^n = 2020
の整数解のうちnが最大の物を求めよ

544 名前: mailto:sage [2020/01/01(水) 15:06:53.67 ID:/JBKhr80.net]
あけおめ〜

545 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 15:29:53.46 ID:qVK/11PV.net]
A HAPPY NEW YEAR !!!

というコード。

546 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 04:45:53.28 ID:cCzcmPOa.net]
>>451

547 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 14:00:53.09 ID:2eGsq/cP.net]
(´;ω;`)

548 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 03:43:04.42 ID:ct9N0pK8.net]
お題

a^3 + b^3 + c^3 = 2020 * 2
の整数解を求めよ。

549 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 03:49:51.76 ID:ct9N0pK8.net]
追加

a^3 + b^3 + c^3 = 2020 / 2・2
の整数解を求めよ。

550 名前:デフォルトの名無しさん [2020/01/03(金) 03:54:35.20 ID:pVliia9g.net]
>>486
Kotlin
https://paiza.io/projects/5OHDudzLFUjSV6DAdxFcfw

こんなので良いの?単に掛け算して一致するか比較しているだけなんだけど。
オマケとして重複しないようにはしているが。



551 名前:デフォルトの名無しさん [2020/01/03(金) 04:17:21.42 ID:pVliia9g.net]
>>532
C
https://paiza.io/projects/vMRPBddVA6FgCl6AHaGXOw

どう?

552 名前:デフォルトの名無しさん [2020/01/03(金) 04:18:44.02 ID:pVliia9g.net]
>>533
最後の 2・2 の部分って何? 2.2? こっちで文字化けしてちゃんと表示されてないだけ?

553 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 09:45:42.54 ID:+RiBlMC+.net]
>>536
2020 / 2・2 = 2020 / 2 * 2 = 2020

554 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 12:48:37.25 ID:3k7MKqlh.net]
>>532
200万以下だと38通り
(並び替えも数えるとその6倍)

>>533
2020は解無し
1010は100万までには解は無い
505は100万までに18個

555 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 12:51:02.88 ID:3k7MKqlh.net]
>>527
n乗して64bitの範囲だとn=2しか発見出来なかった

556 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 20:05:33.33 ID:3k7MKqlh.net]
>>532
C
https://ideone.com/ctjDC0

38個見つけるのに1時間くらいかかりました
38個目 (1661082, 440694, -1671358)

こういうのはC/C++が得意でしょう
他の言語で出来ます? (挑戦)

557 名前:デフォルトの名無しさん [2020/01/04(土) 17:22:50.50 ID:HJ66bOYq.net]
お題
>>514に関連して、F(F(80))の桁数を求めよ。

計算式は簡単だが…

558 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 17:47:47.60 ID:6lKY6ugm.net]
over flow周りはあってるんだかわからん
https://i.imgur.com/PndnV6t.png

559 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 19:01:02.66 ID:hAlxX0tq.net]
Mathematica ?

560 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:28:18.17 ID:rMjoeVI8.net]
お題: 文字列を逆順にしてコピーするreverse関数を定義せよ(既存のライブラリを使ってはならない)



561 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 20:40:17.01 ID:YRTK1M0u.net]
>>544 Ruby

puts 'ABCDEF'.chars.then{|a| a.size.times.map{a.pop}}.join

# => FEDCBA

562 名前:デフォルトの名無しさん [2020/01/04(土) 20:46:16.21 ID:HJ66bOYq.net]
>>544 PowerShell

function reverse($s) {-join $s[-1..-$s.length]}
reverse 文字列を逆順にしてコピーするreverse関数を定義せよ

-- 実行結果 --
よせ義定を数関esreverるすーピコてしに順逆を列字文

563 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 21:12:58.70 ID:AqMdau2S.net]
>>544 Ruby
def reverse( s ); s.chars.inject(:prepend); end

564 名前:デフォルトの名無しさん mailto:sage [2020/01/04(土) 21:13:39.03 ID:rMjoeVI8.net]
>>544 C
https://ideone.com/8mVMpf

565 名前:デフォルトの名無しさん [2020/01/04(土) 21:26:02.66 ID:e7dEja3I.net]
>>544
Java
https://paiza.io/projects/t01pm19B5qJfhk_bOyJXMQ

566 名前:デフォルトの名無しさん [2020/01/05(日) 00:51:01.04 ID:Y4p4/H36.net]
>>544
Kotlin
https://paiza.io/projects/RdcgXqdUDC52BTO0y9n1zw

Kotlin の String には reversed() という文字列順序逆転のための拡張関数が最初からあって紛らわしいので rev() という名前で自作した。

567 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 08:25:52.70 ID:h+ccWvVu.net]
>>532
 {a, b, c} = {-12, -4, 18} {-4, 2, 16} など
>>533
 {a, b, c} = {-6, -2, 9} {-2, 1, 8} など

568 名前:デフォルトの名無しさん [2020/01/05(日) 08:35:04.57 ID:OU8kozEP.net]
>>544 Ruby
def rev(s)
(1..s.size).map{|i|s[-i]}.join
end

569 名前:デフォルトの名無しさん [2020/01/05(日) 11:04:36.67 ID:Z8HxF2cT.net]
>>544 Common Lisp
https://ideone.com/cORf5W
https://ideone.com/NbfBax

570 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 15:25:24.03 ID:+tGOF19X.net]
>>544 Python
def reverse(s):
return s[::-1]



571 名前:デフォルトの名無しさん [2020/01/05(日) 16:01:41.83 ID:8nvrboOv.net]
>>540
こういうのを見ると我々は離散数学についてはほぼ無力と思う。

572 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 17:02:46.74 ID:x729cdax.net]
>>555
勉強しとけ

573 名前:デフォルトの名無しさん [2020/01/05(日) 21:49:56.17 ID:2Fq0AHrI.net]
>>544 R
https://ideone.com/mfvWPO

>>546のPowerShellと違って、U+10000以上の文字が含まれていても正しく逆順にできる。

574 名前:デフォルトの名無しさん [2020/01/05(日) 21:52:10.17 ID:2Fq0AHrI.net]
>>542
仮数部も指数部も間違っている。整数で1の位まで正確に求められるよ。

575 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:31:31.58 ID:h+ccWvVu.net]
>>540 サンクス

>>532 の解
{13, 11, 8}
{15, 9, -4}
{8, 1, -2} * 2
{9, -2, -6} * 2
{16, -6, -15} * 2
{74, -23, -73}
{43, -27, -39} * 2
{171, -75, -166}
{169, 64, -172} * 2
{516, 93, -517}
{414, 385, -504} * 2
{530, 337, -572}
{1098, 939, -1291}
{1290, 171, -1291}
{1626, -957, -1507}
{2251, -712, -2227}
{3107, -587, -3100}
{3299, 1018, -3331}
{3509, -2525, -3004}
{4022, -3163, -3221}
{2673, 1114, -2736} * 2
{13571, -9259, -11948}
{15291, -8419, -14388}
{10102, 674, -10103} * 2
{43943, 28524, -47631}
{23689, -3382, -23666} * 2 など。

576 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:41:01.23 ID:h+ccWvVu.net]
>>533 の解
{8, 1, -2}
{9, -2, -6}
{16, -6, -15}
{43, -27, -39}
{169, 64, -172}
{414, 385, -504}
{530, 337, -572}
{2673, 1114, -2736}
{10102, 674, -10103}
{23689, -3382, -23666}
 ・・・ ・・・
{830541, 220347, -835679} など。

577 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:48:30.69 ID:bLPoA6E7.net]
>>541
C++
https://ideone.com.VJk9QA

倍精度だと微妙に精度が足りないので
擬似4倍精度で計算してみた

4倍精度や多倍長が使える言語やライブラリを使えば一瞬で書けるんだけど

578 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 22:49:34.33 ID:bLPoA6E7.net]

https://ideone.com/VJk9QA
でした

579 名前:デフォルトの名無しさん [2020/01/05(日) 23:29:51.01 ID:2Fq0AHrI.net]
>>562
正解。

Rには多倍長浮動小数点パッケージRmpfrがあるので、120ビット精度での計算をさっと書ける。
多倍長整数パッケージgmpにはフィボナッチ数列の第n項を求める関数があるので、第80項を
自分で求める必要すらない。
https://ideone.com/VcxXIm

C/C++にもlong double型があるので楽勝!と思っていると罠に嵌まる。Visual C++では
long doubleは移植性(単にコンパイルが通るという意味で)のために定義されているだけで、
double精度しかないので使えない。GNU C++ではlong doubleが本当のlong doubleなので使える。
https://ideone.com/3puKYQ

これをVisual C++やGNU Cで実行すると、1の位が2大きい不正確な値が表示されてしまう。
https://ideone.com/Md5qZz

580 名前:デフォルトの名無しさん [2020/01/05(日) 23:41:09.00 ID:2Fq0AHrI.net]
GNU C++にも罠があって、https://ideone.com/3puKYQ はideoneでは結果が正しく
表示されているが、Windows版でコンパイルすると「-0桁」になってしまう。
printfの%Lf書式指定子が何故か正常に機能しないようなので、long longに変換して
%lld書式指定子を使う必要がある。



581 名前:デフォルトの名無しさん mailto:sage [2020/01/05(日) 23:58:45.24 ID:Z3Lsb/Mg.net]
>>562は擬似4倍精度の四則演算やルートがコンパクトにまとまっており参考になるかと思います

logは手抜きですが

582 名前:デフォルトの名無しさん mailto:sage [2020/01/06(月) 00:24:13.90 ID:MKFPBGLf.net]
x87の80bit形式久々に聞いた
intelの失敗仕様

本当のlong doubleって言ったら128bitの事だと思う

583 名前:デフォルトの名無しさん [2020/01/07(火) 12:16:08 ID:lAASQTDH.net]
本当の?

584 名前:デフォルトの名無しさん [2020/01/07(火) 13:02:38.21 ID:PuPIfAOU.net]
大きさと精度が一致しないということでは。
例えば、16ビット整数の加算において255+1で桁あふれが発生するのは、勘弁してほしい。
16ビット整数であれば精度も16ビットあってほしい。

585 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 13:13:00.08 ID:4oL1Xwrc.net]
intelの拡張小数は箱も中身も80bitだぞ
隠れた1bitも隠さないから中身は79bitとも言えるかもしれないけど

586 名前:デフォルトの名無しさん [2020/01/07(火) 13:43:12.96 ID:PuPIfAOU.net]
GCCのlong doubleは128ビットあるから。

587 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:24:41.07 ID:Y9qs9jpB.net]
ひさびさにx87命令を使ってみた
masm形式なのでideoneでは動作しませんが
https://ideone.com/CdzenK

588 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 22:38:44.27 ID:Y9qs9jpB.net]
↑の出力結果

4893806799921043 (4893806799921042 + 0.855469)

丸める前の正確な値は
4893806799921042.8564973677594677....
なので小数第二位まで合っています
80bitでもギリギリって感じ

2進数だと
上位62bitまで正確、下位2bitが計算誤差
ということになります

589 名前:デフォルトの名無しさん mailto:sage [2020/01/07(火) 23:09:32 ID:Y9qs9jpB.net]
https://pc.watch.impress.co.jp/docs/article/toku0101/plan8.htm

590 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 17:55:41.24 ID:E2HYW9Z+.net]
お題
フィボナッチ数列のn番目をF(n)とした時
F(F(F(80)))の下位4桁を求めよ

フィボナッチ数列は以下で定義される数列である
F(1)=1
F(2)=1
F(n)=F(n-2)+F(n-1)



591 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 18:47:53.52 ID:bVQLyL/p.net]
フィフィフィボナッチ数列はお腹いっぱい

592 名前: mailto:sage [2020/01/08(水) 19:48:23.85 ID:npJkZznC.net]
>>571
x87 すごくいいです!私も 9801FA に i487SX をようやく搭載して準備完了です!

593 名前:デフォルトの名無しさん [2020/01/08(水) 20:00:11.84 ID:naqRCa+g.net]
お前は昭和何年からタイムスリップしてきたんだ

594 名前:デフォルトの名無しさん [2020/01/08(水) 20:33:31.36 ID:DEoUiUkq.net]
>>574
R
https://ideone.com/lpnhLq

595 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:16:17.44 ID:E2HYW9Z+.net]
正解

C++
https://ideone.com/iSMABZ

596 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 23:38:33.13 ID:3Vg9kR1l.net]
>>544 Perl5

use feature qw{say signatures};
sub reverse($s) {
 map {substr $s, -$_, 1} 1..length $s;
}
say &reverse('reverse');

597 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 10:41:25.62 ID:lJ/gG0sx.net]
お題:自分用expm1()的なもの。底はe以外でも良い。不正な引数でのエラー処理は
考慮しなくても良い。

598 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 13:20:18.79 ID:KXQq2+DU.net]
目的が高精度なのかSIMDなのか単に出題者が勉強したいだけなのか
もしかしてx87命令を使わせたい?

599 名前:デフォルトの名無しさん [2020/01/10(金) 20:53:23.97 ID:1usNcOvE.net]
>>581
expm1()って何?

600 名前:デフォルトの名無しさん mailto:age [2020/01/10(金) 21:01:53.36 ID:jjOShzcG.net]
エキスペディション・マグニチュードワンのことやろな



601 名前:581 mailto:sage [2020/01/10(金) 22:06:13.03 ID:lJ/gG0sx.net]
>>582
SIMDやx87命令は考えてませんでした。
四則演算とexpm1()以外のライブラリ関数は使用可って事で。
やっぱし無難にテイラー展開で求めるのが楽?

>>583
例えば
ttps://linuxjm.osdn.jp/html/LDP_man-pages/man3/expm1.3.html

602 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 22:10:45.27 ID:lApN4p1F.net]
四則演算も使ったらダメなのかい

603 名前:581 mailto:sage [2020/01/10(金) 22:42:31.47 ID:lJ/gG0sx.net]
>>586
訂正:
四則演算と、「expm1()以外の」ライブラリ関数は使用可

604 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 06:32:12.11 ID:wIXPHQcF.net]
出題者が方法を知りたいだけだよね?
なら質問スレ/宿題スレの方が適切

605 名前:デフォルトの名無しさん [2020/01/11(土) 09:22:26.15 ID:R1f0qLP3.net]
お題
素数番目の素数をスーパー素数と言う。
スーパー素数の最初の100個を求める。

606 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:27:02.77 ID:LQrvWU7L.net]
>>589 Ruby 2.7.0

require 'Prime'
p Prime.take(100).then{|p| Prime.take(p.last).select.with_index{p.include?(-~_2)}}

# => [3, 5, 7, [中略], 3761, 3911]

607 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:31:32.27 ID:LQrvWU7L.net]
typo

# => [3, 5, 11, 17, 31, [中略], 3733, 3761, 3911]

608 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 10:52:09.93 ID:VG9fEjGe.net]
お題
5の倍数の素数を5の倍数素数という
5の倍数素数を全て求めよ

609 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 11:10:43.29 ID:V+Dyph4l.net]
5の倍数の素数ってどういうことですか?
文字通りの意味なら5だけだと思うんですけど

610 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 13:10:43.10 ID:JM9/51Sk.net]
>>544 Perl4

use feature qw{say signatures};
sub rev($s) {
 $s ne '' and substr ($s, -1, 1, '') . rev($s)
}
say rev('string



611 名前:');

てす
[]
[ここ壊れてます]

612 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 13:14:26.71 ID:JM9/51Sk.net]
>>594 Perl5 だった…orz
しかし、このソースの「substr (」のrと(の間のスペース文字を省くと
スレへの書き込みで
HTTP/1.1 403 Forbidden
が起きて書き込めなかったのは謎…

613 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 14:01:21.01 ID:M68szGrA.net]
>>592
echo 5

614 名前:デフォルトの名無しさん [2020/01/11(土) 20:08:39.02 ID:go77StkR.net]
お題
20200111の階乗を素因数分解したとき、すべての因数の積は20200111の階乗だが、
すべての因数の和は何か。

615 名前:デフォルトの名無しさん [2020/01/11(土) 20:55:04.41 ID:r5wulSj/.net]
ナベアツ理論か。

616 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 00:39:46.42 ID:PW2KE/yt.net]
>>595
書き込めないコマンドは、一杯ある。
「ls −l」とか

5ch は、特定の命令によって、表示の見た目を変えることができるから、
単に、表示する文字列に変換するだけじゃなくて、

投稿されたテキストから、命令を抽出したりしているから、
バグりそうなテキストを排除しているのだろう

617 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 10:30:24.93 ID:Cuf7XVQy.net]
>>597
C++
https://ideone.com/30RQZF

618 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 16:28:53.41 ID:Svv4a/Ag.net]
お題: バイナリ―サーチを実装せよ(自分の記憶だけで書かなければならない)

619 名前:デフォルトの名無しさん [2020/01/12(日) 16:52:57.01 ID:qRMFtMw7.net]
>>601
Java
https://paiza.io/projects/y4RxMakkRM6x88qm5GGMvA

620 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 17:33:54.06 ID:kqg5PnqA.net]
>>601 Ruby

def bs(ary, &cond)
  return ary[0] && cond.call(ary[0]) ? ary[0] : ary[1] && cond.call(ary[1]) ? ary[1] : nil if ary.size < 3
  mid = ary.size / 2
  bs(ary[cond.call(ary[mid]) ? 0..mid : mid + 1..-1], &cond)
end

p bs([1,3,5,7,9]){|i| i > 0} # => 1
p bs([1,3,5,7,9]){|i| i > 3} # => 5
p bs([1,3,5,7,9]){|i| i > 9} # => nil



621 名前: mailto:sage [2020/01/12(日) 17:39:35.02 ID:ZvwnN6DP.net]
>>601
C++
https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
std::set<int> の再実装にて、内部にバイナリーサーチを含んでいます

622 名前: mailto:sage [2020/01/12(日) 17:41:03.57 ID:ZvwnN6DP.net]
>>601
>(自分の記憶だけで書かなければならない)
これは重要かつ役に立つ訓練のしかたですね、この前は pthread の mutex と cond が理解できているかどうかを、この縛りのもとにコードを書いて試みました

623 名前:デフォルトの名無しさん mailto:sage [2020/01/12(日) 18:20:53.87 ID:Xff8C4Cf.net]
>(自分の記憶だけで書かなければならない)

お題は全てそういうものだと思ってたが
みんなカンニングして回答してるの?

624 名前:デフォルトの名無しさん [2020/01/12(日) 19:59:45.88 ID:qRMFtMw7.net]
お題1
10ビットの乱数を10個作成して
2進数に変換して出力してください
10ビットに満たない数は0埋めしてください

例)
1101101110
1000100011
0100111001
1110000001
1001001100
0010001111
1111001000
1010110111
1100001001
0100110111

お題2
縦方向、または、横方向に1が連続しているところを調べて
最も1が連続しているところの1の数を出力してください
ビット数や乱数の数が増えてもちょっぱやで処理できるとなお良いです

625 名前:デフォルトの名無しさん [2020/01/12(日) 20:38:11.83 ID:xWFTg64o.net]
>>600
正解。あなたには簡単すぎただろうが。

Rで書いた解答例はPCでは2秒台で実行できたのに、ideoneでは制限時間5秒以内に
終わらなかったので、C++で書いた方を貼る。https://ideone.com/DFDdtr
>>600とほぼ同じだが、掛け算が減る分だけ速いな。

626 名前:デフォルトの名無しさん [2020/01/12(日) 21:27:08.47 ID:xWFTg64o.net]
>>607
R
https://ideone.com/iTihQo

627 名前:デフォルトの名無しさん [2020/01/12(日) 21:44:57.86 ID:qRMFtMw7.net]
>>609
ありがとうございます、そして申し訳ないです

11
11
こうなってたら4と出力してほしくて
連続じゃないですね、隣接といえばよかったかもしれません

縦方向、横方向に1が隣接してる領域のうち最大の領域の1の数を出力して欲しいのです

628 名前:デフォルトの名無しさん [2020/01/12(日) 21:45:02.91 ID:xWFTg64o.net]
>>607
ビット数と乱数の数を別々に指定できるように訂正
https://ideone.com/cYMlMO

629 名前:デフォルトの名無しさん [2020/01/12(日) 21:48:51.97 ID:qRMFtMw7.net]
すみません・・・平にご容赦いただきたく

630 名前:デフォルトの名無しさん [2020/01/12(日) 21:48:57.49 ID:xWFTg64o.net]
>>610
隣接している領域は矩形でなければいけないのか、そうでなくても良いのか。例えば、

1110
0110
0111

は前者なら6個で、後者なら8個になる。



631 名前:デフォルトの名無しさん [2020/01/12(日) 21:52:58.77 ID:qRMFtMw7.net]
>>613
矩形じゃなくていいです8個パターンです!

632 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:22:53 ID:5GjUS2iX.net]
質問なら質問スレに
宿題なら宿題スレに

回答を用意してない出題は禁止

633 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 04:47:28.11 ID:5GjUS2iX.net]
昔ながらのPAINTアルゴリズム
検索すれば色々と出てくるよ

634 名前:デフォルトの名無しさん [2020/01/13(月) 05:51:52.90 ID:9cAJpR6a.net]
>>589 J
smoutput 10 10 $ p: <: p: i.100
実行結果
3 5 11 17 31 41 59 67 83 109
127 157 179 191 211 241 277 283 331 353
367 401 431 461 509 547 563 587 599 617
709 739 773 797 859 877 919 967 991 1031
1063 1087 1153 1171 1201 1217 1297 1409 1433 1447
1471 1499 1523 1597 1621 1669 1723 1741 1787 1823
1847 1913 2027 2063 2081 2099 2221 2269 2341 2351
2381 2417 2477 2549 2609 2647 2683 2719 2749 2803
2897 2909 3001 3019 3067 3109 3169 3229 3259 3299
3319 3407 3469 3517 3559 3593 3637 3733 3761 3911

635 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 09:11:38.57 ID:a0NWv3WS.net]
>>607はAOJにあった島の数の問題じゃないの
そうじゃなくてもぷよぷよは大抵コレでしょ

636 名前:デフォルトの名無しさん [2020/01/13(月) 12:20:35.97 ID:AM9JqLhx.net]
>>607
>>615だそうだが、既にほぼ書いてしまっていたから、完成させたのを載せる。
R
https://ideone.com/eECxW1

637 名前:デフォルトの名無しさん [2020/01/13(月) 14:02:08.92 ID:7B3b+WrT.net]
>>607
Java
https://paiza.io/projects/qWcc4EhNNSHq8Jono0wgNg

回答は一応用意してました
みんなUnionFind大好きだと思ったんだけど

638 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 18:55:55.99 ID:7n+Qr/32.net]
>>566
>>569
8087は、第3の実数フォーマット、一時実数を許している点でユニークである。
このフォーマットは、(符号が1ビット)、指数が15ビットで、有効数字が64ビットである。
このフォーマットで格納されている数値は、拡張精度数と言われている。
単精度および倍精度実数と異なり、一時実数は入力および出力値を表わすことを意図していない。
・・・・(中略)・・・・・
それでは、何故80ビットではなく4倍精度すなわち128ビットを一時実数に使わなかったのか。
1つの理由は、4倍精度は少なくとも性能(速度)が半分になることである。
他の理由は、4倍精度を基本フォーマットとして用いると、中間結果のためにより長いフォーマットが必要となることである。
(後略)

・出典
J.F.パーマー・S.P.モース(著)「8087入門」啓学出版 (1985/Feb) 御牧 義 (訳) 

639 名前:2900円
  第2章 データフォーマット、p.19-20
[]
[ここ壊れてます]

640 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:02:27.52 ID:7n+Qr/32.net]
John F. Palmer, Ph.D. は8087の設計者、
Stephen P. Morse, Ph.D. は8086の設計者だそうな。



641 名前:デフォルトの名無しさん mailto:sage [2020/01/13(月) 19:38:23.04 ID:cBNIohlK.net]
x87で遊んでた頃は
将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど
まさか単精度や半精度の時代になるとは

642 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 21:06:38.50 ID:vjAz2zAO.net]
>>581
AVX2 & FMA で作ってみました
https://ideone.com/j44H0T

範囲チェックはしてません

643 名前:デフォルトの名無しさん mailto:sage [2020/01/14(火) 21:13:25.69 ID:vjAz2zAO.net]
20命令で4個のdoubleのexpm1の計算が出来ます

8パラにしてレイテンシを隠蔽すれば
1個あたり2.5クロックくらい

644 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 12:05:09.83 ID:z1LU+PP1.net]
将来、行列演算もFPU化されると、逆行列の桁落ちが問題になるだろうな・・・・
それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね?

645 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 13:12:03.91 ID:BnAK3ul/.net]
思想がどんなに優れてても使われなきゃしょうがない

レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし
メモリに80bit保存するのも使いにくい

互換性の問題もあって
コンパイラや最適化で値がかわってしまうのも都合が悪い
だから演算にx87命令を使ったとしても内部64bit精度がデフォ

x87全盛期に作られたSuperPIも64bit精度の演算を使ってる
80bit精度で計算すれば速度アップ出来るにも関わらず

646 名前:デフォルトの名無しさん [2020/01/15(水) 17:38:16 ID:xp2qVCg5.net]
>>589 Ruby
require 'prime'
a=Prime.take(100)
p ([0]+Prime.take(a.last)).values_at(*a)

647 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 21:04:20.76 ID:/kpg6gtq.net]
お題:
9つの物がある。
重さが20以下で価値の合計が最大になる組み合わせを求めなさい。
(Part7から再出)

[重さ, 価値]

[
[3, 5],
[5, 6],
[6, 3],
[3, 5],
[5, 9],
[2, 1],
[7, 5],
[4, 6],
[8, 3],
]

648 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 21:18:06.99 ID:1ZW9vAE3.net]
ナップサック問題か

649 名前:デフォルトの名無しさん mailto:sage [2020/01/15(水) 21:27:46 ID:woCrNz65.net]
重さ < 価値
となる物を集めると丁度重さが20だから
これが解

650 名前:デフォルトの名無しさん [2020/01/16(Thu) 21:02:25 ID:ZS18thyn.net]
【お題】以下の31個の数の下6桁を求めよ。

20200101の1, 2, 3, ..., 20200101乗の総和
20200102の1, 2, 3, ..., 20200102乗の総和
20200103の1, 2, 3, ..., 20200103乗の総和
 :
20200131の1, 2, 3, ..., 20200131乗の総和



651 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 06:54:23.06 ID:bFwt3c1k.net]
>>626
逆行列の計算は避けた方がいいってえらいひとがゆってた
ttps://www.kyoritsu-pub.co.jp/bookdetail/9784320013438

652 名前:デフォルトの名無しさん [2020/01/17(金) 12:14:19.25 ID:onsz9c/m.net]
>>629
16, 7: 0 0 1 0 0 1 0 0 1
17, 9: 0 0 0 0 0 1 1 0 1
18, 26: 1 1 0 1 1 1 0 0 0
19, 27: 1 1 0 0 1 1 0 1 0
20, 31: 1 1 0 1 1 0 0 1 0

653 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 18:26:22.50 ID:KcAYJrW8.net]
>>632
C++
https://ideone.com/A0BeSs

654 名前:デフォルトの名無しさん [2020/01/17(金) 20:33:32 ID:VgNyCBhj.net]
>>635
正解。

Rによる2種類の解答例
(1) https://ideone.com/7B7IhY
(2) https://ideone.com/Y8jx8o

(1)は等比数列の総和の公式を利用しているので分かりやすいが、途中計算の最大値が
(20200130 * 1000000 - 1) ^ 2 ≒ 2 ^ 88.4 になるかも知れず、64ビット整数の
範囲に収まらないため、Cでは手軽に書けない。Rでは多倍長整数パッケージgmpを
使って書ける。

(2)は部分和をちまちま足していく方式で、途中計算の最大値が (1000000 - 1) ^ 2
≒ 2 ^ 39.9 で済むため、Cでも64ビット整数で計算できる。Rでも多倍長計算が必要な
(1)より速い (正味の実行時間が(1)は0.016秒、(2)は0.004秒)。

655 名前:デフォルトの名無しさん mailto:sage [2020/01/17(金) 21:12:46 ID:KcAYJrW8.net]
お題

f(n) = n^1 + n^2 + ... + n^n の時
f^20200117 (20200117) の下9桁を求めよ

※ f^n (x) = f(f(f(....f(x)))...) 【fがn個】

656 名前:デフォルトの名無しさん [2020/01/18(土) 00:45:25.84 ID:meR2Lc88.net]
>>629
Java
https://paiza.io/projects/Qbx2Q0ZIlXetvF51BwoF_w

657 名前:デフォルトの名無しさん [2020/01/18(土) 05:21:08 ID:et7QELfi.net]
>>589 octave

a=primes(5000);
a(a(1:100))

658 名前:デフォルトの名無しさん [2020/01/18(土) 22:25:47 ID:uIn7pF9I.net]
>>637
https://ideone.com/WvoPeq

Rでは時間が掛かりすぎるのでコンパイラ言語を使うが、C/C++だと出題者と同じで
つまらないから、Fortranで書いてみた。nが奇数の場合にしか求められないし、
合っているかどうか分からない。

659 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:02:35 ID:/9q/+LXn.net]
>>640
正解

C++
https://ideone.com/09pUlf

312500はどうやって求めました?

660 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:12:37.20 ID:/9q/+LXn.net]
>>641だと偶数でもOKです



661 名前:デフォルトの名無しさん [2020/01/18(土) 23:31:05.83 ID:uIn7pF9I.net]
>>641
時間は掛かるがRで下9桁の値を順々にいくつか求めて配列rに記録してから、
プロンプトで any(duplicated(r)) や which(duplicated(r)) と入力して
周期性を見つけただけ。理論的な根拠はない。

662 名前:デフォルトの名無しさん mailto:sage [2020/01/18(土) 23:34:38.18 ID:/9q/+LXn.net]
thx

周期が既知なら
mod(20200117, 312500) 回だけで済むのでは?

663 名前:デフォルトの名無しさん [2020/01/18(土) 23:45:49 ID:uIn7pF9I.net]
>>644
まあそうだが、それではあまりにもマジックナンバーすぎるので、周期が本当に
312500であるかチェックするコードを31行目に念のため入れた。周期性が
確認できなければ、STOP Errorと表示してプログラムを中断する。

664 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 00:38:02.65 ID:msO9WicL.net]
【お題】

無向グラフGが入力として与えられ、Gがサイクルを持てば、
Gの中の最小サイクルの経路とそのコストを出力するプログラムをかけ

*条件
・グラフサイズ(頂点数)は10頂点程度(任意でよい)
・各辺の重みはランダムとする
・入力は隣接行列表現とする

665 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:33:00.83 ID:r8dbXOf2.net]
お題: 文字列aの真ん中に文字列bを挿入する関数chopを定義しなさい

666 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:40:19 ID:dOSa/ZjO.net]
>>647 Ruby

def chop(str); str.tap{|s| s[s.size / 2, 0] = ?b}; end

puts chop('hogefuga') # => hogebfuga

667 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 08:42:44 ID:dOSa/ZjO.net]
問題誤読してた

def chop(a, b)
  a.tap{|s| s[s.size / 2, 0] = b}
end

puts chop('hogehoge', 'HOGE') # => hogeHOGEhoge

668 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 10:33:55 ID:9NcxNk8h.net]
お題 (>>346)
1〜1000 の整数の内、3の倍数または5の倍数であるものだけを選んで、その合計を求めよ。

669 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 10:37:40 ID:9NcxNk8h.net]
3の倍数
 [1000/3] = 333個
 S(3) = 3+6+9+・・・・+999 = 333 * (3+999)/2 = 166833,

5の倍数
 [1000/5] = 200個
 S(5) = 5+10+15+・・・・+1000 = 200 * (5+1000)/2 = 100500,

3の倍数かつ5の倍数 (15の倍数)
 [1000/15] = 66個
 S(15) = 15+30+45+・・・・+990 = 66

670 名前: * (15+990)/2 = 33165,

∴ S(3) + S(5) - S(15) = 100500 + 166833 - 33165 = 234168.
[]
[ここ壊れてます]



671 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 13:04:07.51 ID:CR4NZ4aH.net]
15の倍数含めないんじゃないの?
https://paiza.io/projects/EeMOFbswluii2y-uytbeqA

672 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 18:23:22 ID:t01ujcAX.net]
>>629 Perl5
use List::Util qw{max};
$W = 20;
$n = @wv = ([3, 5],[5, 6],[6, 3],[3, 5],[5, 9],[2, 1],[7, 5],[4, 6],[8, 3]);
@w = map{$$_[0]} @wv;
@v = map{$$_[1]} @wv;
$wt[$n][$_] = 0 for 0..$W;
for ($i = $n - 1; $i >= 0; $i--) {
 for $j (0..$W) {
  $ws = $wt[$i + 1][$j];
  $ws = max($wt[$i + 1][$j - $w[$i]] + $v[$i], $ws) if $j >= $w[$i];
  $wt[$i][$j] = $ws;
 }
}
print "価値合計最大: $wt[0][$W]\n";
$j = $W;
for $i (0..$n-1) {
 $ws = $wt[$i][$j];
 if ($wt[$i + 1][$j] != $ws) {
  print "[$w[$i], $v[$i]] ";
  $ws -= $v[$i];
  for (; 0 <= $j; $j--) { last if $wt[$i + 1][$j] == $ws; }
 }
}

$ perl 16_629_nsp_dp.pl
価値合計最大: 31
[3, 5]
[5, 6]
[3, 5]
[5, 9]
[4, 6]

673 名前:デフォルトの名無しさん [2020/01/19(日) 20:22:32 ID:MJwntUeD.net]
>>652
PowerShellには論理XOR演算子があるので簡潔に書けるな。

(1..1000 |? {$_ % 3 -xor $_ % 5} | measure -sum).sum

-- 実行結果 --
201003

674 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 21:28:24 ID:RfLx+x9F.net]
>>652
なぜそう思った?

675 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 21:32:35 ID:CR4NZ4aH.net]
>>655
だけ と強調してたから15を含めない意図があったのかと思った

676 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 21:35:30 ID:RrNuywTU.net]
「3の倍数または5の倍数であるものだけ」という文言をそう理解するのは宇宙でお前だけだと思う

677 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 22:24:05 ID:RfLx+x9F.net]
妊娠してるか体が不自由な人だけ使ってください

678 名前:デフォルトの名無しさん mailto:sage [2020/01/19(日) 23:13:47.04 ID:xkwic4JQ.net]
>>658
妊娠してる障害者はすわれないやんけ!

679 名前:デフォルトの名無しさん [2020/01/20(月) 07:26:08 ID:MadDRkAO.net]
日本語の選択が排他的かどうかは状況しだいだから難しいところだと思うけどね
レストランで「コーヒーか紅茶が付きます」と言えばどちらか一方でしょ
ケースバイケース

こう解釈したらこういうプログラムになるというふうに思考を広げることはできるっしょ

680 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 08:18:28 ID:ItoFGwWk.net]
それは選ぶ条件ではなく、選ぶ個数の問題

>>346は全て選ぶのが暗黙の了解
>>660は選ぶのが1個であるのが暗黙の了解

>>346も全てとは書いてないから
1個選ぶのか、任意の個数選ぶのか、全ての選び方の場合を求めるのか、などが考えられるのかも
誤解の可能性があるなら「全て選ぶ」と書かないとね



681 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 10:07:25.78 ID:DzK/Jy6Q.net]
0個選んで答えは0
コンピュータ言語読み書きしてたらこういう
発想が自然に感じられるが
日常言語の世界ではナンセンス杉

682 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 14:10:00.56 ID:gT/yNp+O.net]
>651 のようにした
common lisp
(loop for i from 1 to 1000 when (= (* (mod i 3) (mod i 5)) 0) sum i)
234168

683 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 15:41:16.18 ID:/G9h8LiI.net]
>>651 Ruby
def si(n,m); n.step(m,n).inject(:+); end

p n3 = si( 3, 1000 ) #=> 166833
p n5 = si( 5, 1000 ) #=> 100500
p n15 = si( 15, 1000 ) #=> 33165
p n3 + n5 - 2 * n15 #=> 201003

684 名前:デフォルトの名無しさん [2020/01/20(月) 21:4 ]
[ここ壊れてます]

685 名前:6:25.06 ID:eV9B9Eib.net mailto: >>629
Rで全探索
https://ideone.com/XDwD7C

物が9個しかないので512通りの組み合わせを全探索してもすぐ終わるし、
上のプログラムの2番目の問題のように、合計価値が最大となる組み合わせが
複数ある場合でもすべて挙げられるし、重さが小数や大きな整数の場合でも
同様に解けるから、全探索が時間的に可能なら全探索の方が良いんじゃないか?
[]
[ここ壊れてます]

686 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 22:42:22 ID:vyZs8dgX.net]
>>665
問題の条件によって適した解法が変わる。
たとえば個数が高々十数個程度であっても、
個々の重さや価値の範囲が広く、詰め込める荷物のキャパが大きいとか、
整数でない場合は、動的計画法だと解けないが、ナイーブな解法なら解ける。
逆に個数が大きくて、個々の重さや価値、キャパがそれほど大きくない整数だと、
ナイーブな解法では時間がかかりすぎて解けないが、
動的計画法だと短時間で解ける。
条件によって適した解法を選択する。
>>653 は動的計画法の復習と最適解に至る経路を逆にたどる復習のつもりで書いのよん。

687 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 23:01:52 ID:kEPXORSp.net]
問題に適した解法なら>>631が最強

688 名前:デフォルトの名無しさん mailto:sage [2020/01/20(月) 23:10:30 ID:vyZs8dgX.net]
(´・ω・`)「・・・・・」

689 名前:デフォルトの名無しさん [2020/01/21(火) 14:48:52 ID:/dftakVp.net]
>>650
Kotlin script

KotlinもBooleanのxor使えたよ。こういう場合は優先順位の問題で括弧が必要になるけどね。

println((1..1000).filter { (it % 3 == 0) xor (it % 5 == 0) }.sum())

690 名前:デフォルトの名無しさん mailto:age [2020/01/21(火) 16:44:59 ID:TMO7rdDn.net]
!=でいんじゃ、、、



691 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 21:56:37.25 ID:q8k+mYw1.net]
["A -> B" , "A -> D", "B -> E", "D -> E"]


A
B
E
D
E

このようにツリー状に表現する際に計算量が少ない書き出し方ってどうなりますか。言語問いません。

692 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 21:57:01.85 ID:q8k+mYw1.net]
スペースきえた…

693 名前:デフォルトの名無しさん mailto:sage [2020/01/21(火) 21:58:36.68 ID:5H3OckH4.net]
D -> B のようなループできるかもね

694 名前:デフォルトの名無しさん [2020/01/22(水) 03:28:09 ID:HNO/xGn/.net]
>>670
それを言っちゃあおしめえよ

695 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 10:29:09 ID:Oj6zQLXh.net]
>>671
データ構造がツリーじゃないのにツリー形式で表示するのは効率悪くない?

同じデータを何度も表示しちゃう

696 名前:デフォルトの名無しさん [2020/01/22(水) 11:00:25 ID:8VKZzbv1.net]
>>671
dot

697 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 19:16:47 ID:0ayd3B3Q.net]
お題

>>671 において
入力文字列が20個以内で出力の行数が最大となる
入力文字列(を1個)を求めよ

698 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 19:50:15 ID:k+w34kNu.net]
["A -> B" , "B -> A]
これで循環参照のチェックいれるコードがない再帰っぽい感じなら無限に出力だ

699 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 19:55:17 ID:F1N+c+gr.net]
閉路と多重辺は無しで
辺の無い点も表現出来ないので無し

700 名前:デフォルトの名無しさん [2020/01/22(水) 20:19:19 ID:3jquT0bn.net]
>>677
20個ならループしない限りは内容が何だろうが20行にしかならないのでは?



701 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 20:23:02 ID:1i745hKi.net]
最大は21行だよ

702 名前:デフォルトの名無しさん [2020/01/22(水) 20:40:06 ID:3jquT0bn.net]
あー。そうか。21だね。

703 名前:デフォルトの名無しさん mailto:sage [2020/01/22(水) 20:43:02 ID:F1N+c+gr.net]
>>671に "E -> C" を加えると?

704 名前:デフォルトの名無しさん [2020/01/22(水) 21:13:37 ID:pXdYyKNl.net]
>>671
Java
https://paiza.io/projects/zVLPWkZWdFIgv8aDQjIn0Q

705 名前:デフォルトの名無しさん [2020/01/23(Thu) 01:12:44 ID:LqZxq9h8.net]
>>683
分岐か。そうすれば増えるね。

706 名前:デフォルトの名無しさん mailto:sage [2020/01/23(Thu) 18:13:14 ID:AdSJ3UeH.net]
[] 0行
["A -> B"] 2行
["A -> C", "B -> C"] 4行
["A -> D", "B -> D", "C -> D"] 6行
["A -> D", "B -> D", "C -> D", "D -> E"] 9行

707 名前:デフォルトの名無しさん mailto:sage [2020/01/23(Thu) 18:45:00 ID:AdSJ3UeH.net]
n≧12 の時、以下を四捨五入した行数になるかな

偶数
4 * exp(n*0.24060591252980172375)

奇数
4.0137530980362538594 * exp(n*0.24060591252980172375)

708 名前:デフォルトの名無しさん mailto:sage [2020/01/24(金) 23:55:14 ID:qxZ+oily.net]
>>671 Perl5 (goto 関数を使っていますが、perl5ではこれはcontinuationです)

use feature qw{current_sub signatures};
no warnings 'experimental::signatures';
@sx = (A => B, A => D, B => E, D => E);
sub {
 if (@_) {
  ($a, $b) = (shift, shift);
  push @lx, $a unless $h{$a};
  push @{$h{$a}}, $b;
  $r{$b}{$a} = 1;
  goto __SUB__;
 }
}->(@sx);
@ax = grep{! $r{$_}} @lx;
sub ($a, $d) {
 print "$d$a\n";
 __SUB__->($b, "_$d") while $b = shift @{$h{$a}};
}->($_, '') for @ax;

実行結果
$ perl 16_671.pl
A
_B
__E
_D
__E

709 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 02:34:16 ID:XZtTnZKV.net]
>>646
サンプルデータも考えて、回答も作れと言われると
めんどくさすぎてスルーされるんじゃまいか

710 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 02:36:37 ID:XZtTnZKV.net]
つか、無向グラフの最小サイクル検出って
いいアルゴリズムあったっけ



711 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 06:09:52 ID:Fgzm1LAC.net]
最小サイクルとは?
コストが最小?通る辺の数が最小?

コストとは?
通る辺の重みの和?
点のコストはゼロ?

出題者しかわからない前提が色々とあるお題

712 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 06:22:55 ID:Fgzm1LAC.net]
>>688
gotoを使っちゃいけないローカルルールとかあるの?

713 名前:デフォルトの名無しさん [2020/01/25(土) 08:11:44 ID:O6wUvbi6.net]
tsort(1) ?

714 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 10:35:48 ID:ZrgQFiPc.net]
>>692
そんなルールはないけれど、制御構造の構文の代わりに安直に
goto分岐を使ったヘッポココードではなくて、perl5のgoto 関数名構文が持つ
continuationの機能を使って、動的環境を維持したまま末尾再帰的な
loopを表現したと言いたかったのよ

715 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 10:38:39 ID:icKJvqvk.net]
なるほど
お前はなかなかやるじゃねえか

716 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 11:05:32.17 ID:mLh1vP4R.net]
お題

.bash_history には、入力したコマンドが、1行ずつ追記されていくが、
同じコマンドが出てくると面倒なので、古い(上にある)方をすべて消してください

入力
5
3
1
4
2
5
3
4
5

出力
1
2
3
4
5

717 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 11:14:27.65 ID:wxh/zNmo.net]
>>696 Ruby

puts gets(p).split.reverse.uniq.reverse

# =>
1
2
3
4
5

718 名前:デフォルトの名無しさん [2020/01/25(土) 12:48:36.66 ID:dgvYVRBF.net]
>>696
Java
https://paiza.io/projects/UZnyFQFRa_Pad3yFKG-e9w

719 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 13:56:27.24 ID:yjSryLut.net]
>>696 Perl5

$h{$_} = $. while <>;
print for sort{$h{$a} <=> $h{$b}} keys %h;

実行結果
~ $ cat .bash_history
5
3
1
4
2
5
3
4
5
~ $ perl 16_696.pl .bash_history
1
2
3
4
5

720 名前:デフォルトの名無しさん [2020/01/25(土) 18:59:55 ID:xXb4DuHd.net]
>>696
https://ideone.com/PtMPWn
RのuniqueにはfromLastオプションがあるので、revによる前後処理が不要。



721 名前:デフォルトの名無しさん [2020/01/25(土) 19:19:17 ID:i4ScOGkF.net]
>>696 Ruby

a=STDIN.readlines
puts a.select.with_index{|v,i| i==a.rindex(v)}.join

722 名前:デフォルトの名無しさん mailto:sage [2020/01/25(土) 19:26:44 ID:eYyvJiZZ.net]
>>696 .bashrc
HISTCONTROL=erasedups:ignorespace
ついでに
HISTIGNORE="history*"

723 名前:デフォルトの名無しさん [2020/01/25(土) 20:22:19 ID:J6xo1Vbp.net]
>>696 Emacs Lisp
(with-temp-buffer-window #1="*odai-pt16-696*" nil nil
  (switch-to-buffer #1#)
  (insert-file-contents "~/.bash_history")
  (delete-duplicate-lines (point-min) (point-max) t))

724 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 00:01:21 ID:4S7WZkam.net]
>>701 ナイス

725 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 00:02:23 ID:4S7WZkam.net]
>>704 アンカーしくった
>>702 ナイスはこっちだた

726 名前:696 mailto:sage [2020/01/26(日) 00:35:54.22 ID:2jcz6vHU.net]
>>702
スレ違いで、スマンが、

erasedups で、現在の行と一致する履歴を、保存前にすべて削除するけど、
WSL, Ubuntu 18.04, bash では、削除されなかった!

これは難しい

tmuxとかの仮想端末で複数の画面間で、Bashのコマンド履歴を共有すると、
同じ履歴が何度も記録されてしまう問題を解決する
https://piro.sa@kura.ne.jp/latest/blosxom/webtech/2018-03-04_history-nodup-with-tmux.htm

727 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 01:20:33.64 ID:4S7WZkam.net]
>>706
モチツケ

728 名前:696 mailto:sage [2020/01/26(日) 01:39:31.40 ID:2jcz6vHU.net]
history の仕組みが難しいから、

定期的に、ここのスクリプトで、履歴ファイルを上書きした方が良いかも

729 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 01:43:44.81 ID:HPdacZve.net]
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・

730 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 02:08:32 ID:4S7WZkam.net]
>>709
スレチ

>>708
bashから.bash_profileの重複をなくすプログラムを実行しても
logoutするときにbashが記憶しているコマンド履歴を.bash_profileに
上書きしちゃって、元の木阿弥になるんジャマイカ



731 名前:696 mailto:sage [2020/01/26(日) 05:19:41 ID:2jcz6vHU.net]
>>710

>>706
のサイトに書いてあるけど、

.bash_history から重複を排除して、上書きする

次に、history -c && history -r

-c で、メモリ上のコマンド履歴を削除して、
-r で、履歴ファイルからメモリへ、コマンド履歴を読み込む

まだ、試してないけど

732 名前:696 mailto:sage [2020/01/26(日) 06:05:44 ID:2jcz6vHU.net]
>>696
Ruby で作った。
コマンドは「ruby script.rb 入力ファイル名」

# ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ary = ARGF.readlines # 1行ずつ配列に入れる

# ! が付く破壊的メソッドは、メソッドチェーンしない!
ary.reverse!
ary.uniq! # 連続していないものも削除する
ary.reverse! # 元に戻す

print ary.join

733 名前:696 mailto:sage [2020/01/26(日) 06:21:48 ID:2jcz6vHU.net]
>>711
の方

734 名前:法で、.bash_history から重複を排除できました! []
[ここ壊れてます]

735 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 09:38:26 ID:6CyPsFJq.net]
お題: 入力された整数を因数分解し、因数の数だけ「どんだけぇ〜♪」と表示せよ

in < 24
因数分解: 2 2 2 3
out > どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪

736 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 10:24:47.39 ID:mBsLdcGX.net]
>>709

121 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v)[] 投稿日:2020/01/25(土) 15:52:45.46 ID:WZ3Oswhu0
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・

737 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 10:35:06.75 ID:OyPCa8uu.net]
>>714 Ruby

puts "どんだけぇ〜♪\n"*~-`factor`.split.size

738 名前:デフォルトの名無しさん [2020/01/26(日) 11:45:57 ID:pipfilQo.net]
>>714
Java
https://paiza.io/projects/xxDf_vUHslqz8TQt3YzIgg

739 名前:蟻人間 mailto:sage [2020/01/26(日) 15:31:19.81 ID:QR2U0M8L.net]
お題: どこかの国に競馬があった。そこの競馬場のルールでは馬券一枚に対して単勝の馬一頭しか選べない。
その日の各ゲームのそれぞれの出場馬について、名前と勝率とオッズが掲示されている。

【今日の競馬】
ゲーム1:
馬A, 0.5, 2.0
馬B, 0.8, 1.2
馬C, 0.9, 0.2
ゲーム2:
馬D, 0.3, 4.0
馬E, 0.5, 3.0
馬F, 0.8, 1.4

予算50,000円で獲得期待金額が最大になるように馬券を購入せよ。馬券の購入において、小数点以下は切り捨てとし、馬券には税金が掛からないものと仮定する。

740 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 15:44:50.09 ID:uQg9mh+n.net]
勝率の和が1を越えてるけど勝率って言うのは勝つ確率のことではなくて何かしらの競馬用語なのか?



741 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/01/26(日) 15:46:20 ID:TOQ25Lx5.net]
ここでは、払戻金の倍率(賭けた金が何倍になって払い戻されるか)のことをオッズと呼ぶことにする。払戻金は小数点以下切り捨てとする。

742 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 15:47:57 ID:uQg9mh+n.net]
てよく見たらいつもの糞コテやん
解散

743 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/01/26(日) 15:55:46 ID:QR2U0M8L.net]
>>719
馬の勝率はこれまでのレースで一着になった確率。

744 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 16:14:00 ID:jQnb27FW.net]
勝つ確率がわからないなら期待値もわからない
普通は買わないのが一番

745 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 16:45:22.64 ID:jQnb27FW.net]
オッズ0.2って何?

746 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 17:18:30.67 ID:aRFw4TjA.net]
杜撰なお題だなw

747 名前:蟻人間 mailto:sage [2020/01/26(日) 17:19:13.36 ID:QR2U0M8L.net]
>>724
勝つと20%戻ってくるという意味。

748 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 17:23:34.39 ID:uQg9mh+n.net]
100円の馬券が当たるとなんと20円に!

749 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:27:58.48 ID:jQnb27FW.net]
>>718
ちゃんとしたお題にするつもりが無いなら取り下げて

750 名前:蟻人間 mailto:sage [2020/01/26(日) 18:40:41.46 ID:TOQ25Lx5.net]
>>718 >>728
取り下げます。もっと良いお題を考えて下さい。



751 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 18:56:39.39 ID:OTxXTlwF.net]
>>714

初心者です
JavaScriptです

let n = 24;
const factors = [];

for(let i=2;i<=Math.floor(n/2);i++){
if(n % i !== 0) continue;
for(;;) {
n /= i;
factors.push(i);
if(n % i !== 0) break;
}
}

for(let i=0; i<factors.length; i++) {
console.log('どんだけぇ〜♪')
}

って感じに書いたのですがどうも外側のループで i = 3 以上が実行されないらしく困っています
もしかしたら初学者の自分にもできるかもしれないと思い取り組んでみたのですが…
もしどなたかお知恵をお貸しくだされば嬉しいです

752 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:03:07.14 ID:uQg9mh+n.net]
>>730
for(let i=2;i<=Math.floor(n/2);i++){

const sup = Math.sqrt(n);
for(let i=2;i<=sup;i++){

753 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:09:59 ID:OTxXTlwF.net]
>>731
ありがとうございます!動きました
何かとんでもない思い違いをしていたみたいで恥ずかしい…

754 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:18:27 ID:9QNAjmQu.net]
n % i !== 0

755 名前:デフォルトの名無しさん [2020/01/26(日) 19:23:55 ID:pipfilQo.net]
>>729
ビルの回数Nを引数として受け取って次の問題を解くプログラムを作ってください

N階建てのビルのある階から卵を落とします。
卵はある階よりも低ければ割れることはなく、ある階よりも高いと割れてしまう。
今、あなたは卵を2つ持っています。
卵が何階で割れるかを調べるもっとも効率のよい方法は何ですか?
そして、その方法で必要な卵を落とす回数は最大で何回ですか?

756 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:26:53 ID:TCoNMy8F.net]
2分探索じゃだめか?

757 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:40:43.12 ID:yXTxN+fl.net]
>>714
C++ イデオン揚げるの面倒なのでべた書きしておくわ。
半月ぶり位にコード書いたけど、やはり良いね。

#include <iostream>
#include <cstdint>

int main() {
std::uintmax_t N = 24;
while (std::cin >> N) {
for (std::uintmax_t i = 2; i <= N; i++) {
while (N % i == 0 && N != 0) {
N /= i;
std::cout <<i<< ":どんだけー。" << std::endl;
}
}
std::cout << std::endl;
}

return 0;

}

758 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:46:17 ID:3yHBwxN6.net]
>>734
効率
とは?

落とす回数の平均?
落とす回数の最大?
階を上がる回数の平均?
階を上がる回数の最大?
他?

759 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 19:50:34 ID:3yHBwxN6.net]
卵を使う個数

ってのもある
これだとリニア検索で1個使用でつまらん問題になるけど

760 名前:デフォルトの名無しさん [2020/01/26(日) 20:01:47.72 ID:vOa1pk8h.net]
>>714
R
https://ideone.com/i25i3M



761 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 20:15:04 ID:yXTxN+fl.net]
>>734
プログラミング言語・日本語でいうと、
2階から落としていって、割れるまで二階ずつ上っていく。
割れたら一階下りて割れるか確認する。
基本的にそれだけ。

762 名前:デフォルトの名無しさん [2020/01/26(日) 20:16:59 ID:pipfilQo.net]
>>735
二分探索だとタマゴが割れて調べられないケースがでてくるんよー

763 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 20:22:08.04 ID:OTxXTlwF.net]
>>731さんの指摘も踏まえ>>730のコードを以下のように修正してみました
JavaScriptです、念のため…

let n = 24
const sup = Math.sqrt(n);

for(let i=2;i<=sup;i++) {
if(n % i !== 0) continue;
while(n % i === 0) {
n /= i;
console.log('どんだけぇ〜♪');
}
}

ここはこうした方がいい等あれば教えていただけると幸いです

764 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 20:28:47 ID:3yHBwxN6.net]
>>734
1階は必ず割れない
N階は必ず割れる
という設定とする

卵を落とす最大回数をa回とすると
N≦(a^2 + a + 4)*0.5
までは調べられる

765 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 20:30:52 ID:yXTxN+fl.net]
>>742
後学のために教えてほしいんだが、なんでnをsqrtしてsup作ってるんだい?

766 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 20:34:49 ID:3yHBwxN6.net]
>>742
n/= i
を実行する度にsupの値を減らせる

最後に残ったnが1じゃない場合
もう1回文字列を表示する必要がある

767 名前:730 mailto:sage [2020/01/26(日) 21:16:56 ID:OTxXTlwF.net]
>>744
そこは731さんの指摘のままに書いて深く考えていませんでしたが
745さんの言うようにsupの値を減らせるというところにヒントがありそうですね
再帰的?なやりかたになるのかな…うーんわからん

>>745
上については上述の通りまだわかりませんが
下は、小さい順にしらみつぶしで割れるだけ割っていっているのでおっしゃるような結果にはならないのではと考えるのですがどうでしょうか

768 名前:デフォルトの名無しさん [2020/01/26(日) 21:23:54.19 ID:pipfilQo.net]
>>746
nに3とかを入れてみると最後の表示については確認できるかと

割り切れたときはiはそのまま
割り切れなかったらiを+1
ループでできるはず

769 名前:730 mailto:sage [2020/01/26(日) 21:28:27.08 ID:OTxXTlwF.net]
>>747
確認しました…>最後の表示
ちゃんと自分で調べないとダメですね
ちょっと直してみます

770 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 22:44:40.59 ID:2jcz6vHU.net]
>>734
このお題は、どこかで見た

VBScript のスレか何かで、ピッコロ大魔王が出したクイズじゃないの?w



771 名前:デフォルトの名無しさん mailto:sage [2020/01/26(日) 22:55:24 ID:2jcz6vHU.net]
>>744
素数かどうかなど、素因数分解する際、平方根まで調べれば見つかるから

例えば、a, b が素数で、a < b の時、
a * b = 7 * 11 = 77 なら、√77 = 8.8 で、aは、9 以下で必ず見つかる

つまり、
平方根よりも小さいa * 平方根よりも大きいb = 77

772 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/01/26(日) 23:02:50 ID:QR2U0M8L.net]
その辺は数学の整数論を参照あれ。

773 名前:デフォルトの名無しさん [2020/01/26(日) 23:07:17 ID:pipfilQo.net]
>>749
ネタ元はグーグルの入社試験
ググったら解法もわかる
プログラムで解いてる人は少ないからプログラミング能力を測るのに適当かと

774 名前:デフォルトの名無しさん [2020/01/26(日) 23:18:06 ID:pipfilQo.net]
お題
ある長方形の面積Sが与えられたとき
短い方の辺の長さが最も長くなるときの縦の長さと横の長さを出力してください

775 名前:蟻人間 mailto:sage [2020/01/26(日) 23:29:25.48 ID:QR2U0M8L.net]
>>753
=sqrt(S)

776 名前:デフォルトの名無しさん mailto:age [2020/01/26(日) 23:29:57.26 ID:pipfilQo.net]
>>751
掛け算の対称性は小学校の算数で習うので
整数論とかそんな難しい話は必要ないんじゃ……

777 名前:デフォルトの名無しさん mailto:age [2020/01/26(日) 23:40:40 ID:pipfilQo.net]
>>754
正解
素因数分解もそうだしグーグルの問題もそういうこと

778 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 00:03:50 ID:0SHKI7y8.net]
くだらなすぎる

779 名前:デフォルトの名無しさん [2020/01/27(月) 06:18:43 ID:rJ1Bl2Oz.net]
>>714 Ruby

require 'prime'
n=24
Prime.prime_division(n).each{|_,k| puts ["どんだけぇ〜♪"]*k}

780 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 07:34:21 ID:ZyjcNjD+.net]
出題者には回答者からのお題の疑問には答えない主義なの?

「効率」とは何か聞かれてなかった?



781 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 08:27:54 ID:ZyjcNjD+.net]
パズル問題は曖昧性なく出題しようよ
解釈で全く違う問題になる

782 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:13:37 ID:iRmt59/C.net]
文章の読解も問題に含まれてるのでうざ絡みで答え教えてもらおうとするのは卑怯

783 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:22:09 ID:7flpRMwp.net]
それは問題が十分よくできているときにのみ有効な論であって、
例えば賭け事のオッズとして1未満の値を設定してくるような阿呆がいた場合にはそれ相応の質疑が必要

784 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:31:51 ID:2EkFM6ia.net]
>>761
この分野では正確に、曖昧性なく書くことが強く求められる

785 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:32:00 ID:iRmt59/C.net]
グーグルの採用試験で使われてて解説記事もたくさんあるからわからないのは読解力が劣ってるだけ

786 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:35:52 ID:iRmt59/C.net]
これ解けない人はグーグルに入社できない

787 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:42:24 ID:7flpRMwp.net]
・グーグルの採用試験と一言一句同じなのか
・グーグルに入社できることが何かの優位性を確実に示し得るのか

はい

788 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:46:12 ID:iRmt59/C.net]
>>766
全く同じ
グーグルは頭のいい人しか入社できない

789 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:50:27 ID:7flpRMwp.net]
>>767
はいダウト
うちの教養時代のクラスメイトの落ちこぼれがコネでグーグル入社してた

790 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:51:08 ID:j8/I9hQ5.net]
>>767
初っ端からビルの回数と書いてある時点で信憑性ゼロだろw



791 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:51:26 ID:iRmt59/C.net]
>>768
お前より頭良かったんじゃね
能ある鷹は爪を隠すと言うぞ

792 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:52:33 ID:iRmt59/C.net]
>>769
それはただのタイプミスだからそこに疑問を持つ人はいなかったよw
その指摘は流石に低学歴すぎる

793 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:54:56 ID:7flpRMwp.net]
>>770
爪隠したまま進振りぎりぎりの点数叩き出すやつなんてどの道馬鹿だろ

794 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:56:14 ID:iRmt59/C.net]
>>772
でもグーグル入社したんだろ
地頭が良いんだよ、俺にはわかる

795 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 10:57:17 ID:7flpRMwp.net]
>>773
結論ありきで推論しててキモいよお前
俺はグーグルに入社してるバカも知るっていう例を提示しただけ

796 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:58:37 ID:iRmt59/C.net]
>>774
客観的にお前の方が頭悪い

797 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 10:59:06 ID:iRmt59/C.net]
悔しかったら問題解いてグーグルにアピールしろ

798 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 11:01:10 ID:7flpRMwp.net]
ID:iRmt59/C がバカすぎて最高に笑える
まあそいつは麻布→理1→グーグルだから馬鹿だったけどお前よりは確実に賢いわ

799 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 11:02:05 ID:iRmt59/C.net]
>>777
高卒のわい涙目
もう二度と来ねえよクソが!!!

800 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 11:04:17 ID:/nctx1iy.net]
グーグル絶対賢いマンはこれネタやろワロタwww



801 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 11:12:30 ID:j8/I9hQ5.net]
>>771
タイプミスなんて言われんでも分かるよ。
一字一句同じ?同じ!なんて自信満々に答えてるくせに全く確認もしていないいい加減で信用できない奴だなと思っただけだよw

802 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 11:17:35 ID:gE+WjllM.net]
これがgoogleの入社問題!とかいうよくある釣り記事に踊らされた子だね

803 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 11:49:20 ID:iRmt59/C.net]
>>780
タイプミスはわかるのに問題は読み解けないんだな
それがお前の限界、無理すんな、お前には無理だ

804 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 11:50:22 ID:iRmt59/C.net]
二度と来ないとは言ったが出ていくとは言ってない

805 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 11:53:35 ID:iRmt59/C.net]
グーグルの前でお前らは生まれて初めての無力感を味わってるだろうがそれをバネに成長するかどうかはお前ら次第

問題に文句言って満足して終わるのか自らの力不足を認識して研鑽を積むのかこれでお前らの本当の実力が明らかになる

806 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 11:57:23 ID:iRmt59/C.net]
>>781
良くありそうな問題だがお前らは解けない
その現実を見せつけられて逆ギレするのはみっともない
無知を自覚してステップアップ、周りのみんなに差をつけよう

807 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 12:01:10 ID:RkrU528F.net]
わかったからID真っ赤にする前にスレタイくらい読もうね

808 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 12:14:18 ID:iRmt59/C.net]
スレタイ音読してノートに書き写して口と耳と手と頭を使い全身でスレタイを理解したけど俺は間違ってないぞ

問題を読み解いてあっと驚くようなオリジナリティ溢れる独創的で優雅な回答を期待してるんだがお前らは何を問われてるのかさえわからない状態だろ

手とり足取り教えて回答に導かれたとしても正確がひねくれてるお前らはそれを嬉しいとは思わないだろ、だったら俺がお前らにできることは一つだけ、お前らが殻を破って成長するのを見守るしかない

809 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 12:20:54 ID:iRmt59/C.net]
頑張れ!!

810 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 12:37:32.94 ID:UkOypP5f.net]
puzzlefry.com/puzzles/2-eggs-and-100-floor-google-classic-question/

こっちにはちゃんと書いてある

>>734は劣化コピーだ



811 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 12:56:13 ID:UkOypP5f.net]
落とす回数だけ考えれば良いなら答えは簡単
プログラミングのお題である必要は無い
とても簡単な数学の問題

階の上下のコスト、たまご自体のコスト、たまごを落とすコスト
が決まっていて
コストの最小化問題であるなら
やっとプログラミングの出番

たまごを落とす回数しか効率よ中身として思い浮かばないのなら
発想が乏しすぎる

812 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 12:59:24 ID:lki83My8.net]
時間の無駄だってグーグルの人事が言ってからだいぶたつのに
まだこんなやついるのか

813 名前:デフォルトの名無しさん [2020/01/27(月) 13:02:02 ID:MAYcFInA.net]
>>734
引っかけ問題だとすると、とにかく落として卵が割れさえすれば「何階で割れるか」は判明した事になる(何階が割れる割れないの境目の階かを求めよという問題になってないので)、いきなり最上階のN階まで上がってしまい、そこで一つ落として割れるかどうかを確認して終わり。

814 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:03:27 ID:V1mi84GI.net]
>>790
スレタイ見て

815 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:04:46 ID:V1mi84GI.net]
プログラミングの問題だから
理論ではなく実践を問う問題

816 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:26:30 ID:V1mi84GI.net]
>>791
黙れハゲ、人事について議論するな
プログラミングの問題を考えろ

817 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:27:47 ID:V1mi84GI.net]
>>792
そんなアホな問題をグーグルが出すわけ無いだろアホw

818 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:28:42 ID:V1mi84GI.net]
お前ら天の邪鬼こじらせて問題解けなくなってんじゃん

819 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 13:32:57 ID:UkOypP5f.net]
英文にはちゃんと書いている
日本語が単なる劣化コピー

820 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 13:42:35 ID:V1mi84GI.net]
はいはいもうええから問題解いてもらえる?



821 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 13:48:46 ID:n/pRd1c3.net]
Nの下1/3階で1回目落として割れれば最下階から順に上階に向かって落としていく
1回目割れなければ、残ってる階の下1/3階で落として割れれば残っている階の最下階から順に上階に向かって落としていく
以下繰り返し

822 名前:800 mailto:sage [2020/01/27(月) 14:03:08 ID:n/pRd1c3.net]
1回目割れなかったときが多すぎるわ失敗

1回目割れなかったときに最下階から落とす回数と、
割れたときに残った階で繰り返す回数が同じになる数値、が答えかな?

823 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 14:44:24 ID:UkOypP5f.net]
>>799
解いたけど

824 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 14:49:56.90 ID:UkOypP5f.net]
一人しか書いてないからどれかわかるよね

825 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 14:54:43.43 ID:V1mi84GI.net]
コードは?w

826 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 15:04:02 ID:V1mi84GI.net]
コードどこにあんねんwwwwww

827 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 15:05:01 ID:V1mi84GI.net]
腹イタイwww腹イタイwww

828 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 16:16:55 ID:UkOypP5f.net]
>>790

829 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 16:30:19 ID:V1mi84GI.net]
>>807
思わせぶりなこと言ってるだけで回答コードないですけどwww
何やり遂げたつもりになってんねんwww
何してんねんwww

830 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 16:30:35 ID:V1mi84GI.net]
笑わせんなwwwwww



831 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 16:42:59 ID:LGsyX1lU.net]
>>734
卵落とすやつ。自分のヤツ(>>740 )は、((N/2)+1)回で解ける。

832 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 17:56:53 ID:yDu6+ckg.net]
>>808
落とす回数をコストとするなら>>743で終わり
コードが欲しければ金払えばやるよ

833 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:03:48 ID:V1mi84GI.net]
>>811
それ間違ってるわwww
試しにコードに落としてみ

834 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:04:45 ID:V1mi84GI.net]
そのコードを俺に教えてみ

835 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:05:03 ID:V1mi84GI.net]
早くしてくれみ

836 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 18:07:47 ID:yDu6+ckg.net]
金払うってこと?
1万円でいいよ

837 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:11:22 ID:V1mi84GI.net]
>>815
お前のロジック間違ってるから添削してやろうと思ったんだが出したくないならいいわ、お前が恥かかないようにこっちは良かれと思って手を差し伸べてやったんだがそれを振り払うような真似をするならいいわ、考え直すなら今のうちだぞ

838 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:12:06 ID:V1mi84GI.net]
模範解答は一週間後な
あと一週間は引っ張れるわ

839 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 18:13:14 ID:DT2W+6qB.net]
合ってるから大丈夫
違うならそれは問題の解釈が私と違うというだけ

840 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:13:37.87 ID:V1mi84GI.net]
間違いを指摘されて出すに出せなくなって金額ふっかけて相手に断らせようとする卑怯な人は正直に手を上げなさい



841 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 18:15:15 ID:RTaGNqK6.net]
はいはい


842 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:16:41 ID:V1mi84GI.net]
>>818
向かうところ敵無しだな、敵わないわwww

843 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 18:19:10.77 ID:fd+09zFE.net]
いろんな解釈が可能な問題を出しといて
何言ってんだか

844 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:21:18 ID:V1mi84GI.net]
>>822
いやいやお前らが天の邪鬼魂を遺憾なく発揮して問題から逃げてるだけでググればわかるけどこの問題の解釈は明確に一つだけだぞ

845 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 18:21:43 ID:ZY6HpsDp.net]
占い師や詐欺師の手法

846 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:23:13 ID:V1mi84GI.net]
レッテル貼りまでやりだしたか
お前らがこんなに追い詰められるのも珍しいな

847 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:23:40 ID:V1mi84GI.net]
たかが問題一つでどんだけ焦ってるんだよ

848 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:24:20 ID:V1mi84GI.net]
お前らにも解けない問題があるってことを認めれば冷静になれるぞ

849 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:25:30 ID:V1mi84GI.net]
グーグルの入社試験は流石に難しすぎたか
しかたない問題を取り下げます!

850 名前:デフォルトの名無しさん mailto:age [2020/01/27(月) 18:27:15 ID:V1mi84GI.net]
以後この問題に関するレスの一切を禁止します!



851 名前:デフォルトの名無しさん [2020/01/27(月) 18:48:38 ID:MAYcFInA.net]
1. 吉野家へ行って持ち帰りの牛丼を買う。
2. 家に帰ってから玉子を割って器に入れ醤油を少し入れてかき混ぜる。
3. 牛丼の上に掛ける。
4. 食べる。

852 名前:デフォルトの名無しさん [2020/01/27(月) 20:11:04 ID:jQKfoNW1.net]
>>734 (defun f (N) (loop for i from 1 to N when (>= i the-floor) return i))

853 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 20:55:58 ID:XWtrHJUJ.net]
>>734
マジレスするけど

Nを9としたときタマゴが1個なら
線形に調べるしかない
1 2 3 4 5 6 7 8 9

タマゴが2個なら
二次元に階を並べて縦の位置と横の位置を調べれば良い
7 8 9
4 5 6
1 2 3

ただしこれだと上に登るにつれて調べる数が増えるから
上に登るにつれて回数を減らせばいい
8 9
5 6 7
1 2 3 4

直角二等辺三角形の面積をNとしたときの辺の長さを求めればいい
これは図形の問題だな

F#
https://paiza.io/projects/e_OAtw_89zppN3N9_Zf7xw

854 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 21:06:37.14 ID:ra0g3McZ.net]
お題
タマゴがn個

855 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 21:22:17 ID:ZWQEPunf.net]
元はこれですね

https://www.businessinsider.com/hard-google-interview-questions-2016-10

>>734はひどい劣化コピー

856 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 21:23:45 ID:ZWQEPunf.net]
つまり
>>764 >>767 は嘘

857 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 21:34:30 ID:CiSOox2q.net]
まあ、高卒の言うことだし

858 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 22:04:54 ID:ZyjcNjD+.net]
高卒 vs 東大卒2人

859 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 22:55:29.66 ID:6+TABcSR.net]
本当にこのスレに東大理系卒のような高学歴がそんなに何人もいるなら
もっとましな回答のコードのレスが日ごろどんどん書き込まれていてもよさそうな気がする

860 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 22:58:15.90 ID:6+TABcSR.net]
あるいは東大は出たけれど受験テクニシャンかまぐれ屋さんで
実は時頭の悪い能無し東大卒がここにたむろしているとかか



861 名前:デフォルトの名無しさん [2020/01/27(月) 23:32:17.86 ID:GGIV6lt+.net]
英語にしてもthe Nth floorというのが曖昧で、0始まりか1始まりかによって解が異なる。
N = 100の場合はどちらでも同じになるが。

だから、locale設定を調べて計算式を変えるのがソフトウェア会社として正しい答えのはず。

862 名前:デフォルトの名無しさん mailto:sage [2020/01/27(月) 23:51:56 ID:6+TABcSR.net]
階に0って…無いンジャマイカ…

863 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:09:33 ID:WmWS3LeK.net]
イギリスでは1階はgrand floorで2階がfirst floor
有名な話

864 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:09:50 ID:fHG5gSyE.net]
二階がthe first floorだったり, the 12th floorの直上階がthe 14th floorだったりする

865 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:10:46 ID:SzKOygFW.net]
>>838
>>687 を短時間で導けるのは東大卒っぽくない?

866 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:25:19.83 ID:IwozSCni.net]
>>844
東大かは分からないけど数学がかなり得意で行動性IQは高そう
個数の傾向から関数関係を暗算か連想間隔でひらめくように導いたような感じ
でもソフトウエアアーキテクチャー矢論理的構造概念は弱そう。
そして言語性IQはたいしたことなく社会性や人間性は劣る感じいわゆる15過ぎたらただの変人みたいな
総じて言うと偏った社会的不適ごう者でいわゆる時頭はよくないタイプ

867 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:27:09.95 ID:IwozSCni.net]
ずけずけ言ってゴメンチャイ(><)

868 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:27:31.17 ID:t/3yzBv7.net]
>>839
>>845
地頭な

869 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:29:26.14 ID:IwozSCni.net]
ヨパラテ殴り書きして誤字脱字ゴメンチャイ(><)

870 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:33:31.35 ID:sU6by0Qq.net]
>>845
一人で発狂してるけど社会不適合者ってお前の事をいうんだと思う



871 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:38:47.76 ID:IwozSCni.net]
そう向きになりなさんな。
人のことをそこまで断定的に言うのであればだな、
じゃあ私がどんなタイプで、何が得意不得意で
上の方でどんな回答レスを書いていて、
どんな学歴かそうぞうして書み。
あんさんのプロファイリング能力がどの程度のものか見てやるよ。

872 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:40:57.07 ID:ciqR13vi.net]
>>850
酔っぱらってる自覚あるなら書き込みやめてもう寝なよ

873 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:45:04.34 ID:IwozSCni.net]
もじき寝るけど、このスレのは晩酌の肴代わりに覗いてたまに趣味でレス書いていた程度のことだし
気にしなさんな

874 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:45:35.83 ID:Ue4lP5nY.net]
3か月でクビになる社会不適合者の>>850

800 名前:ピッコロ ◆YAZTByPXwc6o [] 投稿日:2019/08/20(火) 00:16:38.62 ID:6EOJan/q [2/2]
ピッコロさー3ヶ月働いた会社から明日から来なくていいって言われたんだけど酷いと思わない?
ピッコロかわいそうすぎ

875 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:48:18 ID:IwozSCni.net]
>>853
そこまで外すとは並大抵の能力じゃないな、お主。
ここで能力とは、良い意味で言っていない。

876 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:52:38.98 ID:Ue4lP5nY.net]
>>854
社会不適合者


8 名前:ウーロン ◆YAZTByPXwc6o [] 投稿日:2020/01/14(火) 23:06:04.53 ID:p1ffDOn1
Eqv演算子の使い途を募集します

10 名前:デフォルトの名無しさん[age] 投稿日:2020/01/20(月) 08:39:19.96 ID://bqLjsW
>>9
いま電車の中なんですがウンコ漏らしましたアドバイスお願いします

877 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:57:39.36 ID:IwozSCni.net]
>>855
あなたに、とっておきのスレをご紹介させていただきます。
いや、悪い意味じゃなく、本当に向いているんじゃないかなと思うスレ
こっちに移動してその持てる能力を存分に発揮してもらえれば、
あなたにとってもとてもプラスだと思うんです。
いかがでしょ。ちょっと覗いてみて下さい。
URlはこちらです。まじめなソフトウエアに関する議論のスレです。
どうそよろしく。
https://mevius.5ch.net/test/read.cgi/tech/1542885246/

878 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 00:58:54.70 ID:Ue4lP5nY.net]
>>856
お前が消えればそれで済む話だよ
くだらない出題ばかりしやがって

935 名前:デフォルトの名無しさん[sage] 投稿日:2019/05/17(金) 12:23:14.18 ID:99nnd/tf
>>934
うるせぇ死ね

947 名前:デフォルトの名無しさん[sage] 投稿日:2019/05/17(金) 15:51:11.97 ID:99nnd/tf
問題: おっぱいをなるべく小さくせよ。

964 名前:デフォルトの名無しさん[sage] 投稿日:2019/05/17(金) 20:48:13.95 ID:99nnd/tf
顔射は普通に使う単語ですか?

879 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:03:48.78 ID:IwozSCni.net]
>>857
おれ、出題はしたこと無いんだけれどwww <

880 名前:br> 何とち狂ってんだ、大丈夫か?病院紹介しようか?

人がとち狂って火傷ってるのを見るのは、周りから見るとエンターティンメントの
笑いの種みたいなものだから、そんなに頑張って提供しても報われないよ
頭冷やせ
[]
[ここ壊れてます]



881 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:05:28.08 ID:Ue4lP5nY.net]
>>858
悪気のない>>749にも見抜かれてるんだよな

882 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:06:00.26 ID:Ue4lP5nY.net]
>>858
489 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/04(月) 11:04:59.42 ID:9wLIIjqc [1/3]
お題: 2つの任意の英数字からなる芸術的なアスキーアートを出力しろ

490 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/04(月) 11:07:25.78 ID:9wLIIjqc [2/3]
お題: アスキーアートで芸術的な直線を出力しろ

491 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/04(月) 12:15:59.00 ID:9wLIIjqc [3/3]
お題: アスキーアートで芸術的な木のアスキーアートを出力しろ

883 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:06:40.59 ID:IwozSCni.net]
もしかして自称東大卒の心が不自由な方と
レスを通して俺は接近遭遇してしまったんだろうか…
お大事に(-人-)

884 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:09:08.10 ID:Ue4lP5nY.net]
>>861

737 名前:ピッコロ ◆YAZTByPXwc6o [] 投稿日:2019/08/16(金) 01:33:55.50 ID:OB5Z17iM
100階建てのビルのある階から卵を落とします。

卵はある階よりも低ければ割れることはなく、ある階よりも高いと割れてしまう。

今、あなたは卵を2つ持っています。

卵が何階で割れるかを調べるもっとも効率のよい方法は何ですか?

そして、その方法で必要な卵を落とす回数は最大で何回ですか?

885 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:12:17.24 ID:IwozSCni.net]
    ∧__∧
    ( ・ω・)   メンヘラーのお相手は、いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"

886 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:16:12.01 ID:Ue4lP5nY.net]
>>863
だったらさっさと失せような、ピッコロさん

887 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:18:00.53 ID:IwozSCni.net]
だったらって言うと、メンヘラー自覚かよ
そしたら本当にお大事に
早く寝るように

888 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:22:10.27 ID:Ue4lP5nY.net]
>>865
いやだったら、と言ってるんだよ社会不適合者のピッコロさん
もうじき寝る宣言はどうなったんだ?

889 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:23:17.31 ID:Ue4lP5nY.net]
>>865
このスレにももう来なくていいぞ

800 名前:ピッコロ ◆YAZTByPXwc6o [] 投稿日:2019/08/20(火) 00:16:38.62 ID:6EOJan/q [2/2]
ピッコロさー3ヶ月働いた会社から明日から来なくていいって言われたんだけど酷いと思わない?
ピッコロかわいそうすぎ

890 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:24:31.95 ID:SzKOygFW.net]
おまいら他でやれ



891 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:26:08.68 ID:IwozSCni.net]
>>866
おれピッコロじゃねーし
その出題者じゃねーし
寝るように進められたけど、自分からは宣言してねーし
いまからエロ動画見る気だし
あんさん、まじ認識の調子悪そうだな、
悪いこたーいわねぇ、いい子だから今夜は早く寝て
必要に応じ心療内科の受信をご検討あれ

892 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:27:13.31 ID:IwozSCni.net]
>>868
ゴメンチャイ(><)

893 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:27:20.09 ID:Ue4lP5nY.net]
>>869
言ってるよな


852 名前:デフォルトの名無しさん[sage] 投稿日:2020/01/28(火) 00:45:04.34 ID:IwozSCni [5/12]
もじき寝るけど、

894 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:28:44.25 ID:IwozSCni.net]
>>871
そのもう時期があと23分後なわけよwwwwww

895 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:29:53.45 ID:Ue4lP5nY.net]
>>872
寝る寝ないじゃなく失せろよピッコロ ◆YAZTByPXwc6oさん

896 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:32:25.81 ID:IwozSCni.net]
>>873
どうしよかな〜、そうしよかな〜、やっぱりやめよっかな〜

897 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:36:56 ID:Ue4lP5nY.net]
>>874
雑談スレじゃないんだよ、3か月でクビになる社会不適合者のピッコロ ◆YAZTByPXwc6oさん

800 名前:ピッコロ ◆YAZTByPXwc6o [] 投稿日:2019/08/20(火) 00:16:38.62 ID:6EOJan/q [2/2]
ピッコロさー3ヶ月働いた会社から明日から来なくていいって言われたんだけど酷いと思わない?
ピッコロかわいそうすぎ

898 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:37:02 ID:IwozSCni.net]
>>873
で、あなたは東大卒崩れで数学が得意だけれどメンヘラーの社会不適ごう者なんですか
それは大変でしたね。お気の毒です。申し訳ないですが私にはどうすることも。
ご容赦のほどを

899 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:39:37 ID:IwozSCni.net]
>>875
遅くまでまで働いていたのに
明日もあさってもズーット朝から会社に行かなきゃならんのです。
だから酒かクラって酔いつぶれるようにして寝るのです、

900 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:41:31 ID:Ue4lP5nY.net]
>>876-877
他人に嫌がらせをする理由にならないから
お前の都合なんか知るか



901 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:42:56 ID:IwozSCni.net]
>>877
んで、そんな限られた時間、
解くのに面白い

902 名前:ィ題はないのかなと。
リーベンシュタイン距離の問題は自力で考えて実装する前にobsolateな感じに流れてしまって投稿に至らなかった
[]
[ここ壊れてます]

903 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:45:22 ID:Ue4lP5nY.net]
>>879
こういうゴミみたいな出題している方が身の丈に合ってるだろ


714 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/16(土) 16:51:50.43 ID:EVMD7h0V [1/3]
お題: プログラム言語をなにも知らない人にもプログラムの意味が理解できるコメント無しのhello worldを出力するコプログラム

716 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/16(土) 17:16:48.87 ID:EVMD7h0V [2/3]
お題: 文字列に丁度いい具合にグリッチを入れて超かっこいい文字列を作るプログラム

718 名前:デフォルトの名無しさん[sage] 投稿日:2019/03/16(土) 17:21:14.90 ID:EVMD7h0V [3/3]
>>717
いやです

904 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:48:23 ID:IwozSCni.net]
>>878
なんや、単なる嫌がらせだったのかい。
そしたら俺よりスルー力の無い相手を探すべきだが
それより昔から人を呪わば穴二つって言ってだな、
人を落としめてる時間や労力があるなら、それを自分に前向く方向に振った方が絶対幸せになるっチュー原理があっての、
あんさんもそうして前進せいや

905 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:50:38 ID:IwozSCni.net]
まぁかってにしさらせ。
不幸な方向を選択するならそれはあんさん選択したことだ。
他人に責任は無い

906 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:53:12 ID:Ue4lP5nY.net]
>>881
スルー力って何だよ
嫌がらせするつもりでここに来てるのか?
コテを外しているから様子を見ていたけど一向にいなくならないから叩き出してやらないと思ってね

偉そうに他人に言い聞かせる前に自分が実践しろよピッコロ ◆YAZTByPXwc6oさん

907 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 01:56:06 ID:IwozSCni.net]
>>883
このスレにピッコロはいないよ。
ピッコロを探すならこのスレ以外だよ。

908 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 02:03:09 ID:gua2EZr0.net]
VBSで便利なプログラムを作れスレ 2
https://mevius.5ch.net/test/read.cgi/tech/1539439008/737-799

このスレで議論した。
100階のビルでは、14回が最小でした

三角数と書いてある!

909 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 02:03:37 ID:Ue4lP5nY.net]
>>884
統失丸出しで何言ってんだよピッコロ ◆YAZTByPXwc6oさん
23分経過してるんですけど寝るに寝られないんですか?

910 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 02:16:53 ID:nYsF9Ph8.net]
sibarakuhoutipureiyoro



911 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 02:18:23 ID:Ue4lP5nY.net]
だね

912 名前:885 mailto:sage [2020/01/28(火) 02:20:17 ID:gua2EZr0.net]
このビルの問題は、レベル的には、MS, Google, 灘中の試験レベル!
かなり難しい

MS, Google は、たまに同じ問題を出すw

本では、ビル・ゲイツの面接試験とか、
NHK に出てる、竹内薫の[非公認] Googleの入社試験とか

913 名前:885 mailto:sage [2020/01/28(火) 02:26:10.32 ID:gua2EZr0.net]
もし、このビルの問題が、灘中で出たとしても、5分では思いつかないから、捨てる問題。
漏れなら直感で、平方根ずつ飛ばしていく

100階なら、10階ずつ調査していくと、18回が最小となって、間違いw

即座に、捨てるべき問題ですw

914 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 06:59:41 ID:SzKOygFW.net]
5分でわからなきゃ灘中はあきらめた方が良い

915 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 07:01:48 ID:SzKOygFW.net]
瞬時にわかった私は特殊なのかな?

916 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 07:55:50 ID:UMSh2EY2.net]
なんで卵が2個になっているんだ?
制限ないから無限だろ

917 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 11:16:27 ID:zyDEnKd7.net]
>>841
イギリスのsecond floorは日本で言うところの3回だぞ

918 名前:デフォルトの名無しさん mailto:sage [2020/01/28(火) 11:19:05 ID:lYoEsRq3.net]
>>893
玉子2つなら、一つ割れた段階で可能性が残ってるものを下階から順番に試すしかないという制約になる
この可能性が残るものを最小数にするには、一つ目の玉子をどう使うかという問題

919 名前:デフォルトの名無しさん [2020/01/28(火) 15:48:15 ID:Bdltl+Ea.net]
1. オロナミンCを買ってくる。
2. コップに卵を割って入れる。
3. オロナミンCをコップに入れる。
4. よくかき混ぜる。
5. 飲む。

920 名前:デフォルトの名無しさん [2020/01/28(火) 18:39:58.72 ID:eRWskeVd.net]
おぇっ!



921 名前:デフォルトの名無しさん [2020/01/29(水) 07:37:27 ID:NhzWp0Lr.net]
6. 嘉門タツオを呼ぶ。
7. 歌わせる。

922 名前:デフォルトの名無しさん [2020/01/31(金) 17:07:06 ID:fxx+hpXO.net]
>>77
Kotlin
https://paiza.io/projects/n5vltQrg35VSMdFxiURgbw

923 名前:デフォルトの名無しさん [2020/01/31(金) 19:32:58.05 ID:K802DmBr.net]
>>696
Kotlin
https://paiza.io/projects/zOzhyVWu8KV0GT7aSR08nA

本当に新しい履歴で古い履歴が置き換えられているかを確認するために入出力は行番号付きで出るようにした(ただし最初の行は0)。

924 名前:581 mailto:sage [2020/02/01(土) 11:30:55 ID:6JPjRL8V.net]
Maxima:
Brentせんせーの真似
expm1(x):=if abs(x) < 1e-8 then x*x/2+x else block([y:expm1(x/2)], y*y+2*y);

一方、英語版Wikipediaに拠ると
ttps://en.wikipedia.org/wiki/Exponential_function
expm1(x):=2*tanh(x/2)/(1-tanh(x/2));

tanh()があって、expm1()が無い場合はこうすればいいのか…。

925 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 12:09:01.66 ID:YFAnTUnh.net]
expm1って
tanhを計算する以外に使う?

926 名前:581 mailto:sage [2020/02/01(土) 13:38:54 ID:6JPjRL8V.net]
HAKMEMに倣って倍角公式でつw
mytanh(x):=if abs(x) < 1e-4 then x-x^3/3 else block([y:mytanh(x/2)],2*y/(1+y^2));

>>902
expm1(x * log(base)) == pow(base, x) - 1
なので、「任意の底でのべき乗マイナス1」のゼロ近傍を精度良く求めたい場合にも使えます。
IEEE754の最新版ではpow(2, x) - 1とpow(10, x) - 1の実装が推奨されてるそうなので、
底が2と10の場合はライブラリ任せになる未来が来る…といいなぁ。

927 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 14:42:02 ID:YFAnTUnh.net]
>>903
その
任意の底でのべき乗マイナス1
の0近辺をいつ使うのかなあっていう

928 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 15:02:59 ID:YFAnTUnh.net]
>>624も見てね

929 名前:デフォルトの名無しさん mailto:sage [2020/02/01(土) 15:05:51 ID:YFAnTUnh.net]
スカラーでも4倍精度でも同じ方法が使えます
テーブルサイズは色々と変えられるし
多段にも出来ます

930 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 09:14:07 ID:qw7QPilU.net]
web系でデータ型に固定小数点数がある言語って何がありますか?



931 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 09:27:50 ID:9c9xCiV6.net]
>>907
スレチ

932 名前:デフォルトの名無しさん mailto:sage [2020/02/07(金) 11:37:54 ID:bSyJxcnp.net]
なんでこのスレで質問しようと思ったんだw

933 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 03:34:30 ID:B8La3jsg.net]
>>907
PythonのDecimalは?
ttps://docs.python.org/ja/3/library/decimal.html

934 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 07:34:55 ID:gtTyaGQ0.net]
固定小数点なら何でも良いのか?

935 名前:910 mailto:sage [2020/02/08(土) 09:59:15 ID:B8La3jsg.net]
あとJavaScriptのこれとか
ttps://github.com/MikeMcl/decimal.js

936 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 10:33:59 ID:hHzEGlOh.net]
固定小数点ない言語探す方が難しいだろ

937 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 11:21:16 ID:OUJaeRcl.net]
先生、intは固定小数点数に入りますか?

938 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 20:48:49 ID:SNKEmgHS.net]
浮動小数点数なら知ってるんだけど固定小数点数ってなに

939 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 21:08:11 ID:gtTyaGQ0.net]
小数点が固定なヤツ
整数型に適当に仮想の小数点を打って小数と見なすだけでも固定小数点だし
それ用の命令があるCPUもある

2進数や10進数の固定小数点が比較的良く使われる

940 名前:デフォルトの名無しさん mailto:sage [2020/02/08(土) 22:11:46.67 ID:TegpS8IB.net]
>>916
> 整数型に適当に仮想の小数点を打って小数と見なすだけでも固定小数点だし
> それ用の命令があるCPUもある
そんなCPUあるんだ
なんて言う奴?



941 名前:910 mailto:sage [2020/02/09(日) 00:14:06 ID:W3YVjpeH.net]
>>917
例えば
ttps://ja.wikipedia.org/wiki/System/360

昔は、「IBM互換機」というのは、これや後継機種の互換機の意味だった。

942 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 06:42:27.22 ID:6++kPC7v.net]
>>918
???
パック10進数のことを言ってるのか?
表現形式違うだけであれも整数だよ

943 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 13:58:31 ID:0/1sPgy2.net]
スレタイ

944 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 14:31:55 ID:kf5XKxtD.net]
>>920
お題
固定小数点数を説明し例を挙げよ

945 名前:デフォルトの名無しさん [2020/02/09(日) 15:49:35 ID:mw6BsSoR.net]
お題:
複数個の数字列がありどれとも共通する数字がないことを判定しなさい。

946 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 15:59:49 ID:7EUojISZ.net]
日本語でおk

947 名前:デフォルトの名無しさん [2020/02/09(日) 16:24:14 ID:oNtWIYyZ.net]
>>919
DSPでは今でもポピュラーな形式ですよ

>パック10進数のことを言ってるのか?
それとは別物

948 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 16:26:53 ID:6++kPC7v.net]
>>922
せめてサンプル挙げてくれ
その説明じゃ主語とかが曖昧すぎてよくわからん

949 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 16:28:52 ID:6++kPC7v.net]
>>924
>> パック10進数のことを言ってるのか?
> それとは別物
なら説明して下さいな
少なくとも>>918のリンク先では固定小数点関連の説明を見つけられなかった

950 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:00:58 ID:GpaXptWq.net]
>>922
AVX512にそんな命令があった気がする



951 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:08:19 ID:GpaXptWq.net]
意味がちがうかもちがうかも
ここは出題能力の無い人が多くて困るね

952 名前:910 mailto:sage [2020/02/09(日) 17:25:04 ID:W3YVjpeH.net]
>>919
そうかも
金山せんせーの「アセンブラプログラミング入門」で復習してくる
ttps://www.kindaikagaku.co.jp/information/kd0033.htm

953 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 17:40:10 ID:GpaXptWq.net]
固定小数点

元の値をN倍して整数値として扱うのが固定小数点
100倍したら小数第2位まで扱えるし
256倍すれば2進数で小数第8位まで扱える

加減算だけなら何倍してようがそのまま扱えばいいが
乗除算があると元の値の何倍であるかを意識しないといけない

N倍してる場合
乗算は c = (a * b) / N
除算は c = (a / b) * N
となる

a, b, c の3個とも倍率が異なっても問題無い

Nは2^nであれば演算量が小さいことが多いため
この形が多く使われる

固定小数点DSPでは
乗算とシフトとアキュームレータへの加算がセットになった命令を使う事が多い

954 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 18:51:18 ID:KQJLHzBI.net]
>>930
いきなり固定小数点の説明始めてどうした?

955 名前:デフォルトの名無しさん mailto:sage [2020/02/09(日) 19:10:44 ID:mORiFTgk.net]
>>921

956 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 04:36:47.62 ID:AGWHQzBG.net]
お題: 二次元行列において任意の位置に直線が引かれ行列が分断されるので、分断されたそれぞれの要素数を出力しなさい

0,0,0,0
1,1,1,1

957 名前:
0,0,0,0
0,0,0,0

out > 4, 8

1,0,0,0
0,1,0,0
0,0,1,0
0,0,0,1

out > 6, 6
[]
[ここ壊れてます]

958 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 11:56:13.07 ID:NGNAXTbr.net]
0からなる島の数を数えればいいんじゃね

959 名前:デフォルトの名無しさん mailto:sage [2020/02/10(月) 17:44:26.07 ID:j00hoIMv.net]
だね
直線の定義も無いから
どんな直線かわからんし

960 名前:デフォルトの名無しさん [2020/02/12(水) 13:26:27.37 ID:RjN3CVSY.net]
グラフィックス描画の時の点で囲まれた範囲内を塗り潰すみたいなペンキこぼしたアイコンのあれか



961 名前:デフォルトの名無しさん mailto:sage [2020/02/13(木) 12:04:10.52 ID:pgHMR/PS.net]
そのものズバリの問題がある
judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0067

962 名前:デフォルトの名無しさん mailto:sage [2020/02/13(Thu) 22:23:36 ID:IlpbVxdq.net]
>>933
Java
https://paiza.io/projects/8xlcRUxdzO4V-nZLKwTBJQ

963 名前:デフォルトの名無しさん mailto:sage [2020/02/14(金) 21:25:21.62 ID:A4umB3Fs.net]
>>937
ひさびさに腕が鳴るぜと思ったらデータ読み込みですでに挫折した

964 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 07:21:35.23 ID:1M8DJTak.net]
>>937
サンプルの2番目と3番目は表示と結果を合わせてあるのか、なかなかお茶目だな
会津大学にはインターネット使い始めた時に色々お世話になったわ

965 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 09:47:25 ID:sllo66FE.net]
>>940
なんで?
俺はつくば大学には世話になってるが

966 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 10:20:55 ID:1M8DJTak.net]
>>941
当時からオープンソースとかをFTPで公開してくれてたんよ
会津大学だけじゃないけど結構利用させてもらった

967 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 13:25:20.64 ID:4O8uAQVX.net]
どこの大学か忘れたけど俺もソース公開してもらったことあるな
わざわざ会員にしてくれてねちっこい感謝メール送った憶えあるわ
まぁ当時は俺のレベルが低くてあまり利用しなかったんだけど

968 名前:デフォルトの名無しさん mailto:sage [2020/02/15(土) 17:24:54.16 ID:sllo66FE.net]
>>942
へぇ〜なるほど
どうもありがとう

969 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:08:50.45 ID:DNOVCA1a.net]
お題
コロナウイルスが流行しています
人類が利益優先で地球環境を汚染してることに神が怒って人類に罰を与えたかのようです

コロナウイルスの日毎の感染者の増加数が数列として与えられます
マイナスは治癒した人の数を表します

最も感染者数が増加した7日間を火の七日間と呼ぶことにしました
火の七日間の感染者数を出力してください

入力:12,-3,14,8,9,1,12,10,4,8,0,-3,14,4,14,12,12,8,0,3

970 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:33:03.49 ID:DNOVCA1a.net]
お題
文字の集合を{}で表します
空集合のときは空文字列に置き換え
要素数が0のときは集合を要素で置き換えることで
式を簡略化してください

入力:{J{A{P{A{N{}}},M{A{I{C{A{}}}}},V{A{}}},O{R{D{A{N{}}}}}}}
出力:J{A{PAN,MAICA,VA},ORDAN}



971 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 00:35:34.75 ID:DNOVCA1a.net]
> 要素数が0のときは集合を要素で置き換えることで
要素数が1のときは集合を要素で置き換えることで
の間違いです

972 名前:デフォルトの名無しさん mailto:sage [2020/02/17(月) 13:59:00.72 ID:jzpbGAPw.net]
>>945
>人類が利益優先で地球環境を汚染してることに神が怒って人類に罰を与えたかのようです

頭おかしいからどっか行け

973 名前:デフォルトの名無しさん mailto:age [2020/02/17(月) 15:09:25.58 ID:NKe87pRn.net]
よくもそんなことを!

974 名前:デフォルトの名無しさん [2020/02/17(月) 15:35:10.73 ID:zC1Ey7v3.net]
how dare you

975 名前:デフォルトの名無しさん [2020/02/17(月) 16:14:28.45 ID:zC1Ey7v3.net]
>>945
Kotlin
https://paiza.io/projects/9VSbHWToTvrYAKNxm1T5jA

7日の合計を一日ずらしで全て求めて人数多い順に先頭の日と共に出すだけなんだけど、こんなので良いの?
最初の行が火の七日間ね。

976 名前:デフォルトの名無しさん [2020/02/17(月) 19:32:24.86 ID:zC1Ey7v3.net]
>>946
Kotlin
https://paiza.io/projects/yQJo7wDcbGRS2T0m8b26dA

977 名前:デフォルトの名無しさん [2020/02/17(月) 23:11:42 ID:6oTlxsWX.net]
R
>>945 https://ideone.com/6Azmc7
>>946 https://ideone.com/cAdmIr

978 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/02/22(土) 04:56:53 ID:r22v7z8l.net]
お題: 点Xが多角形Pの内部にあるかどうか判定するプログラム。

参考: https://www.nttpc.co.jp/technology/number_algorithm.html

979 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 10:29:10.88 ID:l8PjXQtK.net]
954ですが出題を間違えました!
多角形とか馬鹿の発想なんで、単純に

980 名前:"Hello, World!"と出力するプログラムを書いてください。
お願いします!
[]
[ここ壊れてます]



981 名前:デフォルトの名無しさん mailto:sage [2020/02/22(土) 10:53:17 ID:SFxQYKYb.net]
所詮は蟻ということか

982 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/02/22(土) 14:34:34 ID:bX7nhnRg.net]
>>955
ポリゴンぶつけてやろうか?

983 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/02/22(土) 14:39:53 ID:bX7nhnRg.net]
多角形、いわゆるポリゴンを馬鹿にしちゃあかんよ。CGの基礎はポリゴン。描画も当たり判定もポリゴンがなければ話しにならない。
多角形は自由に様々な形状を表現できる。イライラ棒のフレームとか、道端に転がってる岩の形とか。

984 名前:デフォルトの名無しさん mailto:sage [2020/02/24(月) 20:48:14 ID:D8qhYUus.net]
[お題]
URLのページに都道府県別の人口と面積が載っている。
 今回使用するのは、2019.10.1のデータ
 URL: https://uub.jp/pjn/pb.html

 異なる20都道府県を選んで人口密度(人/km2)を最大化する。
 人口密度は、少数6桁程度表示
 選んだ都道府県名を 20個表示する(表示されてる順 ← 県コード順)。

 例えば、3都道府県なら、
  4906.099305 人/km2
  [東京都, 神奈川県, 大阪府]

※入力はwebページから(工夫して)コピペで、スクレイピングの問題じゃない。

985 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 12:49:16 ID:A39/tA2F.net]
>>959 Ruby
https://ideone.com/sLaDGe
推定で 1008.245481 人/km2

986 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 21:15:33.96 ID:A39/tA2F.net]
>>959 Ruby
面倒なことはしなくて良かったみたい
https://ideone.com/5bUwaQ

987 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 23:17:09.48 ID:zX8kgoJ+.net]
お題: 決められたフォーマットの日付が与えられるので、年月日の表記を相互変換しなさい

例:
in < 2020/02/25
out > 2020年2月25日

in < 2020年2月25日
out > 2020/02/25

988 名前:デフォルトの名無しさん mailto:sage [2020/02/25(火) 23:42:53.40 ID:QaG0jWhg.net]
>>962
perl5
https://i.imgur.com/uXYkFCA.jpg

989 名前:デフォルトの名無しさん [2020/02/26(水) 01:45:39 ID:+8ew93/H.net]
>>963
それだと月の02が2にならないのでは?

990 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 01:52:39 ID:h2sTW171.net]
02 だったか
printf などでゼロ埋めさせる必要があったんだな



991 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:04:04.40 ID:PiyizPRV.net]
そそっかしい人間だなぁ
問題文よく読んでないんじゃね

スラッシュ表記の時は0を削除
年月日表記の時は0で埋める

問題文の例が見えない間抜けの馬鹿なのか?

992 名前:デフォルトの名無しさん mailto:age [2020/02/26(水) 08:27:12.43 ID:/vd0VUJl.net]
他人のミスにつけ込みすかさずマウンティングwww

993 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:52:59 ID:PiyizPRV.net]
ミスやバグを作り出すような人間には早期に消えてもらった方がいいからね
それに、そそっかしくて注意力のない欠陥人間なんて一番いらないでしょ
だから、マウンティングを超えて、馬鹿にハッキリと「お前は馬鹿だから要らない、消えてくれ」と言い渡す訓練はいつも行う必要がある

まぁこの手の馬鹿がこういうかんたんで短い問題であぶり出せるのも分かった
アホは問題文を読む能力すらないし、読もうともしない
それに、引っかけ問題は、不要な馬鹿やクズや重度のお人よしを見分けるのに使える

994 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 08:54:05 ID:h2sTW171.net]
次からはヒューマンエラーが出ないように
正解出力例をコピペして、テストにかけておく

995 名前:デフォルトの名無しさん mailto:age [2020/02/26(水) 09:13:55 ID:/vd0VUJl.net]
一生懸命やな

996 名前:デフォルトの名無しさん [2020/02/26(水) 09:55:08.64 ID:re2OdmIW.net]
人生とはTSPである。

997 名前:デフォルトの名無しさん [2020/02/26(水) 11:25:01 ID:b8tbrO4B.net]
>>968
お前は馬鹿だから要らない、消えてくれ。

998 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 14:32:49 ID:bEhXB3HQ.net]
>>968
つまらないミスをする人より、つまらない人間(>>968)の方が不要だろうw

999 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 14:41:32.81 ID:yGkcf64x.net]
問題文を読んでも例しか書いてないし
決められたフォーマットとやらの記載がどこにもない
何を対応すればいいのかまったく不明
問題文がミス

1000 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 16:46:21.84 ID:0uW8t3zH.net]
>>962の修正
お題: 標準入力から入力が与えられる。入力は一行の文字列で、yyyy/mm/ddまたはyyyy年mm月dd日のフォーマットで構成される。
この時yyyyは西暦年(0~9999)でmmは月(1~12)でddは日(1~31)である。
yyyy/mm/ddの入力をyyyy年mm月dd日のフォーマットに整形しなさい。
また、yyyy年mm月dd日の入力をyyyy/mm/ddのフォーマットに整形しなさい。
yyyyは0埋めの4ケタとし、mm, ddは0埋めの2桁として整形しなさい。

例:
in < 2020/02/25
out > 2020年02月25日

in < 2020年02月25日
out > 2020/02/25



1001 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 16:49:07.66 ID:0uW8t3zH.net]
>>975
追記、整形した文字列は標準出力に出力すること

1002 名前:デフォルトの名無しさん [2020/02/26(水) 18:22:57 ID:q+vU4LVz.net]
>>962
Perl5
https://paiza.io/projects/fHuOkAPF0a4kE9gAktniDw

こういうのはPerlだと楽だな。

1003 名前:959 mailto:sage [2020/02/26(水) 19:06:00 ID:jFCu1Qxy.net]
>>959 https://ideone.com/uhSlIm

想定解、二分探索でやる。人口密度は"平均値"そのもの。
"平均 最大化"でググれば、それなりの解説がある。

※母数が47と小さいので、1秒焼きなましでも ほぼいける。

>>961
 一発回答問題なので合っているので正解。しかし気になるのは
 rubyよくわからないが、[県名,人口,面積]として
 [['A', 9,3.0],['B',1, 1.0],['C',13,6.0],['D',15,7.0]] から
 2点を選ぶときの正解は{AB}、3点を選ぶときの正解は{ACD}のパターン。

1004 名前:デフォルトの名無しさん mailto:sage [2020/02/26(水) 19:17:12.65 ID:qN9Z1rJQ.net]
ミスを指摘するのはいいけどスマートに指摘してる>>964の後でグダグダ書いても見苦しいだけ

1005 名前:デフォルトの名無しさん [2020/02/26(水) 19:28:29.51 ID:q+vU4LVz.net]
>>975
Kotlin
https://paiza.io/projects/-XJ2Y2J3_f0inCATzeLV2g

元のお題のように桁数可変にする場合はコメントになってる方を使う。

1006 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 20:37:04.61 ID:pCBnuevU.net]
高次元のhypot()って、
・1パス派
(例:ttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot)
・2パス派
(最初のパスで絶対値が最大のやつを探す)

1007 名前:デフォルトの名無しさん [2020/03/10(火) 09:09:02 ID:f5TEfRbL.net]
お題:TSPの問題です。より良い解を見つけてください。
112: 72, 84, 96, 78, 66, 54, 36, 48, 18, 6, 24, 12, 0, 30, 42, 60, 90
12 . . . . . 9 . . .
. . 11 . . . . . 8 .
. . . . 10 . . . . .
13 . . . . . 6 . . .
. . 14 . . . . . 7 .
. . . . 5 . . . . .
15 . . . . . 4 . . .
. . 0 . . . . . 3 .
. . . . 1 . . . . .
16 . . . . . 2 . . .

1008 名前:デフォルトの名無しさん mailto:sage [2020/03/10(火) 10:21:57.13 ID:uSYTACuw.net]
卓球?

1009 名前:デフォルトの名無しさん mailto:sage [2020/03/10(火) 14:43:02.26 ID:DwW+jSc5.net]
Third Person Shooting

1010 名前:デフォルトの名無しさん mailto:sage [2020/03/10(火) 17:12:41.27 ID:7dkrpYl/.net]
答えは42



1011 名前:デフォルトの名無しさん [2020/03/10(火) 18:36:06.37 ID:lAAHr9o2.net]
>>982
TSPとは何か?

1012 名前:デフォルトの名無しさん mailto:sage [2020/03/10(火) 20:05:02 ID:5TWhqkXt.net]
巡回セールスマン問題

1013 名前:デフォルトの名無しさん [2020/03/10(火) 20:35:05 ID:lAAHr9o2.net]
しかし問題がわからない。あの数字の並びは何を意味しているのか?どう解釈したら良いのか?

1014 名前:デフォルトの名無しさん [2020/03/12(木) 07:28:47.04 ID:ENQzvamd.net]
TSPはの難しさは都市の配置に規則性がないことに起因している。

1015 名前:デフォルトの名無しさん mailto:sage [2020/03/12(木) 11:02:31.13 ID:2DPQopCV.net]
都市間の移動にかかる費用も考える必要もある
複数日にまたがるときはホテルとかの滞在費用も
考える必要がある。

1016 名前:蟻人間 mailto:sage [2020/03/12(木) 12:28:53.46 ID:C2ncg2aI.net]
そろそろ次スレ。

1017 名前:デフォルトの名無しさん mailto:sage [2020/03/12(木) 12:33:11.17 ID:YemHquQ0.net]
IT業界の俊英が集まっても21世紀という未来になろうともスレ立ては自動化出来てない

1018 名前:デフォルトの名無しさん [2020/03/12(Thu) 19:05:02 ID:IkexJDbX.net]
三重円上に都市を配置すると動きが長く続いて面白い。

1019 名前:デフォルトの名無しさん [2020/03/13(金) 01:44:15 ID:0rEhys36.net]
次スレ

プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/1

1020 名前:デフォルトの名無しさん [2020/03/14(土) 09:16:02 ID:3pKFlko/.net]
お題:5以上の素数は6 n±1で表される。剰余の合計は正になることが
あるのか?



1021 名前:デフォルトの名無しさん mailto:sage [2020/03/14(土) 09:18:38 ID:k7TraB34.net]
たとえば 7 + 13 = 6*3 +2 で正になるね それで?

1022 名前:デフォルトの名無しさん [2020/03/14(土) 18:47:10 ID:Eedm4UOr.net]
>>995
説明不足だったかもしれない。
素数は6の剰余 +1とー1どっちが多い?
ということです。一億ぐらいまでの素数だと
どんどんマイナスになってしまう。

1023 名前:デフォルトの名無しさん mailto:sage [2020/03/14(土) 19:21:05 ID:APh0y0Of.net]
説明不足というかあの文章からその意図が読み取れる人のほうが稀なんじゃねぇの?と思うほどには意味不明

1024 名前:デフォルトの名無しさん mailto:sage [2020/03/14(土) 19:23:26 ID:APh0y0Of.net]
というか、その出題内容であるなら数学の話では?
プログラムで1億までだろうが10^100までだろうが求めたところで正答とは言えない

1025 名前:デフォルトの名無しさん mailto:sage [2020/03/14(土) 20:35:41.39 ID:B7/mXo+i.net]
とりあえず途中までシミュレーションしてなにか法則ありそうなら証明を試みる
って普通にやると思う
まあ>>995からそれを読み取るのはほぼ不可能だが

1026 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 11時間 35分 19秒

1027 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef