プログラミングのお題スレ Part17at TECH
プログラミングのお題スレ Part17 - 暇つぶし2ch975:デフォルトの名無しさん
20/07/05 19:57:21.17 MQ9nuMmc.net
>>912
Java
URLリンク(paiza.io)

976:デフォルトの名無しさん
20/07/05 22:13:54 HPvgh2UL.net
>>912
>>933
何気にPythonの仕様が気になったので。
import csv
import io
import json

with io.StringIO("""
1,abc,"def
ghi",4
2,abc,"def
ghi",4
""") as f:
__print([r for r in csv.reader(f) if r])

with io.StringIO("""
あ,い
1,2
""") as f:
__print(json.dumps([r for r in csv.reader(f) if r], ensure_ascii=False))

977:デフォルトの名無しさん
20/07/10 21:08:49.94 +HNczGHj.net
お題:"チューリングマシン"を使って一行CSVパーサーを作る
チューリングマシンも自作すること
【CSVの仕様】
・カラム値は「a」、「,」、「"」、の組み合わせ、または「」(値無し)しか取らない
・カラム値に「,」が含まれる場合は「"」で囲む必要がある、含まれない場合はどっちでもいい
・カラム値に「"」が含まれる場合は「\"」とエスケープする
入力例) "aa,a",aa,,"aa\"aa"
チューリングマシンからの出力例、Pythonの場合) [None, 'a', 'a', ',', 'a', None, 'X', 'a', 'a', 'X', 'X', None, 'a', 'a', None, '"', 'a', 'a', None]
(Noneは無視、'X'は区切りポイントを表している)
【開発規模】Pythonで15行程度

978:デフォルトの名無しさん
20/07/11 11:44:08.13 60oNEnIZ.net
チューリングマシンなのにPythonとは?
意味不明だ

979:デフォルトの名無しさん
20/07/11 11:48:42.38 KPNFpi8s.net
メモリが無限にないので作れましぇん><

980:デフォルトの名無しさん
20/07/11 11:50:41.57 60oNEnIZ.net
正方形の面積を求める問題に対して
この世に正方形なんて存在しないから求められません
とか言っちゃう系?

981:デフォルトの名無しさん
20/07/11 11:51:57.60 KPNFpi8s.net
比喩がとんちんかんだぞ
今回は「チューリングマシンも自作すること」って明言されてますやん

982:デフォルトの名無しさん
20/07/11 11:56:32.56 8xOOoQBu.net
自作チューリングマシンを Pythonの改行15回程度で作れって?神だわ

983:デフォルトの名無しさん
20/07/11 11:57:52 60oNEnIZ.net
動作を規定すればよくて
実際に動く機械を作る必要はない

984:デフォルトの名無しさん
20/07/11 11:59:10 60oNEnIZ.net
と思ったが
Pythonでエミュレーターを作れって事か?

985:デフォルトの名無しさん
20/07/11 12:00:00.07 60oNEnIZ.net
別に無限にメモリがある必要は無いけど
実際に動くどんなプログラムにも限界がある

986:デフォルトの名無しさん
20/07/11 12:01:06.17 KPNFpi8s.net
>>949
メモリが有限だったらチューリングマシンとはいいましぇん><

987:デフォルトの名無しさん
20/07/11 12:01:59.62 2Qc0/uE/.net
適当な言語で状態遷移機械つくればええんちゃう

988:デフォルトの名無しさん
20/07/11 12:02:26.85 8xOOoQBu.net
しかもCSVパーサーって
つまりはPython15行でExcelを再現しろと?

989:デフォルトの名無しさん
20/07/11 12:13:26.90 6CWHpJ6z.net
>>941の生成言語
CSV → COL | COL ',' CSV
COL → '"' WCOM '"' | NCOM
WCOM → ε | 'a' WCOM | ',' WCOM | '\' '"' WCOM
NCOM → ε | 'a' NCOM | '\' '"' NCOM
状態セル10個前後でいけそう

