プログラミングのお題スレ Part15at TECH
プログラミングのお題スレ Part15 - 暇つぶし2ch290:デフォルトの名無しさん
19/09/03 15:15:29.58 R1k47NOJ.net
(a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。

291:デフォルトの名無しさん
19/09/03 15:28:15.62 03sYx3ae.net
>>285
何かの冗談? それじゃ明らかに解無しなんですが

292:デフォルトの名無しさん
19/09/03 15:31:15.82 FbgAnO5f.net
>>257 Ruby
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101

293:デフォルトの名無しさん
19/09/03 15:38:54.45 R1k47NOJ.net
自分で移項して解こうと思ったがキャパ超えててギブアップ。
>>286
解があることは証明されているのですか?数学ダメなんだよ。

294:デフォルトの名無しさん
19/09/03 15:40:16.69 03sYx3ae.net
>>288
(a^2 + b^2)^z=0 <=> a = 0 and b = 0
a > b はどこ行ったの?
てか勝手に両辺=0にしちゃその時点で必要性満たしてないよね

295:デフォルトの名無しさん
19/09/03 15:45:42.09 R1k47NOJ.net
数学ダメなのでセオリー知らないんだけど。マジ解らん。
正直すまんかった。

296:デフォルトの名無しさん
19/09/03 15:47:50.03 R1k47NOJ.net
あと、ちょっとだけ。
>>289
俺はaとbをゼロには規定してないよ。

297:デフォルトの名無しさん
19/09/03 15:50:06.71 gHL/qcPl.net
>>284
18行目の不等号逆じゃない?
x=y=z=2の時に出力出るはずだけど。
(元のお題ではxは3以上)

298:デフォルトの名無しさん
19/09/03 15:52:04.84 R1k47NOJ.net
>>292
URLリンク(ideone.com)
弄ってみた。

299:デフォルトの名無しさん
19/09/03 15:56:44.07 gHL/qcPl.net
doubleの演算誤差出てるなwwww

300:デフォルトの名無しさん
19/09/03 15:57:29.86 R1k47NOJ.net
>>293 直しました。
大きな数で発見できているかな?

301:デフォルトの名無しさん
19/09/03 16:00:10.37 R1k47NOJ.net
いや、精度飛んでて、うまく測れてないな。

302:デフォルトの名無しさん
19/09/03 16:01:59.48 gHL/qcPl.net
演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?

303:デフォルトの名無しさん
19/09/03 16:02:55.16 R1k47NOJ.net
多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。

304:デフォルトの名無しさん
19/09/03 16:03:35.69 gHL/qcPl.net
あ、doubleからstd::size_tになってたw

305:デフォルトの名無しさん
19/09/03 16:10:08.37 R1k47NOJ.net
色々弄ってみたけど、これで凍結しておくわ。
すまんかった。

306:デフォルトの名無しさん
19/09/03 16:42:54.68 03sYx3ae.net
>>291
規程してないよって言ってるけど
貴方が提示した条件は a=0 and b=0 と同値ですよって指摘してるんですけど難しいですか私が言ってる事

307:デフォルトの名無しさん
19/09/03 16:46:54.03 R1k47NOJ.net
>>301
正直言えば難しいね。手を出さなければよかったとちょっと思ってる。
すまんな。

308:デフォルトの名無しさん
19/09/03 21:38:14.04 MpIMqTuu.net
>>277
なんでxだけ3以上なの?
yとzは本当に1以上の整数として解いていいの?
aとbは定数として扱うの?
なんなの?

309:デフォルトの名無しさん
19/09/03 22:12:17.83 VYSmTHvF.net
x=y=z=2以外の解があるか?
すべて自然数、変数 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z の解
答えしらず。 a=2 b=1だけはいまのところ他にないを証明可能

310:デフォルトの名無しさん
19/09/03 22:33:37.84 dCTs9gWx.net
>>257
VB
URLリンク(paiza.io)

311:デフォルトの名無しさん
19/09/03 22:40:59.77 MpIMqTuu.net
>>304
だからxだけ3以上でyとzは1以上の整数として計算していいか聞いてんだけど?
で、もしそうだったとしてなんでxだけ3以上に仮定してんのかも合わせて聞いてんだけど答えろよ

312:デフォルトの名無しさん
19/09/04 00:41:31.51 5HyNYB53.net
304は3以上を仮定してない、すべて自然数

313:デフォルトの名無しさん
19/09/04 02:57:47.93 5U+WeLbN.net
あーこりゃ致命的に頭悪い奴か
数学も日本語も通じないとは

314:デフォルトの名無しさん
19/09/04 07:57:08.75 FC7xGJ7s.net
定理を発見したら著作権で保護されるのかな。

315:デフォルトの名無しさん
19/09/04 08:46:01.17 HTJbgiFI.net
日本数学会に提出する前に
大学の教授にみてもらわないと

316:デフォルトの名無しさん
19/09/04 09:59:12.24 bj6rvw0v.net
次スレは数学禁止ってスレタイに入れないとな

317:デフォルトの名無しさん
19/09/04 10:54:57.98 wUnebE5/.net
>>310
そして手柄を横取りされる定期

318:デフォルトの名無しさん
19/09/04 11:24:41.75 P7o6e2y0.net
お題: 平面上にいくつかの円 (内部も含む円) がある
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け

319:デフォルトの名無しさん
19/09/04 13:52:37.01 aB3hMBX/.net
半年くらい前にそのお題あったが思いつかなかったんだよなー…モンテカルロなら作れるがw
スレリンク(tech板:405番)

320:デフォルトの名無しさん
19/09/04 14:06:48.93 HTJbgiFI.net
それ円周率パイとネイピア数のe の積が
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?

321:デフォルトの名無しさん
19/09/04 14:13:24.75 yXyTPmQk.net
>>315
辛くねえよ
どうやったら方程式解いて超越数が出てくんだよ
ちょっとは考えてからレスしろ

322:デフォルトの名無しさん
19/09/04 14:29:48.47 HTJbgiFI.net
例として313が N=4 で、それを与える円4つが
(x-ePi-1)^2+(y-ePi)^2=1
(x-ePi+1)^2+(y-ePi)^2=1
(x-ePi )^2+(y-ePi-1)^2=1
(x-ePi )^2+(y-ePi+1)^2=1
だったら大変かもしれない?

323:デフォルトの名無しさん
19/09/04 17:19:01.11 reYoOADS.net
>>273
これ解無しって言ってるけど自明じゃないよね
ホントにあってんのか?

324:デフォルトの名無しさん
19/09/04 18:34:12.43 6EOP5CCF.net
>>306
横レスだが
騒ぐ前に元の>>272の問題文を良く見なさい
それで自分で判断できなければ数学的な問題に取り組むのは止めておいたほうが良い

325:デフォルトの名無しさん
19/09/04 18:42:19.25 8qjE+V3b.net
>>319
一連のやり取り見て出題者がそこら辺理解してなさそうだったから改めて確認しただけなんですけど
>>272を見ただけでは>>306の全ての質問に答えられないことは明白なのに何いってんの?
数学の論理もわからねえくせに見当違いのお説教してんじゃねえよ

326:デフォルトの名無しさん
19/09/04 18:49:05.83 A7beDSD/.net
5chはペアプレイではなくマルチプレイということをお忘れなく。

327:デフォルトの名無しさん
19/09/04 19:10:06.78 5HyNYB53.net
>>318
省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。

3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ
mod 3で1 ≡ (-1)^z、 z偶数が必要
z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y)
簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要
w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要
y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
y=1ならば解なし

328:デフォルトの名無しさん
19/09/04 19:23:20.13 5HyNYB53.net
かいてから考えたら間違ってるところがでてきた
ここまではいいとして、これあってないな

> y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立

329:デフォルトの名無しさん
19/09/04 19:26:32.69 5HyNYB53.net
いやあってた
5^2 ≡ 1 (mod 8)になってしまうとおもったら
w奇数だから、5^3 ≡ 5 (mod 8)だった
5しかでない

330:デフォルトの名無しさん
19/09/04 20:01:35.58 P7o6e2y0.net
>>314
あら既出だったのか
Twitterで見つけてきたんだけど、その人もこのスレ見てたのかな
それとも問題自体が有名な問題なのかな?

