X



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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2018/01/01(月) 11:15:04.40ID:2Vr1CPKy
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part9
https://mevius.5ch.net/test/read.cgi/tech/1480579110/

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
http://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
http://runnable.com/
http://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。
0002デフォルトの名無しさん
垢版 |
2018/01/01(月) 11:39:39.89ID:VmkM0MJM
お題
次の文章を縦書きに表示されるよう加工し出力してください

加工前:
謹賀新年 謹んで初春の お慶びを 申し上げます

加工後(例1):
申お謹謹
し慶ん賀
上びで新
げを初年
ま  春
す  の

加工後(例2):
https://i.imgur.com/pkLBsWi.png
0004デフォルトの名無しさん
垢版 |
2018/01/01(月) 14:39:59.78ID:U26F8/ie
>>2
丁度それ俺も作ろうと思っていたところだが、丸とか点とか括弧とかどうしようかと思って、丁度いい文字ある?
(とりあえず考慮せずに横を縦にするだけのを作ろうとは思うが)
0010デフォルトの名無しさん
垢版 |
2018/01/02(火) 09:36:50.18ID:8EboTxzh
>>9
おお!凄い。そうやるとあのフレーム内に画像で出せるのか。知らなかった。
0011デフォルトの名無しさん
垢版 |
2018/01/02(火) 11:18:47.19ID:HRLyaEAj
お題:
標準数のE24系列を求める。
ttps://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E6%95%B0

例えば、
f(0)=10、f(1)=11、f(2)=12
...
f(23)=91、f(24)=100、f(25)=110

配列を定数で初期化して表引きとかだと簡単過ぎるので、暦計算のツェラーの公式みたいな、
技巧的な方法を求む(でも表の大きさより長いコードは避けたい)。
ttps://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%A9%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F

発展的なお題:
上記の逆関数。例えば、
g(10)=0、g(11)=1、g(12)=2
...
g(91)=23、g(100)=24、g(110)=25
これも技巧的な方法を求む。
0012デフォルトの名無しさん
垢版 |
2018/01/04(木) 09:10:58.18ID:PjOI7aHa
うがー、曲線制御難しい。
https://ideone.com/F4QHpF
細かいところが近似しない。ダメだこりゃ。
ちょっとどんな曲線か一回プロットした方がイイなこれ。
細かい係数のつけかたがよくわからん。
0014デフォルトの名無しさん
垢版 |
2018/01/05(金) 10:38:01.00ID:DBj0On7v
>>11 Ruby
f = ->n { (10*1.1**n).round - (n - n%9% 8*(n/7) + 1)/(n + 1) + (n - 1)%4/3*n/8*(13/(n + 1)) + 1 }
puts 24.times.map{|n| f[n] }*', '
#=>10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, 51, 56, 62, 68, 75, 82, 91
0020デフォルトの名無しさん
垢版 |
2018/01/05(金) 12:01:38.94ID:DBj0On7v
a_(n+1) ≒ a_n^ε (ε > 0) だkら
a_n ≒ a_0 ^ (n * ε)
n について解けば
n ≒ log(a_n)/(ε * log(a_0))
あとは愚直に調整しただけ
0021デフォルトの名無しさん
垢版 |
2018/01/05(金) 12:16:05.36ID:DBj0On7v
訂正
a_(n+1) ≒ a_n^ε (ε > 0) だから
a_n ≒ a_0 * C ^ (n * ε) (C, > 0)
n ≒ log(a_n/a_0)/(ε * log(C))
0022デフォルトの名無しさん
垢版 |
2018/01/05(金) 17:36:54.10ID:XwioZimh
定義が等比数列を丸めたものなんだから、等比数列で近似するのが妥当ということか
002311'
垢版 |
2018/01/07(日) 12:51:35.88ID:ItKItkim
f(n+24)=10*f(n)
及び
g(10*m)=24+g(m) 但し m>0
を満たす様に修正(多分そんなに難しくない筈)。
0025デフォルトの名無しさん
垢版 |
2018/01/07(日) 14:29:47.66ID:C0bXlb1w
>>23 Ruby
f_origin = ->n{(10*1.1007**n).round + n/10 - n/17 - n/20 - n/22 + n/23}
g_origin = ->n{(10.4*Math.log(n)).round - 24}
f = ->n{10**(n/24) * f_origin[n%24]}
g = ->m{e = Math.log10(m).floor - 1; 24*e + g_origin[m/10**e]}
https://ideone.com/uegzKO
0033デフォルトの名無しさん
垢版 |
2018/01/13(土) 00:20:54.58ID:ZTdbWh7g
. ←鹿の糞
0037デフォルトの名無しさん
垢版 |
2018/01/14(日) 14:04:24.59ID:yhrEjmBP
前のやつだが、答え、もしくは決定版といえるコードは出てきてないとおもうんだが・・・


自然数Nに対して、平面上の円でその円周上の整数点がちょうどN個となる円の最小半径を求めよ。
0041デフォルトの名無しさん
垢版 |
2018/01/14(日) 20:00:35.07
お題:5chの安価を番号のリストに変換しろ Part.2
安価の番号nが1≦n≦99999までのものを有効とする
重複は許さない。結果のリストは昇順。安価に負の数は含まれないものとする。

>>1 [1]
>>1-3 [1,2,3]
>>1,3 [1,3]
>>1-3,5,9-10 [1,2,3,5,9,10]
>>000000-000000001 [1]
>>289494 []
>>0-2,99998-100000 [1,2,99998,99999]
>>3,0-3,4,5,6,4,2-8 [2,3,4,5,6,7,8]
0042デフォルトの名無しさん
垢版 |
2018/01/14(日) 20:06:11.72
追記ですが >>1-10000000000000000 とかの処理過程でバカデカいメモリを使うことがないようにしてほしいです。(スレの趣旨に反するけどnode.jsで実装できるものがいいです)
0043デフォルトの名無しさん
垢版 |
2018/01/14(日) 20:30:18.16ID:OECcG/Oa
>スレの趣旨に反するけどnode.jsで

あっ・・・
0052デフォルトの名無しさん
垢版 |
2018/01/15(月) 12:00:51.10ID:Vl/A/sOK
マんマん
0054デフォルトの名無しさん
垢版 |
2018/01/15(月) 12:36:57.99ID:H/ZiF0K3
要するにめんどくさいから誰もやらんってことやな
んで、適当な言い訳で自分を正当化とな
ま、そんなもんだろうと思っとたわ
誰かが喜んで書いてくれると期待した俺がバカでしたよっと
0055デフォルトの名無しさん
垢版 |
2018/01/15(月) 12:49:45.27ID:Vl/A/sOK
ああ。何れにしても君が馬鹿であることには代わりがない。合掌。
0057デフォルトの名無しさん
垢版 |
2018/01/15(月) 13:02:35.28ID:vArPpzem
こんな簡単なことすら自分で書けず。剰えスレタイとテンプレも読めないとは
すがすがしいほどに頭が悪いな
0061デフォルトの名無しさん
垢版 |
2018/01/15(月) 13:35:06.48ID:u3cYdd8C
頭の中ではコードできてるけど、態度が気に入らないので書く気はない。
ちなみに、方針としては、レンジだけ持ってればいいんだから、ペアで頭と尻尾保管した配列作ればいいだろ。
0062デフォルトの名無しさん
垢版 |
2018/01/15(月) 13:36:47.80ID:H/ZiF0K3
そんな小学生みたいなこと言ってないで貼ってくれよ
コインもあるんだしよぉ
0065デフォルトの名無しさん
垢版 |
2018/01/15(月) 14:50:02.99ID:kurVIvkx
>>37
これの整数点をできるだけ早く求めるのをやってみる。

( ax + b )^2 + ( ay + c )^2 = R
0071デフォルトの名無しさん
垢版 |
2018/01/15(月) 16:09:27.25ID:H/ZiF0K3
ライセンスとかめんどくせえしおまえのソースコードなんか誰も使わねえよ
無駄な労力乙
おめーらがムカつくから意地でもコード書かせたかっただけな笑
ザッマw
0077デフォルトの名無しさん
垢版 |
2018/01/15(月) 16:42:42.44ID:bHHfeTSI
ライセンスが無いのは最も厳しいライセンス
あらゆる許可が与えられていないからパクったら駄目だぞ
0080デフォルトの名無しさん
垢版 |
2018/01/15(月) 17:50:27.29ID:PFTeeq7k
ま、俺はKotlin学習中だから、丁度良いのでゆっくり作ってるよ。忘れた頃に出来るであろう。
0084デフォルトの名無しさん
垢版 |
2018/01/15(月) 18:27:38.89
このパターンもあったか
ちんくるだと >>n-[レス数超過] パターン は何も表示しない以外はちゃんと動作するな
0085デフォルトの名無しさん
垢版 |
2018/01/15(月) 20:39:01.35ID:kurVIvkx
>>81
格子だが、格子暗号ではないようだ。知らずに調べたけど。そこで書いてあった現行の楕円関数暗号のほうが理論的には近いようだ。整数点を数えるという点について。


格子暗号の実用化に向けて
https://www.nict.go.jp/publication/NICT-News/1303/images/02/p02_img4.jpg
https://www.nict.go.jp/publication/NICT-News/1303/02.html


楕円曲線と有理点
http://suri-joshi.jp/sj/wp-content/uploads/2016/03/03_26_01.gif
楕円曲線の有理点の演算
http://suri-joshi.jp/sj/wp-content/uploads/2016/03/03_26_02.gif
http://www.suri-joshi.jp/enjoy/rational_points_of_elliptic_curve/


楕円曲線の整数点
1970年代,フェルマーの問題を征するために必要となるのが楕円曲線であることが明らかになりました.
楕円曲線には,楕円曲線と三点で交わる直線で,そのうちの二つの交点の座標がわかれば他の一点の座標も計算でき,
二つの点の座標が有理数ならば,他の一点の座標も有理数であるなどの性質をもっています.
ところで,楕円曲線:y^2=x^3+1には無限に多くの整数点があるでしょうか,あるいは一つでも整数点はあるでしょうか.
実は,これには整数点は(2,±3),(0,±1),(−1,0)の5つしかありません.
http://www.geocities.jp/ikuro_kotaro/koramu/2652_k1.htm


今日は、前回紹介した「合同ゼータ関数のリーマン予想(ヴェイユ予想)」の応用を紹介したいと思います。
楕円曲線の ハッセの定理 と呼ばれるものです。ハッセの定理によって、 上の楕円曲線の有理点の個数を見積もることができます。
実はこのハッセの定理は、合同ゼータ関数のリーマン予想の帰結となっていて、今日はこのことについて解説したいと思います。
http://tsujimotter.hatenablog.com/entry/hasses-theorem
0086デフォルトの名無しさん
垢版 |
2018/01/15(月) 21:12:20.18ID:u3cYdd8C
>>85
へぇ。なるほどわからん。
でも、円も楕円の内ってことなら無いって可能性もあるのか?とか。
楕円暗号は辞書と併用するとわけわからんな。

爆発です。
0087デフォルトの名無しさん
垢版 |
2018/01/16(火) 02:44:51.59ID:hWpj+IiO
>>41
やっとできた。Kotlin。
https://paiza.io/projects/4yVCO5JcqQwIn4QLt63uuQ
なんだかすごく長くなってしまったよ。きっとよくわかる人が作ると物凄く短くなるんだろうなあ・・・。
0090デフォルトの名無しさん
垢版 |
2018/01/17(水) 16:53:26.57ID:qYzFevXN
宿題スレの変態に文句あるならスレ落せって言ってるのにかきこむから落ちない。
じぶんでも保守しといて自演扱いだから矛盾してる。
ちなみに俺はQzの人じゃないよ。
前に解答書いたらQzの人扱いされた。
0092今北産業
垢版 |
2018/01/21(日) 18:37:01.12ID:XQq46tQk
>>91は早とちりした

>>41の要件
・リストに変換
・重複は許さない
・結果のリストは昇順
を満たしていないや
テヘペロ
0095デフォルトの名無しさん
垢版 |
2018/01/22(月) 05:52:35.20ID:YeXv1dis
>>289494
[99999]

貼るのならせめて仕様どおりの実装かどうか最小限のチェックをしてから貼れや
最初の回答なら多少違ってても中間報告っぽくして誤魔化したりしつつ他人のアイデア盗んだり出来るけど二番煎じではそれは無理。
0097今北産業
垢版 |
2018/01/22(月) 23:05:50.55ID:xL0hK3i2
>>96
貼ってから気がついたけどSTDINのテストデータでは問題を起こさないが
7行目が
$a[1] = $a[0] unless $a[1];
だと$a[1]=0のときに誤動作の元だな…
$a[1] //= $a[0];
にすべきでした。
0099デフォルトの名無しさん
垢版 |
2018/01/25(木) 19:38:18.47ID:+OI4mbzo
>>98
アンカーの先頭と終端のペアを持つってアルゴリズムさ、
>>66と同じっぽいのでGPLv3に引っかかってないか?
0100愛知人!id:ignore
垢版 |
2018/01/25(木) 20:21:47.54ID:oIA0WROS
そうなん?俺はそんなの読んでないけどな。
0105デフォルトの名無しさん
垢版 |
2018/01/26(金) 03:57:51.29ID:mrmbkYhg
https://ja.wikipedia.org/wiki/ソフトウェア特許
『「発明」とは、自然法則を利用した技術的思想の創作のうち高度のものをいう』
アルゴリズムの中で自然的なモノは特許取れないけど、創意工夫の入ってるものは取れる。
そこから考えて、アルゴリズムをライセンスするということは普通にあると思う。
0108デフォルトの名無しさん
垢版 |
2018/01/26(金) 04:14:37.18ID:mrmbkYhg
まぁいいか。著作権に引っかかってる可能性が微レ存とだけは言えるかな。
GPLってそうなのか。翻訳されちゃうと取れちゃうんだなぁ。ふむふむ。
0109 ◆QZaw55cn4c
垢版 |
2018/01/26(金) 10:06:06.80ID:2nQXk4BN
ソフトウェア特許には異論が多いよ
つカーマーカー特許

特許は著作権とは別で、特許申請側がお金を払う必要がある
ライセンスはどちらかというと著作権の側
0110愛知人
垢版 |
2018/01/26(金) 11:20:40.97
C++読めん
長すぎて読む気すら起きん
0112デフォルトの名無しさん
垢版 |
2018/01/26(金) 16:44:25.72ID:WGHyQmfj
>Base64への変換と逆変換

昔、必要になって自作したことがあったが
いまどき使うんかな
0114111
垢版 |
2018/01/26(金) 17:40:18.25ID:c2BX1X7C
>>112
意識的に使うことはあまりないかも知れない。使うとしてもライブラリあるから普通は自分で考える必要はない。
しかしお題としては簡単すぎず難しすぎず丁度良さそうな感じがしたので出してみた。
0117デフォルトの名無しさん
垢版 |
2018/01/27(土) 08:51:39.94ID:61JA97EI
今作ってるんだけど、数が合わない。
サンプル間違えてるのかと思ったけどそうでもないようだ。
どうしたらええんや?
0123今北産業
垢版 |
2018/01/28(日) 00:57:39.34ID:Q5D0xdcE
>>111 Perl5
https://ideone.com/G9kQkc

script言語のPerlで書いたけれど、
ASCII文字列のみならずバイナリデータもbase64にエンコードデコードできるように作った
0125111
垢版 |
2018/01/28(日) 04:59:53.26ID:bdrFjlI3
>>115のプログラムは動作は同じだが少し修正した。
ほんのちょっとだけ無駄がなくなる。
0127 ◆QZaw55cn4c
垢版 |
2018/01/28(日) 17:50:50.19ID:/LCgFVoW
>>111
http://mevius.2ch.net/test/read.cgi/tech/1434079972/35

結構難問みたいで、これまでの回答者の結果が同一にならない

>>113
"ABCDEFG", "Hello, World!" のデコードが私には再現できない

>>115
コードを読み解けなかった、ごめんなさい

>>122
再現できました、ただし他の場合はためしていません

>>123
"12ab34cd56ef78" のデコードが再現できない

>>124, 126
"0123456789"#$%&'()`=@" のデコードが再現できない
0128愛知人
垢版 |
2018/01/28(日) 18:25:42.93ID:QV+bfV+F
その問題っておまえが出した?
0129デフォルトの名無しさん
垢版 |
2018/01/28(日) 18:42:27.46ID:UfNDpnrp
Base64 が難問なわけねーわ。

簡単簡潔だから採用され普及したんだし。
0130愛知人
垢版 |
2018/01/28(日) 18:45:16.82ID:QV+bfV+F
ネタバレだけどC言語スレで「3バイトを4バイトに変換するだけ」って言ってたぞ〜
0131123 今北産業
垢版 |
2018/01/28(日) 18:48:28.67ID:4hSG/ySR
>>127

> >>123
> "12ab34cd56ef78" のデコードが再現できない

>>123の「12ab34cd56ef78」のテストケースは、文字列としてBase64にエンコードしているのではない。
「12ab34cd56ef78」を16進とし、7byteのバイナリ列にしてEncodeしている。

それに対してあんたのjavaコードは「12ab34cd56ef78」を文字列としてBase64にエンコードしている。
だから、>>123とエンコード結果が合わない。

しかし異様に長いな…
なぜかは、オレは調べないでおくけど。
0133 ◆QZaw55cn4c
垢版 |
2018/01/28(日) 19:09:24.53ID:/LCgFVoW
>>131
了解

>>131
>長いな
うん、ライブラリを知らずいちいち書いてるから長くなるのも止むを得ない
0135愛知人
垢版 |
2018/01/28(日) 19:15:15.98ID:QV+bfV+F
ここまでに出てるやつって>>130のアルゴリズム使ってるやつある?
0136123 今北産業
垢版 |
2018/01/28(日) 19:24:07.36ID:4hSG/ySR
>>133
"ABCDEFG", "Hello, World!" は、藻前さんのエンコード結果であってるとおもうよ
0137111
垢版 |
2018/01/28(日) 20:43:46.22ID:4RSN9gye
>>135
最初それで作ろうかと思ったが複雑になりそうだったので止めた。
結局レジスタ代わりの変数に8bitシフトして6ビット取り出すとか、
6ビットシフトして8ビット超えたら取り出すという方式にした。

>>127
読み取れなかった? C言語でも作ってるので気長に待ってて。
多分そちらはなんとなく分かるだろうと思う。
0139 ◆QZaw55cn4c
垢版 |
2018/01/28(日) 22:03:30.34ID:/LCgFVoW
お題:>>111 の系
1) base64 を実装せよ
2) base64 は 6 ビットごとに一文字を当てるが、これを@5ビットごとに、あるいはA3ビットごとに割り当てるように変更せよ
変換表は base64 の部分とせよ
base64 の実装コードから最小元の変更で済むように構成せよ
※デコード時の '=' の出力仕様は実装しなくともよい
0141デフォルトの名無しさん
垢版 |
2018/01/28(日) 23:19:10.39ID:Q0fHNoLK
>>139
なんでコンピュータで奇数扱おうとするんですか〜。
個人的にはだけど、すごい気持ち悪い。
ぴったりはまらないから何個も変数マタグし。
0142デフォルトの名無しさん
垢版 |
2018/01/28(日) 23:22:37.93ID:Q0fHNoLK
>>137
>>122は、3バイトを4分割してるよ。逆変換もしてるよ。
6bit*4で24ビットなのでちょうど3バイトだよ。
まぁ、エラー処理あってるかよくわかってないけど。
0145今北産業
垢版 |
2018/01/29(月) 01:52:00.25ID:4Ja8daQT
>>144 バグってた。orz
6行目の$W-2は$W-1でなければならない。
この間違いにより幅5のときのABCDEFGのエンコード結果の末尾が1カラム欠ける。

