- 1 名前:デフォルトの名無しさん [2020/03/13(金) 01:42:47.06 ID:0rEhys36.net]
- プログラミングのお題スレです。
【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 結果がある場合はそれも 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part16 https://mevius.5ch.net/test/read.cgi/tech/1573948822/
- 902 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 20:54:30.86 ID:H09Mliia.net]
- >>867
scalarを自作8192bit floatライブラリにして計算しました 全部はれなかったのではれたぶんだけ 探索方法は全く同じです 頂点座標は体積最大値の半分くらいの桁数で求まるようです 今回は速度が問題にならなかったので力業のままで 8面体は自力で面の構成を考えたけど 9面以上はコンピューターに考えさせないとキビシイかな?
- 903 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 21:00:40.76 ID:haT7GszX.net]
- >>864
お見事です ま、頂点の座標があったら図を描くのも難しくはないですけどね i.imgur.com/JxLdedg.gif
- 904 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 21:12:57.61 ID:6LTYSgwt.net]
- >>870
はヘェ〜スゲーな〜 どんな勉強したらこんなの解けるんだろ 理屈の解説は>>864のコードを読み解くしか無いですかね? 頂点を求める考え方や手順の解説お願いします。
- 905 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 21:20:14.56 ID:ywP+aDtr.net]
- 6角柱がハズレだとわかった後
6分で思い付いた形 すごいでしょ? さすが数オリ経験者の東大数学科卒
- 906 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 22:01:32.78 ID:6LTYSgwt.net]
- >>872
>843-844は6分かも知れないけど 出題から3時間後>>840で答えてるのは 答えを知ってたのでは? 何処で習うんだか、というか有名な立体でプラトン
- 907 名前:とか名前付いてたりするんかな []
- [ここ壊れてます]
- 908 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 22:38:07.50 ID:haT7GszX.net]
- >>869
>8面体は自力で面の構成を考えたけど >9面以上はコンピューターに考えさせないとキビシイかな? そうねえ。 面の構成まで計算できたら汎用性があっていいし、何より「本当にコレで最大なのか?」ってとこで悩まなくてもいいですね
- 909 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 02:39:55.37 ID:2efcKYf6.net]
- >>872
すごいって言われたい症候群 mevius.5ch.net/test/read.cgi/tech/1573948822/304,686-687,844,891,892 コンプレックスの裏返しで自演 心療内科行け
- 910 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 09:06:18.02 ID:AV9cNEOe.net]
- 私にもファンが出来たか
5か月前の書き込みを覚えていてくれるとは では次5か月後にあらわれます
- 911 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 11:29:01.03 ID:B51+AHJt.net]
- このスレにキチガイがいるな
- 912 名前:540 mailto:sage [2020/06/13(土) 11:52:25.11 ID:P7Ehsk1I.net]
- >>837 Perl5、こういうプログラムでは日にち曜日計算を自分で考える前に、いつも使っているモジュールの利用をすぐ思い浮かんでしまう
for (qw{02 03 07 10 14 17 21 24 28 30 31}) { $date = "2020-05-$_"; $t = Time::Piece->strptime($date, '%Y-%m-%d'); $n = 1 + int($t->mday / 7); $dw = $n . $t->day(qw{日 月 火 水 木 金 土}); $t1 = $t - ONE_DAY * ($t->mday - 1); $wk = 1 + int(($t->mday + $t1->_wday - 1) / 7); print "$date: 第$wk週目の第$dw曜日です。\n"; } 実行結果 ~ $ perl 17_834_date_week_day.pl 2020-05-02: 第1週目の第1土曜日です。 2020-05-03: 第2週目の第1日曜日です。 2020-05-07: 第2週目の第2木曜日です。 2020-05-10: 第3週目の第2日曜日です。 2020-05-14: 第3週目の第3木曜日です。 2020-05-17: 第4週目の第3日曜日です。 2020-05-21: 第4週目の第4木曜日です。 2020-05-24: 第5週目の第4日曜日です。 2020-05-28: 第5週目の第5木曜日です。 2020-05-30: 第5週目の第5土曜日です。 2020-05-31: 第6週目の第5日曜日です。
- 913 名前:540 mailto:sage [2020/06/13(土) 14:11:48.60 ID:+1OrBM6u.net]
- >>878
先頭に use Time::Piece; use Time::Seconds; が抜けてたてorz
- 914 名前:デフォルトの名無しさん [2020/06/13(土) 20:11:04.26 ID:0DJnKnE8.net]
- >>837
Java https://paiza.io/projects/8qXLWkOSbm0Wi9qDDgyTZA
- 915 名前:デフォルトの名無しさん [2020/06/14(日) 16:08:51 ID:uU7ZglUF.net]
- お題
フィボナッチ数列のN番目の項を求めよ。 ただし非常に大きなNにも対応するために計算量をO(logN)に抑える事。
- 916 名前:デフォルトの名無しさん [2020/06/14(日) 16:39:40 ID:OziIXX0s.net]
- >>881
最速のフィボナッチ数計算を考える | 雑記帳 https://blog.miz-ar.info/2019/01/fast-fibonacci/ 行列でも使えばいいの?
- 917 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 16:56:58.68 ID:ajoLWV+R.net]
- >>881 perl
use bigint; $ap = $am = $bp = $b0 = 1; $a0 = $bm = 0; for($m = $N = $ARGV[0]; $m ;$m /= 2) { ($ap, $a0, $am) = ($ap * $bp + $a0 * $b0, $ap * $b0 + $a0 * $bm, $a0 * $b0 + $am * $bm) if $m % 2; ($bp, $b0, $bm) = ($bp * $bp + $b0 * $b0, $bp * $b0 + $b0 * $bm, $b0 * $b0 + $bm * $bm) } print "F_$N = $a0\n";
- 918 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/06/14(日) 17:02:48 ID:VVtwWz8i.net]
- お題:
https://google.com/robots.txt をダウンロードするプログラム。
- 919 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:10:27 ID:ajoLWV+R.net]
- >>881 Perl
# 簡略化 use bigint; $am = $b0 = 1; $a0 = $bm = 0; for($m = $N = $ARGV[0]; $m ;$m /= 2) { $a0b0 = $a0 * $b0; $b0b0 = $b0 * $b0; ($a0, $am) = ($a0b0 + $am * $b0 + $a0 * $bm, $a0b0 + $am * $bm) if $m % 2; ($b0, $bm) = ($b0b0 + 2 * $b0 * $bm, $b0b0 + $bm * $bm) } print "F_$N = $a0\n";
- 920 名前:デフォルトの名無しさん [2020/06/14(日) 17:17:33.08 ID:shDbklTU.net]
- >>884
Java https://paiza.io/projects/BGptgg_BylJmzHj6K6Savw
- 921 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/06/14(日) 17:41:46 ID:fnlUHuFp.net]
- >>884 C++/Win32
#include <windows.h> #include <urlmon.h> #include <stdio.h> int main(void) { CoInitialize(NULL); HRESULT hr = URLDownloadToFileA(NULL, "google.com/robots.txt", "robots.txt", 0, NULL); if (SUCCEEDED(hr)) puts("OK"); else puts("No good"); CoUninitialize(); return 0; }
- 922 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:45:17.97 ID:ajoLWV+R.net]
- なおNが大きくなると扱う数の桁数がNに比例して増える
よって>>885の乗算の回数はO(logN)であるが、 計算量はO(logN)に抑えることはできない おそらくO(N^2)とか、乗算を効率化してもO(N*(logN)^2)あたりではないか
- 923 名前:download.html mailto:sage [2020/06/14(日) 17:50:45 ID:iw/MaqZh.net]
- >>884 HTML
<a href="https://google.com/robots.txt" download="https://google.com/robots.txt">https://google.com/robots.txtのダウンロード</a>
- 924 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 03:05:29.95 ID:7TtRjdEi.net]
- お題: (835の類題)表面積が1平米である九面体のうち、体積が最大となる立体について、その体積の値を15桁以上の精度で計算せよ。
※ 立体の形状をあらかじめ限定しないアルゴリズムがあればなお良い。
- 925 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 03:19:03.34 ID:fk9hS06M.net]
- >>887 標準コマンド
Windows 10 だったら多くのOSと同様に標準で curl が使えるから curl -LO https://google.com/robots.txt
- 926 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 03:46:31.62 ID:MkSPN7gS.net]
- >>884
#!/bin/sh wget https://google.com/robots.txt
- 927 名前:デフォルトの名無しさん [2020/06/15(月) 03:55:40.44 ID:MkSPN7gS.net]
- >>884
Kotlin script java.net.URL("https://google.com/robots.txt").openConnection().inputStream.bufferedReader().lineSequence().forEach(::println) script じゃなくてもほぼ同じ。main() の中に入れるだけ。
- 928 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 06:06:01.39 ID:C/NDiCRq.net]
- >>884 Ruby
require 'open-uri' $><<open('https://google.com/robots.txt').read
- 929 名前:540 mailto:sage [2020/06/15(月) 21:52:43.85 ID:rjrfpKII.net]
- >>884 Perl5
use LWP::Simple; use LWP::Protocol::https; print mirror('https://google.com/robots.txt', './robots.txt'), "\n"; 実行結果 ~ $ perl 17_881_https_mirror_robots_txt.pl 200 ~ $ ls -o robots.txt -rw-r--r-- 1 user 7035 Jun 9 03:00 robots.txt
- 930 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 07:19:50.29 ID:sd/vvo+p.net]
- >>662
https://ideone.com/dJhsj8 10日以上回してようやく229の次が出た 先頭から30個は以下。A098044 の記載とも一致 7, 13, 19, 37, 43, 79, 163, 223, 229, 608981812891, 608981812951, 608981812993, 608981813507, 608981813621, 608981813819, 608981813837, 608981813861, 608981813929, 608981813941, 608981814019, 608981814143, 608981814247, 608981814823, 608981814829, 608981815027, 608981815051, 608981815069, 608981816791, 608981816803, 608981816893
- 931 名前:デフォルトの名無しさん [2020/06/19(金) 07:48:33.21 ID:fUKeUVUY.net]
- >>896
VPSは10コアぐらい使いましたか? それにしても興味深い
- 932 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 19:45:31.37 ID:sd/vvo+p.net]
- >>897
いや、コード見てもらったら
- 933 名前:かるようにシングルスレッドです。
工夫して並列化したらコアの数だけ高速化できる余地はあるので 誰かやってみてほしいですよ。 計算を続けると6千億台に1万個以上解が見つかります。 [] - [ここ壊れてます]
- 934 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 20:32:41.02 ID:i/tLMeO3.net]
- 連続した数調べるならエラトステネスの篩したほうが速いんじゃないの
- 935 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 20:58:48.38 ID:ZwD0GWBA.net]
- だね
シングルスレッドで1時間くらいで>>896
- 936 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 21:30:26.89 ID:K9F3G5pm.net]
- 篩を使った方法は>>648(修正>>698)
こんなん1時間でいける?
- 937 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 21:45:20 ID:Zkd+c+DW.net]
- >>899
えっともしかしてそれは 6000億ちょっとの要素数の配列を扱うと言ってますか?
- 938 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 21:47:33.79 ID:i/tLMeO3.net]
- >>902
言ってません
- 939 名前:デフォルトの名無しさん [2020/06/19(金) 22:02:05.91 ID:eY6TPFbX.net]
- 6000億ちょっとの要素数の配列を扱います
- 940 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 23:21:23.40 ID:f1v5pXiA.net]
- エラとステネスの篩はビット単位で判定させれば8分の1の要素数で済む
もっと効率化すれば32分の1くらいになったはず まぁそれでも億単位の要素を使うわけだけど
- 941 名前:◆QZaw55cn4c mailto:sage [2020/06/19(金) 23:38:14 ID:G1hCl5k3.net]
- 私なら篩を一定の大きさに制限して窓として扱い、
試し割り法と併用しますね https://ideone.com/6Ww9nq https://mevius.5ch.net/test/read.cgi/tech/1580471646/245
- 942 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 01:08:51.20 ID:0ygWeZMr.net]
- >>896
そのまま解を検索してみたけど、610968213803 から先は解が見つからなくなった 次はいくつになるかをお題にしてもいいかもね
- 943 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 01:10:45.21 ID:MHLwREvd.net]
- ほとんどの6000億幅が取れない人は、"区間ふるい"で.
「1億の6千回」か「10億の600回」でやるのが現実的(平方分割的感性が必要?) 実際に1億でやってみたら、2時間ほどかかった。 ideonは時間の関係で1億配列にして、 最初と(ログから)最後の1億をやっている。 https://ideone.com/Ikn4qW
- 944 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 01:11:48.05 ID:0ygWeZMr.net]
- >>899
いや 篩も試してみたけどやっぱりBPSW法が速かったよ それと単純に割り算の繰り返しで試すより面白そうだったってのもある
- 945 名前:蟻人間 mailto:sage [2020/06/20(土) 05:31:40.42 ID:vazH2EW2.net]
- お題: 整数を記入可能な空欄の横3×縦3マスが格子状に並んでいる。左からh+1番目で上からk+1番目のマスに書かれている整数を「C(h, k)」と表すことにする。
ただし、空欄のときやマスの範囲外の場合は「C(h, k)」はゼロとする。 C(h, k)の位置に整数mを鉛筆で記入する手続きを「P(h, k, m)」と表すことにする。 手続きにおいてはC(h, k)は入れ子を許し、演算子+と-は通常の足し算と引き算を意味するものとする。 (1) 次の手続きのリストを順に実行し、結果を表示せよ。 P(0, 0, 1), P(1, 0, C(0, 0)+2), P(2, 0, C(1, 0)-1), P(C(1, 0)-1, C(0, 0)+C(2, 0)-2, 5), P(2, 2, C(2, 1)-2). 空欄はゼロで表すものとする。
- 946 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 09:09:47 ID:0ygWeZMr.net]
- >>909
前言撤回。>>908のように篩でやったほうが格段に速い。そりゃそうだよね。
- 947 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 17:19:16.03 ID:GQVtnPwK.net]
- お題: C
- 948 名前:SVをパースせよ
例 入力: 1,abc,"def ghi",4 2,abc,"def ghi",4 出力: [[1, "abc", "def\nghi", 4], [2, "abc", "def\nghi", 4]] [] - [ここ壊れてます]
- 949 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 19:02:03.24 ID:9Ucc31bE.net]
- >>912 Ruby
require 'csv' $><<CSV.parse($<.read)
- 950 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 19:12:10.98 ID:q+GJbQMN.net]
- >>890
60面体まで出来ました 60面体にもなると 5角形と6角形だけからなるものだけでも 極大点が10個以上にもなって 本当に最大が探せてるのかいまいち確信は持てないんですが... 収束は速いので形の概要が分かれば高精度化は簡単です 14面体以上は全て 5角形が12面、残りが6角形の多面体が最大です
- 951 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 04:19:24.67 ID:tNtWnOVb.net]
- お題:多面体の面の構成を、以下のルールに従う面列で表現する。
頂点のリストで表現された面の集合(例:正四面体なら {[1,2,3],[1,3,4],[1,4,2],[4,3,2]})で多面体が与えられたとき、 それに対応する多面体の面列表現を出力せよ。 1. 3〜9角形の面の表現を t,q,p,x,h,o,n とする。10角形以上の面がある場合はエラーとしてよい。 2. 適当な面を選び、その面の表現をまず面列の先頭に置く。 3. 選ばれていない面が残っている場合は、それまでの面列の後にハイフンを置き、続けて、既に選ばれている面の外周に接する面を順に列挙する。 選ばれていない面がなくなるまでこのプロセスを繰り返す。 4. ハイフンの前後の面列の、それぞれ先頭の文字に対応する面は、互いに接しているものを選ぶ。 5. ハイフンで区切られた面列に、pppp のように繰り返し部分がある場合は、p4 のように繰り返し回数を数字で表す。 繰り返しの対象が単一の面でない場合は対象の前後に括弧を置く。この括弧は入れ子にできる。(t(xp)2)2 = txpxptxpxp (この括弧の中にハイフンを含めることはできない) 6. 可能な表現が複数ある場合は、表現に含まれるアルファベットの個数が最も少ない表現を採用する。 例) 三角錐: t-t3, 六角柱: x-q6-x, 正十二面体: p-p5-p5-p 切頂二十面体(サッカーボール形): p-x5-(xp)5-(px)5-x5-p
- 952 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 04:37:07.60 ID:+RECDQKB.net]
- >>915
そのルールでは任意の多面体を表現出来ないと思うんですが
- 953 名前:デフォルトの名無しさん mailto:sage [2020/06/25(Thu) 08:13:21 ID:XUZZkb7Y.net]
- だね
トポロジー的に球面限定だし その限定でも 4. が複数可能性があるから >>915の表現では一意に決まらない
- 954 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 08:24:29.35 ID:C/HPxaHa.net]
- >>912
これってエクセープサれた改行文字で渡されるのが標準的じゃない? 規格としてあるのかわからないけど
- 955 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 09:12:48.56 ID:Nd1uEPT+.net]
- >>918
RFCだと>>912は合法みたいね www.kasai.fm/wiki/rfc4180jp
- 956 名前:デフォルトの名無しさん [2020/06/25(Thu) 10:55:47 ID:fOnLoXil.net]
- 最初から区切り文字をエスケープする方法まで決まっていたらxmlなんて出てこなかったかもな
- 957 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 03:45:36.69 ID:PxUOhUZY.net]
- >>914
面の数が可変のものを作ってしまったか・・・ 20面体、32面体、42面体、72面体あたりが面白い形状だと思うよ
- 958 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 07:33:34.74 ID:TsX0h7IG.net]
- 14面体以上は全て5角形6角形のみで
あまり面白くない 対称性が良いか悪いかだけ 現在82面体 手抜きで一部計算オーダーが非常に悪い所があって進まなくなってきた (面数の5乗オーダー) 100面まで到達するにはコードを変えないとダメかも
- 959 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 16:25:32.02 ID:PxUOhUZY.net]
- 対称性が良ければ良いほど最大解となるかというとそうではない
八面体の解をみてもそれはわかるし 四十二面体の対称性の高いのは切稜十二面体だと思うが、解はそれとは違う 面の数の5乗というのは総当たりをしているのかな 高速化するには焼きなまし法等を使うといいのかと思うがどうやるんだろう
- 960 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 22:18:45.29 ID:TsX0h7IG.net]
- 1面少ない体積最大の立体から1面足した形を探索
なので最大が突然変異すれば最大を見逃すかもしれない ランダムよりは効率が良さそう 構造計算のオーダーが4乗 ここはおそらく2乗くらいに減らせると思う 極大の収束は良くある微分を使うやつ 収束時も毎回構造計算してるけど (ほぼ)同じ構造であるのでオーダーは1乗に減らせる
- 961 名前:デフォルトの名無しさん mailto:sage [2020/06/27(土) 22:21:59.32 ID:TsX0h7IG.net]
- 形自体はもう面白くないので
改善はしないかも むしろ体積が小さい極大の方がいろんな形になって面白い
- 962 名前:デフォルトの名無しさん mailto:sage [2020/06/28(日) 05:11:29.32 ID:pVjwcc2f.net]
- >>924
数値はこれと同じ? 9 0.076898933926867766 10 0.078734752898039751 11 0.080055026399577983 12 0.08168837182418255218049 13 0.082432267303420834 14 0.083349245941114841 16 0.084742718358283536 17 0.085264872589057683 20 0.086626966830007951 32 0.089493100466131958 33 0.089603827451613424 42 0.090574499972086386
- 963 名前:デフォルトの名無しさん mailto:sage [2020/06/28(日) 08:32:06.86 ID:BWJrAYP0.net]
- 同じ
- 964 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 11:38:56.92 ID:EROZsrNo.net]
- お題: 3つ以上の言語で動く"Hello World"(標準出力 改行有無不問)
- 965 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 14:23:15.09 ID:GoUt95hL.net]
- php htmlあとないかな
- 966 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 14:37:40.66 ID:xploYGSU.net]
- >>928
#! /usr/bin/perl print "Hello World"; #!/usr/bin/python print "Hello World" <?php print "Hello World"; ?>
- 967 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 17:33:04.53 ID:S7tqJ4vi.net]
- >>928
$ cc hw.c && ./a.out Hello, World! $ bash hw.c Hello, World! $ perl hw.c Hello, World! $ cat hw.c #if 0 /* / 2>\/dev\/null print() { echo Hello, World! } 2>\/dev\/null /; #*/ #endif #include <stdio.h> #define print main() { printf ("Hello, World!\n"); } char *p = print "Hello, World!\n";
- 968 名前:デフォルトの名無しさん mailto:sage [2020/07/01(水) 19:07:27.63 ID:QxhyVLlq.net]
- >>928 面白いね。俺の回答はつまらんけど
$ cat hello_world print("Hello World!")' $ruby hello_world Hello World! $perl hello_world Hello World! $python hello_world Hello World!
- 969 名前:デフォルトの名無しさん [2020/07/02(木) 11:54:56.14 ID:xIvurPw0.net]
- お題: CSV を、JSON に変換せよ
あ,い 1,2 [ ["あ","い"], ["1","2"] ] Convert CSV to JSON https://www.convertcsv.com/csv-to-json.htm
- 970 名前:デフォルトの名無しさん [2020/07/02(木) 12:21:40.12 ID:4foKXCae.net]
- あ,い
1,2 2, 3 ↓ [ { "あ": 1, "い": 2 }, { "あ": 2, "い": 3 } ] とかじゃないんだな ❯ node > const csv2json = text => text.trim().split('\n').map(line => line.split(',')) undefined > text = ` あ,い 1,2` > csv2json(text) [ [ 'あ', 'い' ], [ '1', '2' ] ]
- 971 名前:930 [2020/07/03(金) 09:48:22.31 ID:hVBUXcHj.net]
- CSV は、ヘッダー行なしの設定です!
- 972 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:42:26.88 ID:xFbPiC8b.net]
- >>933 Ruby
require 'csv' require 'json' puts CSV.parse($<.read).to_json # => [["あ","い"],["1","2"]]
- 973 名前:デフォルトの名無しさん [2020/07/05(日) 05:09:15 ID:w1OPzoRS.net]
- >>933
sh というか awk というか ( echo あ,い ; echo 1,2 ) | awk -F, 'BEGIN{print "["} { printf "[\"%s\"", $1; for (i = 2; i <= NF; i++) printf ",\"%s\"", $i; print "]"} END{print "]"}'
- 974 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 05:13:48 ID:w1OPzoRS.net]
- >>933
>>937はレコードごとのカンマが抜けてた。ちょっと修正。 ( echo あ,い ; echo 1,2 ) | awk -F, 'BEGIN{print "["} {if(NR>1)print","; printf "[\"%s\"", $1; for (i = 2; i <= NF; i++) printf ",\"%s\"", $i; printf "]"} END{print "\n]"}'
- 975 名前:デフォルトの名無しさん [2020/07/05(日) 19:57:21.17 ID:MQ9nuMmc.net]
- >>912
Java https://paiza.io/projects/u9iPzIR3Jul90BQ8JQR9iA
- 976 名前:デフォルトの名無しさん [2020/07/05(日) 22:13:54 ID: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 名前:デフォルトの名無しさん [2020/07/10(金) 21:08:49.94 ID:+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 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:44:08.13 ID:60oNEnIZ.net]
- チューリングマシンなのにPythonとは?
意味不明だ
- 979 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:48:42.38 ID:KPNFpi8s.net]
- メモリが無限にないので作れましぇん><
- 980 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:50:41.57 ID:60oNEnIZ.net]
- 正方形の面積を求める問題に対して
この世に正方形なんて存在しないから求められません とか言っちゃう系?
- 981 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:51:57.60 ID:KPNFpi8s.net]
- 比喩がとんちんかんだぞ
今回は「チューリングマシンも自作すること」って明言されてますやん
- 982 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:56:32.56 ID:8xOOoQBu.net]
- 自作チューリングマシンを Pythonの改行15回程度で作れって?神だわ
- 983 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:57:52 ID:60oNEnIZ.net]
- 動作を規定すればよくて
実際に動く機械を作る必要はない
- 984 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:59:10 ID:60oNEnIZ.net]
- と思ったが
Pythonでエミュレーターを作れって事か?
- 985 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:00:00.07 ID:60oNEnIZ.net]
- 別に無限にメモリがある必要は無いけど
実際に動くどんなプログラムにも限界がある
- 986 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:01:06.17 ID:KPNFpi8s.net]
- >>949
メモリが有限だったらチューリングマシンとはいいましぇん><
- 987 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:01:59.62 ID:2Qc0/uE/.net]
- 適当な言語で状態遷移機械つくればええんちゃう
- 988 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:02:26.85 ID:8xOOoQBu.net]
- しかもCSVパーサーって
つまりはPython15行でExcelを再現しろと?
- 989 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:13:26.90 ID:6CWHpJ6z.net]
- >>941の生成言語
CSV → COL | COL ',' CSV COL → '"' WCOM '"' | NCOM WCOM → ε | 'a' WCOM | ',' WCOM | '\' '"' WCOM NCOM → ε | 'a' NCOM | '\' '"' NCOM 状態セル10個前後でいけそう
- 990 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:46:36.38 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 13:08:54.01 ID:WonOAWfv.net]
- チューリングマシンわからんけどめっちゃ面白そう
- 992 名前:デフォルトの名無しさん [2020/07/11(土) 13:14:56.54 ID:JFnadz6+.net]
- オートマトンを使ってってことなのね、なるほど
- 993 名前:デフォルトの名無しさん [2020/07/11(土) 13:56:56.88 ID:R3MTOjCq.net]
- >>954
チューリングマシンを使っていないのでだめだ そのオートマトンは文脈依存文法どころか文脈自由文法すら対応していない これら全てに対応出来てこそチューリングマシンだ (このことは将来エラーリカバリーを考える上で、重要になると思っている) つまりテープヘッドは左右に動き状態関数でそれを指示出来る(文脈自由文法に対応) チューリングマシンは受理状態を指定出来る 今回、状態の数は受理状態を省略して5個でいける(もっと少なく出来るかもしれんが) 状態関数は状態5*記号4のマトリックスを考えて、その中の12個を埋めればいい
- 994 名前:デフォルトの名無しさん [2020/07/11(土) 16:08:31.89 ID:R3MTOjCq.net]
- 訂正
×状態関数 ◯状態遷移関数
- 995 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 16:29:47.46 ID:2Qc0/uE/.net]
- >>957が正解を出してくれるんだそうだ
- 996 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 16:36:53.77 ID:rnrtUK1e.net]
- 例を出してくれ
- 997 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 17:01:50.43 ID:KPNFpi8s.net]
- そもそも作問の時点でおかしいんだよ!
- 998 名前:デフォルトの名無しさん [2020/07/11(土) 17:09:33 ID:R3MTOjCq.net]
- >>961
どこがおかしい? 線形有界オートマトンといえば納得するか? そんな言葉使わなくても実装出来る と言うかこのスレにこの言葉知ってる奴いないだろ
- 999 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 17:49:01.47 ID:3Cd1PF49.net]
- 焉んぞ牛刀を用いん
- 1000 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 17:53:42.33 ID:60oNEnIZ.net]
- チューリングマシンの設計じゃなくて
チューリングマシンエミュレーターの設計だよな
- 1001 名前:デフォルトの名無しさん [2020/07/11(土) 18:17:04 ID:R3MTOjCq.net]
- >>954
\aやらを認めてるのが気になるがそれを直したら遷移関数はあってるな 後はチューリングマシンとして完成させるだけ 俺の遷移関数に冗長があったから直したら一致した >>963 HTMLは文脈自由文法だが WebKitのHTMLパーサーは非文脈自由文法として実装されている そこでチューリングマシンが有用かはさせおき、非文脈自由文法を考えるキッカケになることもある思う >>964 エンドマーカーを省略した線形有界オートマトンの実装な
- 1002 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 19:08:07.36 ID:2M7rjl8q.net]
- >>950
解ける問題に制限ができるだけの話
- 1003 名前:デフォルトの名無しさん [2020/07/11(土) 20:23:08.26 ID:feKeXoV6.net]
- そういやチューリングってゲイだったんだってね。
- 1004 名前:デフォルトの名無しさん [2020/07/11(土) 20:30:57.47 ID:JFnadz6+.net]
- イミテーション・ゲームという映画が面白かった
キーラ・ナイトレイ美しすぎ
- 1005 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 20:51:48.92 ID:qWNdyupY.net]
- チューリング、イギリスのお札になるってよ
- 1006 名前:デフォルトの名無しさん [2020/07/13(月) 10:36:22.79 ID:0ATtS2UF.net]
- お題
日本将棋連盟のサイトにあるレーティングで AとBが対戦してAが勝った場合のA、Bの 新しいレーティングを求める。
- 1007 名前:デフォルトの名無しさん mailto:sage [2020/07/13(月) 12:03:42.96 ID:JZTlaHWi.net]
- お題じゃなくてツール作成依頼でしょ?
- 1008 名前:デフォルトの名無しさん mailto:sage [2020/07/13(月) 17:09:42.48 ID:aaJV9hNQ.net]
- 解答を持ちあわせていて、ただドヤりたいだけのスレなのに?
解答期限をつけるべきだと思う
- 1009 名前:デフォルトの名無しさん mailto:sage [2020/07/13(月) 20:25:51.06 ID:8wNaSmrQ.net]
- >>972
そんなドヤお題最近あったか?
- 1010 名前:デフォルトの名無しさん [2020/07/13(月) 21:28:01.53 ID:UGEHS+NK.net]
- イロレーティングの実装ってことでいいのかな?
だとするとあまりに簡単すぎないか? 漢字覚えるのに上からなぞるだけみたいな問題だと思った 考える要素が皆無でもこのスレの趣旨に反しないのか? 現にイロレーティングの実装なんかググったらすぐ見つかるわけだし。 そんなんでもいいんだったらいくらでも出せる。組合せ最適化問題の本に書かれているのそのまま出せばいいわけだし。 後、入力が何で出力が何で、どれくらいで実装できるものか書いてくれたら分かりやすくなると思う
- 1011 名前:デフォルトの名無しさん mailto:sage [2020/07/13(月) 21:54:58 ID:nR5el41K.net]
- 結果後の数値出すだけだから2つの数値受け取って計算して出力するだけでしょ
三角形の面積を求めよ、と同じ問題 計算式知ってるか、ググれるかだけ
- 1012 名前:蟻人間 mailto:sage [2020/07/13(月) 22:30:47.09 ID:WwiIS8F6.net]
- お題: 九九の表の1×1〜9×9をSQLデータベースに書き出せ。
- 1013 名前:蟻人間 mailto:sage [2020/07/13(月) 22:53:17.28 ID:WwiIS8F6.net]
- お題: サイン関数の表をSQLテーブルに出力し、そのテーブルへのSQL問い合わせを使ってサイン関数を再現する関数を作れ。精度はテキトーで構わない。
- 1014 名前:デフォルトの名無しさん [2020/07/13(月) 23:56:34.26 ID:UGEHS+NK.net]
- テイラー展開でいいの?
- 1015 名前:蟻人間 mailto:sage [2020/07/13(月) 23:57:43.03 ID:WwiIS8F6.net]
- >>978
お好きなように。
- 1016 名前:デフォルトの名無しさん [2020/07/14(火) 00:00:00.37 ID:5rX6+9jh.net]
- >>977
出来たけど5chはSQLは貼れないのかな?w 間違ったSQLインジェクション対策なのかもw
- 1017 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 00:08:27.23 ID:kYSYwo9X.net]
- SELECT * FROM threads;
- 1018 名前:デフォルトの名無しさん [2020/07/14(火) 00:08:30.45 ID: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 名前:蟻人間 mailto:sage [2020/07/14(火) 00:09:09.45 ID:rFkkEmf3.net]
- >>980
ideoneかcodepadを
- 1020 名前:蟻人間 mailto:sage [2020/07/14(火) 00:19:29.80 ID:rFkkEmf3.net]
- 原始的なSQL injection対策か?
- 1021 名前:デフォルトの名無しさん [2020/07/14(火) 01:07:26 ID:5rX6+9jh.net]
- >>976
やっぱりSQL貼れないねぇ 答え:PostgreSQLで確認 codepad.org/qGD8d2IU ※会員登録してないからそのうち消える
- 1022 名前:デフォルトの名無しさん [2020/07/14(火) 03:12:25.26 ID:5rX6+9jh.net]
- >>977
これもしかしてサイン関数の表は荒いから補完法を使ってサイン関数を作れって意味だったのかなー
- 1023 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 05:10:48.70 ID:kYSYwo9X.net]
- テーブル作らなくても行けそうだと思ったけど必要なのか
- 1024 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 06:05:28.09 ID: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 名前:デフォルトの名無しさん [2020/07/14(火) 06:24:26 ID:5rX6+9jh.net]
- >>977
問題の意味がよく分からなかったけど、荒いsine関数表を元に補間法によって任意の値に対するsine関数を完成させろという意味なら出来た PostgreSQL用 codepad.org/Z81nscIT ※会員登録してないからそのうち消える
- 1026 名前:デフォルトの名無しさん [2020/07/14(火) 06:36:16.97 ID:5rX6+9jh.net]
- >>977
>>989をちょっと修正した codepad.org/ZdYWwgrm
- 1027 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 07:41:02.95 ID: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 名前:デフォルトの名無しさん [2020/07/14(火) 11:28:46.13 ID:5rX6+9jh.net]
- >>941のお題は誰も解答しないの?
- 1029 名前:デフォルトの名無しさん [2020/07/14(火) 11:59:10.89 ID:q9pbneb4.net]
- >>977
>>990のコメント部分の修正とコメント追加 codepad.org/7HANT66s
- 1030 名前:蟻人間 mailto:sage [2020/07/14(火) 12:43:06.54 ID:xUpKMtHj.net]
- そろそろ次スレ
- 1031 名前:デフォルトの名無しさん mailto:sage [2020/07/14(火) 13:54:37.55 ID:jW5p6F/e.net]
- プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
- 1032 名前:デフォルトの名無しさん [2020/07/14(火) 17:21:12.98 ID:1/ePl1B5.net]
- >>994
解答締め切りと採点と答え合わせは? ちゃんとフラグ回収してよね
- 1033 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 12:20:15.70 ID:2zn904g+.net]
- お題: 過去スレからお題と回答を抽出し、検索できるようにしろ
- 1034 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 14:13:59.93 ID:fkxllX2L.net]
- >>997
print "ろくなお題もまともな回答もありませんでした。"
- 1035 名前:蟻人間 mailto:sage [2020/07/16(木) 05:51:13.84 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 06:23:09.04 ID:33WC3be6.net]
- うめ
- 1037 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 06:23:13.93 ID:33WC3be6.net]
- うめ
- 1038 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 06:23:45.03 ID:33WC3be6.net]
- うめ
- 1039 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 06:24:07.53 ID:33WC3be6.net]
- 次スレ
プログラミングのお題スレ Part18 https://mevius.5ch.net/test/read.cgi/tech/1594702426/
- 1040 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 125日 4時間 41分 20秒
- 1041 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|