331:デフォルトの名無しさん
19/09/04 22:19:56.37 bGWgoiea.net
少なくとも自分はAOJで見た記憶がある
たしか高校生向けのコンテストの問題だったはず…

332:デフォルトの名無しさん
19/09/04 22:31:18.96 A7beDSD/.net
>>313
座標と半径が与えられたら、ひたすらHypotするんだ!!
これ、ゲーム技術だから覚えておくとよいよ。(偉そう

333:デフォルトの名無しさん
19/09/04 22:47:39.03 5HyNYB53.net
自作かとおもってたがWikipediaにほぼおなじのあった。解は指数2に限るという。
のってて解けてないとすると難問か

ピタゴラスの定理 - Wikipedia
Jesmanowicz 予想
1956年に Jesmanowicz が以下の予想を提出した。
(a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が
(an)^x + (bn)^y = (cn)^z
で自然数解を持つには、x=y=z=2 であることが必要である。

334:デフォルトの名無しさん
19/09/04 22:56:59.22 5HyNYB53.net
Jesmanowicz予想で検索

KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想
まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。
藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。
Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。
次に、Terai予想のケース(1)の一般的な場合について考察した。
最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。
その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。
さらに、申請者はTerai予想の類似問題を提起した。それは、
2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、
指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、
そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。
申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、
Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。
特に、後半の主張である"解の一意性"を証明した。
最後に、Terai予想では扱われない三つ組みについても研究結果を得た。
まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。
また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。
それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。
URLリンク(kaken.nii.ac.jp)

335:デフォルトの名無しさん
19/09/04 23:07:59.22 5HyNYB53.net
完全解決してないが、結構解けてるらしい

早稲田大学整数論セミナーの予定 (2014年度 第5回)
タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について
アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式
(m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z  は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した.
ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする.
Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した.
これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である.
最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた.
本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する.
これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる.
URLリンク(www.waseda.jp)

336:デフォルトの名無しさん
19/09/04 23:25:42.22 4CPx11+J.net
>>313
VB
URLリンク(paiza.io)

337:デフォルトの名無しさん
19/09/05 00:10:35.11 ymsvBiyv.net
>>313
URLリンク(ideone.com)
C++。暇だったので解いてみた。が、あってるかわからない。

338:デフォルトの名無しさん
19/09/05 10:41:35.98 jPhMORz8.net
置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃


339:いところが正解だから合ってるかどうかだいたい見て分かる rが小数で半径が0.0001から1億くらいまでまちまちだと面倒



340:デフォルトの名無しさん
19/09/05 10:53:13.59 Wm4c6P24.net
>>327,331-332
俺とは問題の解釈が違うようだ?

341:デフォルトの名無しさん
19/09/05 11:32:41.41 JTGocygG.net
>>334
そいつらはいつものアホやからスルーしなはれ

342:デフォルトの名無しさん
19/09/05 13:09:10.29 n5jm1pTY.net
>>326
高校生レベル高いな
まぁアルゴリズムとか高校生でもすごい子いるもんなー
競プロとかすごいもんなー

343:314
19/09/05 21:33:33.48 Wm4c6P24.net
>>313 Java
URLリンク(paiza.io)
なんか思いつけたので書いた
いつもはideoneやけど、画像出力もしたくなったのでpaiza
入力データは スレリンク(tech板:405番)

344:デフォルトの名無しさん
19/09/06 18:11:06.63 O7F8x+Ks.net
>>337
お前いつもスマートだよな

345:デフォルトの名無しさん
19/09/06 21:58:05.28 h6IBFFVJ.net
材料グループAと材料グループBがあるとする。
それぞれには、ランダムな固有値を持っており、
固有値の差が、ある数値以下の組み合わせのみ使用可能とする。
ただし、材料グループA、B内の材料は一度使うとなくなるため一度しか組み合わせれない。
それぞれのグループの材料が100ずつあったとして適切に組み合わせれば
全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。
こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。

346:デフォルトの名無しさん
19/09/06 22:02:46.96 adnLBrFU.net
動的計画法でいいのかな?
オレできねーけど。

347:デフォルトの名無しさん
19/09/06 22:06:24.07 IlHiLkpw.net
>>339
各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?

348:デフォルトの名無しさん
19/09/06 22:10:20.13 adnLBrFU.net
A:大<->小
B:小<->大
のペアがましといえばまし。
真ん中がマッチしない可能性はある。

349:339
19/09/06 22:10:34.94 h6IBFFVJ.net
なるほど、とても簡単な問いだったのですね。
なんか難しい事ばかり考えていました。

350:デフォルトの名無しさん
19/09/06 22:11:12.30 5B1pyUbX.net
diff のアルゴリズムがもうちょっと複雑なのにも対応できるやつじゃなかったか?

351:デフォルトの名無しさん
19/09/06 22:14:00.34 adnLBrFU.net
あー、差が以下か。
A:小<->大
B:小<->大
でいいわ。。。
俺もなんか難しいこと考えてた。そーりー。

352:339
19/09/06 22:14:53.61 h6IBFFVJ.net
必ずマッチングできない100ずつあったとした場合でも昇順ソートして同じ順位にいるもので、比較してマッチングできれば実施、できなければ上位を参照してマッチングできたら抜けて、できなければさらに上位とマッチングみたいなことをすれば良いのか。

353:339
19/09/06 22:23:16.91 h6IBFFVJ.net
あっ違う違う。
昇順にソートして組み合わせるとマッチングできないもの出てきます。
というのも差が最小の組み合わせではなくて、
差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。
少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね

354:デフォルトの名無しさん
19/09/06 22:44:43.03 IlHiLkpw.net
>>347
適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?

355:339
19/09/06 23:00:40.30 h6IBFFVJ.net
ないですね。
ということは、やはり最小のマッチング以外はありえないということになるのですね。
材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが
一番効率の良いマッチング方法になる�


356:ニいうことか、、、。



357:デフォルトの名無しさん
19/09/06 23:08:33.74 adnLBrFU.net
>>339
URLリンク(ideone.com)
C++。ちょっと思いついたのでコード書いてみたよ。
ちょっとグリードに組み合わせ作るようにしてみた。

358:デフォルトの名無しさん
19/09/06 23:19:00.83 Sfa1dP8m.net
全てマッチングできるとは限らず最も多くマッチングできる組み合わせ
を求める ならちょっと工夫必要そう

359:デフォルトの名無しさん
19/09/06 23:24:40.52 h6IBFFVJ.net
皆さんありがとう。
最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな?
>>350
コードありがとうございます。
プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。

360:デフォルトの名無しさん
19/09/06 23:31:32.53 adnLBrFU.net
fix it.

361:デフォルトの名無しさん
19/09/06 23:32:51.82 adnLBrFU.net
大したコードではないが、そこまで威力があるとは思わなかった。
動機なんてそんなもんか。

362:蟻人間
19/09/06 23:43:04.03 sc/CXZHY.net
お題: ある会社の営業曜日(複数可)と営業時間が与えられる。今月1ヶ月の営業時間の合計を求め、今月のカレンダーの下に表示せよ。ただし、その会社は祝日・祭日を特別扱いしないものとする。

363:399
19/09/07 00:15:01.96 meGL1HdM.net
>>354
おぉ見るたびマッチング精度上がってる
ありがとうございます!
参考にさせてもらいます

364:デフォルトの名無しさん
19/09/07 09:58:38.85 kl0P3WfA.net
>>350
>>339は固有値の差と言ってるのに>>350は固有値の和でコード書いてるように見える

365:デフォルトの名無しさん
19/09/07 10:01:09.66 15iR+LCW.net
そもそもeigenvalueじゃないのに固有値と言うのに違和感を覚える

366:デフォルトの名無しさん
19/09/07 10:40:38.85 K3PTI0jA.net
わからんな
結晶や薄膜やらだと本当に固有値がある
ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま
もしかすると高分子の製薬かもしれない
使うと無くなるんだろ?

367:デフォルトの名無しさん
19/09/07 13:46:49.28 VQVarZXt.net
>>357
あ・・・。そうだね、そうだね。
すっかり勘違いしていた。

368:デフォルトの名無しさん
19/09/07 14:08:25.27 VQVarZXt.net
URLリンク(ideone.com)
C++。引き算する場合、奇策練るとよくない感じだなぁ・・・。
しかし、うっかりしてたわ。

369:デフォルトの名無しさん
19/09/07 14:45:59.42 VQVarZXt.net
URLリンク(ideone.com)
C++。暇だったから、いじってみた。
自分の方法だと、スコア高い?けどたまに100ペアにならないことがある。
これで今回はこれがオチとしておく。

370:399
19/09/07 20:55:02.76 aT864lGO.net
>>362
やっぱり、最小のペアを選んでいくことがベストなのかな?
できれば差は出来るだけ小さい方が良くて、結果みてると後者の方が良好な結果が出てる気がする

371:デフォルトの名無しさん
19/09/08 00:49:49.01 YBN7WO0H.net
排便を
壁に塗りつけ
したり顔

372:デフォルトの名無しさん
19/09/08 02:51:14.16 bEtb/TpC.net
>>257
Kotlin
URLリンク(paiza.io)

373:デフォルトの名無しさん
19/09/08 08:38:41.51 GRxK0QRw.net
>>313
正方形だと3倍速い

374:デフォルトの名無しさん
19/09/08 09:39:44.56 46Wp6heU.net
3倍早いだけだったらオーダーが変わらねーじゃん
円が一万個一億個一兆個だったらどうなんの

375:デフォルトの名無しさん
19/09/08 09:58:44.95 GRxK0QRw.net
3日の仕事が1日で済むとも言う。

376:デフォルトの名無しさん
19/09/08 13:16:12.58 rbzdrKrZ.net
>>363
ランダム生成している数字が割と一様なのでそういう結果になるけど、
まばらに片寄っていたらどうすればいいかはその時しかわからんなぁ。

377:蟻人間
19/09/08 23:16:36.64 YT+ZQkc/.net
何か初心者にも解ける面白い問題ないかな?

378:蟻人間
19/09/08 23:23:17.86 YT+ZQkc/.net
お題: 質問文とn個の項目からなるメニューを実装せよ。
質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。

379:蟻人間
19/09/08 23:47:28.87 YT+ZQkc/.net
お題: マイ ドキュメントのフォルダ階層構造を表示せよ。

380:デフォルトの名無しさん
19/09/08 23:48:15.93 gIfFAHmp.net
お題
与えられた数列の、隣り合う2要素の差のリストを作る関数等を作ってください。
入力数列例
3 1 4 1 5 9 2 6 5
出力数列例
-2 3 -3 4 4 -7 4 -1
余力があれば、ファイルなどから非常に長い数列を与えられても対処できる実装を試みてください
URLリンク(gushwell.ldblog.jp) を一部改変)

381:デフォルトの名無しさん
19/09/08 23:48:22.91 7lW0qzzX.net
お題:北のミサイルをなんとかせよ

382:デフォルトの名無しさん
19/09/08 23:51:10.96 ZRQn+E7p.net
どっかの国ハックして打ち込むしか

383:デフォルトの名無しさん
19/09/09 00:57:49.46 G8Ger3PB.net
>>373 Perl5
sub f {
 map{$_[$_ + 1] - $_[$_]} 0..$#_-1;
}
@a = qw{3 1 4 1 5 9 2 6 5};
@b = f @a;
print "@b\n";
実行結果
~ $ perl 15_373.pl
-2 3 -3 4 4 -7 4 -1

384:デフォルトの名無しさん
19/09/09 07:20:37.09 F7fW2XyB.net
>>373 Pharo/Squeak Smalltalk
| fn |
fn := [:xs | xs allButFirst - xs allButLast].
fn value: #(3 1 4 1 5 9 2 6 5). "=> #(-2 3 -3 4 4 -7 4 -1) "

385:デフォルトの名無しさん
19/09/09 13:13:33.41 4K8wNjEy.net
>>373 Ruby
p [3, 1, 4, 1, 5, 9, 2, 6, 5].each_cons(2).map{|e| -e.reduce(:-)}
# => [-2, 3, -3, 4, 4, -7, 4, -1]

386:デフォルトの名無しさん
19/09/09 15:22:46.46 pyLk+Xbb.net
>>373 Pharo/Squeak Smalltalk
#(3 1 4 1 5 9 2 6 5) overlappingPairsCollect: [:x :y | y - x]
"=> #(-2 3 -3 4 4 -7 4 -1) "

387:デフォルトの名無しさん
19/09/09 15:35:48.47 pmQvKTaB.net
>>373
URLリンク(ideone.com)
C++。あってるかな?

388:デフォルトの名無しさん
19/09/09 15:55:42.79 8EKyQA8Q.net
>>373
perl5
"3 1 4 1 5 9 2 6 5" =~ m/(\d) (?= \s? (\d) ) (?{push @diff, $2 -$1}) /xg;
print "@diff";
-2 3 -3 4 4 -7 4 -1

389:デフォルトの名無しさん
19/09/09 17:47:36.36 Uwb0lHsl.net
>>373
Kotlin
URLリンク(paiza.io)
ファイルというか標準入力から入力する事しかできない。

390:デフォルトの名無しさん
19/09/09 18:55:29.45 nBEHXDpg.net
>>373
ファイルからの読み込み派が居ない件。。。
Haskell
main = readFile "count.txt" >>= return.read >>= \lst -> print $ zipWith (-) (tail lst) lst
― ファイルから読まない場合は
― main = print $ zipWith (-) (tail lst) lst where lst = [3,1,4,1,5,9,2,6,5]
test.txt
[3,1,4,1,5,9,2,6,5]
out:
[-2,3,-3,4,4,-7,4,-1]

391:デフォルトの名無しさん
19/09/09 21:23:29.01 pmSRY1k7.net
>>373 octave
URLリンク(ideone.com)
>>373 ruby
URLリンク(ideone.com)
>>373 ocaml
URLリンク(ideone.com)

392:デフォルトの名無しさん
19/09/10 00:22:25.45 2zzGvcE4.net
>>219 Perl5
$s = 'AKDAK';
@a = ('^', split


393:'', $s); $o{$_} //= ++$i for @a; %e = map{$a[$_] => $a[$_+1]} 0..$#a-1; @p = sort{$o{$a} <=> $o{$b}} keys %o; $d{$p[-1]} = $p[-1].'$'; push @p, '$'; $e{'$'} = ''; print "'$s'\n→\n"; for (@p) {  $v = $e{$_};  $r = $d{$v} // $v;  print "$_: $r.\n"; } 実行結果 ~ $ perl 15_219.pl 'AKDAK' → ^: A. A: K. K: D$. D: A. $: .



394:蟻人間
19/09/10 01:16:31.32 /hHoc5h9.net
状態遷移図ってどんなときに役立つかな?

395:デフォルトの名無しさん
19/09/10 01:20:32.52 2zzGvcE4.net
ほらまぁ
状態遷移を表形式で定型的に定義した方が
言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面
さまざまなとき

396:デフォルトの名無しさん
19/09/10 01:22:32.02 2zzGvcE4.net
あいや、表じゃなくて図か。
そしたら、なんとなく依存関係などをややこしいグラフで表現して
ひもつけたとか賜って解釈したような気にさせるとき
自分で考えなよ

397:デフォルトの名無しさん
19/09/10 02:40:29.88 Ik1iUNRF.net
>>373 javascript
[3,1,4,1,5,9,2,6,5]
.reduce((acc, n, i, arr) => [...acc, arr[i + 1] - n], [])
.slice(0, -1)

398:デフォルトの名無しさん
19/09/10 08:11:29.51 lIijspdS.net
>>373
>>379 のブロック内で処理するのが分かりやすかったので、Haskellもprint以外の処理をリスト内包表記で完結するようにした。
main = print [y - x | let lst@(_:ls) = [3,1,4,1,5,9,2,6,5], (x,y) <- zip lst ls]
文字数としては >>383 より増えるが、読みやすさ優先。

399:デフォルトの名無しさん
19/09/10 17:53:27.20 cZVhsOAf.net
Smalltalkはやりたいことだけ書けばいいのがいい

400:デフォルトの名無しさん
19/09/10 18:46:19.95 CNsNp03m.net
分かったよじゃあoverlappingPairsCollect実装するよ…
const overlappingPairsCollect = (arr, cb) => {
let head = arr.shift();
const overlappingPairs = [];
for (const value of arr) {
overlappingPairs.push([head, value]);
head = value;
}
return overlappingPairs.map(([a, b]) => cb(a, b));
}
overlappingPairsCollect([3,1,4,1,5,9,2,6,5], (a, b) => b - a);
//=> [-2,3,-3,4,4,-7,4,-1]

401:デフォルトの名無しさん
19/09/10 19:17:03.68 CNsNp03m.net
ああ… forの前にif (!head) return overlappingPairs; のearly return入れ忘れた…

402:デフォルトの名無しさん
19/09/10 19:18:47.68 ER41jhKS.net
何言語?

403:デフォルトの名無しさん
19/09/10 19:51:01.24 4IK1yyiH.net
女子小学生のメスガキビッチ言語

404:デフォルトの名無しさん
19/09/10 20:05:04.03 9QXTHM58.net
なるほどjavascriptね!

405:デフォルトの名無しさん
19/09/10 20:19:20.42 ER41jhKS.net
URLリンク(ideone.com)
C++。なんか面白そうだったので、 >>392 をパクって移植してみた。
結構ジェネリックにかけたが、考える負荷高いね。

406:デフォルトの名無しさん
19/09/10 20:31:26.62 ER41jhKS.net
>>397
コード追加。MakeHogeで困ることあるかなぁ?
あんまりユースケース見えてないから、不具合あったら教えて。

407:デフォルトの名無しさん
19/09/10 21:25:03.39 OfzP/6E7.net
>>392
>>377 も頼む!

408:デフォルトの名無しさん
19/09/10 23:08:14.13 aMyCuNre.net
お題
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase

409:デフォルトの名無しさん
19/09/10 23:20:02.02 Ik1iUNRF.net
>>399
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]

410:デフォルトの名無しさん
19/09/11 00:10:49.73 JxGfX2fh.net
>>400 Perl5
use feature say;
for (<DATA>) {
 say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase

実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase

411:デフォルトの名無しさん
19/09/11 00:26:05.86 JxGfX2fh.net
>>402 その例ではいいけど
Odai00_9_9Test
↓になっちまうな…
Odai00_99test

412:デフォルトの名無しさん
19/09/11 00:31:52.77 TkJgDVYV.net
>>400
URLリンク(ideone.com)
C++。オレ、馬鹿になってる~。と苦しんでいた。

413:デフォルトの名無しさん
19/09/11 00:44:08.30 hWizELa3.net
>>397
C++むずかしすぎワロタwwwww

414:デフォルトの名無しさん
19/09/11 00:47:45.94 TkJgDVYV.net
C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。

415:デフォルトの名無しさん
19/09/11 02:04:01.50 hWizELa3.net
>>400 JavaScript
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"

416:デフォルトの名無しさん
19/09/11 02:47:21.46 0/zUYWhl.net
>>400 Squeak Smalltalk
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "

417:デフォルトの名無しさん
19/09/11 06:02:16.09 CEu0fvWD.net
>400 Ruby
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
   snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase

418:デフォルトの名無しさん
19/09/11 06:06:45.97 CEu0fvWD.net
>>409 補足
puts f["Odai00_9_9Test'] # => Odai00_9_9test

419:デフォルトの名無しさん
19/09/11 12:54:52.45 Alp4BtBi.net
>>400
perl5
URLリンク(paiza.io)

420:デフォルトの名無しさん
19/09/11 21:23:01.78 RlhjBlE6.net
お題:リストの奇数位置にある要素のみを含むリストを作れ
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]

[1, 3, 5]
rust
URLリンク(ideone.com)
octave
URLリンク(ideone.com)

421:デフォルトの名無しさん
19/09/11 21:27:05.78 C94vqLvq.net
>>400
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys

out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"

422:デフォルトの名無しさん
19/09/11 23:29:56.75 sKkTHzOH.net
>>400 Perl5、>>402-403 の修正、>>413 のように UpperCamelCase など_を含まない文字列はそのまま返す
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST

実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test

423:デフォルトの名無しさん
19/09/11 23:34:45.60 sKkTHzOH.net
>>414 ゴメン、実行結果貼り間違えた(下記のように最後のOdAi00_9_9TeSTはそのまま出る)
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST

424:デフォルトの名無しさん
19/09/11 23:43:35.81 sKkTHzOH.net
>>412 Perl5
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";

実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]

425:デフォルトの名無しさん
19/09/12 00:37:35.06 zD/2/X2z.net
>>412
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)