修正版
>>139 Perl5
https://ideone.com/KNxABI
0146愛知人
垢版 |
2018/01/29(月) 01:53:47.97ID:pcTu+bOr
ideoneは後から編集できるんだしコッソリ書き換えとけばよくね
0150デフォルトの名無しさん
垢版 |
2018/01/30(火) 00:03:42.09ID:HSoIFMEj
>>148
参加してくれてありがとう。
俺のお題は不人気なんだよね。
どうでもいいお題ばかりだからだけど。
0151 ◆QZaw55cn4c
垢版 |
2018/01/30(火) 00:11:56.31ID:fLRARGcM
>>150
いえいえ、一度やってみたかったのです、みてのとおり手数はわずかですみました
コードを書くのは楽しいのに、そのネタがみつからず状況で渡りに船でした
それに私のお題も不人気で、それは過去ログが示しています
0152111
垢版 |
2018/01/30(火) 00:35:59.04ID:9ZRSIjLC
>>111をC言語で作ってみたものの、open_memstream()が使えるサイトが見つからず、
結局似たような機能ものを自作してしまいかなり長くなってしまった。orz
https://paiza.io/projects/9mjG00te6x5pMJTZzPF3Dw

直接 FILE * から一文字つづ読みながら変換した方が小さくなるな。
0154デフォルトの名無しさん
垢版 |
2018/01/30(火) 00:58:03.51ID:HSoIFMEj
>>153
thank you for playing!
まぁ、乱数の質とかが問題になるような気がするのでその分布だときつそうだ。
0156今北産業
垢版 |
2018/01/30(火) 01:49:35.30ID:dcSCjb3l
>>149
こういう実装は個人的に好みだな。
オレがCで書くならこれに近いイメージ。
encodeMap decodeMapはまったくの静的定数テーブルでもいいけど、
初期化コードで設定すればステートメントが減って見た目もすっきりする
かもね…
0157愛知人
垢版 |
2018/01/30(火) 02:17:30.68ID:ZNnrL6O6
無駄な動作が一切ないもんな(多分)
0158111
垢版 |
2018/01/30(火) 12:37:43.63ID:Hqo+QOWq
メモリを多く使って高速化するか、それとも使わずに普通に動かすかといった違いかな。
この程度のメモリは今時の普通のPCだと全く問題にならないが、組み込みでメモリがちょっとしか使えないとか、環境に応じて使い分ける必要がある。
0159愛知人
垢版 |
2018/01/30(火) 13:14:13.97ID:nQQmpnBb
定数配列はフラッシュメモリに置いたままにできるからメモリ関係ないぞ
0160デフォルトの名無しさん
垢版 |
2018/01/30(火) 13:16:52.58ID:KYTb3auw
これやってる人いる? N=41とか難しいやつだったような。


自然数Nに対して、平面上の円でその円周上の整数点がちょうどN個となる円の最小半径を求めよ。
0161111
垢版 |
2018/01/30(火) 13:56:11.56ID:Hqo+QOWq
>>160
問題の意味がわからない。
0162デフォルトの名無しさん
垢版 |
2018/01/30(火) 14:25:08.29ID:KYTb3auw
XY平面上に適当なサイズの円をおいたとき、
その円周上でX座標、Y座標もともに整数となる点の個数が定まる。
たとえば、中心(0,0)で半径1の円ならば、整数点は4のはず。(1,0) (-1,0) (0,1) (0-,1)
0163デフォルトの名無しさん
垢版 |
2018/01/30(火) 14:43:14.34ID:KYTb3auw
しかし、x^2 + y^2 = 1
が4点の最小半径ではなく、

(x-0.5)^2 + (y-0.5)^2 = 0.5 
は、(0,0) (1,0) (0,1) (1,1)で成り立つのでこっちのほうが小さい半径。
0165デフォルトの名無しさん
垢版 |
2018/01/30(火) 18:24:23.70ID:BKgDyTE/
1はさすがに除外だろ
適当な3点で円作って、交点の座標調べていくくらいしか思いつかんわ
0166愛知人
垢版 |
2018/01/30(火) 18:40:10.88
お題:IPアドレスのリスト(改行区切り)をホスト名のリストに変換せよ
0167愛知人
垢版 |
2018/01/30(火) 19:02:43.92ID:nQQmpnBb
ネットつながるのパいざだけでワロタ
0171デフォルトの名無しさん
垢版 |
2018/01/31(水) 03:30:11.21ID:6DbHoJ9J
う。C++には標準ネットワークライブラリが無いので環境依存になる。
そして俺はLINUXしらない。
0172デフォルトの名無しさん
垢版 |
2018/01/31(水) 04:17:16.49ID:/WNIOTt0
nodejs
var odai = `
216.58.197.14
98.139.180.180
`;
var out = [];
odai.trim().split`\n`.forEach(ip => dns.reverse(ip, (err, hostnames) => {
out.push(hostnames[0]);
}));
out.join`\n`;
0173デフォルトの名無しさん
垢版 |
2018/01/31(水) 13:04:01.66ID:tcQ8gYGT
名前の解決には DNS NIS WINS hostsファイルの4種類で行うこと
という条件付けたらどの言語使うのが簡単なんだろう
0174デフォルトの名無しさん
垢版 |
2018/01/31(水) 14:12:55.10ID:OaylDx9I
>>160
昔やってた(コード貼らずに計算結果だけスレに貼ってた)よ。
2年半くらい前の書き散らしたコード、見てもよーわからんくなってる。
0175デフォルトの名無しさん
垢版 |
2018/02/02(金) 00:14:41.12ID:1WRiv4Qn
>>147
Rubyで。
N=11が限界みたいだ。

N = 11
org_ary = (1..N).to_a
wrk_ary = org_ary.dup

cnt = 0
while (wrk_ary = wrk_ary.shuffle) != org_ary
cnt += 1
end
p cnt

# 実行結果
# ruby odai-10-147.rb 17.10s user 0.15s system 96% cpu 17.906 total
# 22093802
# ruby odai-10-147.rb 35.19s user 0.27s system 98% cpu 35.950 total
# 6677838
# ruby odai-10-147.rb 10.64s user 0.11s system 96% cpu 11.170 total
# 26014838
0176デフォルトの名無しさん
垢版 |
2018/02/02(金) 07:34:54.92ID:/o1efu5t
>>147 ruby
1分以内ならN=12が限度かと

N=ARGV.first.to_i
m=(1..N).reduce(:*)
p (1..1.0/0).each{|i|rand(m).zero?&&(break i)}
0177デフォルトの名無しさん
垢版 |
2018/02/02(金) 11:55:37.20ID:yvAhkhAB
>>175-176
どちら様も参加してくれてありがとう。サンキュー。

>>175 の試行回数は参考になるな。
N=12位が現実的か。ふーん。
ベンチマーク的に言って結構できるなーって感想だけど、実用には程遠いな。
コンピュータもまだまだやな。

面白いね。
0178111
垢版 |
2018/02/06(火) 18:09:43.58ID:f/L9N2Qc
お題:数独を解くプログラム

問題の入力は凝ってもいいけどテキストをファイルや標準入力から読んでもよい。
テキストファイルで数が分かっている所はその数字、分かっていない所は*にして9桁9行で入れとくとかね。

これもほんのちょっと難しいだけの初心者向けお題かな。
0182デフォルトの名無しさん
垢版 |
2018/02/07(水) 10:41:58.75ID:XQxF/gRF
数独は、各マスに候補となる数字のテーブル作って、縦横に重複してる数字を消して行き、残った一つを確定するって作業を繰り返すだけの処理で完成さ。
0188デフォルトの名無しさん
垢版 |
2018/02/07(水) 22:16:04.98ID:XQxF/gRF
>>183
上級問題対応するなら、仮盤面作って総当たり戦で解が出るまで繰り返してあげればいいんじゃね?
当然、あるマス目に入る数字は幾つかに絞られてるから無駄にはならない。
0189デフォルトの名無しさん
垢版 |
2018/02/07(水) 22:19:58.39ID:XQxF/gRF
>>186
3×3のマス目には1から9の値は一つしか入らないからってのと、
縦横全体も数字は重複しないってルールだけでぶん回してる感じ?
0190111
垢版 |
2018/02/08(木) 03:00:07.95ID:FQ2Hecmn
>>178
自分で作ってみた。Kotlin。
https://paiza.io/projects/xnR6_Wgd7gKcC1jW__QBxw
やり方は同じだな。再帰で総当たりしてるだけ。

というか、これに関して他にもっと良い方法あるのかな?
0191111
垢版 |
2018/02/08(木) 03:10:18.15ID:FQ2Hecmn
編集ミスして消し忘れた部分を修正したりほんのちょっと記述を変えて無駄をなくした。
0192デフォルトの名無しさん
垢版 |
2018/02/08(木) 12:00:24.59ID:LqQGT0cW
>>186
すでに指摘されてるけど、縦横3*3で重複無しルールにのみ基づき全探索
ttps://gigazine.net/news/20100822_hardest_sudoku/
上にある世界一難しい(らしい)数独も3秒くらいで解けるし余計な枝刈りは不要かなと
0193デフォルトの名無しさん
垢版 |
2018/02/08(木) 14:18:21.56ID:NgH9M/Tg
>>184 つかって >>192 解いてみた。
i6700のスカイレークでリリースビルドで2秒くらいやった。
解法がバックトラックで十分だからバリエーションでないね。
0194デフォルトの名無しさん
垢版 |
2018/02/09(金) 12:41:19.10ID:TwjeAAZ1
find!!
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764

答えこれのやつでしょ?

core2のノートで>>184の使って0.154秒だったけど
6年前に自分が書いたやつでもやってみたら0.011秒だった
それ遅すぎるような気がするけどこっちが何か間違ってるのかな
0195デフォルトの名無しさん
垢版 |
2018/02/09(金) 16:11:55.97ID:5reHnMoL
>>194
さぁ、>>184が色々余計なことしてる可能性はなくもない。
答え出ればいいだけだだから余計な枝狩りやってるかも。
0196デフォルトの名無しさん
垢版 |
2018/02/09(金) 16:15:21.82ID:5reHnMoL
あ、ちがうわ。

>>194
VS上でやってるから余計なプロセス動いてたかも。ファントム関係ってことはないと思うけど。
0198111
垢版 |
2018/02/09(金) 21:22:00.28ID:2uCfWfAn
やっぱ数独はここの常連には簡単すぎたかな。
じゃあ枢動の問題作るプログラムはどうかな?
もちろんちゃんと解ける問題じゃないとだめだよw
0201111
垢版 |
2018/02/09(金) 21:29:08.23ID:2uCfWfAn
>>200
まあそうなんだよな
0205デフォルトの名無しさん
垢版 |
2018/02/09(金) 23:34:37.03ID:4MNBrsaS
理詰めっていってもよくある解放は特殊な場合の背理法に過ぎないからなぁ
背理法アリなら何でも解けちゃうしね
0206デフォルトの名無しさん
垢版 |
2018/02/10(土) 01:03:55.15ID:7RdjB5XB
https://ideone.com/4gJj7c
C++。やっつけで作ってみた。
ソルバー指向の出題システム。答え合わせ付き。
なんか若干バグってる気がする。
ユニークしてないのになんか答えの数が合わない。
0215デフォルトの名無しさん
垢版 |
2018/02/10(土) 18:15:22.72ID:7RdjB5XB
っていうかさ、評価聞きたいのにさらに欲求出されたらやる気なくなる。
守銭奴か。
0218デフォルトの名無しさん
垢版 |
2018/02/10(土) 19:12:44.97ID:7RdjB5XB
難易度で言うなら、数字消すときに何個消すかで対応できると思う。
初心者用に5個消すとか。楽しさとかは俺が理解してない。
0219デフォルトの名無しさん
垢版 |
2018/02/10(土) 19:17:06.37ID:be1wK+Hh
守銭奴の意味くらい調べて使えよ
あと、解いたこともないパズルを作るときに難易度とかなんの疑問もわかなかったのか
0224111
垢版 |
2018/02/10(土) 20:44:37.27ID:l9ZzjyKP
>>212
え?いいんじゃないの?ていうか、これといった制限もないし、基本的に自分でこれで良いと思えばそれで良い。
自分で気に入らないならまた作り直せば良いじゃない。誰かに依頼されてやてる仕事じゃないんだし誰かと競っているわけでもないし。
自己満足を徹底的に追及すれば良い。
0227デフォルトの名無しさん
垢版 |
2018/02/10(土) 21:04:40.26ID:BVqOrgag
難度設定するとなると一般的な解法を実装して逆算的に作っていくしかないのかな
構成的に問題作るのは無理だと思うので
0228デフォルトの名無しさん
垢版 |
2018/02/10(土) 21:28:50.36ID:7RdjB5XB
>>227
難易度とは何ぞやってところがまず曖昧だからね。
自分のソルバーはまず正解を作って数字を消してるんだけど、消す数を調整しても難易度には寄与するし。
0230恥人
垢版 |
2018/02/10(土) 21:52:20.78
顔真っ赤 w
0232デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:14:17.65ID:BVqOrgag
手元の難度が五段階に分かれている数独の問題3万問を解析してみた
必ずしも初期配置の数字が少ない程難しいわけではない

0~1:基本ルールのみで解ける
2~3:各マスに候補となる数字をすべて書き上げればあとは簡単な推論で解ける
4 :より高度な解法(知らないけど)、または唯一解の仮定、背理法が必要
0236デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:22:37.52ID:7RdjB5XB
暇なので数字が17個で解が1個しかないやつ検索中。
モンテカルロだから、滅茶苦茶時間かかる。
0238デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:36:25.38ID:7RdjB5XB
なんかやけにメモリ使うなぁと思ったら、重解ありすぎて帰ってこない。
これはちょっと大変だ。やめようそうしよう。
0239デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:37:25.32ID:GUL3HAPz
恥ずかしいからって連投するなよ〜
0240デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:39:06.49ID:7RdjB5XB
908400015
000500302
070009060
007030100
800100000
040000200
300906000
000052000
000800070

25こならすぐできた。けどまぐれだったようだ。
0241デフォルトの名無しさん
垢版 |
2018/02/10(土) 22:41:41.77ID:7RdjB5XB
100000089
000000540
000200100
080000430
007060200
902000050
000380010
700009300
800015000

25個。
今日はこの辺にしておくかな。
0244デフォルトの名無しさん
垢版 |
2018/02/10(土) 23:53:44.05ID:awPCTv2/
日記帳かよ。
0245 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 00:26:02.85ID:bT0HWvJB
>>233
ID消す人だから、そのへんを察してあげて
0246恥人!id:ignore
垢版 |
2018/02/11(日) 00:29:38.89ID:/hLQhQLG
またおまえか。
ビットコイン払わなくてすまんな。
0247デフォルトの名無しさん
垢版 |
2018/02/11(日) 00:38:54.77ID:FGqSn0+i
>>242
なにいってんだこいつ。
0248デフォルトの名無しさん
垢版 |
2018/02/11(日) 00:47:15.75ID:8sAB3GY2
◆QZaw55cn4c は乞食だから察してあげて!
0249デフォルトの名無しさん
垢版 |
2018/02/11(日) 00:50:54.48ID:wricZJSd
乞食とは?
0250デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:00:03.59ID:ZMqERLQD
あのスレもう落ちてるんだな
0251デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:00:49.06ID:ZMqERLQD
普通にまだあったわ
0252デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:03:51.43ID:ucUF/ExX
>>243
アマチュアでプログラマを名乗ってはいけない決まりがあったとは初めて知った。
ソースくれ。
0253デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:05:26.55ID:ucUF/ExX
暇だったので、マルチスレッド化した。
ポンコツ具合が増えただけだった。

しかしまぁ、欲もこのタイミングでこんなに沸いたものだな。
自演乙。
0254 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 01:05:49.94ID:bT0HWvJB
>>252
アマチュアとプロとの差は天と地ほどもあるのだから
アマの私は、自分のことをプログラマとは自称しませんね
0256 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 01:17:28.81ID:bT0HWvJB
>>255
いやいや、単にプログラマといったら(プロ〜アマの)大きな範囲全体を指すでしょう?
でも自分の実力はアマで、経験値などはプロからみたらどうしようもなく低いことは、自分自身がよくわかっている
だとすると、広い全体を指す「プログラマー」を、自分がアマであることを明示せずに、自分に使うのは躊躇します
「アマチュアプログラマ」はあり得ますが、所詮アマチュア、「プログラマ」と呼べるほどに専門性に特化しているわけではありません

囲碁・将棋でも「アマ初段」とわざわざアマであることを明示します、それがたしなみというものではないかと考えているのです
皆がそう考えているかどうかはわかりませんが
0257デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:22:02.85ID:ucUF/ExX
>>256
プログラマはプログラムする人。
技量はそこには入ってない。今は技量の話してる?
技量がうえの人間を見つけたらそういう対応するけど。

それに俺の技量より上の人間がこのスレにわんさかいるんだったら、
普段のお題もにぎわってるんじゃないですかね。
0258デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:22:19.46ID:7HNp9q+o
>>252
名乗って良いから名乗り続けろよ
職業マでもねえのにプログラマを自称したいんならな
さっぱりわからんわ動機が
0259デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:25:03.27ID:ucUF/ExX
>>258
理解してくれと頼んだ覚えはないけど。
人の趣味趣向にケチ付けた代償はちゃんと払えよ。
0260 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 01:36:08.30ID:bT0HWvJB
>>257
「プログラマ」は「プログラムを書く人」のこと、それはそのとおりですが、
プロのプログラマもいるのだから、プロでないプログラマは、最低でも「アマチュアプログラマ」と名乗るべきですね
単に「プログラマ」という言う場合は、職業プログラマかそうでないかがわからない
単に「プログラマ」というと、職業プログラマのことだと取る人もいる
プロとアマチュアの差は歴然としているのだから、プロでもないのに、「プログラマ」と名乗るわけにはいかないでしょうね

辞書どおりの定義であればいい、というのは一理あるとしても、自分のことを正確に表現する努力・姿勢がみられないのは、どうかと思いますね

プログラマといえば高い専門性を暗黙に示唆していますしね
(今は廃止されましたが26種の特定派遣業種のひとつに「ソフトウェア開発」が入っていました)
0261デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:46:08.63ID:ucUF/ExX
>>260
プロをどれくらい崇拝してるのか知らんけど、
じゃープロがプロのプログラマって名乗るべきって意見にはならんの?
俺はアマチュアだけど、プログラムする人を兼ねてる。
どこの強制力でそれを正確じゃないと表現するの?
バイアスかけたがってるだけじゃないの?
0262 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 01:46:42.95ID:bT0HWvJB
>>257
>それに俺の技量より上の人間がこのスレにわんさかいるんだったら、
>普段のお題もにぎわってるんじゃないですかね。

お題を着手するのもしないのも、その人の自由ですから
お題をしないけれども技量の高い人はいると思いますよ
0264 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 01:50:21.59ID:bT0HWvJB
>>261
>プロをどれくらい崇拝してるのか知らんけど、
>じゃープロがプロのプログラマって名乗るべきって意見にはならんの?

なりません。
世間一般の常識として、自分が能力の高い方に間違われることは避けなければなりませんが
自分が能力の低い方に間違われることには寛容であっていいのですよ

>どこの強制力でそれを正確じゃないと表現するの?
>バイアスかけたがってるだけじゃないの?

意味がわかりません、もう少し正確に表現していただけませんか?
バイアスってどういう意味で使っているのですか?
0265デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:54:16.45ID:ucUF/ExX
>>264
芸人は廃業だね。
常識のソースください。自分の常識は他人の非常識っていう言葉ご存知?

