プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
瞬速年忘れ問題
2017は素数か?素数なら何番目か? ああ、2017ぐらいなら何の工夫もせず力技でごり押ししても大丈夫なのか。
そりゃそうだなw
しかし俺は大みそかに何でこんなスレ覗いてるんだw >>31 Emacs Lisp
(require 'cl-lib)
(defun a (x)
(cl-assert (and (integerp x) (> x 1)))
(let ((l (let ((max-lisp-eval-depth most-positive-fixnum)
(max-specpdl-size most-positive-fixnum))
(b (cl-loop for i from 2 to x collect i)))))
(when (= (car (last l)) x) (length l))))
(defun b (l)
(when l
(cons (car l) (b (cl-remove-if (lambda (x) (= (% x (car l)) 0)) (cdr l))))))
(mapcar (lambda (x) (cons x (a x))) '(2 3 4 5 2017))
((2 . 1) (3 . 2) (4) (5 . 3) (2017 . 306)) >>32で9999991(664579番目の素数)を計算させたら
14.708sかかった
>>34では0.391s
(Athron X2 1.8GHz) >>31 Squeak/Pharo Smalltalk
(Integer primesUpTo: 2017+1) indexOf: 2017 "=> 306 " >>31 ruby2.0.0
require 'prime'
def f9031(n)
Prime.prime?(n) && Prime.each_with_index.find {|p, _| p == n}
end
p f9031(4), f9031(2), f9031(2017)
↓
false
[2, 0]
[2017, 305] >>31
Bash
seq 2017 | factor | awk '{happy = $1;new=0}NF==2{year++;new=1} END{
print happy,new?year "th":"no","prime"}' お題:与えられたクレジットカードの番号が正しいかどうか判定するプログラム。 お題:個人情報(氏名、年齢、住所、電話番号)のダミーデータ(偽物のデータ)を大量に作成するプログラムを作れ。 >>42
wget -r -l 0 URL で適当なサイトから住所のデータを持ってきてシャッフルしダミーデータを生成 正しいかどうかはクレカ会社でないとわからない
Luhnアルゴリズムの計算だけでいいならわりと楽だけど >>45
正論だね。じゃあルーンのアルゴリズムだけにしましょう。 >>44
住所と電話番号の関係についてもっとよく考えて下さい。 ダミーだから、実在する住所、通話可能な番号は許可しないんだよな? >>48
それはちょっと難しいだろう。実在するかどうやって確認するのかい? 住所や電話番号の一部を伏せ字にすれば迷惑が掛からないとは思うが。。。
ダミーデータの用途によるんだよね。データベースのテスト用とか、●●●●用とか。 ヒント:住所テキストデータの意味の定義は郵便局が行っている。 お題:□に自然数を入れて式を成立させる。^は、べき乗。
□^□+□^□=2017 1^X+2016^1=2017
という形の解が無数に存在する。
これに対する制限がなければ面白くない。 では□に入れるのを2以上の自然数に変更させてください >>57
C++
自然数nがa^b (a>=2,b>=2)で表せるかどうか判定する関数(isFact)の
キャストが糞だから誰かいい書き方教えてください…
http://ideone.com/cB1Ncw >>57
http://ideone.com/uxu5Bl
C++。頑張って最適化。これ以上はアルゴリズム変えないと大変。 >>57 Java
http://ideone.com/hNhAMC
>>63の ArrayList<String>[] list = new ArrayList[n]; がすんげぇメモリの無駄に思えたので >>57
C++
Σ_i=1~m □^□ = nに拡張してみた
http://ideone.com/KKHS6o >>66
12^3 + 17^2 = 2017
17^2 + 12^3 = 2017
AB入れ替わりのこれはあるのに
3^4 + 44^2 = 2017
9^2 + 44^2 = 2017
がないのはなんでなんだぜ? ループ2が43で十分ってことになってるからかな?? >>57 Squeak/Pharo Smalltalk
| ans |
ans := OrderedCollection new.
(2 to: 2017 sqrt) asDigitsToPower: 4 do: [:digits |
((digits first: 2) raisedTo: (digits last: 2)) sum = 2017
ifTrue: [ans add: ('{1}^{3}+{2}^{4}' format: digits)]
].
^ans asStringWithCr >>66
コメントアウトで書いた議論をそのままコードにすればいいのに、そんなにマジックナンバー埋め込んでどうすんだ 画面に並んでいるコントロールに左上から右下にタブ順を割り振るアルゴリズムってどう書きますか?
要するに矩形のソート方法です
綺麗に並んでるとは限りませんし重なっているものもあります
目で見た感覚的に正しくなるようにできますかね? >>72
(1) 重心の座標を求めて、
(2) Yでソート後Xでソート
とか。
まあ「感覚的に正しい」なんて要件はこの手の問題じゃ曖昧以外の何でもないし
どうやっても厳密な定義は無理だから、普通に左上座標で妥協してもいいんじゃないの >>72
要件が曖昧すぎる
どこを左上として、どこを右下とするのかで結果が変わるだろうし、あなたの感覚とズレが生じることもありえる
円形や一直線に並んでいる場合どこを左上とするのか、
画面右上、左下、右下を結んだ三角形(凾フような形)に並んでいるとき、左上と呼べるようなコントロールが存在しないけど、どうするのか >>76
いや,逆にあいまいな要件のみ提示されていて,それに感覚的に適合する実装を示せ,というお題だろう
客は自分のしたいことを本当には知っていない >>77
こういう営業さんがいる会社は悲惨なことになるねw
冗談抜きで、IT業界の一部の労働環境が劣悪な理由はこういう安請け合いにある。 >>78
あいまいな要件に対して実装を提案することは問題ないだろう?
問題はその実装をちゃぶ台返しにされないようにすることだろう?
実装の提案ができないようだと仕事にならないのでは? >>79
甘いと思うよ。
それ、製品の完成後にこちらの提案が「やっぱり何か違う」ってちゃぶ台返しされるリスクを
考えてないでしょ。
まあスレ違いなんでこれ以上言わないけどさ。 これ業務じゃないんだし、自分だったらこう実装するっていうのを書いてけばええやん というかこの問題は順位付けに自明な定義がないところが肝です
AIなどでもそうですけど最近は曖昧かつ感覚に矛盾しない答えを求められる事が増えてきています 左上と右下を結ぶ線が垂直軸となる座標系に変換して
上から順に拾っていくだけじゃないの? >>84
それだと(0, 80は(100, 0)より順番が若くなる気がするんだけどw >>85
何が言いたいのか分からないのでコメントしにくいけど
何かがおかしいとしたらあなたが考えた座標の変換が間違ってるんだろう >>86
自分で自分の言ってることが分かってないのかw
A = (0, 80)、 B = (100, 0)とすると、お前さんが言ってる座標兼では
AはBの「上」になる。
このぐらいのことそれを思いついた5秒後に分かれよほんと >>88
(10,0)と(5,10000)で後者が先に選択されるのはいやだ
次のような長方形からなる集合Uを定義する:
∀a∈ U に対し,∃b∈ a.center ⊂ b or b.center ⊂ aが成立する ミスった
次のような長方形からなる集合Uを定義する:
∀a∈ U に対し,∃b∈Uが存在し a.center ⊂ b or b.center ⊂ aが成立する
要するに連結した長方形を集めるイメージですね
タグの順位付けしたい長方形の集合を連結した長方形の集合に分割してから >>90
ほんとごめんなさい
集合Uの頂点を、最も原点(0,0)と集合Uの要素の長方形との距離が最も小さくなる長方形の左上の点と定義して
集合についてソートして、集合の要素についてxでソートするのが個人的に自然な感覚かなぁ xでソートしたらこのケースでダメだ
http://i.imgur.com/wpFEt5J.png
集合の頂点を与える長方形を始点として中心点が近い要素順に並べるのが自然か >>87
> A = (0, 80)、 B = (100, 0)とすると、お前さんが言ってる座標兼では
> AはBの「上」になる。
AがBの上になるのはあなたがそう変換した(あなたが決めた)からですよ
現在の座標系と左上と右下を結ぶ線が垂直軸となる座標系との関係性には
自由度があります(1秒で気付くと思いますが)
どのような関係にするかはお題の人間の感覚的に正しく見えるような関係を
選ぶべきであって、あなたが選択した関係に従って変換された座標に対して
あなたがおかしいと思ったというだけですね >>93
何が言いたいのかさっぱりわからんな。
数学弱いなら無理しなくていいのに ああ、きっと>>93の世界では平行移動で2点間の相対的な位置関係が
変わるんだろうねw >>94
自己紹介かな
座標軸の張り方次第だっつーのw >>98
じゃあ具体的にどういう座標系ならBがAの上になるのか言ってみろ馬鹿。
重症だな >>102
誰に物をいってるんだ?
身の程をわきまえろ >>99
煽って教えてもらうメソッドか
低能って嫌だな >>86
おい!お前のせいでキチガイが増殖してるじゃねえか
責任とって全部持って帰れ >>106
いや何を書いたとかじゃなくてさ、
>>99
煽って教えてもらうメソッドか
低能って嫌だな 頭の中がQZでいっぱいな心理学おじさんはQ呼称で自分だけは特別な存在アピール 感覚に頼るような変なお題出すからキチガイが湧くんだよ IDが出るようになったのになぜQはコテを消したのか?
とんだチキンだったのではないだろうか? ×>>16
◯>>116
似ても焼いても一つも人の役に立てないQ 心理学おじさんとQZを同じ部屋にとじこめたらどうなるの? お題:平面上に四つの点を二点間の距離が二種類になるように配置する 正三角形+中心
一辺を共有する二つの正三角形
正方形
他にあるかな? 異なる辺の長さa,bに対して
1)a:5本, b:1本
正三角形(辺の長さa)×2の菱形のみ
2)a:4本, b:2本
2辺と対角線の長さがaの凧型
正方形(辺の長さa)
3)a:3本, b:3本
正三角形と重心
3)はまだまだありそう sage>>123
●
●
● ●
ーーー
●
● ●
●
ーーー
● ●
● ●
ーーー
● ●
● ●
ーーー
●
●
● ●
ーーー
● ●
● ● ■ このスレッドは過去ログ倉庫に格納されています