426:デフォルトの名無しさん
19/09/12 02:26:36.91 IEWaKNAx.net
>>400
Kotlin
URLリンク(paiza.io)

427:デフォルトの名無しさん
19/09/12 09:48:36.52 XoEd0LBY.net
>>412 Ruby
p [1, 2, 3, 4, 5].each_slice(2).map(&:first)
# => [1, 3, 5]

428:デフォルトの名無しさん
19/09/12 11:37:50.98 Cxpf63qu.net
>>412 JavaScript
[1, 2, 3, 4, 5].filter((val, idx) => (idx + 1) % 2)
//=> [1, 3, 5]

429:デフォルトの名無しさん
19/09/12 18:13:32.79 sKYe7PWn.net
>>412
Kotlin
URLリンク(paiza.io)

430:デフォルトの名無しさん
19/09/12 18:34:25.79 u0+zztnJ.net
>>412
URLリンク(ideone.com)
C++。こんな感じで。

431:デフォルトの名無しさん
19/09/12 21:30:23.66 +vUO8BYK.net
>>373 J
f =: 2 & (-~/\)
f 3 1 4 1 5 9 2 6 5
_2 3 _3 4 4 _7 4 _1

>>412 J
f =: _2 & ([/\)
f 1 2 3 4 5
1 3 5

432:デフォルトの名無しさん
19/09/12 21:33:45.75 cqw0/uFd.net
さすがJ
サッパリ分からん

433:デフォルトの名無しさん
19/09/13 00:40:21.67 6zSQdjjj.net
>>412
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]