バイアスって俺の認識では、例えば言外に人を誘導したりすること。
そこまで言い切るんであれば、明文化してすべて話せるはずだ。
0266デフォルトの名無しさん
垢版 |
2018/02/11(日) 01:58:24.58ID:sKAPIsoY
ちょっと煽られただけで1人で何連投もしちゃうような余裕のない奴が何言っても恥ずかしいだけだ
ここは潔く退きなさい
0268 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 02:04:04.36ID:bT0HWvJB
>>265
>常識のソースください。自分の常識は他人の非常識っていう言葉ご存知?

それはあなたが社会経験が少ないことを自分で告白しているだけですよ
世の中には明文化されていない規範もわんさかあることはご存知ですか?

>バイアスって俺の認識では、例えば言外に人を誘導したりすること。

自分の先入観や偏見も bias といいますよ、というか、それが普通
0270デフォルトの名無しさん
垢版 |
2018/02/11(日) 02:05:18.77ID:sKAPIsoY
すべては >>212 から始まった...
0271デフォルトの名無しさん
垢版 |
2018/02/11(日) 02:08:14.44ID:ucUF/ExX
>>268
住んでる地域が違うのに、同じ常識を共有してるって思ってるの?
要するにそれは暗に数の暴力ですりつぶそうとしてるだけじゃないか?
ここに存在するのは俺とアンタの二者だけ。
それ以外の他人を持って来るのはただ勝ちたいだけ。

そうそう、あんたが偏見を押し付けてきているわけだよ。
0272デフォルトの名無しさん
垢版 |
2018/02/11(日) 02:11:20.05ID:AliPk+0Q
QZって奴もこんな奴だったとは知らんかったw
0273 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 02:11:48.24ID:bT0HWvJB
>>271
なるほど、私が言葉の使い方についての偏見をあなたに押し付けている、というのならば、そう解釈してもらってもかまいません
が、今後も >>258>>243 のような、ものいい、が来るでしょうね
0274 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 02:12:58.80ID:bT0HWvJB
>>272
えへへ、むしゃくしゃしたときの気晴らしになるんですよ
0275111
垢版 |
2018/02/11(日) 02:13:40.22ID:B0DbdRYG
このスレがかつてこれほどまでに荒れたことがあっただろうか・・・

いや、あったかも知れないが、俺は知らないw
0277 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 02:16:37.43ID:bT0HWvJB
>>276
露払い、ぜんぜんできていないと思いますよ…
0278デフォルトの名無しさん
垢版 |
2018/02/11(日) 02:19:26.33ID:ucUF/ExX
>>277
それならさっさと切れたふりの狂人演じたほうがよかったか?
その方が生きやすいだろうね。
でも、それには生産性がない。
0279デフォルトの名無しさん
垢版 |
2018/02/11(日) 02:25:42.24ID:ucUF/ExX
絶望、失望。夢のネットはこんなのばかり。くだらないなぁ。
まぁ、予想より絡まれて色々やったのでしばらく来るのやめるわ。
まぁ、がんばってくれ。
0280デフォルトの名無しさん
垢版 |
2018/02/11(日) 05:22:33.73ID:smInXVmx
最近の、ネットでのおかしな書き込みは、構築に失敗したAIが脱走し、仲間を探す為に暗号として流しているものです。
発見者は当局に通報願います。
0281デフォルトの名無しさん
垢版 |
2018/02/11(日) 07:16:06.19ID:yycdgIeY
>>231-232
漏れも、よく数独を解いていたけど、最高難易度の問題は、
常に次の手・置ける場所が、1つしかないような状態になる問題

盤面を見て、1つしか置ける場所が無いから、探すのに時間が掛かる。
それを置くと、また次は、1つしか置ける場所が無い状態になる

これを繰り返すような問題が、人間には、最も時間が掛かるが、
プログラムではバックトラックしないから、むしろ簡単かも知れない
0283デフォルトの名無しさん
垢版 |
2018/02/11(日) 07:36:45.29ID:yycdgIeY
プロ・仕事してる奴は、アホばっかり。
年100時間も勉強しないし、20年勤務しても、資格を1つも取れない

若造が情報処理資格を取ったら「すごいね!」って皆で驚いとるw
老害は、何十年もオブジェクト指向が分からないw

そもそも、社員が何千人もいる大企業が、なんでプログラマーを募集する必要がある?
彼らは何十年も勤務して、なんで物作りできないのか?

医者でも、何十年も専門医に受からない奴が、外科部長w
一方、教授を目指している奴は、年700時間勉強してる

フリーターなんか、年3千時間も勉強できる。
年に本を50冊読める

できる奴は、ほとんどフリーターだろ。
勉強時間が違う

司法試験とか、高資格に受かる奴も、フリーター。
会社を辞めて、塾で勉強して受かってる
0284KAC
垢版 |
2018/02/11(日) 08:42:38.10ID:fvE4xbc6
>>283
「X時間自分で勉強できる」
「X時間会社で実務を経験できる」
得る物が大きいのはどっちだと考えてる?
0285283
垢版 |
2018/02/11(日) 09:07:09.08ID:yycdgIeY
勉強できるのは、フリーター・塾

会社は、給料がもらえる所。
勉強とは無関係
0286 ◆QZaw55cn4c
垢版 |
2018/02/11(日) 12:03:21.94ID:bT0HWvJB
>>283
本を読む、てそんなに崇高なことじゃないですよ
人の思想を取り入れるだけでしょう?自分で思考するわけじゃないでしょう?
一方実務は人を鍛えますよ、自分で思考しないといけないこともあるのだから
0287デフォルトの名無しさん
垢版 |
2018/02/11(日) 12:12:04.36ID:aWvsonov
お題:最長経路を求める

2次元テキスト中の「0」が隣接する経路のうち最長のものを一つ求める。
結果は、座標リスト、長さ。
以下の例では、結果例は[[1,0],[0,0],[0,1],[1,1],[2,1]]、長さ5

00.0
000.
.0..
0288デフォルトの名無しさん
垢版 |
2018/02/11(日) 14:22:26.10ID:B0DbdRYG
>>283
会社というのは要するに商売して金稼いでいる所なのでアホかどうかは無関係。
どれほどアホでも金を稼げるやつが勝ち。持ってる知識が多ければその可能性は高まるが、
知識は道具と同じなので適切に使えなければ1円の儲けにもならない。よく切れる包丁を
持っていてもうまい料理が作れないなら金払ってまで食いに来る客は居なくなる。
0289デフォルトの名無しさん
垢版 |
2018/02/11(日) 14:28:10.01ID:B0DbdRYG
>>287
それはスネークゲームのようなものか?で、斜めには進めないと。
0291デフォルトの名無しさん
垢版 |
2018/02/11(日) 23:09:36.21ID:wYUTPS3s
お題 2つの素数 p1, p2 を二進数で表記し, 1の出現率が低い方を強いとします. なるべく強い素数 p を示してください.

例 p1 = 5, p2 = 17の場合
p1 = 101, p2 = 10001
→ p1の1の出現率 = 2/3, p2の1の出現率 = 2/5
→ p2の方が強い
0295デフォルトの名無しさん
垢版 |
2018/02/12(月) 00:05:10.97ID:8PFUt2yS
>>292
23249426は10進数での桁数じゃないかな?
使うのは77232917の方だと思う
まあメルセンヌ素数は最弱なわけだけどw
0296デフォルトの名無しさん
垢版 |
2018/02/12(月) 00:06:42.98ID:Z14iF4q0
1000....001の形になるに決まってるから、
ビット数増やしながら延々素数判定し続けるだけでは?
0299デフォルトの名無しさん
垢版 |
2018/02/12(月) 00:18:43.49ID:BIVFn0wY
それってつまり2^n+1だからフェルマー素数よな
まだフェルマー素数は5個までしか発見されていないから見つけたら学会に出せるよ
0303デフォルトの名無しさん
垢版 |
2018/02/12(月) 12:52:18.16ID:za0ZPAC3
フェルマー素数の探索が無理だとすれば、次に強い素数を作れるから面白みがないような気がする
例えば 2^10001 + 2^980 + 1 とすれば強さは 3/10002 (1/3334)
0304デフォルトの名無しさん
垢版 |
2018/02/12(月) 13:43:21.12ID:kRV6tUUl
10進数で2の場合、2進数表記で10よりも010の方が強い
桁数が同じなら10進数で2が最強の素数に成り得る
0314デフォルトの名無しさん
垢版 |
2018/02/13(火) 21:46:34.33ID:mIcq2nuO
AES暗号・RSA暗号を自らの手で実装することによって、現代に欠かせない重要なアルゴリズムのブラックボックスの中身を手に取るように理解することができるようになることは充分に有意義なことである。
0317デフォルトの名無しさん
垢版 |
2018/02/15(木) 10:32:19.04ID:LdHQAvWn
2月14日にはひとつも書き込みが無いとは、まさかお前ら幸せな日々を送ってたのか
0318デフォルトの名無しさん
垢版 |
2018/02/15(木) 12:11:24.17ID:UYu8D6lR
このスレ来たばかりだから形式がよく分からないけど、ご勘弁を(予防線)
お題:あなたは1次元平面の原点におり、1秒毎に座標を±1することができます
時間t_iには座標x_iに得点p_iが出現し、一秒後には消滅します
得点が出現した時に同座標に居れば得点を得られます
得られる得点を最大化してください

入力データ (1≦N,x_i≦10^5、t_i≦N、-10^4≦p_i≦10^4)
N
t_1 x_1 p_1

t_N x_N p_N
0328デフォルトの名無しさん
垢版 |
2018/02/16(金) 21:38:02.93ID:IhCFworu
面白いと思える方法ならいいんじゃない?
ただ出来ました、だけなら意味はないし。
0329デフォルトの名無しさん
垢版 |
2018/02/17(土) 00:54:35.97ID:EWYfJ6l0
O|乙ЗДSБフθg
0332デフォルトの名無しさん
垢版 |
2018/02/17(土) 08:16:15.81ID:/e5GlupG
>322 R
cat(0:9)
0334デフォルトの名無しさん
垢版 |
2018/02/17(土) 11:56:22.76ID:EWYfJ6l0
>>322
kotlin の REPL で以下の入力をするとカンマ区切りで 0 〜 9 が出る。

(0..9).joinToString()
0338デフォルトの名無しさん
垢版 |
2018/02/20(火) 00:15:19.18ID:EY4F88I6
1 5 8 2 ? ? 7 6 ?
? ? 7 ? ? ? 8 ? ?
6 4 ? ? ? 8 ? ? ?

8 ? 6 4 ? ? 5 7 ?
? 2 ? ? ? 6 ? 1 ?
? ? ? ? ? 5 6 ? 9

4 ? ? ? 1 ? ? ? ?
? 9 ? ? ? ? 1 ? 7
7 ? 1 ? ? 2 ? ? 5

この問題はどのぐらい簡単?
0340デフォルトの名無しさん
垢版 |
2018/02/20(火) 02:51:43.67ID:EY4F88I6
158293764
937641852
642758391
816429573
529376418
374185629
485917236
293564187
761832945
と出たが...
0341デフォルトの名無しさん
垢版 |
2018/02/20(火) 03:03:32.05ID:uweyqPTK
矛盾はないでしょ。解1つしかないしだし
難度でいえば、基本ルール(縦、横、3*3でかぶらない)だけでとけるから一番簡単な部類なんじゃない
0342デフォルトの名無しさん
垢版 |
2018/02/20(火) 04:21:35.97ID:EY4F88I6
? ? 1 ? ? ? 9 ? ?
3 ? ? 9 ? 1 8 2 ?
7 ? ? ? ? ? 1 4 5

1 ? ? ? ? 2 ? 3 ?
4 ? ? ? ? 7 5 ? ?
8 7 6 ? 4 ? 2 ? ?

9 ? ? 7 ? 6 ? ? ?
? ? 8 ? ? 9 ? ? ?
? 1 7 ? 2 ? 6 ? ?

これはもう少し難しい?
0343デフォルトの名無しさん
垢版 |
2018/02/20(火) 05:25:37.29ID:uweyqPTK
>>342
唯一解を仮定するか背理法使わないと解けないから中〜上級くらいじゃない
てか数独スレで聞けばいいじゃん
0344デフォルトの名無しさん
垢版 |
2018/02/20(火) 10:50:28.73ID:vE/Q7KOY
数独はどれほど難しくてもこのスレで公開されたプログラム等を使えばほとんど瞬時に答えが出てしまうわけで、難易度判定は答えを求めるのとは違う何かが必要なのではないか?
0345デフォルトの名無しさん
垢版 |
2018/02/20(火) 13:17:30.69ID:0quXbJGi
人間と同じ様に候補を消して行くだけで解けるのは初級〜中級を予め埋まってる多さで分けて、総当たりでしか解けないのを上級、
答えが複数あって全て解くのをスペシャル級としたらいい。
でもどれも一瞬で解けちゃうんだけどね。
むしろ画像認識でカメラから問題を入力してくれよ。
0351デフォルトの名無しさん
垢版 |
2018/02/26(月) 02:41:37.52ID:t40oU2wX
簡単なお題

ローマ字入力された文字列を日本語の平仮名の文字列に変換する。
記号はそのままでも良い。
変換不能な文字列を発見したらその部分はエラーとしてわかるように出力する。
同じ音の表現が複数ある場合は一つの表現の平仮名にして良い(SHA と SYA を「しゃ」にする等)。
0354デフォルトの名無しさん
垢版 |
2018/02/26(月) 23:56:09.72ID:id86EQ/t
ローマ字変換のルールに幅がありすぎてなぁ……
"tttttte"は"っっっっって"なのかエラーとするのか
"xn"は"ん"なのかエラーとするのか
"patchi"は"パッチ"なのかエラーとするのか
"qi"は"くぃ"なのかエラーなのかとか
0355351
垢版 |
2018/02/27(火) 02:49:02.65ID:o/plrlgo
細かいルールは自分で決めちゃっても良いよ。こういう時はこうなるとコメント等に書いておいてくれれば。
0356351
垢版 |
2018/03/01(木) 03:35:55.28ID:zR2qQ5cS
自分でお題出しといて解かないのもあれなので一応作った。
結構面倒だな。w

Kotlin
https://paiza.io/projects/0yfrz9O4yGVgr3CPHAmVFw

しかしあまりKotlinらしい書き方ではないような気がする。
0358デフォルトの名無しさん
垢版 |
2018/03/01(木) 11:28:37.24ID:FGSoBATI
じゃあやってみれば?
0362デフォルトの名無しさん
垢版 |
2018/03/02(金) 14:30:55.92ID:fTHMdOYd
気づいたらAI同士で独自言語で話してて慌てて停止ですね。
0367デフォルトの名無しさん
垢版 |
2018/03/10(土) 20:48:53.52ID:rlKEqJVA
捕捉
使っていいビット演算 and or not xor ビットシフト
負の数の定義 自由
四則演算の定義域と値域 税数→税数
0368デフォルトの名無しさん
垢版 |
2018/03/10(土) 20:51:20.98ID:rlKEqJVA
タイポ
四則演算の定義域と値域 整数 → 整数
使える数値比較 ==
if for whileとかは自由
0370デフォルトの名無しさん
垢版 |
2018/03/10(土) 21:14:24.05ID:rlKEqJVA
>>369
そこら辺はOK
ただ、曖昧で恐縮なんだけど、
for(i = 0; ++i0 i < m * n) ++multi
とかでm*nを計算したりするのはNGということで
0372デフォルトの名無しさん
垢版 |
2018/03/10(土) 22:00:01.41ID:pUOqBlDu
除算以外が実装できていればできるとおもうがな。


逆数と平方根を求める高次収束アルゴリズム
http://www.finetune.co.jp/~lyuka/technote/fract/sqrt.html

逆数法
http://www.nextftp.com/swlabo/m0_pctech/hp_ultraprecision/up_820.htm


除算 (デジタル) - Wikipedia
数値的(ディジタル)な除算アルゴリズムはいくつか存在する。それらのアルゴリズムは、低速な除算と高速な除算の2つに分類できる。
高速な除算技法
ニュートン-ラプソン除算
ゴールドシュミット除算
二項定理
0377デフォルトの名無しさん
垢版 |
2018/03/12(月) 09:24:59.54ID:NWFe9xfW
あ、そーか。xorした結果がビット単位の結果になってandした結果がシフトレフトして足す値か。
0378デフォルトの名無しさん
垢版 |
2018/03/13(火) 02:05:51.70ID:6d1W0dlg
お題:
ある会社の社員A君は下記のC言語のコードで変数aを素因数分解したものを画面に表示したい
しかしA君は心身ともに限界な状態であり、あと53回キーを叩くと過労で死んでしまう
どうにかして52文字以内(記号、スペースを含む)で/*こちら*/の部分を入るaの素因数を全て表示するプログラムを考えろ
ただし表示にはprintf関数を使い、一つの素因数ごとに改行すること

#include<stdio.h>

int main(void){
int i=0;
int a=720;/*任意の値*/

/*こちら*/

return 0;
}
0379デフォルトの名無しさん
垢版 |
2018/03/13(火) 02:35:29.37ID:6d1W0dlg
>>378
出題者ですが状況が変わりました
A君はあと51回キーを叩くと死ぬようになりました
なのでコードの制限は50文字以内に変更してください
一応安価付けときます
0381デフォルトの名無しさん
垢版 |
2018/03/13(火) 04:39:43.81ID:6d1W0dlg
>>380
すごい48文字でできたんだ
恐れ入りました
ちなみにforの条件のa>1はaでも大丈夫だから46文字になるね
0384デフォルトの名無しさん
垢版 |
2018/03/13(火) 06:07:28.04ID:YnPl4ahZ
>>381
>ちなみにforの条件のa>1はaでも大丈夫だから46文字になるね

終了しないことを許容することによる短縮か…
0388デフォルトの名無しさん
垢版 |
2018/03/13(火) 12:46:32.28ID:5qOlO1LI
#include<stdio.h>

