X



プログラミングのお題スレ Part10
レス数が1000を超えています。これ以上書き込みはできません。
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を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況