434:デフォルトの名無しさん
19/09/13 02:03:47.81 qdoB8RTo.net
お題:辞書型クリプタを実装せよ。
私の実装: URLリンク(ideone.com)
貴方はどう書く?

435:デフォルトの名無しさん
19/09/13 13:13:33.48 zfsxzWX8.net
>>412 Tcl
set x {1 2 3 4 5}
set r {}
foreach {a b} $x {set r [concat $r $a]}
puts $r
実行結果
1 3 5

436:デフォルトの名無しさん
19/09/13 21:31:55.35 5n7mddvT.net
>>427
> foreach {a b}
こんなオサレな書き方で二個処理できるのすごい

437:デフォルトの名無しさん
19/09/13 21:37:33.86 sQZEDK+j.net
tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?

438:デフォルトの名無しさん
19/09/14 04:14:12.84 x5aQTHnU.net
お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。

439:デフォルトの名無しさん
19/09/14 04:28:39.19 BS6VTuNp.net
>>412 Io
a := list(1, 2, 3, 4, 5)
a select(i, v, i isEven) println
実行結果
list(1, 3, 5)

440:デフォルトの名無しさん
19/09/14 07:49:29.90 /8qdS/t9.net
>>419
>>420
スレ違いだし、関数型言語だけが再利用性が高いとは言わないけど、
仮にoddlistがリストに対して良く使われる処理なら
[1,2,3,4,5].oddlist()
とか使いたいよね?
確かRubyはそう言う基本クラスにメソッド追加出来たと思うけど(うろ覚え)、
それをライブラリにして公開したいとする。
そうなると名前の競合とか起こり得るので
import mylib
[1,2,3,4,5].mylib.oddlist()
としたいとか、ならないだろうか。
変数と関数は別が良いって思った。
(議論の流れになるなら、別スレに誘導してね)

441:デフォルトの名無しさん
19/09/14 08:17:19.38 G26P45sA.net
>>412 Python
print([ i for i in range(1,6,2) ])
# [1, 3, 5]

442:デフォルトの名無しさん
19/09/14 08:24:26.09 Hd+E1riT.net
>>429
スレチだが教えてやる
数字が文字列として扱われて実行時にパースされるから馬鹿みたいに遅いことだ

443:デフォルトの名無しさん
19/09/14 08:30:44.01 G26P45sA.net
>>412 Python a~f
print( ['a','b','c','d','e'][::2] )
# ['a', 'c', 'e']

444:デフォルトの名無しさん
19/09/14 19:11:38.33 Rj/aIpzV.net
>>426
クリプタって何?