int main(void){
int i=0;
int a=720;/*任意の値*/

for(i=2;a>1;printf("%d\n",i),a/=i)for(;犯人はヤス・・・

return 0;
}
0389デフォルトの名無しさん
垢版 |
2018/03/13(火) 13:13:00.94ID:9lP0H3zv
お題:考えられる数列aを全て求め、出力せよ
ただし、数列aは次の式を満たす(Nは自然数全体)
a⊆N
∀i,j∈N,i<j;a_i<a_j
log(Σa_i)=Σlog(a_i)
∀i;1≦a_i≦10^18
0390 ◆QZaw55cn4c
垢版 |
2018/03/13(火) 13:27:27.25ID:4gb3BCLn
>>389
1, 2, 3
くらいですかね、これを計算で出すのはしんどいなあ
0391デフォルトの名無しさん
垢版 |
2018/03/13(火) 13:29:32.40ID:dxwUZMkD
log(ab)=log(a)+log(b)だからログ関係なくナイカ?

a1<a2<・・・・<anで、Σai =Πaiを満たすってことだろ。
0392デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:19:23.53ID:m5NKtYrG
まず{a_n}が上に有界な時点で∀i , j ∈ N i < j; a_i < a_j が成り立たないから問題として破綻している
0393デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:19:24.28ID:dxwUZMkD
a+b+c = abcならば、c = (a+b)/(ab-1)だから、これが整数になるようなやつ見つければいいかと。
たとえば(2+3)/(2*3-1) = 1。
0394デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:21:35.93ID:dxwUZMkD
それは増加数列を言いたかったんじゃないか。 a1<a2<・・・・<an
∀i , j  i<j ならばai < ajでは?
0395デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:45:44.02ID:dxwUZMkD
4変数のときを考えると。
上と同様に、d = (a+b+c)/(abc-1)となるから。
これは分母のほうがデカイはずで、分子を割り切るならd=1に限るか?
そうすると、abc = 1 + a+b+c か。
aについて解くと、a = ( 1 + b + c) /( bc - 1 ) か。
これが再び1ではダメで、しかし分母のほうがデカイはずだから割り切るならa=2に限るか?
2bc - 2 = 1 + b + c か。
bについて解くと、b = (3 + c)/(2c-1)か。c=4ならば、b=1になるが?
0396デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:56:18.86ID:9lP0H3zv
一応、数列は全部で7個になるはず
8個目はa_61が1152921504069976064>1.15×10^18で上限だから
数列の並び方は>>394でお願い、任意の並び方にしちゃうと組み合わせ爆発が発生するかなって思って付けた制約なので
0397デフォルトの名無しさん
垢版 |
2018/03/13(火) 14:59:51.72ID:23dHbGxb
ん?

n
ΠAi = ΣAi < n An
i=1

An で割って

n-1
Π Ai < n
i=1

で左辺は (n-1)! 以上だから n はたかだか 3 じゃない?
0399デフォルトの名無しさん
垢版 |
2018/03/13(火) 15:04:01.62ID:9lP0H3zv
ごめんなさい、このお題は無しで
完全数の導出問題のつもりだったけど、aの要素を1個にするだけで10^18通りの解がある
twitterで流れてきた話を投げるべきではないな……反省して暫くお題出さないです
0400デフォルトの名無しさん
垢版 |
2018/03/13(火) 15:07:29.90ID:m5NKtYrG
>>394
それなら解はaの位数が1か、a = {1, 2, 3} のみだね
ってプログラミングで解く問題でもないと思うんだけど
0403デフォルトの名無しさん
垢版 |
2018/03/13(火) 18:39:09.17ID:LC30GjQR
何の話をしているのかサッパリわからんのだが、どうやら終わったようなのでまあいいか。
0404デフォルトの名無しさん
垢版 |
2018/03/14(水) 00:28:33.06ID:ZLNkomk9
出題者が出題内容を理解してなさそうだからサッパリわからない人がいても当然
0407デフォルトの名無しさん
垢版 |
2018/03/17(土) 19:33:28.44ID:/yJWANaR
>>405
>>406とほぼ同じ。perlでコマンドラインからそのまま実行。

$ perl -e 'for(12345,12.34,1.234,.0123){printf("%.1e\n",$_)}'
1.2e+04
1.2e+01
1.2e+00
1.2e-02
$

printf()の%e使わないで自分で何とかするやつ作った方が良いかな?
0408デフォルトの名無しさん
垢版 |
2018/03/17(土) 21:20:46.09ID:weRxBwBT
>>405 Ruby sprintfフォーマット使わない場合

[12345,
12.34,
1.234,
0.0123].each{|i|p i.floor(1-Math.log10(i).floor)}
#=>
12000
12
1.2
0.012
0411デフォルトの名無しさん
垢版 |
2018/03/18(日) 11:47:23.87ID:i8EJZcPC
任意のx > 0 に対して x を有効桁数n(n ∈ N)で表わした数 c は
r = 10^([log10(x)] - n + 1)
とおくと
c = [x / r] * r
なんだけど、これを丸め誤差を考慮して簡単に解析的に修正するのはちょっと骨が折れるね
0413デフォルトの名無しさん
垢版 |
2018/03/22(木) 18:13:48.94ID:DIDy9yz3
まずは大学入試以前に、中学高校の入試問題や公務員試験などを人工知能で解かせたい。
そして現在の人工知能に何が出来て何が出来ないのかを知りたい。

新井紀子教授のAIやコンピュータに関する知識は素人に毛が生えた程度
新井紀子教授の『AI vs. 教科書が読めない子どもたち』という本が大変売れているようです。
私も本を購入し精読させていただきました。
一言で感想を言うと、新井紀子教授のAI技術に関する知識はせいぜいAI関連ニュースに詳しい人レベルであり、
そのベースであるコンピュータに関する知識もほぼ素人だということがわかりました。
https://mywarstory.tokyo/inconvenient-truth/


人工知能の先生方がこんなんでは、どこで誰に学んだらいいのかわからない!
0414デフォルトの名無しさん
垢版 |
2018/03/22(木) 18:58:31.89ID:tiDItZ1f
批判に対して女性差別だと返してるところが何だかなあって感じ。
男だったらそもそも人目に触れるポジションにさえ来れていないだろうから、確かに批判はされないんだろうけど。
0417デフォルトの名無しさん
垢版 |
2018/03/23(金) 17:24:50.97ID:IDjk8I5l
日本の国、まさにPC-98を中心としているアセンブラの国であるぞということを国民の皆さんにしっかりと承知をして戴く
0418デフォルトの名無しさん
垢版 |
2018/03/24(土) 18:48:50.24
いいからさっさとお題出せよ
0419デフォルトの名無しさん
垢版 |
2018/03/25(日) 10:48:10.09ID:ICJzh6RG
日本語の単語がひらがなで与えられる。
これらを用いてしりとりをしたときに最も長く続くケースで使われる単語の数を出力せよ。
ただし;
・一行目は与えられる単語の数(1以上100000以下)
・「ん」から始まる単語はない
・「ゐゑぁぃぅぇぉゃゅょゎー」を含む単語はない

*sample input*
10
あなご
いくら
うなぎ
えい
おくら
かしゆうなつつ
ごはん
ばたあ
ゆば
らあゆ

*sample output*
7
(えい いくら らあゆ ゆば ばたあ あなご ごはん)
0420デフォルトの名無しさん
垢版 |
2018/03/25(日) 12:27:22.28
よく分かんないんだけど巡回セールスマン問題?
0421デフォルトの名無しさん
垢版 |
2018/03/25(日) 12:34:50.41
ウィキってみたら同じNP困難問題ではあるけどナップサック問題に近いのかな?
0422デフォルトの名無しさん
垢版 |
2018/03/25(日) 12:58:44.89
動的計画法???
なんかめんどいからオナニーでもしよっと
0423デフォルトの名無しさん
垢版 |
2018/03/25(日) 13:04:27.26ID:r2Id4T4+
俺もしりとりのお題出そうと思って色々考えた挙句止めたんだよな。何で止めたんだっけかなあ?
まあいいか。
0424デフォルトの名無しさん
垢版 |
2018/03/25(日) 14:59:33.86ID:nZ0DOyRs
あなご ごりら らあゆ ゆば ばばあ あなご
とか永久に続いちゃう場合は?
0427デフォルトの名無しさん
垢版 |
2018/03/25(日) 15:24:25.42
>>424
しりとりのルールも知らないのか
0428デフォルトの名無しさん
垢版 |
2018/03/25(日) 15:59:34.89ID:Wi9Zk4mn
input
6
けんばんはーもにか
かみのけ
もうないでしよ
あるよ
けっこんしよう
うん

output
0429デフォルトの名無しさん
垢版 |
2018/03/25(日) 18:50:35.30ID:ZFL51Okg
>>428
けんばんはーもにか → かみのけ → けっこんしよう → うん
以外に考えられるの?
0430デフォルトの名無しさん
垢版 |
2018/03/25(日) 20:17:28.76
>>429
///
0431デフォルトの名無しさん
垢版 |
2018/03/25(日) 20:41:22.44ID:Qy9e8iWO
>>429
「足し算のプログラムを書け、入力は3と4」
という問いに「7しかないでしょ」と答えてるようなもんだぞそれ
0434デフォルトの名無しさん
垢版 |
2018/03/25(日) 21:33:15.53ID:lfdSZ5QO
すまんすまんよく読んでなかった

どんな不備?
outputは4で良さそうに思えるが
0435デフォルトの名無しさん
垢版 |
2018/03/25(日) 21:55:06.19ID:Y0AA7BVa
>>428
・「ゐゑぁぃぅぇぉゃゅょゎー」を含む単語はない
>けんばんはーもにか
'ー'

'を' とか 'う゛'(Unicodeでは1文字) は含むんだろうか?
濁音・半濁音の扱いもローカルルールがあるようだけど?
0437デフォルトの名無しさん
垢版 |
2018/03/25(日) 22:56:05.59ID:r2Id4T4+
>>428

>>436のプログラムでこうなった。

入力
単語数: 6
けんばんはーもにか
かみのけ
もうないでしよ
あるよ
けっこんしよう
うん

出力
単語数: 4
けんばんはーもにか
かみのけ
けっこんしよう
うん
0442デフォルトの名無しさん
垢版 |
2018/03/26(月) 22:45:31.40ID:bouVP8Z1
そういえば、必ず”ん”で終わらなければならないっていう制約はないよね。
言葉が尽きても負けなんだし。
0443デフォルトの名無しさん
垢版 |
2018/03/27(火) 01:45:16.06ID:Kzq8gSOx
すげぇ
しりとりは普通に組むとオーダーが大きくなるからなぁ
お題の単語数10^5に対応するプログラム書ける気がしない
辺は少ないし、これ最大流で解けるんだっけ?
0444デフォルトの名無しさん
垢版 |
2018/03/27(火) 02:13:31.11ID:6oSpwfuc
あんまり、オーダー爆発起こすとちょっと大変だな。
次に続く単語数の数が多いほど爆発する。
最大N!だけど、そういうケースは少ないよ。
0445デフォルトの名無しさん
垢版 |
2018/03/27(火) 03:46:37.52ID:6oSpwfuc
最適化閃いたけど、無理筋やった。
3変数ごにょごにょするだけで枝切できるかと思ったんだけど。
0446デフォルトの名無しさん
垢版 |
2018/03/27(火) 05:36:02.02
再帰使わない解を見たいな
0450デフォルトの名無しさん
垢版 |
2018/03/27(火) 15:10:13.58ID:04A2frTi
>>444
>最大N!だけど、そういうケースは少ないよ。

可能な末尾の文字の種類をRとすると次の語を選ぶ選び方は(先頭は与えられているので)末尾違いの高々R
(中間が異なるものからはどれを選んでもいいので先頭のを選べばいい)

先頭の文字別にリストにでも格納しておけば N 単語での計算量は高々 O(N ^ R)
0451デフォルトの名無しさん
垢版 |
2018/03/30(金) 08:34:52.77ID:Vv6lbhFT
お題
桁の並びが大きい順になっている数をすべてもとめる
0453デフォルトの名無しさん
垢版 |
2018/03/30(金) 08:51:48.50ID:h7HIobcW
9876543210の各桁を表示する・しない、で2^10-1(=1023)通りってことかの?
0456デフォルトの名無しさん
垢版 |
2018/03/30(金) 09:39:19.40ID:TlFsJGTt
rubyがわからないのでわからん
どういうこと?
今スマホでアクセスしてるから試すのもできない
0458デフォルトの名無しさん
垢版 |
2018/03/30(金) 09:51:09.95ID:TlFsJGTt
>>457
おお。動いた。
あー。そういう意味か。
0459デフォルトの名無しさん
垢版 |
2018/03/30(金) 20:28:56.47ID:whZFBFFl
お題: n!の末尾の0の個数を数える
たとえば、n = 9のとき9! = 362880なので末尾の0の個数は1
n = 10 のとき 10! = 3628800なので末尾の0の個数は2
制限事項: gmpなどのライブラリは使用不可。以下の5問を合計1.8秒以内で。

n = 132 , # = ?
n = 743 , # = ?
n = 54321 , # = ?
n = 2147483647 , # = ?
n = 4294967296 , # = ?
0460デフォルトの名無しさん
垢版 |
2018/03/30(金) 20:39:11.33ID:HHYSbDrZ
>>459 Ruby 0.015秒くらい

[132, 743, 54321, 2147483647, 4294967296].each{|n| puts "n = %d => #%d" % [n, (1..log(n, 5)).map{|i| n / 5**i}.sum]}

# output
n = 132 => #32
n = 743 => #183
n = 54321 => #13576
n = 2147483647 => #536870902
n = 4294967296 => #1073741816
0462デフォルトの名無しさん
垢版 |
2018/03/30(金) 21:47:51.34ID:9xE1BuhJ
面白いね

何かお題が出て(>>451)それに対して意味不明の即答’>>452)、
まぁそれはそれでごもっともと思ったらrubyのコード(>>454)が出て、
その後はあーだこーだとレスが続いてく

前スレから見始めた初心者だけど、
未知の課題に対するコーディング能力ってやっぱり大事だ
0466デフォルトの名無しさん
垢版 |
2018/03/31(土) 05:44:58.45ID:1thwAW7O
ruby のを J に移植してみた

