プログラミングのお題スレ Part9 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/12/01(木) 16:58:30.97ID:gTkHDluD
プログラミングのお題スレです。

前スレ
プログラミングのお題スレ Part8©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1444216746/

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。
9デフォルトの名無しさん
垢版 |
2016/12/07(水) 14:23:07.62ID:ltGABuaa
景気付けにどうぞ

お題:以下の数列を出力するプログラム
[0, 10, 1110, 110, 2110, 122110, 11222110, 2122110, 1211222110, 11122122110,...]
2016/12/07(水) 18:06:29.71ID:qM0eFzSC
法則性が分からん
2016/12/07(水) 19:07:54.18ID:ijEXmeus
>>9 Java
http://ideone.com/SjEe5N

>>10と同じで法則性考えるのに時間がかかったわ
2016/12/07(水) 19:15:52.19ID:Gz2S0y7j
>>9 Nim
https://ideone.com/WLvRqB
2016/12/08(木) 00:20:55.59ID:Gvasb8BC
>>9
・法則見つけた瞬間までがピーク
・実際書くと何一つスッキリ書けなくて悔しい
https://ideone.com/n0RoNr

[
2016/12/08(木) 00:21:30.57ID:Gvasb8BC
>>9 ruby
・法則見つけた瞬間までがピーク
・実際書くと何一つスッキリ書けなくて悔しい
https://ideone.com/n0RoNr

["0", "10", "1110", "110", "2110", "122110", "11222110", "2122110", "1211222110", "11122122110", "12211222110", "11222122110"]
2016/12/08(木) 00:53:14.68ID:T7wNCBuS
>>9 ruby ちょい整理
https://ideone.com/kyw9bm
2016/12/08(木) 22:20:30.70ID:eRjONenV
・前項の数字の1の位から順に見てって、数字が連続する数を数えていく。
・数字とその連続数を1の位から順に埋める
・3の数字は削除する
2016/12/09(金) 16:43:25.82ID:pZMdQcgu
お題: 文字列に含まれる複数のURLをHTMLのaタグで囲って出力してください。詳細な仕様はないです。
例: http://ideone.com/NY2ooA
2016/12/09(金) 21:12:11.14ID:Ees/IyTq
例に出されたURLも不正だし
>詳細な仕様はないです。
となると判別不能では
2016/12/09(金) 21:52:57.66ID:BOiFZI5h
>>9 Nim
あまりに不細工だったので書き直し
https://ideone.com/9q80v4

正規表現使うバージョン(ただしideoneは古すぎてコンパイルできない)
https://ideone.com/01ktu2
2016/12/10(土) 04:17:33.77ID:mNmdekz4
イデオンって投稿時にURL置換するんだよな。
2117
垢版 |
2016/12/10(土) 11:48:18.29ID:E4ED1H/i
ideone.comをフィルターしてるのかと思ったらURL全般だめっぽい
2016/12/11(日) 18:00:53.14ID:RSXbZT65
>>9 Perl
use feature qw{:5.16};
sub {
$_ = join'', @_;
exit if length > 12;
say;
@_ = ();
while (/((.)\2*)$/) {
$len = length($1);
$len = '' if $len > 2;
unshift @_, $len . $2;
$_ = $`
}
goto __SUB__;
}->(0);

無名関数の末尾再帰を使って記述してみました。
2016/12/13(火) 23:58:53.18ID:AlD2ABgf
お題:C言語に関する質問に答えられる人工知能を作れ。
2016/12/14(水) 02:25:35.75ID:EQpNWDBR
自分で作れ
2016/12/17(土) 22:23:37.55ID:zexuiF2f
案1 Amazon Mechanical Turk を使う。
案2 知恵袋に投げて、回答を転記する。
案3 IBM Watson 使う。
2016/12/17(土) 22:35:16.13ID:R0k7IOIa
大穴 自分の脳をささげる。
2016/12/19(月) 21:40:29.23ID:KFYYsgKs
入力音声を2chのスレに書き込む
レスがあったら音声出力する
処理時間→数分〜数日
2016/12/19(月) 22:14:03.89ID:TQpl8Z1r
お題:ペントミノパズルの12種類のピースを表示する
2016/12/20(火) 00:24:55.91ID:j+0pMEUE
>>28 bash
http://ideone.com/51ZjFV

端末でどうぞ
2016/12/20(火) 23:33:43.23ID:kU3OD1WB
お題:ペントミノパズルの全解を列挙する
2016/12/31(土) 18:31:14.25ID:nvhfPpJn
瞬速年忘れ問題
2017は素数か?素数なら何番目か?
2016/12/31(土) 19:13:55.05ID:39E0aGGL
>>31
C
http://ideone.com/bUbh6M
2016/12/31(土) 19:23:15.93ID:39E0aGGL
たった今一部訂正
2016/12/31(土) 22:12:03.44ID:FA/ffAJp
>>31
同じくC
みなさん今年はお世話になりました
https://paiza.io/projects/Sio8sqlqmX547VHnZkpj_Q
2016/12/31(土) 22:16:03.44ID:oE9oDlU2
ああ、2017ぐらいなら何の工夫もせず力技でごり押ししても大丈夫なのか。
そりゃそうだなw

しかし俺は大みそかに何でこんなスレ覗いてるんだw
2016/12/31(土) 22:56:06.40ID:07cXWtfS
>>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))
2016/12/31(土) 23:05:34.75ID:39E0aGGL
>>32で9999991(664579番目の素数)を計算させたら
14.708sかかった
>>34では0.391s
(Athron X2 1.8GHz)
2017/01/01(日) 11:09:07.28ID:IDYigKuX
>>31 Squeak/Pharo Smalltalk

(Integer primesUpTo: 2017+1) indexOf: 2017 "=> 306 "
2017/01/01(日) 12:49:27.41ID:AcyWguNB
>>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]
2017/01/02(月) 13:41:39.67ID:jOTKTTu2
>>31
Bash
seq 2017 | factor | awk '{happy = $1;new=0}NF==2{year++;new=1} END{
print happy,new?year "th":"no","prime"}'
2017/01/02(月) 15:29:42.51ID:h8C28I9Z
お題:与えられたクレジットカードの番号が正しいかどうか判定するプログラム。
2017/01/02(月) 15:34:59.42ID:h8C28I9Z
お題:個人情報(氏名、年齢、住所、電話番号)のダミーデータ(偽物のデータ)を大量に作成するプログラムを作れ。
2017/01/02(月) 15:41:47.73ID:h8C28I9Z
上げまして
2017/01/02(月) 15:47:49.69ID:jOTKTTu2
>>42
wget -r -l 0 URL で適当なサイトから住所のデータを持ってきてシャッフルしダミーデータを生成
2017/01/02(月) 16:37:06.06ID:4fVv1Ig/
正しいかどうかはクレカ会社でないとわからない
Luhnアルゴリズムの計算だけでいいならわりと楽だけど
2017/01/02(月) 17:26:44.05ID:h8C28I9Z
>>45
正論だね。じゃあルーンのアルゴリズムだけにしましょう。
2017/01/02(月) 17:28:27.34ID:h8C28I9Z
>>44
住所と電話番号の関係についてもっとよく考えて下さい。
2017/01/02(月) 17:39:17.52ID:fYcUjGFM
ダミーだから、実在する住所、通話可能な番号は許可しないんだよな?
2017/01/02(月) 18:22:02.26ID:h8C28I9Z
>>48
それはちょっと難しいだろう。実在するかどうやって確認するのかい?
2017/01/02(月) 18:27:21.29ID:h8C28I9Z
住所や電話番号の一部を伏せ字にすれば迷惑が掛からないとは思うが。。。
ダミーデータの用途によるんだよね。データベースのテスト用とか、●●●●用とか。
2017/01/02(月) 18:48:13.86ID:h8C28I9Z
ヒント:住所テキストデータの意味の定義は郵便局が行っている。
2017/01/04(水) 12:00:38.64ID:y99Ue0/2
お題:□に自然数を入れて式を成立させる。^は、べき乗。
□^□+□^□=2017
2017/01/04(水) 12:44:11.80ID:WgerS0Nf
回答無限個あるけどいいの?
2017/01/04(水) 13:15:36.49ID:UpZyqzsr
なにわろてんねん
2017/01/04(水) 18:33:26.02ID:dwq5ZcuT
http://ideone.com/BinLDz
C++??なんかへんな問題だな。
2017/01/04(水) 18:36:48.39ID:83LRywdJ
1^X+2016^1=2017
という形の解が無数に存在する。
これに対する制限がなければ面白くない。
5752
垢版 |
2017/01/04(水) 19:17:06.25ID:y99Ue0/2
では□に入れるのを2以上の自然数に変更させてください
2017/01/04(水) 23:01:48.48ID:tU35eaIW
>>57
C++
自然数nがa^b (a>=2,b>=2)で表せるかどうか判定する関数(isFact)の
キャストが糞だから誰かいい書き方教えてください…
http://ideone.com/cB1Ncw
2017/01/04(水) 23:17:21.92ID:dwq5ZcuT
>>57
http://ideone.com/LbWS0f
C++。初期条件変更。
答えがバッサリ減った。
2017/01/04(水) 23:37:14.33ID:I0E1npQu
>>57
C
http://ideone.com/v5btSV
2017/01/04(水) 23:41:45.40ID:I0E1npQu
パフォーマンス改良
http://ideone.com/WDu0Ox
2017/01/04(水) 23:54:08.76ID:dwq5ZcuT
>>57
http://ideone.com/uxu5Bl
C++。頑張って最適化。これ以上はアルゴリズム変えないと大変。
2017/01/05(木) 00:33:24.56ID:FeYPKi0Y
>>57 Java
https://ideone.com/vRiP1c
2017/01/05(木) 01:06:45.10ID:FeYPKi0Y
>>57 Java
http://ideone.com/hNhAMC

>>63の ArrayList<String>[] list = new ArrayList[n]; がすんげぇメモリの無駄に思えたので
2017/01/05(木) 01:50:33.81ID:Tpy8rHG5
>>57
C++
Σ_i=1~m □^□ = nに拡張してみた
http://ideone.com/KKHS6o
2017/01/05(木) 23:04:17.78ID:Rf7MYzqE
>>57
http://ideone.com/9NAHBd

ひまつぶしにやってみた。C言語。
2017/01/06(金) 07:39:18.38ID:zAIptLYs
>>66
12^3 + 17^2 = 2017
17^2 + 12^3 = 2017
AB入れ替わりのこれはあるのに

3^4 + 44^2 = 2017
9^2 + 44^2 = 2017
がないのはなんでなんだぜ?
2017/01/06(金) 08:14:14.51ID:6Va7LE9a
ループ2が43で十分ってことになってるからかな??
2017/01/06(金) 08:20:39.24ID:FKYJf0Ai
全てのパターンを調べろっていうお題じゃないからな
2017/01/06(金) 09:28:08.44ID:0R4aMgJq
>>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
2017/01/06(金) 21:50:55.39ID:aMqQPymQ
>>66
コメントアウトで書いた議論をそのままコードにすればいいのに、そんなにマジックナンバー埋め込んでどうすんだ
2017/01/08(日) 13:22:26.64ID:XDbKIsfA
画面に並んでいるコントロールに左上から右下にタブ順を割り振るアルゴリズムってどう書きますか?
要するに矩形のソート方法です
綺麗に並んでるとは限りませんし重なっているものもあります
目で見た感覚的に正しくなるようにできますかね?
2017/01/08(日) 14:54:28.66ID:pxQLZoyB
>>72
(1) 重心の座標を求めて、
(2) Yでソート後Xでソート

とか。

まあ「感覚的に正しい」なんて要件はこの手の問題じゃ曖昧以外の何でもないし
どうやっても厳密な定義は無理だから、普通に左上座標で妥協してもいいんじゃないの
2017/01/08(日) 15:11:05.77ID:RSx5of9s
ひな形作った
http://jsbin.com/doniwanoqi/edit?html,output
2017/01/08(日) 17:11:20.51ID:8OGZNgRf
完全にスレチです。
JSスレでどうぞ。
2017/01/08(日) 17:17:34.30ID:5tCF0ZUl
>>72
要件が曖昧すぎる
どこを左上として、どこを右下とするのかで結果が変わるだろうし、あなたの感覚とズレが生じることもありえる
円形や一直線に並んでいる場合どこを左上とするのか、
画面右上、左下、右下を結んだ三角形(凾フような形)に並んでいるとき、左上と呼べるようなコントロールが存在しないけど、どうするのか
2017/01/08(日) 17:27:52.04ID:MJfiP+Ss
>>76
いや,逆にあいまいな要件のみ提示されていて,それに感覚的に適合する実装を示せ,というお題だろう
客は自分のしたいことを本当には知っていない
2017/01/08(日) 17:33:29.68ID:pxQLZoyB
>>77
こういう営業さんがいる会社は悲惨なことになるねw
冗談抜きで、IT業界の一部の労働環境が劣悪な理由はこういう安請け合いにある。
2017/01/08(日) 17:43:37.92ID:MJfiP+Ss
>>78
あいまいな要件に対して実装を提案することは問題ないだろう?
問題はその実装をちゃぶ台返しにされないようにすることだろう?
実装の提案ができないようだと仕事にならないのでは?
2017/01/08(日) 17:54:48.18ID:pxQLZoyB
>>79
甘いと思うよ。
それ、製品の完成後にこちらの提案が「やっぱり何か違う」ってちゃぶ台返しされるリスクを
考えてないでしょ。

まあスレ違いなんでこれ以上言わないけどさ。
2017/01/08(日) 18:05:19.61ID:RSx5of9s
これ業務じゃないんだし、自分だったらこう実装するっていうのを書いてけばええやん
2017/01/08(日) 18:21:10.87ID:XDbKIsfA
というかこの問題は順位付けに自明な定義がないところが肝です
AIなどでもそうですけど最近は曖昧かつ感覚に矛盾しない答えを求められる事が増えてきています
2017/01/08(日) 22:47:32.14ID:Qw43e7Zm
で、お題ってどれ?
2017/01/08(日) 23:19:01.41ID:4zEbWvNh
左上と右下を結ぶ線が垂直軸となる座標系に変換して
上から順に拾っていくだけじゃないの?
2017/01/08(日) 23:27:18.98ID:c38VN46k
>>84
それだと(0, 80は(100, 0)より順番が若くなる気がするんだけどw
2017/01/09(月) 00:07:13.57ID:g5s54bF4
>>85
何が言いたいのか分からないのでコメントしにくいけど
何かがおかしいとしたらあなたが考えた座標の変換が間違ってるんだろう
2017/01/09(月) 00:12:11.15ID:i1HzEaEu
>>86
自分で自分の言ってることが分かってないのかw

A = (0, 80)、 B = (100, 0)とすると、お前さんが言ってる座標兼では
AはBの「上」になる。

このぐらいのことそれを思いついた5秒後に分かれよほんと
2017/01/09(月) 03:09:12.91ID:iIb+NoJa
xでソートしてからyでソートだよな?
違う?
2017/01/09(月) 07:01:36.39ID:s6rymSkb
>>88
(10,0)と(5,10000)で後者が先に選択されるのはいやだ


次のような長方形からなる集合Uを定義する:
∀a∈ U に対し,∃b∈ a.center ⊂ b or b.center ⊂ aが成立する
2017/01/09(月) 07:04:25.54ID:s6rymSkb
ミスった

次のような長方形からなる集合Uを定義する:
∀a∈ U に対し,∃b∈Uが存在し a.center ⊂ b or b.center ⊂ aが成立する
要するに連結した長方形を集めるイメージですね
タグの順位付けしたい長方形の集合を連結した長方形の集合に分割してから
2017/01/09(月) 07:08:49.40ID:s6rymSkb
>>90
ほんとごめんなさい
集合Uの頂点を、最も原点(0,0)と集合Uの要素の長方形との距離が最も小さくなる長方形の左上の点と定義して
集合についてソートして、集合の要素についてxでソートするのが個人的に自然な感覚かなぁ
2017/01/09(月) 07:18:31.23ID:s6rymSkb
xでソートしたらこのケースでダメだ
http://i.imgur.com/wpFEt5J.png
集合の頂点を与える長方形を始点として中心点が近い要素順に並べるのが自然か
2017/01/09(月) 08:02:40.56ID:g5s54bF4
>>87
> A = (0, 80)、 B = (100, 0)とすると、お前さんが言ってる座標兼では
> AはBの「上」になる。

AがBの上になるのはあなたがそう変換した(あなたが決めた)からですよ

現在の座標系と左上と右下を結ぶ線が垂直軸となる座標系との関係性には
自由度があります(1秒で気付くと思いますが)
どのような関係にするかはお題の人間の感覚的に正しく見えるような関係を
選ぶべきであって、あなたが選択した関係に従って変換された座標に対して
あなたがおかしいと思ったというだけですね
2017/01/09(月) 10:48:32.68ID:LhlDvgN3
>>93
何が言いたいのかさっぱりわからんな。
数学弱いなら無理しなくていいのに
2017/01/09(月) 10:56:12.03ID:LhlDvgN3
ああ、きっと>>93の世界では平行移動で2点間の相対的な位置関係が
変わるんだろうねw
2017/01/09(月) 17:11:09.51ID:s0WlKSpH
>>57
http://echo.2ch.net/test/read.cgi/tech/1434079972/19
やっとコンパイルが通ったよ,ママ‥
2017/01/09(月) 19:58:25.90ID:nfkV3o0K
>>52 >>57 c
https://ideone.com/KhbiRx
2017/01/10(火) 18:29:09.08ID:Ilw6o9KC
>>94
自己紹介かな
座標軸の張り方次第だっつーのw
2017/01/10(火) 20:42:50.38ID:ld93epow
>>98
じゃあ具体的にどういう座標系ならBがAの上になるのか言ってみろ馬鹿。
重症だな
100デフォルトの名無しさん
垢版 |
2017/01/10(火) 21:08:13.05ID:fM7Pfoze
キチガイ降臨age
2017/01/10(火) 21:19:39.42ID:NXUZz/0q
多分アマゾンギフトの人だよ
2017/01/10(火) 21:52:46.22ID:KKLCbaCP
煽って教えてもらうメソッドか
低能って嫌だな
2017/01/10(火) 22:22:58.60ID:EjxLrxqR
どっちかっていうと消えてくれた方がありがたい
104デフォルトの名無しさん
垢版 |
2017/01/10(火) 22:34:23.43ID:U9oYccVU
>>102
誰に物をいってるんだ?
身の程をわきまえろ
105デフォルトの名無しさん
垢版 |
2017/01/10(火) 22:36:50.29ID:U9oYccVU
>>99
煽って教えてもらうメソッドか
低能って嫌だな
2017/01/11(水) 12:22:04.85ID:gkYh8YCT
教えるも糞も最初から正解は書いてある>>87
107デフォルトの名無しさん
垢版 |
2017/01/11(水) 14:49:58.96ID:iTAjJX4H
>>104-105
uyか?Qか?
2017/01/11(水) 19:39:31.27ID:J0kepQ6p
QZ=>>96
109デフォルトの名無しさん
垢版 |
2017/01/11(水) 21:08:00.35ID:0XwQtfyu
QZ怒りのマンガでわかる心理学
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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