[表示 : 全て 最新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/

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);






[ 続きを読む ] / [ 携帯版 ]

前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