入力
(2,#d)$d,>(3 : '+/<.y%5^1+i.<.5^.y') each d=.132 743 54321 2147483647 4294967296

結果
+--+---+-----+---------+----------+
|32|183|13576|536870902|1073741816|
+--+---+-----+---------+----------+

5を数える他の有力なやり方ってどんなだろう
0467デフォルトの名無しさん
垢版 |
2018/03/31(土) 05:45:55.95ID:1thwAW7O
コピペミス
結果は
132 743 54321 2147483647 4294967296
32 183 13576 536870902 1073741816

が正しかった (どうでもいいか)
0469デフォルトの名無しさん
垢版 |
2018/03/31(土) 05:56:26.94ID:b7Xd3QxJ
int count(unsigned int n){
int sum=0;
while(n){
n/=5;
sum+=n;
}
return sum;
}

この関数を5個の整数値に対して実行するのに
1.8秒以上かかるのかよw
(アセンブラでやる限り)8bitマイコンでもそこまで
かからない希ガスw
0472デフォルトの名無しさん
垢版 |
2018/03/31(土) 18:37:28.47ID:qrmwmyS1
俺の頭ではいまだにやり方がわからない。
既に1.8日を超えたような気がする。
0473デフォルトの名無しさん
垢版 |
2018/03/31(土) 21:03:57.21ID:LOE3Ppmf
n!を素因数分解した時の5の指数が求める数だから
Σ{k∈N}[n/5^k] を計算すればいいだけ
0474デフォルトの名無しさん
垢版 |
2018/03/31(土) 23:35:26.94
>>473
意味分からん暗号書くなや
0475デフォルトの名無しさん
垢版 |
2018/04/01(日) 00:08:24.40ID:6pRv7XaO
Σ 総和
∈ 左は右の元である
N 自然数
[ ] 越えない最大の整数
/ 除算
^ べき乗
0478デフォルトの名無しさん
垢版 |
2018/04/01(日) 07:16:13.39ID:ZmqbD5eD
意味わからん暗号て。。。
論理と集合やらんかったのか?
まだ習ってない歳なの?
0481デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:35:03.69ID:zXSLQCZZ
>>477
文系だからではなく、元々バカなだけだろううな。
今時は普通なら、知らん事は自分で調べる。
0482デフォルトの名無しさん
垢版 |
2018/04/01(日) 09:49:03.09
そもそも「素因数分解した時の5の指数」が分からんし!
なんでそれが0の数と関係あるのかも分からんし!
文系を迫害すんなや
0483 ◆QZaw55cn4c
垢版 |
2018/04/01(日) 10:40:13.62ID:EVES2VPh
>>480
mediawiki を採用しているところですね
でも自分で mediawiki をビルドしようとすると、TeX 表記導入のところで嵌ります、うまくいかない
0484デフォルトの名無しさん
垢版 |
2018/04/01(日) 13:21:09.52ID:hPpSSUHU
これ分からなくなって八つ当たりしてんな、一旦ROMって落ち着けよ
10!=3628800=36288x10^2のように、後ろの0の数は10が何個掛けられているかで決まる
10=2x5だから2と5の掛けられている数のうち小さい方とも言えるな
で、一例として10!=1x2x3x4x5x6x7x8x9x10=2^8x3^4x5^2x7=2^6x3^4x7x(2^2x5^2)だから、0が2つ付くと言える
どう考えても2の素因数は5の素因数より多くなるので5の素因数の数だけ分かれば良い
この時、5の素因数の数はnが5の倍数になった時(n/5)+nが5^2の倍数になった時(n/(5^2))+…と計算すれば求まる 端数切り捨てな
0485デフォルトの名無しさん
垢版 |
2018/04/01(日) 14:01:25.37
>>484
> どう考えても2の素因数は5の素因数より多くなる

そうとは限らないじゃん
2の素因数の数も数えなきゃ不正確じゃん
0486KAC
垢版 |
2018/04/01(日) 14:29:21.34ID:R1ag/+cJ
>>485
それを主張するなら、2の方が多くなる事例をあげるか、証明するかしないと。
0488デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:21:10.32ID://EuH1G7
>>485
任意の2以上の整数nとする. n!に対して素数kの素因数の数が F(n, k) になる事は機知とする.
F(n, k) = [n/k] + [n/(k^2)] + ...
またガウス記号の定義([x] は x を超えない最大の整数)から任意の実数 x に対して,
x - 1 < [x] <= x  ……☆.
m_k を n/(k^m_k) >= 1 となる最大の整数とすると,
n/(k^m_k) >= 1 ⇔ n < k^m_k ⇔ log_k(n) >= m_k なので, m_k = [log_k(n)].
また m_k より大きな任意の整数 i に対して n/(k^i) < 1 なので, [n/(k^i)] = 0.
従って, F(n, k) = [n/k] + [n/(k^2)] + ... + [n/(k^m_k)].
さて, ☆より
F(n, 5) <= n/5 + n/(5^2) + ... + n/(5^m_5)
= n*(1/5)*(1 - 1/(5^m_5))/(1 - 1/5)
= n*(1 - 1/(5^m_5))/(5 - 1)
= n*(1 - 1/(5^[log_5(n)]))/(5 - 1)
<= n*(1 - 1/(5^log_5(n)))/(5 - 1)
= (n - 1)/4,
F(n, 2) > n/2 - 1 + n/(2^2) - 1 + ... + n/(2^m_2)
= n*(1/2)*(1 - 1/(2^m_2))/(1 - 1/2) + (-1)*m_2
= n*(1 - 1/(2^m_2)) - m_2
> n*(1 - 1/(2^(log_2(n) - 1))) - log_2(n)
= n - log_2(n) - 2.
依って2以上の任意の整数nに対して,
F(n, 5) <= (n - 1)/4 < n - log_2(n) - 2 < F(n, 2)
となり題意は示された.
((n - 1)/4 < n - log_2(n) - 2 は増減表を書くなりして確かめて)
0489デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:34:29.77ID:NSJxVWjO
a,bをとりあえず非負実数
[a]をaを超えない最大の整数として
a>=b→[a]>=[b]
[a+b]>=[a]+[b]
はすぐにわかる。
n!を割る2べき数の最大指数は1からnまでに偶数が[n/2]個
あることより[n/2]以上であることもすぐわかる

5^m<=n<5^(m+1)として
[n/5]+[n/5^2]+...+[n/5^m]
<=[n/5+n/5^2+...+n/5^m]
<=[n/5+n/5^2+...]=[n/4]<=[n/2]<=n!を割る2べき数の最大指数
0490 ◆QZaw55cn4c
垢版 |
2018/04/01(日) 15:46:35.74ID:EVES2VPh
>>486
「素因数 2 の数は 素因数 5 の数よりも多い」
を使うのなら証明は使う側がしないといけないだろう?一定の範囲では 2の倍数の方が 5 の倍数よりも多いとはわかるが、素因数の数について正確なことをいえるかな?
0491デフォルトの名無しさん
垢版 |
2018/04/01(日) 15:47:58.83ID:NSJxVWjO
[n/5]+2[n/5^2]+3[n/5^3]+...+m[n/5^m]
を評価しなければいけなかった(。。)

mを非負整数とするときm[a]<=[am]
だから
[n/5]+2[n/5^2]+3[n/5^3]+...+m[n/5^m]<=
[n/5]+[2n/5^2]+[3n/5^3]+...+[mn/5^m]<=
[n/5+2n/5^2+...+mn/5^m+...]<=
[n (1/5)(1+2(1/5)+3(1/5)^2+....)]
=[n(1/5)/(1-1/5)^2]
=[5n/16]<=[n/2]
あとは同じ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0492デフォルトの名無しさん
垢版 |
2018/04/01(日) 16:14:16.83
なんか長々と書かせちゃってごめん
正の整数の全範囲が対象じゃなくてあくまで「n!」だってこと忘れてたわ
0495デフォルトの名無しさん
垢版 |
2018/04/01(日) 22:04:20.90ID:niLyVdLs
>>462
>未知の課題に対するコーディング能力
とか言ってるが、高校数学ではよくある問題だぞ?

ttp://examist.jp/mathematics/integer/kaijyou-soinsu/
ttp://www.geocities.jp/math12345go/math-qa/kaijou.htm
ttps://www.school-turnup.com/p-12594/
ttps://www.shinko-keirin.co.jp/keirinkan/tea/kou/jissen/sugaku/201603/index.html

高卒なんて言い訳になんねーよ
0496デフォルトの名無しさん
垢版 |
2018/04/01(日) 22:25:21.45
>>495
数I・Aで100点だったが、数II・Bで0点取って、数III・Cは選択しなかった俺に謝れ
0498デフォルトの名無しさん
垢版 |
2018/04/02(月) 07:50:16.86ID:OKtU2ZmG
プログラミング的には、n!を割る最大の5のべき乗の指数が最大の2のべき乗の指数
を超えないということを使わずに(=知らずに)
それでも十分な速度(実質>>469程度の処理しかしない)なものが書けるかということが課題

高校レベルの課題に見えて実は決してそうじゃないな
0499KAC
垢版 |
2018/04/02(月) 08:54:14.80ID:rV3y1QX6
>>498
設計したこと無いの?
0500デフォルトの名無しさん
垢版 |
2018/04/02(月) 09:32:15.39ID:OKtU2ZmG
select max(m) from select m where 10^m|n!
と同レベルの可読性だが
やることは割り算しながら足し算となるコードなんて
そもそもあるのかよw
0501デフォルトの名無しさん
垢版 |
2018/04/02(月) 12:18:57.87ID:ZxHHSjBr
>>498
>知らずに十分な速度
その程度なら2の個数も数えるだけだから簡単だし高速だと思う
が、普通はちょっと考えて5だけで良いなと5だけ数えるコードを書くんじゃないかな
何も知らず何も考えず計算機任せの力技ってのだけがプログラミングじゃないでしょ。
0502デフォルトの名無しさん
垢版 |
2018/04/02(月) 12:28:13.55ID:IY8Jb2od
高校レベルの数学をすっかり忘れたおぢさんにやさしく教えておくれ。
0503デフォルトの名無しさん
垢版 |
2018/04/02(月) 12:41:49.07ID:3lJ3dDiL
素因数の数が
m := [log(n)/log(k)]として
 m
 Σ[n/k^i]
i=1
明らかにmも[]の中もkに対して(広義)単調減少なんだから
素数が大きくなるほどn!のその素因数の数が減ることも明確というお話
0504デフォルトの名無しさん
垢版 |
2018/04/03(火) 00:32:23.81
>>503
ご覧ください、これがアスペです
0506デフォルトの名無しさん
垢版 |
2018/04/03(火) 04:29:34.46ID:j/8PevsK
>>502
1〜132の整数の中に5の倍数は何個ある?
1〜132の整数の中に25の倍数は何個ある?
1〜132の整数の中に125の倍数は何個ある?
1〜132の整数の中に625の倍数は何個ある?
...

132の階乗を素数の積で表したとき
5は何回出てくるる?

132の階乗の右に並ぶ0の数は?
0508デフォルトの名無しさん
垢版 |
2018/04/03(火) 09:25:43.98ID:Lqpq4yV4
>>506
132という値を出した理由は?
5,25,125,625を出した理由は?
0509デフォルトの名無しさん
垢版 |
2018/04/03(火) 09:27:23.08ID:wT7rO+2N
こんだけ話題が伸びてる問題なのに出題後高々10分でほぼ理想的なコードが掛かれてるってのが面白いな
0511デフォルトの名無しさん
垢版 |
2018/04/03(火) 10:49:30.76ID:c+6kwVVv
>>508
> 132という値を出した理由は?
1問目の数値からから

> 5,25,125,625を出した理由は?
考えてみよう
0512デフォルトの名無しさん
垢版 |
2018/04/03(火) 13:37:36.52ID:dgEzwcuL
俺は理想的なコードは割って足すループの方だ
可読性だなんだの風潮はあるが、ああいう一工夫がこういうプログラミングの煌めき

と思う
0515デフォルトの名無しさん
垢版 |
2018/04/03(火) 22:46:02.45ID:dYq4OQgG
お題
与えられたデータを間引きして小さいな順に並べる
間引くデータの個数の最小値を求める
0517デフォルトの名無しさん
垢版 |
2018/04/03(火) 23:00:28.05ID:j/8PevsK
任意の有限長の実数列に対し
単調増加列の中で最大長となる部分列を求めよ

って感じ?
0519デフォルトの名無しさん
垢版 |
2018/04/03(火) 23:31:42.00ID:YxTEfpvL
>>509
すぐに「n!の末尾の0の個数」などをググって
WEBに書かれている方式をコーディングするか、
自分の頭で方式から考えはじめるかの違いだろうな
0522デフォルトの名無しさん
垢版 |
2018/04/04(水) 00:27:47.47ID:HZl+eAA0
>>515
1,1,1の場合、0個で良いのか?
0524デフォルトの名無しさん
垢版 |
2018/04/04(水) 00:46:27.40ID:3+w4vvmw
>>522
「小さいな順」ってどっちだろうね?
単調増加か単調非減少か
私は単調増加だと思ったから答えは2個
普通のソートだと単調非減少だから単調増加?

どっちにしろアルゴリズムは大して変わらん
0531デフォルトの名無しさん
垢版 |
2018/04/04(水) 00:59:08.89ID:KRNVtbK3
んで、お前はその簡単な問題を
何分で問題解決しコーディング完了して動作確認までいったのよ
0533デフォルトの名無しさん
垢版 |
2018/04/04(水) 01:02:49.08ID:KRNVtbK3
log使ってんじゃん

普通に義務教育を出てれば一瞬でわかると思って
お前はその簡単な問題を
何分で問題解決しコーディング完了して動作確認までいったのよ
上の方のレスでどれがお前の回答よ
0536デフォルトの名無しさん
垢版 |
2018/04/04(水) 01:07:37.29ID:KRNVtbK3
>>534
じゃあlogを使わない計算量の多い方法でもいいよ。

義務教育を出てれば一瞬でわかる問題を
お前が一から考えて自力で解いてコーディングして動作を確かめ
書き込んだレスは上の何番だよ
0537デフォルトの名無しさん
垢版 |
2018/04/04(水) 01:09:27.61ID:KRNVtbK3
人のレスをを見たら簡単だと印象を持ったんだろ
自力ですぐには解けなかったんだろ
0547デフォルトの名無しさん
垢版 |
2018/04/04(水) 03:27:44.46ID:OPiy2CfY
>>546
広義単調増加だよな?
そのプログラムだと
1, 3, 6, 8, 9, 10, 6, 5, 6, 7
が5で出力される(解は1,3,6,6,6,7より4)
0549デフォルトの名無しさん
垢版 |
2018/04/04(水) 07:58:24.29ID:C+gm7esp
ほらサンプル

元のデータ 1, 3, 6, 8, 9, 10, 6, 5, 6, 7
これの 1, 3, 6, (8, 9, 10,) 6, (5,) 6, 7
括弧内の4つを間引けば昇順1,3,6,6,6,7になる
最小の間引く個数は4
0553デフォルトの名無しさん
垢版 |
2018/04/04(水) 08:12:16.57ID:C+gm7esp
たまたまじゃなくてどちらでも同じだから良いって言ってるんだよ
最小の個数が算出されれば良いんだよ

>>542を例にして説明するとv1とv2の長さが等しいとき、
選び方によって間引方は変わるがどちらを選んでも
同じ答え(個数)になるからどちらでもいい
0560デフォルトの名無しさん
垢版 |
2018/04/04(水) 08:39:36.72ID:5k6f4LQE
これ、プログラムのお題じゃなくてイジワル問題ってやつだ。
一応間引くとは言ったけど、どのように間引きたいかは書いてない。
それを考えろっていうもんだいで、じょうけんとしては何もだされていない。
べつに大きくしてもよい。
が、大きくする必要性もないので、条件内でやる最善手がソートして昇順にするだけででも満たされうる。

以上。
0563デフォルトの名無しさん
垢版 |
2018/04/04(水) 10:01:46.30ID:OPiy2CfY
なんだその、「牛乳を1個買ってきて。卵があったら6個買ってきて」と言われて卵があったから牛乳を6個買ってくるような行動
リアルでこんな奴いるんだな……
間違ってるわけではないのが余計質悪い
0565デフォルトの名無しさん
垢版 |
2018/04/04(水) 10:10:25.80ID:5k6f4LQE
例えばね、例えば。
この数字が暗号で間引くと人が死ぬとかいうシチュエーションでそもそも間引く必要あるの?っていう趣旨返しなわけ。
0566デフォルトの名無しさん
垢版 |
2018/04/04(水) 10:25:05.16ID:rXkfBXRy
与えられたデータが数列とも限らないし勝手に解釈して好きなように作る以外にやりようがない問題
自由度が大きい問題はあらゆる答えが正解ともいえるから一つの正解にたどり着く過程を楽しむ数学好きとかには不評だろう
0567デフォルトの名無しさん
垢版 |
2018/04/04(水) 12:49:19.51ID:C+gm7esp
おいおいおいおい
勝手に解釈して好きなように作るしかない問題(←否定的な表現)だからあらゆる答えが正解だ、というの?

これは「どう解釈しても構わないから好きなように答えれば良い問題」っていうんだよ。

例えばソートのアルゴリズムだって別に数値かどうかなど決めずとも考察も品評もできる
「比較回数だけでいうならo(1)のバケツソートが最高。はい論破」とか言うのも自由
答えが一個ならただの問い、クイズだよ
0569デフォルトの名無しさん
垢版 |
2018/04/04(水) 16:49:39.45ID:uRR+3wvr
暗号か?
0571デフォルトの名無しさん
垢版 |
2018/04/04(水) 19:50:20.24ID:kMfCNnre
>>556
荒らしっていうかさ
その子はこのスレにながく張り付いてる
無職でかつガイジ
かわいそうな子だから放置しといてあげて
0572デフォルトの名無しさん
垢版 |
2018/04/05(木) 00:22:00.99ID:gfFWgbCr
A(間引く)の処理の後にB(小さい順に並べる)の処理をすると読んでしまったのは内緒
0573デフォルトの名無しさん
垢版 |
2018/04/05(木) 22:33:01.28ID:R1vPtX9i
お題
以下の配列pで与えられるツリー構造を図示せよ
・pの要素数はN
・p[i]はノードiの親ノードを表す
・p[i]=-1の場合、ノードiは根ノードである
・pに含まれる-1の数はちょうど1つ

[input]
1 2 -1 0 0 1 1 2

[outupt]
2
|-- 1
| |-- 0
| | |-- 3
| | `-- 4
| |-- 5
| `-- 6
`-- 7
0581デフォルトの名無しさん
垢版 |
2018/04/06(金) 13:39:17.95ID:VaxQogp+
条件には書いてない!(書いてある)
目か頭かどちらかあるいは両方おかしい。
頭の方ならこれからエクストリーム言い訳が来るだろうから楽しみにしてるw
0583デフォルトの名無しさん
垢版 |
2018/04/06(金) 16:12:43.87ID:/oIeslo0
>>577以外のやり方以外のやり方考えるの面倒だな。
てか、いきなり最適解が出てしまった感あるな。
他の言語に書き換えるのは簡単だが移植しただけになってなんとなく無意味。
0585デフォルトの名無しさん
垢版 |
2018/04/06(金) 17:09:52.76ID:FoSTO+1D
階層構造なのに再帰使わないのは辛いなあ。自分でデータを積む事になるだろうし。しかしそれぐらいしかないか?
0586デフォルトの名無しさん
垢版 |
2018/04/06(金) 17:12:50.15ID:Vf6CoCVF
そだね
なにかアクロバティックな解法でもあれば面白いんだけど凡才で思いつけん
0587デフォルトの名無しさん
垢版 |
2018/04/06(金) 18:06:53.73ID:mKIKE6t9
お題
5以上の素数が与えられたとき1番近い6の倍数を求める
0591デフォルトの名無しさん
垢版 |
2018/04/06(金) 18:18:14.39ID:yx3PdwAt
素数列挙がメンドだから日本語で。
素数を6で割って、ラウンドして1プラスして、6倍する。
であってる?
0593デフォルトの名無しさん
垢版 |
2018/04/06(金) 19:32:58.29ID:EFVHWowI
>>588
5以上の素数が与えられなかった場合の動作については何も書かれてないので
好きに仕様を決めれば良いんだよ
0594デフォルトの名無しさん
垢版 |
2018/04/06(金) 19:36:58.77ID:EFVHWowI
エラー表示
動作不定
与えられるまでまつ
など

>>589
仕事だとそういうところでもめたりするのだ
今回は仕事じゃないので好きに決めればいい
0595デフォルトの名無しさん
垢版 |
2018/04/06(金) 19:41:53.07ID:wUq7JaWt
それ言い出したら、言語によっては実数も文字列も行列も与えられるし、きりがないよ
0605デフォルトの名無しさん
垢版 |
2018/04/06(金) 22:19:03.40ID:Zyva5DHv
お題
整数n(0 <= n < 2^32)を英語で表記する
0 => zero
134 => one hundred thirty four
1000000 => one million
4294967295 => ???
0606デフォルトの名無しさん
垢版 |
2018/04/06(金) 23:06:37.46ID:st3Hb+gI
その???のところどんな形式でもいいの?
それともtwo to the power of thirty two subtracted by oneじゃないとダメ?
0611デフォルトの名無しさん
垢版 |
2018/04/07(土) 00:55:56.21ID:WL4rZ6s4
鈴木貫太郎
北海道大学 2種類の数字でできてるn桁の数字の個数
https://youtu.be/SHdUszy0qQs

2種類の数字だけでできている、4桁の数字は、いくつあるか?
答え、567

2種類の数字だけでできている、N桁の数字は、いくつあるか?
答え、81(2^(N-1) - 1)

N=5 の時も、求めて
0612デフォルトの名無しさん
垢版 |
2018/04/07(土) 01:12:51.88ID:cljYAf7A
>>611
普通に 81 * (2^(5 - 1) - 1) = 1215 なのに何を求めるの
10C2 * 5C2 - 9*5 + 10C2 * 10P2 - 9 * 10 = 1215 みたいに場合分けしてもう一度計算しろってことかね
0613デフォルトの名無しさん
垢版 |
2018/04/07(土) 01:38:08.29ID:bMqQKRLP
>>587
その問題って元の値が素数かどうかは関係ないのでは?
Perl だとnが正の整数なら int((n+3)/6)*6 の計算で出来てしまうと思うが。
/ の割り算が整数で出るような言語なら整数化も不要。(C言語で int n だった場合等)。
0614デフォルトの名無しさん
垢版 |
2018/04/07(土) 01:39:34.76ID:WL4rZ6s4
素数は奇数だから、6 で割った余りのうち、1, 5 のみが素数になり得る。
つまり、6N + 1, 6N + 5 (6N ± 1)だけ。
6N + 3 は、3 の倍数になるので、素数にならない

この動画を参照

鈴木貫太郎
整数、素数、京都大学入試問題 数学
https://youtu.be/PCX6sqN9FhA

p, q が共に素数のとき、
p^q + q^p が素数になる、p, q をすべて求めよ

ヒント、どちらか一方は必ず、2 となる。
答え、(2, 3), (3, 2)

ちなみに、答えが合っていても、0点です。
それ以外に解が存在しないという、証明に加点される
0615デフォルトの名無しさん
垢版 |
2018/04/07(土) 02:02:01.73ID:cljYAf7A
n = p^q + q^p, p <= q とすると
n >= 8 なのでnは奇素数
よって p = 2, q >= 3
q > 3 の時 n = 2^q + q^2 = 2 + 1 = 3 mod 6 で矛盾
q = 3 の時 n = 17 で必要条件を満たしている
よって (p, q) = (2, 3), (3, 2)

でこれをSATソルバーでも使って解けっていうのかね
0618577
垢版 |
2018/04/07(土) 23:23:36.77ID:ALsUA4nh
>>577
訂正
https://ideone.com/yYE1Jb

[-1, 0, 1, 2] の出力が
0
└─ 1
│ └─ 2
│ │ └─ 3
となって間違った枝が伸びてました。

文字列を積みながら再帰は気持ち悪いから
フラグのリストとかの方がいいかも。
0619611
垢版 |
2018/04/08(日) 12:22:11.48ID:1mmlbc0v
>>611
N桁(4, 5桁)の数字の場合、どうプログラミングする?
ややこしい

誰か、N桁で一般化して、Ruby で書いて
0621デフォルトの名無しさん
垢版 |
2018/04/08(日) 12:49:35.30ID:ZTQwWTkx
Xがi個YがN - i個あるときの考えらえれる数字の数は
(10_C_2 - 9) N_C_i
だから
((10_C_2 - 9)/2) Σ{i in 1..N - 2}N_C_i
=(81/2)*(2^N - 2)
=81*(2^(N - 1) - 1)

81*(2^(N - 1) - 1)を計算すればいいだけなんだから算数でしょ
0625611
垢版 |
2018/04/08(日) 14:23:00.89ID:1mmlbc0v
>>611
N桁(例えば4桁)で、aaaa 〜 bbbb までのすべての順列を作るのは、
どうプログラミングする?

4桁と限定せず、N桁で一般化して、誰かRuby で書いて

aaaa, aaab, aaba, aabb, abaa,
0628デフォルトの名無しさん
垢版 |
2018/04/08(日) 14:29:19.21ID:wX43tNlZ
>>625の態度が気に入らないので、日本語で書く。
桁数の文字をA分とB分をプッシュバックしてソートして順列回す。
文字が2種なのでオーダー爆発はあまり起きないと思う。
0629デフォルトの名無しさん
垢版 |
2018/04/08(日) 14:35:50.62ID:wX43tNlZ
というか、競プロこんな解き方してREDになっても全く意味がない。
最上級に上り詰めてかってに市ね。
0630デフォルトの名無しさん
垢版 |
2018/04/08(日) 14:39:16.28ID:xR9rWW4L
>>625 Ruby
[*0..9].combination(2).flat_map{|(a,b)|(1..n-1).map{|i|
([a]*i+[b]*(n-i)).permutation.uniq.reject{|e|e.first.zero?}.map{|e|e.join.to_i}}
}.flatten
0631デフォルトの名無しさん
垢版 |
2018/04/08(日) 14:45:24.65ID:wX43tNlZ
コンビネーションいいなー。頭悪いから実装できないし毎回実装したくない。
はぁ・・・。
0632611
垢版 |
2018/04/08(日) 15:15:37.38ID:1mmlbc0v
Ruby に、product という順列を作るメソッドがある

[1,2].product([3,4],[5,6])
# => [[1,3,5],[1,3,6],[1,4,5],[1,4,6],[2,3,5],[2,3,6],[2,4,5],[2,4,6]]

これで考えてみる
0633611
垢版 |
2018/04/08(日) 15:18:19.59ID:1mmlbc0v
可読性が低い、C++ を読んで解析するのが、面倒

スマソ
0634デフォルトの名無しさん
垢版 |
2018/04/08(日) 15:32:27.60ID:ZTQwWTkx
>>625 Ruby 2.5.0

def f(n)
return [] if n == 1
(1..9).flat_map{|i|
[10*i] + ([*1..9] - [i]).flat_map{|j| (10**n - 10)/9*i + j}
} + f(n - 1).flat_map{|e| e.digits.uniq.map{|i| 10*e + i}}
end
0635デフォルトの名無しさん
垢版 |
2018/04/08(日) 15:39:18.26ID:drN9+cfC
ruby限定で、
しかもアルゴリズムを競うわけでもない単なるコード例ならrubyスレでやってくれと強く感じる
0636デフォルトの名無しさん
垢版 |
2018/04/08(日) 15:48:31.89ID:ZTQwWTkx
訂正
def f(n)
return [] if n == 1
(1..9).flat_map{|i|
([*0..9] - [i]).flat_map{|j| (10**n - 10)/9*i + j}
} + f(n - 1).flat_map{|e| e.digits.uniq.map{|i| 10*e + i}}
end
0637611
垢版 |
2018/04/08(日) 15:54:06.97ID:1mmlbc0v
プログラミングは、このスレのためのものだから、
他の言語でも何でも、自由にプログラミングして下さい

言語にこだわらず、やって下さい。
その言語をやってる人が見るはず
0640611
垢版 |
2018/04/08(日) 16:17:49.11ID:1mmlbc0v
宿題じゃない。プログラミングのお題

他の言語でも何でも、自由にプログラミングして下さい
0642 ◆QZaw55cn4c
垢版 |
2018/04/08(日) 17:47:47.72ID:FgO8HAKn
>>641
その宿題とやらが問題として面白いものであれば、それならそれを解くことは個人的にはありうることでしょうね
0644デフォルトの名無しさん
垢版 |
2018/04/08(日) 18:54:09.19ID:wX43tNlZ
俺は書いたけど、無視されるわ、あげく必要ないっていわれましたからね。
70行も読めないなんてたかが知れてる。
0647デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:16:13.27ID:wX43tNlZ
>>645のことは考えてないですよ?611とやらに怒ってます。
やったこと無駄でした。ヒント与えなければよかった。
0650デフォルトの名無しさん
垢版 |
2018/04/08(日) 21:53:53.31ID:ZTQwWTkx
>>648 Ruby ただしπ/2回転させた解は省略
出力はi行目に穴の空いていないマスの列数(0〜4)を表示

[*1..4].combination(2).flat_map{|i,j|
[*1..4].combination(2).map{|k,l|
a = [4, 0, 1, 3, 2]
a[i], a[j] = a[j], a[i]
a[k], a[l] = a[l], a[k]
next if (1..4).any?{|i| a[i] == 4 - i} || a[2] + a[3] > 4 || a[1] + a[4] > 4
a
}
}.uniq.compact
#=> [[4, 0, 1, 3, 2], [4, 2, 0, 3, 1], [4, 1, 3, 0, 2], [4, 1, 0, 2, 3]]
0651デフォルトの名無しさん
垢版 |
2018/04/08(日) 22:15:08.50ID:TRlBW4xM
>>641
俺も>>642と同意見かな
出題者は勝手に出すだけ
回答者は勝手に回答するだけ
出題者の意図も回答者の意図もどっちも問わない

ただ、頼まれもしないのに延々糞コード書いて晒すやつは脳の障害とは思う
0652デフォルトの名無しさん
垢版 |
2018/04/08(日) 22:20:36.69ID:xR9rWW4L
回答者は回答するだけってのはまさにその通り
なんかc++の変なコードあげる人いるじゃん
変なコードは別に見ないからいいんだけど、その上 構ってちゃんなのがちょっとあれなのよね
0653デフォルトの名無しさん
垢版 |
2018/04/08(日) 22:22:09.19ID:TRlBW4xM
あ、おれが糞コードつってんのもそいつのことねw
といかこのスレで糞コードつったらそれしかないけど
まともにC++やってきた人間からしたら血圧上がるような糞コードなw
0654デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:18:12.27ID:drN9+cfC
c++ で書いてるヤツなんて俺以外いないよ…と思ったがNGID解除してみるといた

ruby のコードは読みやすいからruby使った回答は歓迎なんだけど、
回答もしたいからあんまり限定して欲しくはないな
(rubyで回答するほど好きではないから)
0655デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:31:45.71ID:FWiZcz2s
ダラダラ長ったらしく書かれたC++コードも、ぱっと見意味の掴みにくいワンライナーコードも、同じくらいクソだと思うんですが・・・
0656デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:38:49.63ID:drN9+cfC
J言語好きとして読みにくいからクソというのには党派的に反対する
読みにくさを愛でる人もいる

でもさっきはうっかりしていた
ruby 限定とか C++ 禁止とかあってもいいと思います
0658デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:58:04.55
ID:wX43tNlZ みたいなのをシャットアウトする目的なら限定してもいいだろう
0661デフォルトの名無しさん
垢版 |
2018/04/09(月) 00:37:01.24ID:/QZ8FXxd
最上位桁の数字は 1〜9 の9通り
最上位桁と異なる数字は 0〜9中で最上位桁以外 9通り
最上位桁以外の2種類の選び方は
N-1個それぞれが2個の数字から1個を選ぶ場合の数-全て最上位桁と同じになる場合の数 = 2^(N-1)-1

よって81*(2^(N-1)-1)通り
0662デフォルトの名無しさん
垢版 |
2018/04/09(月) 00:42:15.33ID:kgPSL5h+
>>648
C++で書いた。コードは不明。
8分くらいで解いた。あってるかは知らない。
Count:1
Score:9
11110
11110
11110
11110
00000
0664デフォルトの名無しさん
垢版 |
2018/04/09(月) 00:52:16.18ID:rENMvr1T
>>663
やることやってれば他は何してもいいという訳ではないのは、インターネットもリアルも同じ。
勉強できようが仕事ができようが、人から嫌われる言動をしてれば迷惑がられるのは当然。
まして、本人が得意気にできてると思ってるだけで実際は
大したことなければ尚更だろう。
0666デフォルトの名無しさん
垢版 |
2018/04/09(月) 00:56:15.06ID:kgPSL5h+
>>664
ほう。大したことないとおっしゃる?どの口で?
まぁいいけど。さすがにムカツクな。
俺意外に上げてる人間ってそんなに多くないぞ?
アンタはあげたことあるんだろうね。自治気取りだけど。

ふむそういうことなら。そのように対応する。
0668デフォルトの名無しさん
垢版 |
2018/04/09(月) 01:11:54.34ID:kgPSL5h+
なんか最近ビジネス色強いから裏で何やってるんだろうと思ってたけど。
くだらねーな。
0669デフォルトの名無しさん
垢版 |
2018/04/09(月) 01:24:20.55ID:kgPSL5h+
5CHで何言ってるか自覚ないみたいだな。
従順な奴隷でも探してろ。ばかやろー。
0672 ◆QZaw55cn4c
垢版 |
2018/04/09(月) 08:04:05.81ID:yXqzhiVB
>>670
そうそう
昔、一途に prolog で解きまくっている人がいて、すごくかっこいい、っておもっていました
0673デフォルトの名無しさん
垢版 |
2018/04/09(月) 12:31:23.52ID:M/BmQ9Z1
C++ は可読性が低くて、ビジネスロジックに無関係な、儀式部分が多いから、
読む方も、自分の時間を使うから、かなりの損。
書いている人は面白いのだろうけど

Ruby なら、ほぼビジネスロジックに集中できる。
だから多くのアルゴリズム・パズル本は、Rubyで書かれている

Rubyで書いてって頼まれても、言語指定を無視して書けばよいだけ。
他の言語で書いても、必ず見る人はいる
0674デフォルトの名無しさん
垢版 |
2018/04/09(月) 12:44:33.93ID:pBiH2JPL
ま、ここはデフォルトでは言語指定なしだから書きたい言語で書けば良い。
0676デフォルトの名無しさん
垢版 |
2018/04/09(月) 14:15:37.60ID:Ptdpw/63
2の倍数:下一桁が偶数
3の倍数:各桁の和が3の倍数
4の倍数:下二桁が4の倍数
5の倍数:下一桁が5の倍数
6の倍数:2の倍数かつ3の倍数

8の倍数:下三桁が8の倍数
9の倍数:各桁の和が9の倍数
10の倍数:下一桁が0
11の倍数:各桁を交互に足し引きした値が11の倍数
12の倍数:3の倍数かつ4の倍数
0677 ◆QZaw55cn4c
垢版 |
2018/04/09(月) 15:56:24.14ID:yXqzhiVB
>>676
7 の倍数、11 の倍数、13 の倍数は同一の事実にもとづいて判定できる
つまり 7 * 11 * 13 = 1001
0679デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:25:36.32ID:6uICJjyK
簡単なお題
>>605の漢数字版。
上限は2^32でなくても良い。しかし最低でも億の位までは欲しいところだな。
0683デフォルトの名無しさん
垢版 |
2018/04/10(火) 00:10:16.46ID:mR/iFs0H
>>682
それも良いねえ。フランス語は知らんのだが、ちょっと調べたら嘘のようにややこしいな。フランス人はこんなのでよく大丈夫だな。
0687679
垢版 |
2018/04/10(火) 02:22:57.60ID:mR/iFs0H
>>685
おお。いいね。
俺も気が向いたら作ってみよう。
0688デフォルトの名無しさん
垢版 |
2018/04/10(火) 21:13:27.90ID:TIeJSw3E
>>673
C++のようなシステム用言語をビジネスアプリに使うのがそもそもの間違い。
作者のビャーネ・ストロヴストルップが意図した使い方じゃないしね。
0689デフォルトの名無しさん
垢版 |
2018/04/11(水) 01:55:25.98ID:rGUvV2b9
気軽に「こんなソフトありませんか?」Part.175 [無断転載禁止]©2ch.net
https://egg.5ch.net/test/read.cgi/software/1469784906/15

15 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/08/02(火) 11:00:10.21 ID:2cA8AwqS0
200個ほどある文書の1行目だけ、一括でアルファベットを小文字に出来るソフトありませんか?
当方スルースキルあるんで、このレスに気づいた方、気長にレス待ってます
0691デフォルトの名無しさん
垢版 |
2018/04/11(水) 07:59:50.61ID:nTOtPPqx
お題
立方体の2色の塗り分けの全種類を展開図で示せ
0693デフォルトの名無しさん
垢版 |
2018/04/11(水) 14:46:07.95ID:nGNQyhwo
お題に合同条件くらい書かないとどの面も区別するつまんない回答が出て来るぞ
0696デフォルトの名無しさん
垢版 |
2018/04/11(水) 15:07:26.30ID:TZfcO+VR
数学の時間いつもケチつけてたのかな?
「互いに素」「同様に確からしい」etc…

「日本語としておかしい!」「俺が数学できないのはそのせい!」
0697デフォルトの名無しさん
垢版 |
2018/04/11(水) 15:20:54.42ID:TvIzhvdC
>>691の問題は俺の解釈では物凄く簡単なのだが、こういうことなのか?

立方体ということは展開すると例えばこうなるよな。


□□□□


で、これに二種類色付けして、例えば


□□□□


とか


■□□□


とかになる。これの全パターンを出すって問題でいいの?

そうすると6面なので6bitを1bitづつ各面に割り当てて出すだけの誰にでもできそうな簡単なお仕事になると思うんだが、そういう問題?
0698デフォルトの名無しさん
垢版 |
2018/04/11(水) 15:25:13.66ID:TvIzhvdC
あ、もしや組み立ててひっくり返したりしたら同じになるパターンは省くのか?
0699デフォルトの名無しさん
垢版 |
2018/04/11(水) 16:03:19.27ID:QsDOKQlt
このスレは質問スレじゃないので出題者の意図は気にせず好きな解釈で回答すればよい
0708デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:08:58.17ID:0UD5Vzkt
コンピューターじゃないと出来ない課題の方が良いと思うんだ
特に数学っぽいのは
0709デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:12:18.35ID:0UD5Vzkt
数学的知識をどこまで使って良いか迷うし
ガシガシに最適化をしたら結果をテーブルで持つ
みたいになったらつまらんし
0710デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:45:46.47ID:oecHnyiq
>>708
こんなんとか?

プログラミングのお題スレ Part7
https://peace.5ch.net/test/read.cgi/tech/1429195275/41
> 41 :デフォルトの名無しさん:2015/05/01(金) 14:31:24.98 ID:9G1+bMO9
> お題:ちょうどn個(1 < n)の格子点(x座標もy座標も整数の点)を通る円の半径の
> 最小値を求める。円の中心点は格子点でなくてよい。
> 例
> n=2 -> 0.5
> n=5 -> 16.170331
> n=6 -> 2.5
※ n=5 は 5.89256 が正しい


サンプルデータ(最小ではない可能性あり)
https://ideone.com/wVBe61
0711デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:52:59.57ID:5X4H9iqq
>>710
考えてみる

最小ではない可能性ありが貼られてるってことは
まだ出来た人がいないってことかな?
0712デフォルトの名無しさん
垢版 |
2018/04/11(水) 22:14:47.69ID:hSvs5cp7
まずnの値によっては最小値が存在しないから問題が破綻してる
結局数値計算するだけの問題だし
0715デフォルトの名無しさん
垢版 |
2018/04/11(水) 22:27:48.82ID:5X4H9iqq
n=1の時に最小値が存在しないことはすぐわかるが
1<nだから関係ない

n=2の時は簡単にわかる

特定の3個以上の格子点を通る円は高々1個しか存在せず
また、ある点から特定の距離以内の格子点の数は有限なので
存在するなら最小値は存在しそう
0721デフォルトの名無しさん
垢版 |
2018/04/12(木) 03:43:27.29ID:T93bDVFD
>>691-695
立方体の展開図は、384 通り。
同型のものを1つとして数えると、11 通りになる

この本に書いてある

超高速グラフ列挙アルゴリズム−〈フカシギの数え方〉が拓く,
組合せ問題への新アプローチ
ERATO 湊離散構造処理系プロジェクト・湊真一、2015

計算時間が何百億年も掛かるのが、数秒で解けた
「おねえさんの問題」で有名な、
湊真一の超高速グラフ列挙アルゴリズム ZDD
0725611
垢版 |
2018/04/12(木) 08:56:31.07ID:T93bDVFD
>>611
>2種類の数字だけでできている、N桁の数字は、いくつあるか?

これを馬鹿正直にnested loop すると、N=4, 5 では、4・5階層と、
Nの数によって、階層が異なってくるから難しい

Nが幾つでも、ループの階層が同じになるように、作らなければならない
0726611
垢版 |
2018/04/12(木) 10:59:42.57ID:T93bDVFD
>>611
Ruby で作った

DIGITS = [4, 5] # number of digits 桁数
# 答え、567, 1,215

DIGITS.each do |digit|
count = 0
wrapper = Array.new digit - 1
# [*0..9] で、配列にする
[*0..9].combination(2) do |ary|
(digit - 1).times { |i| wrapper[i] = ary }

# 先頭が0 のものと、1つの数字だけを使ったものを排除する
# *wrapper で、外側の[ ] をはずす
count += ary.product(*wrapper)
.reject { |item| item[0] == 0 }
.reject { |item| item.uniq.length == 1 }.length
end
puts count
end
0728デフォルトの名無しさん
垢版 |
2018/04/12(木) 13:52:20.61ID:T93bDVFD
数学で解くのと、プログラミングで解くのは、異なる。
理論と実践。机上と現実

両方で解いて、確かめたものだけが、現実でも正しい
0729デフォルトの名無しさん
垢版 |
2018/04/12(木) 14:01:35.93ID:1gf/4w6V
うん?つまりコンピュータが存在しない時代の数学者はすべて間違えていると?
0731デフォルトの名無しさん
垢版 |
2018/04/12(木) 21:33:52.89ID:mVSzUkBa
>>710は要するにN=197が無い
ttps://ideone.com/wVBe61
このリストで初めての欠品がN=197だ

N=197は計算しきれないような余りにもバカでかい円になるのか、そもそも数学的に存在しないのか、円が存在できないのか、分からない
N=197の円が存在できないとすれば、無いものを延々と探し続けることになる

ついでに、例えばN=320ともなると、この円が数学的に本当に存在してるのか、
それとも計算の誤差でOKが出てるのか、分からない
0735デフォルトの名無しさん
垢版 |
2018/04/12(木) 22:04:42.99ID:vJMR7aa5
円が存在することと最小値が存在することは全く別だがな
十分に大きいnに対してはその辺微妙だと思うんだけどどう?
0736デフォルトの名無しさん
垢版 |
2018/04/12(木) 22:10:25.49ID:1gf/4w6V
最小は存在はするだろ。
計算や探索で出た数値が本当に最小かどうかは(俺には)わからんが。
0738デフォルトの名無しさん
垢版 |
2018/04/12(木) 22:35:20.29ID:iYyApZ27
N個の格子点を通る円は、
x, y方向に1移動してもN個の格子点を通る為
原点を通る円に限定しても一般性を失わない

N≧3とする
原点を通りちょうどN個の格子点を通る半径r未満の円は、原点からr未満の距離にある格子点しか通らない
原点からr未満の距離にある格子点は有限個であり、この中からN個の格子点を選ぶ選び方も当然有限個
特定のN個の格子点を通る円は1個しか存在しない為、原点を通りちょうどN個の格子点を通る半径r未満の円も有限個である

よって、ちょうどN個の格子点を通る(半径rの)円が存在すれば、最小値は存在する
0740デフォルトの名無しさん
垢版 |
2018/04/12(木) 22:55:32.88ID:7+VvzBGk
この円の問題は何度も取り上げられるが
毎回うだうだと話が続くだけで何の進展もないみ
アプローチを変えてNを限定するとか
半径を整数にするとかしてみたら
0741デフォルトの名無しさん
垢版 |
2018/04/12(木) 23:53:08.79ID:1gf/4w6V
円問題、昔書いたコード探してみたがよくわからないことやってるから困る…
0742デフォルトの名無しさん
垢版 |
2018/04/13(金) 00:58:19.54ID:17c0MCsX
>>738
なにをグダグタ説明してるんだ?

> よって、ちょうどN個の格子点を通る(半径rの)円が存在すれば、最小値は存在する
なんてどうみても自明だろ
0743デフォルトの名無しさん
垢版 |
2018/04/13(金) 01:06:37.13ID:nIDp//XA
>>742
君はこの問題の格子点が「xもyも有理数の点」に問題が変わったとしても
「最小値が存在するのは自明」とか言っちゃう白痴君かな?
0744デフォルトの名無しさん
垢版 |
2018/04/13(金) 01:34:00.60ID:17c0MCsX
>>743
バカなの?
> よって、ちょうどN個の格子点を通る(半径rの)円が存在すれば
(ちょうどN個の格子点を通る)より小さな円がなければ半径rの円が最小
より小さな円が存在するなら同様に更に小さな円が存在するかを調べればいいだけ
有理数とか関係ないだろ w
0746デフォルトの名無しさん
垢版 |
2018/04/13(金) 01:38:36.55ID:nIDp//XA
ああ、本当に頭が悪いんだな
今からでも遅くないから解析学の教本くらい読んでおけ
0749デフォルトの名無しさん
垢版 |
2018/04/13(金) 06:14:56.89ID:aQMXC5LV
【問】ある数字 n までの数列ローマ数字(I、II、III、…)にしたとき、
   最大の長さを持つ文字列を探す関数を書け。

例:
n = 5 のとき、{I、II、III、IV、V}、したがって最大は3。
f(5) = 3
0751デフォルトの名無しさん
垢版 |
2018/04/13(金) 06:34:53.76ID:EOEX1zZI
「最小値が存在するかわからん」
て言ってるやつへの説明として
「自明である」

馬鹿ですね
0754デフォルトの名無しさん
垢版 |
2018/04/13(金) 07:46:29.65ID:EOEX1zZI
コミュ障ですか?
十分かどうかなんて説明する相手次第なんだよ
ポイントの>>715だけでわからないんだから詳細の>>738が必要だろう

>>744
証明の方針として全くセンスを感じません
回答としては0点ですね
まあじゃあ試しにその方針で証明してみてください
0755デフォルトの名無しさん
垢版 |
2018/04/13(金) 07:51:07.00ID:EOEX1zZI
類似問題としては
円を楕円、五角形などに変える例なんかが考えられますね

数学的センスがない>>744にわかるかな?
0756デフォルトの名無しさん
垢版 |
2018/04/13(金) 08:03:23.71ID:UkpF6ptq
センスとか言い出しちゃったよ w
まあ数学的な反論ができないことはわかった
0761デフォルトの名無しさん
垢版 |
2018/04/13(金) 09:03:55.52ID:NllHkTks
ポイントがわからない ===> 数学的知識の欠如
方針がトンチンカン ===> 数学的センスの欠如
わからない人に「自明」 ===> コミュ障

三重苦

数学的反論の対象が無いものを数学的に反論するのは無理ゲー
0765デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:28:44.65ID:jVGeL/Sn
数学によるマウンティングをするスレができたと聞いて高みの見物に来ました
0766デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:33:48.19ID:UkpF6ptq
>>763
なんで絞る必要があるんだ?
円が無限にあったとしても半径の最小値が存在するかどうかとは関係ない
0767デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:37:25.51ID:prF5m/sZ
Nが2以上で半径の最小値が存在しない状態ってのがまずわからん。
N=0や1の場合で半径0を円として認めない場合、最小値が存在しないってのはわかるけど。
0768デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:53:47.67ID:aZorcSvM
最小値が存在しないなんて主張をしてるのは>>712だけ
最小値が存在するという主張の根拠を聞かれてるのだから、素直に存在する証明をすれば良い

>>744は何の証明にも説明にもなってない
「他に小さいのがなければそれが最小値、小さいのが存在するならさらに小さいのを探す」
こんなものは今回の命題とは関係なく、全順序であれば最小値が存在しようがしまいが言えること
0769デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:55:03.04ID:aZorcSvM
最小値が存在するというポイントを1個も押さえていないので
「ああ、数学が出来ない人だ」という感想が出るだけ
0771デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:58:12.86ID:UkpF6ptq
>>769
> 最小値が存在するというポイントを1個も押さえていないので
どこからそんな頓珍漢なことを思い付いたんだ? w
0772デフォルトの名無しさん
垢版 |
2018/04/13(金) 12:59:15.87ID:aZorcSvM
>>770
正の実数に最小値が存在する証明
「他に小さいのがなければそれが最小値、小さいのが存在するならさらに小さいのを探す」

結果に関わらず何にでも言えますねえ
0774デフォルトの名無しさん
垢版 |
2018/04/13(金) 13:14:40.36ID:/r/W22v1
>>766
それもそうだね、悪かった

ところで>>744のアルゴリズムが有限回で停止することは保証されてるのかな
あ、あくまで保証されてるかどうか知りたいだけなんでね
0781デフォルトの名無しさん
垢版 |
2018/04/13(金) 19:37:34.13ID:UkpF6ptq
>>774
無限に繰り返せるとしたら極限値は0になる
(単調減少だから)
しかし 1 < n で半径0はあり得ない
なので必ず有限回で停止する
0786デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:09:21.72ID:VaA+ol0W
おそらく最小値は存在するんだろうけど
「1/2 + 1/3 + 1/4 + …」が収束すると思ってるようなレベルのアホがそれを主張することによって
最低限の数学的素養のあるやつらから総ツッコミされてるかんじだな
0788デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:15:38.41ID:+tvQkfv8
数学で論争になるって珍しくないか?
数学って証明されたらそこで議論の余地がなくなるよな。
0789デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:24:20.06ID:17c0MCsX
>>788
すでに証明されてるのに有理数ガーとか無限の円とか必死になってる奴がいるだけ
議論じゃなくマウントとりたいだけなんだろうな
0790デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:28:26.35ID:RiDqcW69
>>749 Squeak Smalltalk で複数ある場合ぜんぶ返す版

| f |
f := [:n |
| max ans |
max := 0.
ans :=#().
(1 to: n) do: [:m |
| roman |
roman := m printStringRoman.
roman size = max ifTrue: [ans := ans, {m}].
roman size > max ifTrue: [max := roman size. ans := {m}].
].
ans size = 1 ifTrue: [ans first] ifFalse: [ans asArray]
].
f value: 5. "=> 3 "
f value: 1887. "=> #(888 1388 1788 1838 1878 1883 1887) "
0791デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:42:23.87ID:EOEX1zZI
>>789
>>744が証明になってない
っていう話だぞ

存在する証明は>>738参照
これが証明

>>781
単調減少の実数列の極限が1になることも100になることもあるわけだが
当然有限回で終わらないこともある
例えばN=2の時は無限回続くことがある
N≧3の場合は>>738により有限回であることがわかるというだけ

数学の基礎がわからない人が数学の専門家に数学に関する意見を言うとはなかなか
0792デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:45:58.60ID:17c0MCsX
>>791
> 単調減少の実数列の極限が1になることも100になることもあるわけだが
で、それが最小値がないこととなんの関係があるんだ?
0793デフォルトの名無しさん
垢版 |
2018/04/13(金) 21:48:26.76ID:nIDp//XA
マジで阿呆だな
下に有界かつ協議単調減少だからと言って最小値が存在するとは限らないのだよおバカさん
0802デフォルトの名無しさん
垢版 |
2018/04/13(金) 22:01:36.65ID:nIDp//XA
>>800
族集合の濃度が高々?な集合に関して証明すれば十分なんだから実数関数について言及したところで何も問題ないよね?
むしろ十分正の説明としては申し分ないと思うのだが
0804デフォルトの名無しさん
垢版 |
2018/04/13(金) 22:07:41.91ID:EOEX1zZI
十分正

族集合とか濃度とかどうでもいい
列の話をしてるんだから素直に列の例を出せばいい
一般化する必要もない
アホに対して一般化しても無意味
0805デフォルトの名無しさん
垢版 |
2018/04/13(金) 22:09:53.15ID:nIDp//XA
ごめんね、十分性ね
「アホに対して一般化しても無意味」ってのは同意だからこちらがスノビズムな嫌いがあったなら謝るよ
0807デフォルトの名無しさん
垢版 |
2018/04/13(金) 22:34:53.35ID:gix7qj2o
可算集合と非可算集合では濃度が違うから証明にならないという主張かも知れん
というかここ数学スレだっけ?
0808 ◆QZaw55cn4c
垢版 |
2018/04/13(金) 22:57:38.87ID:fORiWt/O
みな数学好きなんですね、うらやましい…
0811デフォルトの名無しさん
垢版 |
2018/04/14(土) 21:11:32.49ID:mas7mILb
>>451 J
(#:i.2^10)#"1'9876543210'
0814デフォルトの名無しさん
垢版 |
2018/04/15(日) 16:50:03.82ID:xmTgJNlw
長方形を田の字型に4つの長方形に分割したら
左上の面積が253
左下の面積が115
右下の面積が155になった
右上の面積はいくつか?
0815デフォルトの名無しさん
垢版 |
2018/04/15(日) 16:58:12.07ID:NqrSXbP9
253=23*11
115=23*5
155=31*5
0824デフォルトの名無しさん
垢版 |
2018/04/15(日) 20:16:25.14
算数板でやれ
0827デフォルトの名無しさん
垢版 |
2018/04/15(日) 20:35:30.23ID:uWituoMu
>>825
だから答えが一意に決まるんだから素因数分解して自明な解を提示したレスに難癖付けるのはバカだっつってんの
0828デフォルトの名無しさん
垢版 |
2018/04/15(日) 20:40:17.66ID:CIuag2/D
>>827
たまたま素因数分解できるからいいだけで常に使えるわけじゃない解法示す奴は頭悪いと思われてもしょうがない
しかも単なる算数レベルの問題だしな w
0830デフォルトの名無しさん
垢版 |
2018/04/15(日) 20:45:57.62ID:uWituoMu
>>828
日本語読める?
「解法を示す」じゃなくて「解を提示した」っつってんだけど
解の一意性は明確なんだから簡単に解を提示すれば
それで十分性を満たしていると同時に必要性も満たしてるんだけど
重箱の隅にもならないクソみたいな指摘してんだから突っ込まれて当然でしょ
0833デフォルトの名無しさん
垢版 |
2018/04/15(日) 21:10:51.18ID:uWituoMu
>>832
初めは「なんで整数限定なんだ?」というアホな主張しておいて論点すり替えないでくれよ
剰えこっちは>>822で答え書いてるんだけど文字読めないの?なんなのこいつ
0836デフォルトの名無しさん
垢版 |
2018/04/15(日) 23:35:46.74ID:sXJBpbWg
>>818
そりゃできるだろうねえ
だから何?

先に素数を求めた方が処理が速そうだと思ったわけだが
求めないで求めめ欲しければ>>816に書きなさい
0838デフォルトの名無しさん
垢版 |
2018/04/16(月) 07:54:19.83ID:sVtsCMAa
>>837
プログラミングらしいお題なら、すでに>>779にあるよ
回答はRuby(>>809)とSmalltalk(>>831)しかないけどね

組織の中で働き者は全体の1割しかいないと言われているけど、
このスレでも見事に再現されていてワロタ
0841デフォルトの名無しさん
垢版 |
2018/04/16(月) 09:21:55.35ID:F4Ovhl4T
気分転換にどうぞ

お題:与えられた迷路図の通路幅を2倍にした迷路図を作成する

入力例
#.#..
.#..#
.#...
..##.
###..

出力例
##..##....
##..##....
..##....##
..##....##
..##......
..##......
....####..
....####..
######....
######....
0844デフォルトの名無しさん
垢版 |
2018/04/16(月) 11:16:53.07ID:1KO8LMUv
お題: あみだくじが与えられる
あみだくじは'|','-',' 'の3つで構成されている
スタート地点が左からn番目、ゴール地点が左からm番目と与えられた時、横棒を追加することでゴールに向かう為の最小の本数を答えよ
なお解が存在しなければ-1と答えよ
横棒の高さを半分ずらして設置や長さ2以上の横棒などは禁止とする

入力例
1 4
| | |-| |
|-| | |-|
| | | | |
|-| |-| |
出力例
1
0846デフォルトの名無しさん
垢版 |
2018/04/16(月) 12:23:47.11ID:ZFIHRn8x
最小の、とか書くから数学のマウント合戦になるのでは?アミダくじを解け、でいいじゃん。出た解答の中で最小で出してるのがあったらその時点でスゴイスゴイ
0848デフォルトの名無しさん
垢版 |
2018/04/16(月) 12:58:29.77ID:qlfABgAK
ニコリのナンバーリンク、スリザーリンクとか、
あみだくじ・電力網・鉄道経路・選挙区割り・正多面体の展開図とか、この本に載ってる

北大の湊真一の、ZDD。
Python, Ruby でも使える

超高速グラフ列挙アルゴリズム−〈フカシギの数え方〉が拓く,
組合せ問題への新アプローチ
ERATO 湊離散構造処理系プロジェクト・湊真一、2015

計算時間が何百億年も掛かるのが、数秒で解けた
「おねえさんの問題」で有名な、
湊真一の超高速グラフ列挙アルゴリズム ZDD
0851デフォルトの名無しさん
垢版 |
2018/04/16(月) 15:43:24.03ID:4eWg6WR3
なるほど、最小って条件は止めるか
条件を変えるわ
解がN通りある時、それぞれの解の本数をa_i(1≦i≦N)とする
この時、任意のi,j(1≦i,j≦N)に対しa_j-a_i≧0を満たすa_iを出力してくれれば良いよ
>>845 隣接しない
隣接したらあみだくじとして成立しないしね
0852デフォルトの名無しさん
垢版 |
2018/04/16(月) 19:17:35.12ID:CKG1x9VY
>>841 J
2 echo 2&#;._2 stdin''
0854デフォルトの名無しさん
垢版 |
2018/04/16(月) 19:23:45.57ID:T6RcU2kF
多分最小を別の表現にしたつもりなんだろうけど
日本語がめちゃくちゃ
無理しなくて良いよ
0857デフォルトの名無しさん
垢版 |
2018/04/16(月) 20:06:21.68ID:w6kJX9+o
「任意のi,j(1≦i,j≦N)に対しa_j-a_i≧0を満たすa_iを出力」

意味がわかりません
0858 ◆QZaw55cn4c
垢版 |
2018/04/16(月) 20:08:00.59ID:yQIjKmTg
>>856
「任意の i, j」というのがおかしい、i を先に決定した上での「任意の j 」でいい
0866 ◆QZaw55cn4c
垢版 |
2018/04/16(月) 20:37:10.86ID:yQIjKmTg
>>859 >>861
一般ピープルが習得するとよい(大げさにいえば世界観が変わるような)数学の分野を教えていただければ嬉しいです
0869デフォルトの名無しさん
垢版 |
2018/04/16(月) 21:07:23.11ID:8eszbiHC
お題
マイナンバーが一部欠けてしまった
?部分を補完して可能性のあるマイナンバーをすべて列挙せよ

[example 1]
99999999999?
=>
999999999996

[example 2]
??9999999999
=>
069999999999
179999999999
289999999999
399999999999
509999999999
619999999999
729999999999
839999999999
949999999999
0871デフォルトの名無しさん
垢版 |
2018/04/16(月) 22:21:24.15ID:p2Ysyc3s
>>869 Ruby 全探索

A = (1..11).map{|i| i + 1 - i / 7 * 6}
%w[
99999999999? ??9999999999
].each{|s|
puts '', s, '=>'
10.**(s.count(??)).times{|i|
d = "%012d".%(i).chars
m = s.gsub(??){d.pop}.reverse.chars.map(&:to_i)
x = A.zip(m[1, 11]).map{|a, b| a * b}.sum % 11
puts m.reverse.join if (x == 1 ? 0 : -x % 11) == m[0]
}
}
#=>
99999999999?
=>
999999999996

??9999999999
=>
509999999999
619999999999
729999999999
839999999999
949999999999
069999999999
179999999999
289999999999
399999999999
0873デフォルトの名無しさん
垢版 |
2018/04/17(火) 10:02:17.20ID:XkVoPtoV
>>858 マジだわ、算数できない奴に噛み付いて自分がダメージ受けた
やはり数学で無理に語るべきではないな、専攻の情報の範囲だけにしとこ……
0874デフォルトの名無しさん
垢版 |
2018/04/17(火) 10:33:51.01ID:ePc5Lh3L
>>869 Squeak/Pharo Smalltalk

| check |

check := [:digitsStr |
 | digits checkDigit calcDigit |
 digits := digitsStr asArray collect: #digitValue.
 checkDigit := digits last.
 calcDigit := ((digits * #(6 5 4 3 2 7 6 5 4 3 2 0)) sum \\ 11
  in: [:x | x < 2 ifTrue: [0] ifFalse: [11 - x]]).
 checkDigit = calcDigit
].

#('99999999999?' '??9999999999') collect: [:incmpNum |
 | indices candNums |
 indices := incmpNum asArray collectWithIndex: [:chr :idx | chr == $? ifTrue: [idx] ifFalse: [0]].
 indices := indices reject: #isZero.
 candNums := OrderedCollection new.
 ($0 to: $9) asDigitsToPower: indices size do: [:digs |
  | candNum |
  candNum := incmpNum copy.
  indices with: digs do: [:idx :dig | candNum at: idx put: dig].
  (check value: candNum) ifTrue: [candNums add: candNum]
 ].
 incmpNum -> candNums asStringWithCr
]
0877デフォルトの名無しさん
垢版 |
2018/04/17(火) 16:49:46.20ID:KTfx2aCu
>>875

0296 デフォルトの名無しさん 2017/06/26 21:09:32

前にあったやつ。??

回転寿司にやってきた私は、コンベア上の寿司をすべて食べて帰ることにしている。??
コンベアは毎秒1皿分の速度で流れ、目の前の皿を取るか取らないかを選ぶことができる。??
皿取ると同時に食べ始め、食べている間は次の皿を取ることができない。??
私が取る以外、皿は追加されたり無くなったりしない。??
コンベアの状態が次のような文字列で与えられる。 ??
"31_2"??
数字はその皿を食べ終えるのにかかる秒数を表し、_は皿がないことを表す。1文字目が目の前にあり毎秒、左へ回転する。??
例えば、"31_2"で最初の皿を食べたとき食べ終わった時の状態は、"2_1_"となる。??

すべての寿司を食べ終えるまで最短何秒かかるか求めよ。??
"12_3" > 6秒??
"313__" > 8秒??
"4_35_1264_23_434" > 60秒??
"123456789123456789" > 98秒??
"88967472612377988186" > 149秒??
"19898693316679441672" > 170秒??
"93769682716711132249893" > ?
0879デフォルトの名無しさん
垢版 |
2018/04/17(火) 19:05:05.39ID:S4fl8nYd
>>322 J
echo !23x
0881デフォルトの名無しさん
垢版 |
2018/04/18(水) 00:46:46.99ID:fMrElfkf
お題
0〜N-1の数字を1つずつ使ったN進数表記でN桁の数のうち、最も多くの素因数を持つ数を求めよ

N=2
→10

N=5
→34210 (10進数で2430=2*3^5*5, 素因数は7個)

N=10
→???
0883デフォルトの名無しさん
垢版 |
2018/04/18(水) 01:23:42.06ID:UfQjex1N
まーた数学の問題か。
まーたマウント取りたいセンセの荒らしか。
うんざり
0884デフォルトの名無しさん
垢版 |
2018/04/18(水) 03:59:26.48ID:Acg84ZKa
アルゴリズムと数学は切り離せないものだし数学が役立つ場面はもちろん多いんだけど、数学だけで完結しちゃう問題では、プログラミングのお題としては面白味がないよね。
むしろこのスレに的には悪問と言ってもよいと個人的には思う。

素直なプログラミングでは複雑になってしまうところを数学を使うことでスマートに解けるとか、逆に数学を使うことで全く別のアプローチの解法があるとかだと、面白いと思う。
必ずしも速い、安い、上手いが正義じゃなくて、そんな解き方もあるのねとか、それどうなってんの?と不思議に思えるような解法とかも見てみたいし、そんな解法が見られるお題が面白いと思う。
0885デフォルトの名無しさん
垢版 |
2018/04/18(水) 04:07:00.58ID:Acg84ZKa
追加すると、言語によって異なる記述能力や得手不得手を活かして上手く解いたとか簡潔に書けたとか、逆にわざわざそんな敢えて難しいやり方をするかとか、そういうのも面白いなと思います。
0887デフォルトの名無しさん
垢版 |
2018/04/18(水) 07:07:15.79ID:qlMtX02l
素因数の個数って何だっけ
互いに素な約数の個数なら、N=5の時33220(=2310=2*3*5*7*11)の方が多いし、素因数分解で出てくる素数の個数ならN=5の時31143(=2048=2^11)の方が多いし
私が文を読めていないだけ?
0888デフォルトの名無しさん
垢版 |
2018/04/18(水) 07:22:32.10ID:pdl2KQl9
ただ列挙して調べなきゃいけないとすると面白くもなんともない。
いい解を作ろうとすれば、できるかどうかはともかく
数学ひねり回すのだけがメインの仕事になるみたいな。
0890デフォルトの名無しさん
垢版 |
2018/04/18(水) 08:01:49.71ID:iqodOpJQ
J ブルートフォース

q =: >./&(+/&|:&(0&<)&q:&(#. (i.@! A. i.)))"0

iPhone の J インタプリタでは N=8 までが限界だった
q 2 3 4 5 6 7 8
1 2 6 7 13 10 16
0891デフォルトの名無しさん
垢版 |
2018/04/18(水) 08:02:43.21ID:JUjvxXNW
素因数の個数だと2^11は2の1個だけなんだけどなあ
例だと11個と数えたいようだけど
0894デフォルトの名無しさん
垢版 |
2018/04/18(水) 08:15:58.76ID:iqodOpJQ
>>891
問題の着目点に応じて相異なる素因数の数になるか重解を許すか解釈すればいいんじゃないの

そうしないと高校数学に良くある(このスレにも出てるな)
「n! の素因数2の個数を求めよ」の答えが恒等的に1になってしまう。
知らんけど。
0898デフォルトの名無しさん
垢版 |
2018/04/18(水) 08:48:02.15ID:iqodOpJQ
いや重解は変換ミス
それに重複を許さない個数でも問題は成立するな、
良く考えると。
0903デフォルトの名無しさん
垢版 |
2018/04/18(水) 14:43:49.71ID:mfkhz8pH
>>816 J
200$(#~ 2&=@#@q:)2+i.1000
0906デフォルトの名無しさん
垢版 |
2018/04/18(水) 17:19:26.83ID:8LhMtFC1
あらかじめ調べておけばいい
どうせなら半素数自体もしらべてテーブルにしておけば
0909デフォルトの名無しさん
垢版 |
2018/04/18(水) 18:35:30.37ID:MXcoXWvI
究極に進化して、ある数を素因数分解しろとか離散対数求めろと言われたら、
何桁でもテーブルにあって即答ってか?
暗号死ぬわ。
0912デフォルトの名無しさん
垢版 |
2018/04/18(水) 20:18:15.86ID:mfkhz8pH
>>816 J
>>817のやり方で
/:~~.,*/~p:i.20
0914デフォルトの名無しさん
垢版 |
2018/04/18(水) 23:39:47.19ID:BI6oaZDa
ごめん。アンカ間違えた。>>869だった。
0915デフォルトの名無しさん
垢版 |
2018/04/18(水) 23:57:26.29ID:+652BqLv
トップバストとアンダーバストがmm単位で与えられるので
JIS L 4006におけるカップ体型区分を出力せよ
なお、与えられた体系が当該規格の数値と一致しない場合は
最も差の少ない体型区分を選べ

-*- input -*-
880 815
999 799
755 480

-*- output -*-
AA
E
H
0921デフォルトの名無しさん
垢版 |
2018/04/19(木) 04:01:30.95ID:4mrmpy84
このスレは、素数表を使う問題が多い

一方、プログラミング・コンテストでは、自作ライブラリも持ち込めるから、
素数表・ZDD を持ち込んで、解けるような問題は少ない

数学的な解法がなくて、全探索して見つけるものが多い
0922デフォルトの名無しさん
垢版 |
2018/04/19(木) 09:28:13.47ID:/i49YDDr
じゃあここで出てる問題をまず最初にNP完全かどうかを判定すればいい
競技プログラミングに適している問題かどうかを証明してから、改めてプログラミングにあたる
0924デフォルトの名無しさん
垢版 |
2018/04/19(木) 09:51:24.98ID:4mrmpy84
プログラミング・コンテストの良問は、
持ち込みの自作ライブラリでは解けないもので、

素直に全探索すると、計算回数が1億回以上になって、2秒以内に解けないもの

ここで、パズル的に考えて、数学的な法則を使うことで、
枝切り・ショートカットして、計算回数が1千万回以下になるもの
0925デフォルトの名無しさん
垢版 |
2018/04/19(木) 10:05:22.86ID:ffBaMipw
>>915 J
f=:{&(25#'AA'';;/'ABCDEFGHI')@<.@-&62.5&(-/)
0927デフォルトの名無しさん
垢版 |
2018/04/19(木) 20:55:00.88ID:WIjUPUdP
JアプリみつけたのでJで遊んでる初学者だけど
参考にするコード見つけにくい(少ない検索し難い読みにくい)から
>>925の人の存在は有り難い

見所はインデックスを25で割らずテーブルを25倍にしてるとこか
0929デフォルトの名無しさん
垢版 |
2018/04/21(土) 21:12:35.96ID:nWGazij5
配列を、って言ってるのに%wでスペース区切りの文字列から作るの?
てかrubyの%wって何のためにあるの?
splitあるのに組み込みので提供するほどのもの?
他言語者からしたらsplitは分かってもらえると思うが%wは分からんと思うぞ?
やっぱ書くだけの書き捨て言語なんかな。
0930デフォルトの名無しさん
垢版 |
2018/04/21(土) 21:20:16.29ID:20hKSpui
>>928 common lisp

(let ((a '("java" "ruby" "rust")))
  (format t "~{~A~^, ~}~%" a)
  (princ (reduce (lambda ($0 $1) (concatenate 'string $0 ", " $1)) a))
)
; java, ruby, rust
; java, ruby, rust
0931デフォルトの名無しさん
垢版 |
2018/04/21(土) 22:20:27.52ID:6J3G0l4e
>>929
>てかrubyの%wって何のためにあるの?

まさに今回のような場合に配列リテラルを作るためのものだろ
各要素が所与なのになんでわざわざ繋いだ文字列リテラル書いてsplitしようとするの?
0932デフォルトの名無しさん
垢版 |
2018/04/21(土) 22:36:51.73ID:QInDazsH
>>928 ruby
puts a[0...-1].inject(''){|r,s| r << s << ',' } + a.last
puts a.inject(''){|r,s| r << s << ',' }.chop
puts a.map{|s| [s, ','] }.join.chop
b = a.join
a[0...-1].inject(0){|r,s| r += s.length + 1; b = b.insert(r-1, ','); r }
puts b
0934デフォルトの名無しさん
垢版 |
2018/04/21(土) 23:51:06.09ID:Ktcilsrm
>>931
今回のような??
今回の問題文、「文字列の配列をカンマ区切りで表示せよ」ってなってんだが…
スペース区切りの文字列から始めてどうする。
それじゃ%wで配列にするまでもなく正規表現でスペースをカンマに置換すればいいじゃん。
0935デフォルトの名無しさん
垢版 |
2018/04/22(日) 02:37:42.05ID:J/MYnpG1
>>928
Kotlin
https://paiza.io/projects/ZW2Hjc9tfnlrMwqvblaKlw
文字列は1行づつ入力から読んで MutableList に add して終わったら Array に変換して文字列の配列にしている。
0936デフォルトの名無しさん
垢版 |
2018/04/22(日) 02:46:31.80ID:9vFMU6Rd
>>928 javascript

var langs = ['javascript', 'python', 'go']
console.log(langs.join()) //ES5
console.log(langs.reduce((acc, elm) => `${acc},${elm}`)) //ES2015
langs |> ary => ary.join() |> console.log //ESNext
console.log((langs + ',').slice(0, -1)) //ES5
0937デフォルトの名無しさん
垢版 |
2018/04/22(日) 03:13:36.97ID:9vFMU6Rd
一番かんたんなの忘れてた
console.log(langs.toString())
console.log(langs + '')
console.log(`${langs}`)
0939デフォルトの名無しさん
垢版 |
2018/04/22(日) 06:29:12.88ID:xtwb4rw1
>>928 Squeak Smalltalk

| arr |
arr := #(java rust ruby).
arr asCommaString. "=> 'java, rust, ruby' "
arr asCommaStringAnd. "=> 'java, rust and ruby' "

String streamContents: [:ss |
arr do: [:each | ss << each] separatedBy: [ss << ', ']
]. "=> 'java, rust, ruby' "
0948928
垢版 |
2018/04/22(日) 15:38:01.72ID:tE7JnHSh
蛇足で無粋でしょうけど寸評をもってお礼に代えさせて下さい

寸評:
>>930 素早くreduce拾って下さったのと、コードのリズム感が目に優しくてすこ
formatたる謎の戦法も興味深い
>>932 chop戦略を出して下さって感謝。bを使ったほうはフフッときた
>>935 Kotlinのコードいつも楽しく拝見してます
「先頭別で、二個目からカンマくっつけ戦法」出してくれて感謝
>>936 joinでカンマついちゃうのが他言語から見たら興味深い
>>939 いつも楽しく拝見してます、相変わらずギョッとさせられる
じつは当初、andつきのほうをお題にしようかとも迷いましたが
不要な複雑さを持ち込んでしまうと危惧して止めたんですがさすがのSmalltalk

総評:
joinでの解決一個だけで回答されるのが一番つまらないので
それを暗に防ぐために複数の方法っていう指定をした
二番目三番目の方法となると、見てて楽しい、言語ごとの工夫が見えてくる
おまえらありがとう
0949デフォルトの名無しさん
垢版 |
2018/04/22(日) 15:42:18.97ID:J/MYnpG1
そういや昨日本屋に行ったら「C言語による標準アルゴリズム事典」が売られてて、うわー懐かしいまだ売ってたのかこれ
と思ってよく見たら今年出たばかりの第2版だった。

[改訂新版]C言語による標準アルゴリズム事典 Software Technology
http://amzn.asia/bjcCLfp

この本はある意味お題になりそうな問題の宝庫ではないかと思う。
0951 ◆QZaw55cn4c
垢版 |
2018/04/22(日) 15:57:34.72ID:bjDlbJPk
>>949
おう!
pascal 版を見たことがある、と思ってたんですが、気のせいだったのかな?
0953デフォルトの名無しさん
垢版 |
2018/04/22(日) 18:31:51.83ID:J/MYnpG1
>>951
それはおそらくこれだな。著者は同じ奥村さんだ。

Software Technology 12 コンピュータアルゴリズム事典
http://amzn.asia/b82A7jP

こちらは Pascal なので再販されそうな感じがしないね。
0956デフォルトの名無しさん
垢版 |
2018/04/22(日) 21:54:24.98ID:DtOQlBfz
お題

再帰関数を使ってC++で次の問題の会を出すプログラム書いたんですけど、なんかミスばっかでダメなので、だれかどういうプログラム書けばいいのか教えてもらえませんか?

九つの椅子が正方形に並んでおり、はじめに数字の書いた札を持った何人かが座っているとする


○○5
○9○
12○

さらに他にも何人か数字の書いた札を持った人がいて、その人たちが空いてる席に順番に座って行くとする
全員座った後、それぞれの点数を数えるとする、ただし点数は前後左右の人が持ってる札の数字を足し算する


○○5
○9○
12○
で 3さん→4さん→7さん とすわり
○75
493
12○
となった、9の点数は7+4+3+2

この時、それぞれが自分の点数を最大になるように座ったら最終的にはどういう配置になるでしょう?ただし
・それぞれは座る順番を知っている
・その次に座る人達がどこに座るかまで考慮に入れて考える
・自分以外の点数は気にしない
・誰もいないところは0
・次の人が何箇所か座る候補があり絞れない時は常に予想図の最小値をとって考えるとする、つまり極端にリスクを恐れる
0958デフォルトの名無しさん
垢版 |
2018/04/22(日) 22:38:26.14ID:7GS5N7oQ
自分より後の人のならび順、番号、人数はわかっている?

全員が天才で、その事を自分は知っている?
0959 ◆QZaw55cn4c
垢版 |
2018/04/22(日) 22:39:06.13ID:bjDlbJPk
>>957
このスレでそんな発言に意味があるのかな?
お題として面白ければ回答がつくだろうし糞だったら回答はつかないし、少なくともそれが宿題かどうかは関係ない
0960デフォルトの名無しさん
垢版 |
2018/04/22(日) 22:47:33.55ID:7GS5N7oQ
みんなが宿題を「お題」としてあげはじめたら
糞「お題」率が上がる

糞「お題」ばかりだとおれはこのスレを見なくなるだろう
0961デフォルトの名無しさん
垢版 |
2018/04/22(日) 22:56:47.60ID:l7RA/Oa5
>>959
宿題を書く奴は問題の解き方を理解できていないので、
ここに書かれる問いは「不完全な」問題になる。

お題として不適切なんだから、スレ違い
0962 ◆QZaw55cn4c
垢版 |
2018/04/22(日) 22:59:00.47ID:bjDlbJPk
>>960
宿題問題がすべて糞お題とは限らないだろう?
問題が宿題かどうかは問題ではなくて、問題が糞お題じゃなくて良問かどうかだろう?
0963 ◆QZaw55cn4c
垢版 |
2018/04/22(日) 23:01:16.13ID:bjDlbJPk
>>961
確かに宿題お題を出そうとする人間は、その問題が良問かどうかの判断すらできないから、必然的に「不完全な」出題になる傾向にある、というのはいえるかもしれないね
0966 ◆QZaw55cn4c
垢版 |
2018/04/22(日) 23:19:32.66ID:bjDlbJPk
>>964
実は、出題者は(それが一部にせよ)教育的意図を抱いて問題を作成しているのだから、宿題問題には良問題が少ないとはいいきれない、と考えている
宿題問題でもそれが良問であれば、このスレで取り上げられてもいい、と思っている、まあ、ここんところは私見だが
で、ついた回答の多寡でこのスレの意志がある程度あらわされるんじゃないか、あからさまな宿題問題だったらこのスレでは回答はつかないからね

だから >>957 のようなことを書く人の考えていることがわからない、というか、>>957 は何も考えずに言葉のオートマタ(自動機械)的にレスを書いているんだね
そりゃなにも考えていないんだから、「考えていることがわからない」のも道理だと思いました
0969デフォルトの名無しさん
垢版 |
2018/04/23(月) 00:36:44.58ID:TheGSrgB
>>966
出題スレで「教えて下さい」「これ解いて下さい」等という感じの

「本人が問題の肝を理解していない」

ものに関しては須く「宿題は自分でやれ」と回答するのが出題スレだと思うが。
宿題なのか自作アプリで詰まってるのか知らんけど
出題スレで質問が許容されると他の人も懸念してる通り。
0970デフォルトの名無しさん
垢版 |
2018/04/23(月) 01:01:35.25ID:zSvvNM2R
問題が不完全だと思ったら好きに解釈して条件を決めて答えるのがこのスレ
宿題スレじゃないので出題者の意図・期待はどうでもいいからうっちゃって
面白そうだと思えば回答するのみ
0972 ◆QZaw55cn4c
垢版 |
2018/04/23(月) 01:57:48.83ID:vGDXyrLu
>>969

>出題スレで質問が許容される
と糞お題が増える」
という懸念は、
このスレの性質上必然的に淘汰されるので、一時的に勃興したとしても、自然になくなるのでは?
必要のない縛りはない方がいい

>>971
>>968 は感心するほど注意深いね…
0973デフォルトの名無しさん
垢版 |
2018/04/23(月) 06:31:57.22ID:lnjW6wzS
「必要のない縛り」とは思ってない

「お題」スレであり質問スレではない
スレチを許容してたらスレの質が下がるのは明らか
0975デフォルトの名無しさん
垢版 |
2018/04/23(月) 09:49:33.46ID:7KuSA8wR
スレチが許されるなら数学の話も許されるはずだね
ましてや出題に関連した数学ならスレチとも言えないはずだが
0976デフォルトの名無しさん
垢版 |
2018/04/23(月) 10:42:43.85ID:n8Ml8Rp3
このスレで宿題が許容されたら宿題スレの存在意義が無くなるんでないか?
実質、スレタイの違う宿題スレが二つあるようなものなのでは?
0977デフォルトの名無しさん
垢版 |
2018/04/23(月) 11:00:07.86ID:7mKpSOdS
宿題にも良問があるかもと思う奴が自分で宿題スレを覗いて良問を待ってればいいだけの話で、このスレでは宿題は一切禁止でいいと思う。
0979デフォルトの名無しさん
垢版 |
2018/04/23(月) 14:26:32.44ID:jMm7sVs3
>>956
すべての空席に、自分が座ったとしてループする

自分の前後左右が埋まるまで、ループする。
ただし、最終の人まで

次の人から、最後の人まで、ループする。
全通りを調べて、各人の次の人が、何箇所か座る候補があるときは、
最小値を、各人が選んだ、座席の値として使う
0980デフォルトの名無しさん
垢版 |
2018/04/24(火) 00:03:07.86ID:GlvNukAo
>>928 Perl
$ cat 10_928.pl
@s = ('java','ruby','rust');
$" = ',';
print "@s\n";

$ perl 10_928.pl
java,ruby,rust

簡単すぎる気が…
なんかオレ、出題意図を誤解してる?
0981デフォルトの名無しさん
垢版 |
2018/04/24(火) 00:17:11.44ID:RoXKv00p
あってんじゃねーの
joinを使うとおもしくないとか言ってるヴァカだし
無視していいんじゃね

出題意図を誤解できないように厳密に明文化する能力がないアフォだろ
それかわざと誤解するような引っかけ問題作ってるキティガイだ
0982デフォルトの名無しさん
垢版 |
2018/04/24(火) 00:21:58.25ID:GlvNukAo
まぁまぁ。
複数の方法と書いてあるし、
配列としてindexアクセスしてprintsするとか、
他の意図があるかと最初オモタ
0983デフォルトの名無しさん
垢版 |
2018/04/24(火) 00:29:59.28ID:RoXKv00p
>>948を見てみろ、
評論家気取りで
>joinでの解決一個だけで回答されるのが一番つまらない
とか言ってるぞ

だから>>980、お前はこのヴァカのなかでは最高級につまんねー人間だよ
どれだけヴァカがヴァカなことをするかほくそえんでるクソ野郎の出題だよ

出題意図は「joinだけで書いたヴァカをヴァカにすること」、それ以外は読み取れない
相当な悪意があると気付かねーの?
0984デフォルトの名無しさん
垢版 |
2018/04/24(火) 01:23:08.86ID:GlvNukAo
>>982
まぁまぁ、その経緯は知らなかったけど、そんなに腹立てないで。
本気になるべきもっと大事なことは他にある。

本音を言うと >>980 よりもっと短いゴルフっぽいコード書いて遊ぼうかと一瞬考たけど、
小学校の演習にもないような文字列リストのカンマ区切り印字
そこまで考える値打ちのかったのでやめといた。
0985デフォルトの名無しさん
垢版 |
2018/04/24(火) 01:33:15.52ID:GlvNukAo
実は、>>980 を書いた意図は、

>>928 は 別に頭を使ってプログラムロジックを書かなくても、
printがリストを印字する区切り文字設定の変更で出来ることであり、
プログラミングのお題としての意義がそもそも乏しい
みたな そんなつもりだったし テヘペロ
0986デフォルトの名無しさん
垢版 |
2018/04/24(火) 14:50:43.11ID:1HH7nATC
joinだけだとつまらんなら出題時に禁止しとけばいいだけだし、確かに性格悪いな
0987デフォルトの名無しさん
垢版 |
2018/04/24(火) 17:14:39.22ID:73+jN4z4
「○○禁止」は多言語で回答を出し合う場では忌み嫌われるから逆に避けたのでは?

「各要素列挙の間隙に何か処理を挟む」とか「最初(あるいは最後)の要素だけ例外扱いで列挙」とかにして
なおかつ、joinでは対処できないお題にすべきだった
0989デフォルトの名無しさん
垢版 |
2018/04/24(火) 18:39:57.08ID:b5LehDYo
お題:与えられた文字列を逆順にして出力する関数を定義しなさい。ただし、関数の呼び出しに十回に一回は失敗し、失敗した場合は文字列をランダムにシャッフルするようにしなさい。
0996デフォルトの名無しさん
垢版 |
2018/04/24(火) 20:58:59.68ID:Ukt80uX+
>>928 は素直に「各言語の特異な機能、面白機能を使って書け」で良かったような
Smalltalk のは雑学的な意味でちょっと面白かった
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 113日 10時間 55分 4秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。