445:デフォルトの名無しさん
19/09/14 19:29:31.44 daGZRaa0.net
ザラキ唱える人じゃないか

446:デフォルトの名無しさん
19/09/14 19:57:54.64 oc39AgJX.net
>>436
Crypter.
Crypt + er.

447:デフォルトの名無しさん
19/09/14 20:22:44.80 x5aQTHnU.net
>>437
それはクリフト

448:デフォルトの名無しさん
19/09/14 21:03:45.14 KmV3vhTN.net
cryptoなんだからcryptorじゃないの?

449:蟻人間
19/09/14 21:19:35.56 0f+SL6BM.net
それをゆうなら、encrypterの方が自然じゃん。

450:デフォルトの名無しさん
19/09/14 22:06:47.02 31y0+jF3.net
でも、それをいうならの方が自然かも

451:デフォルトの名無しさん
19/09/14 22:21:17.26 oc39AgJX.net
EnCrypterか。了解。
忘れたらごめんなさい。

452:デフォルトの名無しさん
19/09/14 22:23:04.61 pQ8OW4Ak.net
EnCrypterはおかしい
Encryperでいい

453:デフォルトの名無しさん
19/09/14 22:23:28.79 pQ8OW4Ak.net
tが抜けた

454:デフォルトの名無しさん
19/09/14 22:26:10.43 hhxdRhHk.net
EmScriptEn

455:デフォルトの名無しさん
19/09/14 22:35:29.16 oc39AgJX.net
>>444
なんか癖になってるんだ。
小学校から英語やってるわけじゃないからなぁ・・・。

456:デフォルトの名無しさん
19/09/14 23:35:07.41 1m2PUwRG.net
>>432
釈迦に説法は空しいし恥ずかしいのでやめよう
どう考えてもおまいより>>419のほうが力量が上
議論の余地は無いので安心していい

457:デフォルトの名無しさん
19/09/15 10:23:47.74 4T3I9hnw.net
>>426 Perl 5.30
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
 @a = unpack 'C*


458:', $S;  $l = @c = split '', $C;  my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;  use integer;  my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }  %e = map{$_ => '%'._enc $_} 0..255;  join '', map{$e{$_}} @a; } sub ReversibleHash_Decode($S, $C) {  @s = $S =~ /(%\w+)/g;  %d = map{$e{$_} => $_ } keys %e;  pack 'C*', map{$d{$_}} @s; } say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789'; say $s = ReversibleHash_Decode $t, '0123456789'; $Ch = "abcdefghijklnmopqrstuvwxyz0123456789"; say $t = ReversibleHash_Encode $s, $Ch; say $s = ReversibleHash_Decode $t, $Ch; 実行結果 ~ $ perl 15_426.pl %227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162 ウィキペディア %gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es ウィキペディア



459:デフォルトの名無しさん
19/09/15 10:37:25.58 Pt8t6mL1.net
zipとunzip関数があるからそれで偶数と奇数に分ければいい

460:デフォルトの名無しさん
19/09/15 11:42:49.90 4T3I9hnw.net
>>412 Prl5 (≦5.28)、配列の添字を0始まり以外にする$[ (array_base feature)を使用
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";

実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y

※5.12~5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました

461:デフォルトの名無しさん
19/09/15 15:11:01.79 G44yhCx+.net
>>412 R
要素が 奇数個だとワーニングが出ちゃうけど
a<-1:9
print(matrix(a,2)[1,])

462:デフォルトの名無しさん
19/09/15 15:41:23.29 5s85lzPu.net
鰐んぐ
魚にんぐ

463:デフォルトの名無しさん
19/09/15 16:31:54.72 vhYJbDpr.net
>>449
実行はしてないが、成果については「GJ!!」だ!

464:デフォルトの名無しさん
19/09/16 04:35:46.66 NOoJUh0d.net
お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい

465:デフォルトの名無しさん
19/09/16 06:10:07.69 VWND3fAL.net
>>455
"avbvc" の結果を教えてくれ

466:デフォルトの名無しさん
19/09/16 08:35:06.75 NOoJUh0d.net
>>456
その場合はvに挟まれた文字をxに変換してください

467:デフォルトの名無しさん
19/09/16 08:42:47.33 3bKCxc1X.net
>>457
"avvb" の結果を教えてくれ

468:デフォルトの名無しさん
19/09/16 11:06:17.48 uJI/7eR2.net
頭悪そうなお題はパスで

469:デフォルトの名無しさん
19/09/16 15:26:20.20 eLMc9ESO.net
お題:1から100までの自然数がある。ランダムに30個抜き出せ。

470:デフォルトの名無しさん
19/09/16 15:30:00.20 4Q9Ti1cA.net
>>460 Ruby
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]

471:デフォルトの名無しさん
19/09/16 16:08:30.72 ShPpQTCq.net
>>460
Kotlin script
println((1..100).toMutableList().apply {shuffle()}.slice(0..29).joinToString())

472:デフォルトの名無しさん
19/09/16 16:53:32.17 P3J/MfSa.net
>>460 Perl5、※選択に重複がないようにした
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";

実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9

473:デフォルトの名無しさん
19/09/16 16:59


474::32.09 ID:ZgnCsjLO.net



475:デフォルトの名無しさん
19/09/16 17:36:43.98 enU8we0d.net
>>464
なるほど全然わからん

476:デフォルトの名無しさん
19/09/16 20:23:01.84 LKlzCOg4.net
>>460 Pharo/Squeak Smalltalk
(1 to: 100) asArray shuffled first: 30

477:デフォルトの名無しさん
19/09/17 17:37:59.85 IoM9hprN.net
プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"

478:デフォルトの名無しさん
19/09/17 18:15:13.62 kyKgfAv0.net
あうあうあー -> あうあうあー
ああああ -> あ4

479:デフォルトの名無しさん
19/09/17 18:37:25.07 IoM9hprN.net
そゆこと

480:デフォルトの名無しさん
19/09/17 19:42:43.30 N7hzq5cx.net
python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな

481:デフォルトの名無しさん
19/09/17 21:40:53.07 nuFS/S7T.net
>>467
haskellだよー
join.map ((:).head <*> (bool "".show.length <*> (1 <).length)).group

482:デフォルトの名無しさん
19/09/17 21:47:22.78 s7WBnLNZ.net
>>467 JavaScript
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;

483:デフォルトの名無しさん
19/09/17 23:32:50.16 htBCID9n.net
>>467 Perl5
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
 my $s;
 while (/((.)\g-1*)/g) {
  $s .= $2;
  $s .= $l if 1 < ($l = length $1);
 }
 print "$s\n";
}

実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4

484:デフォルトの名無しさん
19/09/17 23:58:08.34 htBCID9n.net
>>467 Perl5、しくった、お題は「関数を作れ」だった…orz
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
 my $s;
 while (/((.)\g-1*)/g) {
  $s .= $2;
  $s .= $l if 1 < ($l = length $1);
 }
 $s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
 print f($_)."\n";
}

~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4

485:デフォルトの名無しさん
19/09/18 10:00:45.90 Qm7jF2Kv.net
>>467 Ruby
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4

486:デフォルトの名無しさん
19/09/18 10:37:56.54 Qm7jF2Kv.net
>>432 Ruby
module Hoge
  refine Array do
    def oddlist
      select.with_index{|s, i| i.odd?}
    end
  end
end
class C1
  p [0, 1, 2, 3, 4].oddlist rescue p$!
  # => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
  using Hoge
  p [0, 1, 2, 3, 4].oddlist
  # => [1, 3]
end

487:デフォルトの名無しさん
19/09/18 15:45:23.52 GIOjMe2C.net
>>467
URLリンク(ideone.com)
C++。いい感じにかけた。

488:デフォルトの名無しさん
19/09/18 17:30:11.83 quy23QLp.net
むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww

489:デフォルトの名無しさん
19/09/18 17:40:05.70 GIOjMe2C.net
>>478
自分の福祉のために圧迫しない程度に冗長に書いてるけど、ショートコーディングももちろんできるよ。
記憶力と直感と若干の経験で書いている。

490:デフォルトの名無しさん
19/09/18 19:34:59.80 Dukdxvvo.net
完成品はないけどなw

491:デフォルトの名無しさん
19/09/18 19:48:16.2


492:7 ID:GIOjMe2C.net