990:デフォルトの名無しさん
20/07/11 12:46:36.38 6CWHpJ6z.net
>>941 Perl 状態セル4個
$ cat input
"aa,a",aa,,"aa\"aa"
$ perl odai938 < input
[None, 'a', 'a', ',', 'a', None, 'X', 'a', 'a', 'X', 'X', None, 'a', 'a', None, '"', 'a', 'a', None]
$ cat odai938
%maton = (
'N' => { 'a' => ['N', q('a')] , ',' => ['N', q('X')] , '"' => ['Q', q(None)] , '\\' => ['E', q(None)] },
'Q' => { 'a' => ['Q', q('a')] , ',' => ['Q', q(',')] , '"' => ['N', q(None)] , '\\' => ['F', q(None)] },
'E' => { 'a' => ['N', q('a')] , ',' => ['N', q(',')] , '"' => ['N', q('"') ] , '\\' => ['N', q(None)] },
'F' => { 'a' => ['Q', q('a')] , ',' => ['Q', q(',')] , '"' => ['Q', q('"') ] , '\\' => ['Q', q(None)] },
);
@res = ();
$state = 'N';
for $c ( split //, <> ) {
($next, $out) = @{$maton{$state}{$c}};
last unless defined $next;
push @res, $out;
$state = $next;
}
printf "[%s]\n", join ', ', @res;

991:デフォルトの名無しさん
20/07/11 13:08:54.01 WonOAWfv.net
チューリングマシンわからんけどめっちゃ面白そう

992:デフォルトの名無しさん
20/07/11 13:14:56.54 JFnadz6+.net
オートマトンを使ってってことなのね、なるほど

993:デフォルトの名無しさん
20/07/11 13:56:56.88 R3MTOjCq.net
>>954
チューリングマシンを使っていないのでだめだ
そのオートマトンは文脈依存文法どころか文脈自由文法すら対応していない
これら全てに対応出来てこそチューリングマシンだ
(このことは将来エラーリカバリーを考える上で、重要になると思っている)
つまりテープヘッドは左右に動き状態関数でそれを指示出来る(文脈自由文法に対応)
チューリングマシンは受理状態を指定出来る
今回、状態の数は受理状態を省略して5個でいける(もっと少なく出来るかもしれんが)
状態関数は状態5*記号4のマトリックスを考えて、その中の12個を埋めればいい

994:デフォルトの名無しさん
20/07/11 16:08:31.89 R3MTOjCq.net
訂正
×状態関数
◯状態遷移関数

995:デフォルトの名無しさん
20/07/11 16:29:47.46 2Qc0/uE/.net
>>957が正解を出してくれるんだそうだ

996:デフォルトの名無しさん
20/07/11 16:36:53.77 rnrtUK1e.net
例を出してくれ

997:デフォルトの名無しさん
20/07/11 17:01:50.43 KPNFpi8s.net
そもそも作問の時点でおかしいんだよ!

998:デフォルトの名無しさん
20/07/11 17:09:33 R3MTOjCq.net
>>961
どこがおかしい?
線形有界オートマトンといえば納得するか?
そんな言葉使わなくても実装出来る
と言うかこのスレにこの言葉知ってる奴いないだろ

999:デフォルトの名無しさん
20/07/11 17:49:01.47 3Cd1PF49.net
焉んぞ牛刀を用いん

1000:デフォルトの名無しさん
20/07/11 17:53:42.33 60oNEnIZ.net
チューリングマシンの設計じゃなくて
チューリングマシンエミュレーターの設計だよな

1001:デフォルトの名無しさん
20/07/11 18:17:04 R3MTOjCq.net
>>954
\aやらを認めてるのが気になるがそれを直したら遷移関数はあってるな
後はチューリングマシンとして完成させるだけ
俺の遷移関数に冗長があったから直したら一致した
>>963
HTMLは文脈自由文法だが
WebKitのHTMLパーサーは非文脈自由文法として実装されている
そこでチューリングマシンが有用かはさせおき、非文脈自由文法を考えるキッカケになることもある思う
>>964
エンドマーカーを省略した線形有界オートマトンの実装な

1002:デフォルトの名無しさん
20/07/11 19:08:07.36 2M7rjl8q.net
>>950
解ける問題に制限ができるだけの話

1003:デフォルトの名無しさん
20/07/11 20:23:08.26 feKeXoV6.net
そういやチューリングってゲイだったんだってね。

