プログラミングのお題 ..
[2ch|▼Menu]
2:デフォルトの名無しさん
19/11/17 10:53:15.74 uilOlN75.net
>>1 おつ

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

4:デフォルトの名無しさん
19/11/18 02:35:04.18 t9gVOJNg.net
お題:
URLリンク(i.imgur.com)
明度が0〜9までのグレーの四角がグラデーション状に横並びにならんでいるとします
この状態だと隣接している四角と四角の明度の差が少ないので境目が見えづらいです
全ての四角同士の明度差ができるだけ大きくなるように並び替えるにはどういうロジックが考えられるでしょう?
四角の数が増えても対応できるような汎用的なロジックが望ましいです
両端は固定のままが理想ですが必須要件ではありません
・ボツ例:1〜4まで一つおきに左右端を入れ替える
(1) 1と8を入れ替える
(2) 2と7はそのまま
(3) 3と6を入れ替える
(4) 4と5はそのまま
※これだと4と5が隣り合ったままで明度差が少ない箇所が残るので最適解ではない

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

6:デフォルトの名無しさん
19/11/18 11:50:33.33 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:デフォルトの名無しさん
19/11/18 18:43:37.24 DjoGz+4S.net
>>4 Java (両端固定ではない
URLリンク(ideone.com)
>>6
つまりこういうことかの?
両端固定で奇数個の場合はどうなるんじゃろ

8:デフォルトの名無しさん
19/11/18 20:03:36.58 EbN/HVpO.net
>>4
両端固定で最小隣接差を最大化する条件で回答する。Rですべての並べ方を虱潰しに
調べるのが URLリンク(ideone.com) で、結果は>>6が言う通りになる。
n = 10 ではすぐに終わるが、それを超えると時間がかなりかかるし、環境によっては
メモリ不足になる。
もう少し効率的に調べるのが URLリンク(ideone.com) で、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:デフォルトの名無しさん
19/11/21 21:52:25.50 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:デフォルトの名無しさん
19/11/21 21:53:22.41 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の予想を理論的に説明できたので、それに基づくプログラムを晴れて作成すると、
URLリンク(ideone.com) になる。

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

12:デフォルトの名無しさん
19/11/21 22:40:32.33 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向け => URLリンク(ws.stfx.eu)

13:デフォルトの名無しさん
19/11/22 20:06:41.59 EyqF2Cmi.net
お題:読み手を一瞬戸惑わせよ
URLリンク(ideone.com)

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

15:デフォルトの名無しさん
19/11/23 06:01:06 KvoIJqUR.net
あ、UOスレに書いたものだと・・・。

16:デフォルトの名無しさん
19/11/23 22:51:11.49 ubdNKuk5.net
>>4>>11の方式で求めるプログラムを書いてみた: URLリンク(ideone.com)
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:デフォルトの名無しさん
19/11/24 20:41:58.58 NMcltmqU.net
今日は夕焼けが超絶綺麗だったよ。
今まで見たことないくらい。
まだきれいになるだろうか、というのと、これ一回で終わりだろうか。
というのがあった。

19:デフォルトの名無しさん
19/11/25 01:25:34.58 SBJvKXmI.net
お題:Diffアルゴリズムを実装せよ。
差分アルゴリズム、さんぷる。
1:abcdef
2:abdef -> -3:c
3:bcdef -> -1:a,+3:c
4:abcdef -> +1a
以上がオレの考えるアルゴリズムだが、
もっとより良いアルゴリズムが世の中にはあるはずなので、
実装しませんか?

20:デフォルトの名無しさん
19/11/25 09:24:47.39 veETdbiQ.net
>>18
それはアルゴリズムではなく入力と出力のサンプル。
まあとにかく足された文字は+と位置と足された文字(または文字列?)を出して引かれた文字は-と位置と文字を出す仕様ということだな。
で、位置は先頭が1だと。
後で時間が空いたら考えとく。

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

22:デフォルトの名無しさん
19/11/26 01:23:24 q8waUqPK.net
>>18
Kotlin
URLリンク(paiza.io)

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

23:デフォルトの名無しさん
19/11/26 11:38:36 JjgFJEIb.net
>>18
C
URLリンク(paiza.io)

24:デフォルトの名無しさん
19/11/26 15:12:16 JjgFJEIb.net
>>18
Perl
URLリンク(paiza.io)

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

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

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

27:デフォルトの名無しさん
19/11/28 20:14:43.82 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:デフォルトの名無しさん
19/11/28 20:24:13.35 522sTouZ.net
>>26
同じ数字は何回も使っていいの?

29:デフォルトの名無しさん
19/11/28 20:30:31.52 mbBdSv/T.net
>>27
可。

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

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

32:デフォルトの名無しさん
19/11/28 21:20:11.41 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:デフォルトの名無しさん
19/11/28 22:03:53.95 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までずっとこれ
最大値しか表示しないけど
URLリンク(ideone.com)

34:デフォルトの名無しさん
19/11/28 22:37:08.59 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:デフォルトの名無しさん
19/11/28 22:43:58.67 522sTouZ.net
あー、2より3の方がよかったかー

36:デフォルトの名無しさん
19/11/28 22:48:21.15 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:デフォルトの名無しさん
19/11/29 15:19:10.07 Ursk3Xfl.net
>>35
なぜそれで「だから」となるのかわからない。

38:デフォルトの名無しさん
19/11/29 17:42:19.99 YkvT9y9m.net
2、3、4以外の値はあらわれず
2と4をあわせて6以上にはならない
どっちがわからない?

39:デフォルトの名無しさん
19/11/29 17:48:24.95 YkvT9y9m.net
.... が正として、
.... * n * 1 < .... * (n+1)
.... * n < .... * floor(n/2) * ceil(n/2) @nが5以上
.... * 2 * 2 * 2 < .... * 3 * 3
.... * 4 = .... * 2 * 2

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

41:デフォルトの名無しさん
19/11/29 20:54:17.14 dycaAJcC.net
>>37
なぜ現れないとわかるのか?

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

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

44:デフォルトの名無しさん
19/11/29 21:29:43.92 57KUyJj8.net
なんでわからんのかがわからん

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

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

47:デフォルトの名無しさん
19/11/30 02:12:04 NRfKrTi3.net
したつもり en=aのような感じのあれ

48:デフォルトの名無しさん
19/11/30 02:28:06 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:デフォルトの名無しさん
19/11/30 07:09:20 WebQyLi7.net
>>45
より大きくなる具体的な分け方を>>38に書いた

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

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

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

50:デフォルトの名無しさん
19/11/30 07:13:05 WebQyLi7.net
最大となる分け方が存在する
ってのは有限性から明らか

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

51:デフォルトの名無しさん
19/11/30 11:15:44.62 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:デフォルトの名無しさん
19/11/30 17:07:38.94 0h0IqWCg.net
これでわからんのなら数学じゃなくて日本語が不自由と断言してよいレベルだな

53:デフォルトの名無しさん
19/11/30 17:44:52.22 hV/U21TG.net
>>26
URLリンク(ideone.com)
C++。二進数最強伝説を信じて書いてみたよ。
数学出来ないからいつも通り適当に解いてる。。。

54:デフォルトの名無しさん
19/11/30 18:01:19.21 hV/U21TG.net
あ、間違ってら。

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

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

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

58:デフォルトの名無しさん
19/11/30 18:18:52.60 hV/U21TG.net
2の倍数で且つ3の倍数の時は2を使うのがいいのか3を使うのがいいのか解らない。

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

60:デフォルトの名無しさん
19/11/30 18:26:46.97 hV/U21TG.net
うーん。わけ わか らん 。。

61:デフォルトの名無しさん
19/11/30 18:43:15.79 hV/U21TG.net
URLリンク(ideone.com)
オマケ・鼻から悪魔かいな。。。

62:デフォルトの名無しさん
19/11/30 19:36:20.16 hV/U21TG.net
URLリンク(ideone.com)
うがー、おまけのオマケ。>>60はオレのバグだった。。。Orz

63:デフォルトの名無しさん
19/11/30 19:40:07.22 8+8CeiWg.net
>>35で終わり
はい次

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

65:デフォルトの名無しさん
19/11/30 20:15:09.44 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:デフォルトの名無しさん
19/11/30 20:17:08.99 c0k0ajHF.net
1から9までの行頭の半角空白が消えちゃったな。

67:デフォルトの名無しさん
19/11/30 22:34:49.11 jbs9cucn.net
並び替えは無視?

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

69:デフォルトの名無しさん
19/12/01 01:22:27.49 ed/fyTUF.net
>>67
C
URLリンク(ideone.com)

70:デフォルトの名無しさん
19/12/01 01:55:41.13 ztn4h68A.net
seq 100

71:デフォルトの名無しさん
19/12/01 02:00:13.95 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:デフォルトの名無しさん
19/12/01 06:08:36 jm8+wa+d.net
>>67 Ruby アイデアは前スレの誰かのパクリ

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

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

74:デフォルトの名無しさん
19/12/01 17:27:50.28 mlX7masq.net
>>67 GNU Smalltalk
(1 to: 100) asArray display
URLリンク(ideone.com)

75:デフォルトの名無しさん
19/12/01 18:17:04.86 54WkPiOY.net
>>67
Kotlin script
(1..100).forEach(::println)
今スマホから書いてて試せないんだが多分これでできる。
forEachはループだというならこれではダメだが(確かに中ではループしていると思う)。

76:デフォルトの名無しさん
19/12/01 18:51:37.83 Enyr5Fgf.net
>>67
PowerShell
1..100

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

78:デフォルトの名無しさん
19/12/01 21:21:54.10 3oGVZyBI.net
お題: アルファベットの文字列の大文字と小文字の対応を反転させて表示しろ
in < Hello, World!
out > hELLO, wORLD!

79:デフォルトの名無しさん
19/12/01 21:48:29.67 5gm7V8wf.net
>>77 Ruby
puts 'Hello, World!'.swapcase # => hELLO, wORLD!

80:デフォルトの名無しさん
19/12/01 22:32:24.47 ztn4h68A.net
vim 的には ~ 一発

81:デフォルトの名無しさん
19/12/01 23:10:18.94 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:デフォルトの名無しさん
19/12/02 02:15:21 6Q7teWoI.net
>>77
tr コマンド

tr a-zA-Z A-Za-z

実際に実行するとこうなる。
URLリンク(paiza.io)

84:デフォルトの名無しさん
19/12/02 08:36:45.67 gdxsQr6e.net
>>67 PHP
<?=implode(range(1,100)," ")?>

85:デフォルトの名無しさん
19/12/02 15:32:31.35 APM7ABg4.net
お題: コンビニでタバコ(マルボロ)を買いたい
喫煙者がコンビニでタバコを購入して喫煙するまでの疑似コードを書け
詳細にかつ現実的で、エラー/例外に可能な限り対応していれば高得点とする
例:
person.walk_to(conbini)
if conbini.has(person) {
employee = conbini.get_current_employee()
tobacco = person.request_to(employee, "マルボロ")
person.smoke(tobacco)
}

86:デフォルトの名無しさん
19/12/02 16:09:21.37 KwsHxcvC.net
ヤニカスはしね

87:デフォルトの名無しさん
19/12/02 17:33:22.44 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:デフォルトの名無しさん
19/12/02 17:39:36.73 54OAxivC.net
タバコに火をつける時は、咥えて軽くチューブを吸わないとつかないのDA!!

89:デフォルトの名無しさん
19/12/02 21:58:19.49 gdxsQr6e.net
>>67 Pxthon
print(*range(1,101))

90:デフォルトの名無しさん
19/12/02 22:05:34.98 gdxsQr6e.net
>>87
すいません Python です

91:デフォルトの名無しさん
19/12/02 22:07:19.69 /Z+nXxB0.net
>>76
どゆ意味?

92:デフォルトの名無しさん
19/12/02 22:09:31.28 az4xQt0G.net
示唆 ってナニ

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

94:デフォルトの名無しさん
19/12/03 17:02:12 /pkZgP0J.net
>>67 jq

range(1;101)

95:デフォルトの名無しさん
19/12/03 19:25:09.89 mUaHu9IR.net
>>67
perl5
perl -e 'print join "\n", 1..100'

96:デフォルトの名無しさん
19/12/03 20:10:35.90 aor79FgV.net
>>67
Prel5 ってまだ出てないよね?
print join(' ', 1..100) . "\n";

97:デフォルトの名無しさん
19/12/04 09:18:44 MGV4EHAd.net
永久に出ないんじゃないかなPrel5なんて

98:デフォルトの名無しさん
19/12/04 12:00:08 aCqgWIP/.net
プレル・ふぁいぶ ならショウガナイ

99:デフォルトの名無しさん
19/12/04 12:58:50.91 61i6ZWvj.net
print(isletter(c)

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

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

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

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

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

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

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

print(sum(1:100))

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

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

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

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

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

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

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

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

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

だけかな?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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