493:デフォルトの名無しさん
19/09/18 19:56:52.36 Dukdxvvo.net
はいはいいつもの

494:デフォルトの名無しさん
19/09/18 20:22:10.02 GIOjMe2C.net
>>482
ボット認定していい?

495:デフォルトの名無しさん
19/09/18 22:47:30.76 Zy9clRCR.net
>>483
bot(だと自分で思ってる)相手にレスしちゃう男の人なんて……

496:蟻人間
19/09/19 03:17:38.21 fzYUHnaE.net
お題: 明日の東京都の天気を教えてくれる「お天気ねえさん」を実装せよ。
URLリンク(www.drk7.jp)
ここのXMLデータを参考に、明日の東京都の天気を優しく説明してくれるような説明テキストを生成せよ。
例) 明日XX月YY日の東京都の天気は○○です。○○注意報が出ています。傘を忘れないでね。

497:蟻人間
19/09/19 03:40:46.99 fzYUHnaE.net
ある種のデータは石油のように重要だから、データ自動生成は条件が揃えばお金儲けにつながる。まあ、とことんチャレンジしたまえ。

498:デフォルトの名無しさん
19/09/19 04:53:29.17 kXMoSLFb.net
>>485
sh と perl5
URLリンク(pastebin.com)
URLリンク(i.imgur.com)
colorlizerの中がperl入りで
見やすくするユーティリティー

499:デフォルトの名無しさん
19/09/19 20:26:10.81 tW2U1Dga.net
google の検索結果を 10 づつ合計 1000 件ダウンロードするプログラム

500:さまよえる蟻人間
19/09/19 20:38:41.32 fzYUHnaE.net
>>488
ボットはあかん

501:デフォルトの名無しさん
19/09/19 21:01:33.69 Iq+eqHsU.net
>>467 Lua
マルチバイト文字には対応していない。
function f(s)
   local r,c="",1
   for i=1,#s do
   if s:sub(i,i)==s:sub(i+1,i+1) then
   c=c+1
   else
     r=r..s:sub(i,i)
   if c>1 then
   r=r..c
   c=1
   end
   end
   end
   return(r)
end
print(f("aaabbc"))
実行結果
a3b2c

502:デフォルトの名無しさん
19/09/19 21:11:19.84 VNRPdI7o.net
>>460 octave
URLリンク(ideone.com)
>>467 ruby
URLリンク(ideone.com)

503:デフォルトの名無しさん
19/09/19 21:20:20.35 7Zlc7qce.net
>>467
perl5
デバッガが日本語で化けるんで英語だけ
print("aabbccddd" =~ s{ (.) \1* }{ "$1" . length"$&" }xgre);
a2b2c2d3

504:デフォルトの名無しさん
19/09/20 00:35:55.08 brDhMnbX.net
>>485 Perl5 (LWP::UserAgent、LWP::Protocol::https、XML::Simple のinstallしてあるPCで)
# -*- coding: utf-8 -*-
use utf8; use Data::Dump 'dump'; use Data::Dumper;
binmode STDOUT, ':encoding(utf-8)';
use feature say;
$pno = 13; # ex) 01:北海道, 13:東京, 20:長野, 47:沖縄
$url = "URLリンク(www.drk7.jp)
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$xml = LWP::UserAgent->new->get($url)->content;
use XML::Simple;
my $xs = new XML::Simple; #(keyattr => ['area']); # (forcearray => ['info'], keyattr => ['pref']);
my $data = $xs->XMLin($xml);
say "$_: $data->{$_}" for qw{title link description pubDate author managingEditor};
$pref = $data->{pref}; say "都道府県: $pref->{id}";
%area = %{$pref->{area}};
for $region (keys %area) {
 $area = $area{$region};
 printf "地域: $region (緯度=%s, 経度=%s)\n", @{$area->{geo}}{qw{lat long}};
 for $info (@{$area->{info}}) {
  say " $info->{date} 天気:$info->{weather} (画像 $info->{img})";
  $info->{$_} and say ' 'x9, $info->{$_} for qw{weather_detail wave};
  %temp = %{$info->{temperature}};
  say ' 'x6, " 気温[$temp{unit}]: ", join 'から', sort map{"$_->{content}°"} @{$temp{range}};
  %rfc = %{$info->{rainfallchance}};
  say ' 'x6, " 降水確率 : ", join ', ', map{"$_->{hour}時:$_->{content}$rfc{unit}"} @{$rfc{period}};
 }
}

505:デフォルトの名無しさん
19/09/20 00:38:16.81 brDhMnbX.net
実行結果(例)
~ $ perl 15_485.pl
title: weather forecast xml
link: URLリンク(www.drk7.jp)
description: 気象庁の天気予報情報を XML で配信。1日1回 AM 6:00 ごろ更新。
pubDate: Thu, 19 Sep 2019 18:00:01 +0900
author: 気象庁
managingEditor: drk7.jp
都道府県: 東京都
地域: 伊豆諸島南部 (緯度=33.2419, 経度=139.8418)
2019/09/19 天気:くもり時々雨 (画像 URLリンク(www.drk7.jp))
         北東の風 やや強く くもり 夜のはじめ頃 雨 八丈島 では 夜遅く 雷を伴い 激しく 降る
         波 3メートル うねり を伴う
       気温[摂氏]: 21°から23°
       降水確率 : 00-06時:0%, 06-12時:80%, 12-18時:50%, 18-24時:50%
2019/09/20 天気:くもり時々雨 (画像 URLリンク(www.drk7.jp))
         東の風 やや強く くもり 一時 雨
         波 4メートル のち 3メートル ただし 三宅島 では 3メートル
       気温[摂氏]: 20°から23°
       降水確率 : 00-06時:50%, 06-12時:60%, 12-18時:60%, 18-24時:50%
2019/09/21 天気:くもり一時雨 (画像 URLリンク(www.drk7.jp))
       気温[摂氏]: 21°から26°
       降水確率 : 00-06時:70%, 06-12時:70%, 12-18時:70%, 18-24時:70%
2019/09/22 天気:くもり一時雨 (画像 URLリンク(www.drk7.jp))
       気温[摂氏]: 23°から29°
       降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
2019/09/23 天気:くもり一時雨 (画像 URLリンク(www.drk7.jp))
       気温[摂氏]: 25°から29°
       降水確率 : 00-06時:50%, 06-12時:50%, 12-18時:50%, 18-24時:50%