1004:デフォルトの名無しさん
20/07/11 20:30:57.47 JFnadz6+.net
イミテーション・ゲームという映画が面白かった
キーラ・ナイトレイ美しすぎ

1005:デフォルトの名無しさん
20/07/11 20:51:48.92 qWNdyupY.net
チューリング、イギリスのお札になるってよ

1006:デフォルトの名無しさん
20/07/13 10:36:22.79 0ATtS2UF.net
お題
日本将棋連盟のサイトにあるレーティングで
AとBが対戦してAが勝った場合のA、Bの
新しいレーティングを求める。

1007:デフォルトの名無しさん
20/07/13 12:03:42.96 JZTlaHWi.net
お題じゃなくてツール作成依頼でしょ?

1008:デフォルトの名無しさん
20/07/13 17:09:42.48 aaJV9hNQ.net
解答を持ちあわせていて、ただドヤりたいだけのスレなのに?
解答期限をつけるべきだと思う

1009:デフォルトの名無しさん
20/07/13 20:25:51.06 8wNaSmrQ.net
>>972
そんなドヤお題最近あったか?

1010:デフォルトの名無しさん
20/07/13 21:28:01.53 UGEHS+NK.net
イロレーティングの実装ってことでいいのかな?
だとするとあまりに簡単すぎないか?
漢字覚えるのに上からなぞるだけみたいな問題だと思った
考える要素が皆無でもこのスレの趣旨に反しないのか?
現にイロレーティングの実装なんかググったらすぐ見つかるわけだし。
そんなんでもいいんだったらいくらでも出せる。組合せ最適化問題の本に書かれているのそのまま出せばいいわけだし。
後、入力が何で出力が何で、どれくらいで実装できるものか書いてくれたら分かりやすくなると思う

1011:デフォルトの名無しさん
20/07/13 21:54:58 nR5el41K.net
結果後の数値出すだけだから2つの数値受け取って計算して出力するだけでしょ
三角形の面積を求めよ、と同じ問題
計算式知ってるか、ググれるかだけ

1012:蟻人間
20/07/13 22:30:47.09 WwiIS8F6.net
お題: 九九の表の1×1~9×9をSQLデータベースに書き出せ。

1013:蟻人間
20/07/13 22:53:17.28 WwiIS8F6.net
お題: サイン関数の表をSQLテーブルに出力し、そのテーブルへのSQL問い合わせを使ってサイン関数を再現する関数を作れ。精度はテキトーで構わない。

1014:デフォルトの名無しさん
20/07/13 23:56:34.26 UGEHS+NK.net
テイラー展開でいいの?

1015:蟻人間
20/07/13 23:57:43.03 WwiIS8F6.net
>>978
お好きなように。

1016:デフォルトの名無しさん
20/07/14 00:00:00.37 5rX6+9jh.net
>>977
出来たけど5chはSQLは貼れないのかな?w
間違ったSQLインジェクション対策なのかもw

1017:デフォルトの名無しさん
20/07/14 00:08:27.23 kYSYwo9X.net
SELECT * FROM threads;

1018:デフォルトの名無しさん
20/07/14 00:08:30.45 5rX6+9jh.net
>>977
SQLはブロックされて貼れないけど3行で出来た
1. x、y、y_hatのカラムでテーブル作成
2. INSERT SELECT文とPGのgenerate_series関数を使ってxに乱数をINSERT
3 .UPDATE文でsin関数をyに、テイラー展開版sin関数をy_hatにINSERT

1019:蟻人間
20/07/14 00:09:09.45 rFkkEmf3.net
>>980
ideoneかcodepadを

1020:蟻人間
20/07/14 00:19:29.80 rFkkEmf3.net
原始的なSQL injection対策か?

1021:デフォルトの名無しさん
20/07/14 01:07:26 5rX6+9jh.net
>>976
やっぱりSQL貼れないねぇ

答え:PostgreSQLで確認
URLリンク(codepad.org)
※会員登録してないからそのうち消える

1022:デフォルトの名無しさん
20/07/14 03:12:25.26 5rX6+9jh.net
>>977
これもしかしてサイン関数の表は荒いから補完法を使ってサイン関数を作れって意味だったのかなー

1023:デフォルトの名無しさん
20/07/14 05:10:48.70 kYSYwo9X.net
テーブル作らなくても行けそうだと思ったけど必要なのか

1024:デフォルトの名無しさん
20/07/14 06:05:28.09 BHFrzCgy.net
>>976
mysql>CREATE DATABASE testdb;
mysql>use testdb;
mysql>CREATE TABLE tbl_kuku(
'1' int, '2' int, '3' int,
'4' int, '5' int, '6' int,
'7' int, '8' int, '9' int
) ;
mysql>load data local infile
"/Users/user/Desktop/kukutable.csv "
into table tbl_kuku
fields terminated by ','
optionally enclosed by '"';

1025:デフォルトの名無しさん
20/07/14 06:24:26 5rX6+9jh.net
>>977
問題の意味がよく分からなかったけど、荒いsine関数表を元に補間法によって任意の値に対するsine関数を完成させろという意味なら出来た
PostgreSQL用
URLリンク(codepad.org)
※会員登録してないからそのうち消える

1026:デフォルトの名無しさん
20/07/14 06:36:16.97 5rX6+9jh.net
>>977
>>989をちょっと修正した
URLリンク(codepad.org)

1027:デフォルトの名無しさん
20/07/14 07:41:02.95 i9nYbez+.net
>>977
mysql> delimiter //
mysql> CREATE FUNCTION SIN (angle DOUBLE )
-> BEGIN
-> SELECT angle FROM tbl_sin ;
-> END//
mysql> delimiter ;
mysql> SELECT SIN(45);

1028:デフォルトの名無しさん
20/07/14 11:28:46.13 5rX6+9jh.net
>>941のお題は誰も解答しないの?

1029:デフォルトの名無しさん
20/07/14 11:59:10.89 q9pbneb4.net
>>977
>>990のコメント部分の修正とコメント追加
URLリンク(codepad.org)

1030:蟻人間
20/07/14 12:43:06.54 xUpKMtHj.net
そろそろ次スレ

1031:デフォルトの名無しさん
20/07/14 13:54:37.55 jW5p6F/e.net
プログラミングのお題スレ Part18
スレリンク(tech板)

1032:デフォルトの名無しさん
20/07/14 17:21:12.98 1/ePl1B5.net
>>994
解答締め切りと採点と答え合わせは?
ちゃんとフラグ回収してよね

1033:デフォルトの名無しさん
20/07/15 12:20:15.70 2zn904g+.net
お題: 過去スレからお題と回答を抽出し、検索できるようにしろ

1034:デフォルトの名無しさん
20/07/15 14:13:59.93 fkxllX2L.net
>>997
print "ろくなお題もまともな回答もありませんでした。"

1035:蟻人間
20/07/16 05:51:13.84 Tv2xtriA.net
お題: 三次元タートルグラフィックスを実装し、森林・臓器・シェルピンスキーの立体ギャスケットのいずれかを描画せよ。
奥行きの表現には任意の遠近法か任意のレンダリングエンジンを使うこと。
【実装例】
walk(長さ) // 現在のペンの状態で現在の方向へ前進する
set_pos(x, y, z) // 位置をセット
pos = get_pos() // 現在位置を保存
set_dir(dx, dy, dz) // 方向ベクトルをセット
dir = get_dir() // 現在の方向を保存
turn(dx, dy, dz) // 向きを調整(方向ベクトルを回転)
pen_on() // ペンを下ろす(描画を開始)
pen_off() // ペンを上げる(描画を止める)

1036:デフォルトの名無しさん
20/07/16 06:23:09.04 33WC3be6.net
うめ

1037:デフォルトの名無しさん
20/07/16 06:23:13.93 33WC3be6.net
うめ

1038:デフォルトの名無しさん
20/07/16 06:23:45.03 33WC3be6.net
うめ

1039:デフォルトの名無しさん
20/07/16 06:24:07.53 33WC3be6.net
次スレ
プログラミングのお題スレ Part18
スレリンク(tech板)

1040:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 125日 4時間 41分 20秒

1041:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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