…(後略

506:デフォルトの名無しさん
19/09/20 01:09:22.21 brDhMnbX.net
お天気おねぃさんとは、ほど遠いなコリャ…

507:デフォルトの名無しさん
19/09/20 04:34:57.12 vpcMUgg5.net
お題
以下の、列区切りが空白である入力文字列を、
最後の列の数値が、小さい順番で、行を並べ替えよ
答えは、上下が反転する
a b c 44
x y 33
z 22
11

508:デフォルトの名無しさん
19/09/20 07:37:10.18 ZVVuMGcz.net
>>496
cat text
a b c 44
x y 33
z 22
11
cat text | perl -pe 's/.*? \s? (\d+)/$1:$&/xgm' | sort -n | perl -pe 's/^\d+://'
11
z 22
x y 33
a b c 44

509:デフォルトの名無しさん
19/09/20 08:14:00.92 ImrTQZdo.net
>>467
Common Lisp URLリンク(ideone.com)
Perl URLリンク(ideone.com)
JavaScript URLリンク(ideone.com)

510:デフォルトの名無しさん
19/09/20 09:52:16.00 PYkAN+VQ.net
>>496 Ruby
puts <<~EOS.each_line.sort_by{|s| s[/\S+\n?/].to_i}
  a b c 44
  x y 33
  z 22
  11
EOS
# =>
11
z 22
x y 33
a b c 44

511:デフォルトの名無しさん
19/09/20 13:59:42.96 fZRbtgUM.net
>>489
合法的? にやるにはどうすればいいの?

512:デフォルトの名無しさん
19/09/20 14:08:52.93 qcElLt/f.net
>>500
初手でウエイト入れないで読みに行って、アクセス規制法に引っかかるのとかありそう。
鯖落としたら、怒られるからな。警察に。

513:デフォルトの名無しさん
19/09/20 15:01:57.40 8HAndpSr.net
>>496 J
echo@>(/: {: @:(0&".) &.>) <;._2 stdin ''

514:デフォルトの名無しさん
19/09/20 15:07:26.20 uyZD/oLi.net
URLリンク(appmarketinglabo.net)
Q、hamonさん、ここだけの面白い話は何かありますか?
hamon:
絶対にこれをつくれば海外で10万DLされるという「超鉄板ジャンル」がある。
それは「3Dのリアルな人間をつかった実在のスポーツゲーム」、中身がクソでも10万DLはされる。
「ボクシングvs腕相撲」という実質もぐらたたきのようなゲームが30万DLいった。
「スキージャンプ アルティメイタム」というゲームが10万DLくらい。
マイナーなスポーツでもそのような結果なので、競技人口のベスト10のスポーツを調べてつくれば10万DLは固い。
普通につくるとコストがかかるが、UNITYでつくればストア上でモーションも売っているのでかなり稼げると思う。

515:デフォルトの名無しさん
19/09/21 00:27:57.30 dB3ZeAcF.net
お題: 同じ文字列がいくつあるか数えるプログラムを作成しなさい。
※出力は出現回数順でソートされている必要はありません。
入力
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
出力
Hoge 2
Fuga 3
Foo 2
Bar 1

516:デフォルトの名無しさん
19/09/21 00:39:37.54 6wFtRpPA.net
>>504 Perl5
$h{$_}++ for qw{Hoge Fuga Foo Fuga Foo Hoge Bar Fuga};
print "$_ $h{$_}\n" for keys %h;

実行結果
~ $ perl 15_504.pl
Fuga 3
Hoge 2
Bar 1
Foo 2

517:デフォルトの名無しさん
19/09/21 00:45:45.24 Ei1MM/mp.net
>>504
URLリンク(ideone.com)
C++。今回はメインロジックの記述が少なくて楽だった。

518:デフォルトの名無しさん
19/09/21 00:46:28.49 YPz6oCKs.net
>>504
cat text
Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga
cat text | perl -ne '$dirs{ s/\R//r } += 1; END{for $key (keys %dirs) {printf "%-4s %s\n", $key, $dirs{$key} } }'
Foo 2
Fuga 3
Bar 1
Hoge 2

519:デフォルトの名無しさん
19/09/21 00:50:19.09 Ei1MM/mp.net
うほっ。C++のunordered_mapはオーダー要求しないから、そこを使って最適化物故むとかやるんかいな。
VCとGCCと挙動違う。

520:デフォルトの名無しさん
19/09/21 00:59:47.45 6wFtRpPA.net
>>496 Perl5
sub f {$_[0] =~ /(\d+)/; $1};
print sort{ f($a) <=> f($b) } <DATA>;
__DATA__
a b c 44
x y 33
z 22
11

実行結果
~ $ perl 15_496.pl
11
z 22
x y 33
a b c 44

521:デフォルトの名無しさん
19/09/21 04:32:25.24 DxluyDWg.net
>>496
Kotlin
URLリンク(paiza.io)

522:デフォルトの名無しさん
19/09/21 05:21:21.47 DxluyDWg.net
>>504
Kotlin
URLリンク(paiza.io)

523:デフォルトの名無しさん
19/09/21 05:37:07.36 RmdAWOHY.net
>>504 Ruby
a=readlines.map(&:chomp)
a.uniq.each{|v| puts("#{v} #{a.count(v)}")}

524:デフォルトの名無しさん
19/09/21 15:59:00.83 uZ0K83Mw.net
>>496 ruby
URLリンク(ideone.com)
puts readlines.sort_by {|s| s[/\d+$/].to_i}
>>504 ruby
URLリンク(ideone.com)
puts $<.read.scan(/\w+/).group_by(&:itself).map {|a, b| '%s %d' % [a, b.size]}

525:デフォルトの名無しさん
19/09/21 16:12:27.45 ZyFDPzPp.net
お題:正の整数が与えられるので、英語の序数に変換せよ
1 => 1st
23 => 23rd
12 => 12th

526:デフォルトの名無しさん
19/09/21 16:40:16.71 6wFtRpPA.net
>>514 Perl5
%o = qw{1 st 2 nd 3 rd};
$o = $o{$_}//'th', print "$_$o\n" for 1..10,12,23;
実行
~ $ perl 15_514.pl
1st
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
12th
23th

527:デフォルトの名無しさん
19/09/21 16:54:30.22 6wFtRpPA.net
>>514 Perl5、 >>515 はもう少しコンパクトに書けた
%o = qw{1 st 2 nd 3 rd};
printf "$_%s\n", $o{$_}//'th' for 1..10,12,23;

528:デフォルトの名無しさん
19/09/21 17:38:27.55 uZ0K83Mw.net
>>514 ruby
URLリンク(ideone.com)

529:デフォルトの名無しさん
19/09/21 18:24:27.24 9SoaGQ4l.net
>>504
Common Lisp URLリンク(ideone.com)
Perl URLリンク(ideone.com)

530:デフォルトの名無しさん
19/09/21 19:12:36.02 AojYT9zq.net
1st 2nd 3rd
11th 12th 13th
21st 22nd 23rd
101st 102nd 103rd
111th 112th 113th
121st 122nd 123rd
皆さんここらへん大丈夫?

531:デフォルトの名無しさん
19/09/21 19:41:28.17 6wFtRpPA.net
>>514 Perl5、>>519 で指摘された誤りの修正 テヘペロ
%h = qw{1 st 2 nd 3 rd};
for (1..4,11,12,13,21,22,23,101,102,103,111,112,113,121,122,123) {
 /(\d?)(\d)$/;
 printf "$_ => $_%s\n", $1 eq 1 ? 'th' : $h{$2}//'th';
}

実行結果
~ $ perl 15_514.pl
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd

532:さまよえる蟻人間
19/09/21 20:51:54.21 BmADEcuL.net
お題: 与えられた西暦年月日を年号年月日に変換しなさい。ただし、変換するのは大正時代から令和までとし、範囲外であればERRORを表示しなさい。

533:さまよえる蟻人間
19/09/21 21:04:33.10 BmADEcuL.net
お題: YYYY/MM/DD形式で与えられた西暦年月日の文字列が正しい年月日を表しているかどうか判定せよ。

534:蟻人間
19/09/21 21:24:10.22 BmADEcuL.net
>>522, >>521の順に解いて下さい。
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29

535:デフォルトの名無しさん
19/09/21 22:12:07.89 y97V3EOz.net
>>522 Perl5
use Time::Piece;
for (<DATA>) {
 chomp;
 my $t;
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 $t //= 'Invalid';
 print "$_: $t\n";
}
__DATA__
1970/01/05
1990/12/31
2019/04/28
2019/05/01
1920/02/29
0000/13/32

実行結果
1970/01/05: Mon Jan 5 00:00:00 1970
1990/12/31: Mon Dec 31 00:00:00 1990
2019/04/28: Sun Apr 28 00:00:00 2019
2019/05/01: Wed May 1 00:00:00 2019
1920/02/29: Sun Feb 29 00:00:00 1920
0000/13/32: Invalid

536:524
19/09/21 22:29:42.44 y97V3EOz.net
>>524
Time::Piece->strptime は
1900/01/01 よりも前の日付だと
正しい西暦の年月日を入力しても
parse結果が不定となってしまうということがさっき分かりました。
したがって残念ながら>>524のcodeは>>522の題意を満たしているとは
言いがたいものでした。ゴメンね~

537:デフォルトの名無しさん
19/09/21 22:37:53.07 tuxPF//K.net
>>521-523 Java
URLリンク(ideone.com)

538:蟻人間
19/09/21 22:44:04.41 7nrsNPcd.net
令和1年を令和元年にしないといけないという落とし穴があるようだ。

539:デフォルトの名無しさん
19/09/21 22:45:06.50 Awwp+36u.net
>>504 Ruby
p $<.map(&:chomp).yield_self{|e| e.uniq.map{|v| [v, e.count(v)]}}
# => [["Hoge", 2], ["Fuga", 3], ["Foo", 2], ["Bar", 1]]

540:デフォルトの名無しさん
19/09/21 23:03:57.96 tuxPF//K.net
>>527 Java
URLリンク(ideone.com)
しゅうせいしまった

541:デフォルトの名無しさん
19/09/22 01:12:38.88 35++XhB6.net
>>496 Squeak Smalltalk
#('a b c 44' 'x y 33' 'z 22' '11') sortBy: [:x | x splitInteger last] ascending
"=> an OrderedCollection('11' 'z 22' 'x y 33' 'a b c 44') "

542:デフォルトの名無しさん
19/09/22 01:25:15.35 35++XhB6.net
>>504 Pharo/Squeak Smalltalk
'Hoge
Fuga
Foo
Fuga
Foo
Hoge
Bar
Fuga' lines asBag sortedElements
"=> {'Bar'->1 . 'Foo'->2 . 'Fuga'->3 . 'Hoge'->2} "

543:デフォルトの名無しさん
19/09/22 01:56:51.52 35++XhB6.net
>>467 Pharo/Squeak Smalltalk
| fn |
fn := [:str | String streamContents: [:ss |
(str as: RunArray) runsAndValuesDo: [:n :x |
ss nextPut: x; nextPutAll: (n = 1 ifTrue: [''] ifFalse: [n asString])
]
]].
fn value: 'あいうえお'. "=> 'あいうえお' "
fn value: 'ああいいうう'. "=> 'あ2い2う2' "
fn value: 'あいうあいう'. "=> 'あいうあいう' "

544:デフォルトの名無しさん
19/09/22 08:19:31.82 uuB9aO9i.net
>>514 Ruby
suffixes = %w[th st nd rd]
f = -> n {(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)}
[
  1, 2, 3, 4, 11, 12, 13, 21, 22, 23, 101, 102, 103, 111, 112, 113, 121, 122, 123
].each{|v| puts '%1$d => %1$d%2$s' % [v, suffixes[f[v]]]}
# =>
1 => 1st
2 => 2nd
3 => 3rd
4 => 4th
11 => 11th
12 => 12th
13 => 13th
21 => 21st
22 => 22nd
23 => 23rd
101 => 101st
102 => 102nd
103 => 103rd
111 => 111th
112 => 112th
113 => 113th
121 => 121st
122 => 122nd
123 => 123rd

545:デフォルトの名無しさん
19/09/22 08:57:02.33 yY5QhyPL.net
>>533
ruby知らんけどそのfって何?

546:デフォルトの名無しさん
19/09/22 09:05:16.49 8u0YwnlN.net
ラムダ式じゃねーの
おれもruby知らんが

547:デフォルトの名無しさん
19/09/22 09:16:58.95 W3ewN8v1.net
(dolist (n (list 1 2 3 11 12 13 21 22 23 101 102 103 111 112 113 121 122 123) ) (format t "~:R~%" n))
first
second
third
eleventh
twelfth
thirteenth
twenty-first
twenty-second
twenty-third
one hundred first
one hundred second
one hundred third
one hundred eleventh
one hundred twelfth
one hundred thirteenth
one hundred twenty-first
one hundred twenty-second
one hundred twenty-third

548:デフォルトの名無しさん
19/09/22 09:21:41.49 uuB9aO9i.net
>>534-535
ラムダ式.
任意の自然数 n に対して次の式は n の序数詞の末尾が th なら 0, st なら 1, nd なら 2, rd なら 3 を返す.(除算は切り捨て)
(-(-((n - 10) / 10 % 10) / 9)) * 41 / (n % 10 * 10 + 11) * (n % 10)

549:デフォルトの名無しさん
19/09/22 10:14:00.13 UtdvR7ZT.net
>>514 Lua
function f(n)
   local r,x
   x=n%10
   if n%100-x==10 or x<1 or x>3 then
   r="th"
   else
   r=({"st","nd","rd"})[x]
   end
   return n..r
end

550:デフォルトの名無しさん
19/09/22 11:43:05.12 OEThTvH6.net
>>514 JavaScript
const f=n=>n+=[,'st','nd','rd'][n%100>>3^1&&n%10]||'th'
実行結果略

551:デフォルトの名無しさん
19/09/22 11:51:21.39 OEThTvH6.net
>>522, >>521 JavaScript
const isValid = seireki => {
let check
try {
check = new Intl
.DateTimeFormat('ja-JP', {year: 'numeric', month: '2-digit', day: '2-digit'})
.format(new Date(seireki))
} catch (e) { return false }
return seireki === check ? true : false
}
const seirekiToWareki = seireki => {
if (!isValid(seireki)) return 'ERROR'
const wareki = new Intl
.DateTimeFormat('ja-JP-u-ca-japanese', {era: 'long', year: 'numeric', month: '


552:numeric', day: 'numeric'}) .format(new Date(seireki)) .replace(/(正|和|成)1(年)/, '$1元$2') return ['大正', '昭和', '平成', '令和'].includes(wareki.slice(0, 2)) ? wareki : 'ERROR' } `1979/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 0000/13/32` .split`\n`.forEach(seireki => {console.log(seirekiToWareki(seireki))}) 実行結果: 昭和54年1月5日 平成2年12月31日 平成31年4月28日 令和元年5月1日 大正9年2月29日 ERROR



553:デフォルトの名無しさん
19/09/22 14:55:10.69 yzO2ACAf.net
>>521-523 Perl5
use Time::Piece; #use Data::Dump 'dump';
@fy = (['2019/05/01', '令和'], ['1989/01/08', '平成'], ['1926/12/25', '昭和'], ['1912/07/30', '大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
 my ($t, $t0, $era, $nen);
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 if ($t and $t->strftime('%Y/%m/%d') eq $_) {
  do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
  if ($t0) {
   $nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
   $t = "$era$nen".$t->mon.'月'.$t->mday.'日';
  } else {
   $t = 'ERROR';
  }
 } else {
  $t = 'Invalid';
 }
 print "$_: $t\n";
}
実行結果
~ $ perl 15_521.pl
1970/01/05: 昭和45年1月5日
1990/12/31: 平成2年12月31日
2019/04/28: 平成31年4月28日
2019/05/01: 令和元年5月1日
1920/02/29: 大正9年2月29日
1912/07/29: ERROR
2019/02/29: Invalid

554:デフォルトの名無しさん
19/09/22 14:59:46.00 yzO2ACAf.net
>>541
一行目のコメント
#use Data::Dump 'dump';
はdebugの際に使ったstatementの消し忘れにつき、不要

555:デフォルトの名無しさん
19/09/22 15:13:26.78 yzO2ACAf.net
>>541
$nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0;
の「 if $t0」も削除し忘れだな、ゴメンチャイ

556:デフォルトの名無しさん
19/09/22 16:19:32.48 iYBBHKU1.net
URLリンク(github.com)
このif elseの羅列をリファクタリングしてください(´・ω・`)

557:デフォルトの名無しさん
19/09/22 17:24:37.46 W3ewN8v1.net
無駄に否定演算子で分かりにくくしている
if (!arg_reverse)
r = sd_journal_next_skip(j, 1 + after_cursor);
else
r = sd_journal_previous_skip(j, 1 + after_cursor);

558:デフォルトの名無しさん
19/09/22 17:45:39.81 vTpi5vA1.net
>>544
URLリンク(hengband.es.land.to)
このあたりのspells1.cのproject_fのほうが豪華だよ

559:デフォルトの名無しさん
19/09/22 18:17:09.14 yzO2ACAf.net
>>521 Perl5 >>541 を少しコンパクトにしてみた
use Time::Piece;
@fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']);
$$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy;
for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) {
 my ($t, $t0, $era, $nen);
 eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')};
 $s = 'Invalid';
 if ($t and $t->strftime('%Y/%m/%d') eq $_) {
  do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy;
  $s = 'ERROR';
  if ($t0) {
   $nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年';
   $s = "$era$nen" . $t->mon . '月' . $t->mday . '日';
  }
 }
 print "$_: $s\n";
}

560:蟻人間
19/09/22 20:58:52.87 Pb++lLAf.net
お題: マイドキュメントにある全てのファイルの更新日時を取得し、曜日ごとに平均時刻を集計せよ。

561:デフォルトの名無しさん
19/09/22 21:11:37.57 PDMeYfrK.net
マイドキュメントがなかった

562:蟻人間
19/09/22 21:23:02.16 Pb++lLAf.net
お題: あるフォルダにある全てのファイルの更新日時を全て同じ日時にリセットせよ。

563:デフォルトの名無しさん
19/09/22 21:30:08.53 WdPSTicU.net
>>521-523 ruby 2.5.5
URLリンク(ideone.com)
・令和対応はRuby 2.6.3から


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