プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part16
https://mevius.5ch.net/test/read.cgi/tech/1573948822/
探検
プログラミングのお題スレ Part17
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2020/03/13(金) 01:42:47.06ID:0rEhys36851デフォルトの名無しさん
2020/06/12(金) 08:48:13.07ID:2niDl6+V852デフォルトの名無しさん
2020/06/12(金) 08:49:21.18ID:2niDl6+V 8面体が解決したら次は9面体
8面も最大の証明は難しいけど
8面も最大の証明は難しいけど
853デフォルトの名無しさん
2020/06/12(金) 11:36:58.81ID:haT7GszX854デフォルトの名無しさん
2020/06/12(金) 12:49:26.30ID:Q2+Sd6Nx しまった
係数 (1/3) がdoubleのままだったんでdouble精度になってしまった
係数 (1/3) がdoubleのままだったんでdouble精度になってしまった
855デフォルトの名無しさん
2020/06/12(金) 12:50:37.41ID:Q2+Sd6Nx 家に帰ったらdouble版をアップします
ひたすら乱数探索
ひたすら乱数探索
856デフォルトの名無しさん
2020/06/12(金) 15:14:32.23ID:6Yfh5mGy857デフォルトの名無しさん
2020/06/12(金) 17:08:36.60ID:M5MGuP1h >>856
それも凸じゃないだろ
それも凸じゃないだろ
858デフォルトの名無しさん
2020/06/12(金) 17:09:01.45ID:M5MGuP1h あ、すまん、そういうことかw
859デフォルトの名無しさん
2020/06/12(金) 17:33:15.44ID:6Yfh5mGy ´+ω+`
860デフォルトの名無しさん
2020/06/12(金) 18:47:56.69ID:kFexpNJ3 >>826
Ruby で
text = <<'TEXT' # \ を解釈しない
フグ亜目
フグ亜目\ハリセンボン科
フグ亜目\ハリセンボン科\ハリセンボン属
フグ亜目\ハリセンボン科\ハリセンボン属\ハリセンボン
フグ亜目\マンボウ科
フグ亜目\マンボウ科\クサビフグ属
フグ亜目\マンボウ科\クサビフグ属\クサビフグ
フグ亜目\マンボウ科\マンボウ属
フグ亜目\マンボウ科\マンボウ属\ウシマンボウ
フグ亜目\マンボウ科\マンボウ属\カクレマンボウ
フグ亜目\マンボウ科\マンボウ属\マンボウ
フグ亜目\マンボウ科\ヤリマンボウ属
フグ亜目\マンボウ科\ヤリマンボウ属\ヤリマンボウ
TEXT
text.each_line.inject( [ ] ) do | prev, line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する
words = line.split( "\\" )
words.zip( prev ).each_with_index do |ary, idx|
if ary[ 0 ] != ary[ 1 ] # 1つ前の要素と、異なっていたら
puts " " * idx + ary[ 0 ] # インデント
break
end
end
words
end
Ruby で
text = <<'TEXT' # \ を解釈しない
フグ亜目
フグ亜目\ハリセンボン科
フグ亜目\ハリセンボン科\ハリセンボン属
フグ亜目\ハリセンボン科\ハリセンボン属\ハリセンボン
フグ亜目\マンボウ科
フグ亜目\マンボウ科\クサビフグ属
フグ亜目\マンボウ科\クサビフグ属\クサビフグ
フグ亜目\マンボウ科\マンボウ属
フグ亜目\マンボウ科\マンボウ属\ウシマンボウ
フグ亜目\マンボウ科\マンボウ属\カクレマンボウ
フグ亜目\マンボウ科\マンボウ属\マンボウ
フグ亜目\マンボウ科\ヤリマンボウ属
フグ亜目\マンボウ科\ヤリマンボウ属\ヤリマンボウ
TEXT
text.each_line.inject( [ ] ) do | prev, line | # 1行ずつ処理する
line.chomp! # 末尾の改行を削除する
words = line.split( "\\" )
words.zip( prev ).each_with_index do |ary, idx|
if ary[ 0 ] != ary[ 1 ] # 1つ前の要素と、異なっていたら
puts " " * idx + ary[ 0 ] # インデント
break
end
end
words
end
861デフォルトの名無しさん
2020/06/12(金) 19:40:29.35ID:ywP+aDtr862デフォルトの名無しさん
2020/06/12(金) 19:41:47.16ID:ywP+aDtr 0.07434486809322999110989619368561104639139465256280075733904874421666917664911993460556242342418454035329397732967289108376252183488881295875664070934129575634827025621624683049348057877455258195173727352356013738382644505372784969303844994902036116602401810098334065219605813513311533511174260033990459633153548001338432276618035960031832154258304694684989102438831680515365572871146875031327576991273892059152446734535128273692394822907010528329236904909366291990338992899295703583566824654618008406013296199027300917662863617783075767465771504776626571228664315942541587700314169499095063254202509152441676340208925338471982724370712866011599553438930619611265418988185782338154673314730488687674137034907531619005947724301353643581914084747714077649289547685930833278053943700887036591347108420548965969583488831450816524757283812848039192907796866305854763801905888387806167102792468923
863デフォルトの名無しさん
2020/06/12(金) 20:27:51.93ID:pHzA75h5 ルートとか使うと何の値なの
864デフォルトの名無しさん
2020/06/12(金) 20:28:24.27ID:Wrm78wlA865デフォルトの名無しさん
2020/06/12(金) 20:32:58.85ID:6LTYSgwt ´°Д°`いったいどんな形なんだ
866デフォルトの名無しさん
2020/06/12(金) 20:54:30.86ID:H09Mliia >>864
scalarを自作8192bit floatライブラリにして計算しました
全部はれなかったのではれたぶんだけ
探索方法は全く同じです
頂点座標は体積最大値の半分くらいの桁数で求まるようです
今回は速度が問題にならなかったので力業のままで
8面体は自力で面の構成を考えたけど
9面以上はコンピューターに考えさせないとキビシイかな?
scalarを自作8192bit floatライブラリにして計算しました
全部はれなかったのではれたぶんだけ
探索方法は全く同じです
頂点座標は体積最大値の半分くらいの桁数で求まるようです
今回は速度が問題にならなかったので力業のままで
8面体は自力で面の構成を考えたけど
9面以上はコンピューターに考えさせないとキビシイかな?
867デフォルトの名無しさん
2020/06/12(金) 21:00:40.76ID:haT7GszX868デフォルトの名無しさん
2020/06/12(金) 21:12:57.61ID:6LTYSgwt869デフォルトの名無しさん
2020/06/12(金) 21:20:14.56ID:ywP+aDtr 6角柱がハズレだとわかった後
6分で思い付いた形
すごいでしょ?
さすが数オリ経験者の東大数学科卒
6分で思い付いた形
すごいでしょ?
さすが数オリ経験者の東大数学科卒
870デフォルトの名無しさん
2020/06/12(金) 22:01:32.78ID:6LTYSgwt871デフォルトの名無しさん
2020/06/12(金) 22:38:07.50ID:haT7GszX >>866
>8面体は自力で面の構成を考えたけど
>9面以上はコンピューターに考えさせないとキビシイかな?
そうねえ。
面の構成まで計算できたら汎用性があっていいし、何より「本当にコレで最大なのか?」ってとこで悩まなくてもいいですね
>8面体は自力で面の構成を考えたけど
>9面以上はコンピューターに考えさせないとキビシイかな?
そうねえ。
面の構成まで計算できたら汎用性があっていいし、何より「本当にコレで最大なのか?」ってとこで悩まなくてもいいですね
872デフォルトの名無しさん
2020/06/13(土) 02:39:55.37ID:2efcKYf6 >>869
すごいって言われたい症候群
http://mevius.5ch.net/test/read.cgi/tech/1573948822/304,686-687,844,891,892
コンプレックスの裏返しで自演
心療内科行け
すごいって言われたい症候群
http://mevius.5ch.net/test/read.cgi/tech/1573948822/304,686-687,844,891,892
コンプレックスの裏返しで自演
心療内科行け
873デフォルトの名無しさん
2020/06/13(土) 09:06:18.02ID:AV9cNEOe 私にもファンが出来たか
5か月前の書き込みを覚えていてくれるとは
では次5か月後にあらわれます
5か月前の書き込みを覚えていてくれるとは
では次5か月後にあらわれます
874デフォルトの名無しさん
2020/06/13(土) 11:29:01.03ID:B51+AHJt このスレにキチガイがいるな
875540
2020/06/13(土) 11:52:25.11ID:P7Ehsk1I >>834 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日曜日です。
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日曜日です。
877デフォルトの名無しさん
2020/06/13(土) 20:11:04.26ID:0DJnKnE8878デフォルトの名無しさん
2020/06/14(日) 16:08:51.18ID:uU7ZglUF お題
フィボナッチ数列のN番目の項を求めよ。
ただし非常に大きなNにも対応するために計算量をO(logN)に抑える事。
フィボナッチ数列のN番目の項を求めよ。
ただし非常に大きなNにも対応するために計算量をO(logN)に抑える事。
879デフォルトの名無しさん
2020/06/14(日) 16:39:40.62ID:OziIXX0s880デフォルトの名無しさん
2020/06/14(日) 16:56:58.68ID:ajoLWV+R >>878 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";
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";
881蟻人間 ◆T6xkBnTXz7B0
2020/06/14(日) 17:02:48.95ID:VVtwWz8i882デフォルトの名無しさん
2020/06/14(日) 17:10:27.96ID:ajoLWV+R >>878 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";
# 簡略化
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";
883デフォルトの名無しさん
2020/06/14(日) 17:17:33.08ID:shDbklTU884蟻人間 ◆T6xkBnTXz7B0
2020/06/14(日) 17:41:46.79ID:fnlUHuFp >>881 C++/Win32
#include <windows.h>
#include <urlmon.h>
#include <stdio.h>
int main(void)
{
CoInitialize(NULL);
HRESULT hr = URLDownloadToFileA(NULL,
"http://google.com/robots.txt",
"robots.txt",
0,
NULL);
if (SUCCEEDED(hr)) puts("OK");
else puts("No good");
CoUninitialize();
return 0;
}
#include <windows.h>
#include <urlmon.h>
#include <stdio.h>
int main(void)
{
CoInitialize(NULL);
HRESULT hr = URLDownloadToFileA(NULL,
"http://google.com/robots.txt",
"robots.txt",
0,
NULL);
if (SUCCEEDED(hr)) puts("OK");
else puts("No good");
CoUninitialize();
return 0;
}
885デフォルトの名無しさん
2020/06/14(日) 17:45:17.97ID:ajoLWV+R なおNが大きくなると扱う数の桁数がNに比例して増える
よって>>882の乗算の回数はO(logN)であるが、
計算量はO(logN)に抑えることはできない
おそらくO(N^2)とか、乗算を効率化してもO(N*(logN)^2)あたりではないか
よって>>882の乗算の回数はO(logN)であるが、
計算量はO(logN)に抑えることはできない
おそらくO(N^2)とか、乗算を効率化してもO(N*(logN)^2)あたりではないか
2020/06/14(日) 17:50:45.87ID:iw/MaqZh
>>881 HTML
<a href="https://google.com/robots.txt" download="https://google.com/robots.txt">https://google.com/robots.txtのダウンロード</a>
<a href="https://google.com/robots.txt" download="https://google.com/robots.txt">https://google.com/robots.txtのダウンロード</a>
887デフォルトの名無しさん
2020/06/15(月) 03:05:29.95ID:7TtRjdEi お題: (835の類題)表面積が1平米である九面体のうち、体積が最大となる立体について、その体積の値を15桁以上の精度で計算せよ。
※ 立体の形状をあらかじめ限定しないアルゴリズムがあればなお良い。
※ 立体の形状をあらかじめ限定しないアルゴリズムがあればなお良い。
888デフォルトの名無しさん
2020/06/15(月) 03:19:03.34ID:fk9hS06M889デフォルトの名無しさん
2020/06/15(月) 03:46:31.62ID:MkSPN7gS890デフォルトの名無しさん
2020/06/15(月) 03:55:40.44ID:MkSPN7gS >>881
Kotlin script
java.net.URL("https://google.com/robots.txt").openConnection().inputStream.bufferedReader().lineSequence().forEach(::println)
script じゃなくてもほぼ同じ。main() の中に入れるだけ。
Kotlin script
java.net.URL("https://google.com/robots.txt").openConnection().inputStream.bufferedReader().lineSequence().forEach(::println)
script じゃなくてもほぼ同じ。main() の中に入れるだけ。
891デフォルトの名無しさん
2020/06/15(月) 06:06:01.39ID:C/NDiCRq892540
2020/06/15(月) 21:52:43.85ID:rjrfpKII >>881 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
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
893デフォルトの名無しさん
2020/06/19(金) 07:19:50.29ID:sd/vvo+p >>659
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
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
894デフォルトの名無しさん
2020/06/19(金) 07:48:33.21ID:fUKeUVUY895デフォルトの名無しさん
2020/06/19(金) 19:45:31.37ID:sd/vvo+p >>894
いや、コード見てもらったらわかるようにシングルスレッドです。
工夫して並列化したらコアの数だけ高速化できる余地はあるので
誰かやってみてほしいですよ。
計算を続けると6千億台に1万個以上解が見つかります。
いや、コード見てもらったらわかるようにシングルスレッドです。
工夫して並列化したらコアの数だけ高速化できる余地はあるので
誰かやってみてほしいですよ。
計算を続けると6千億台に1万個以上解が見つかります。
896デフォルトの名無しさん
2020/06/19(金) 20:32:41.02ID:i/tLMeO3 連続した数調べるならエラトステネスの篩したほうが速いんじゃないの
897デフォルトの名無しさん
2020/06/19(金) 20:58:48.38ID:ZwD0GWBA だね
シングルスレッドで1時間くらいで>>893
シングルスレッドで1時間くらいで>>893
898デフォルトの名無しさん
2020/06/19(金) 21:30:26.89ID:K9F3G5pm899デフォルトの名無しさん
2020/06/19(金) 21:45:20.37ID:Zkd+c+DW900デフォルトの名無しさん
2020/06/19(金) 21:47:33.79ID:i/tLMeO3 >>899
言ってません
言ってません
901デフォルトの名無しさん
2020/06/19(金) 22:02:05.91ID:eY6TPFbX 6000億ちょっとの要素数の配列を扱います
902デフォルトの名無しさん
2020/06/19(金) 23:21:23.40ID:f1v5pXiA エラとステネスの篩はビット単位で判定させれば8分の1の要素数で済む
もっと効率化すれば32分の1くらいになったはず
まぁそれでも億単位の要素を使うわけだけど
もっと効率化すれば32分の1くらいになったはず
まぁそれでも億単位の要素を使うわけだけど
私なら篩を一定の大きさに制限して窓として扱い、
試し割り法と併用しますね
https://ideone.com/6Ww9nq
https://mevius.5ch.net/test/read.cgi/tech/1580471646/245
試し割り法と併用しますね
https://ideone.com/6Ww9nq
https://mevius.5ch.net/test/read.cgi/tech/1580471646/245
904デフォルトの名無しさん
2020/06/20(土) 01:08:51.20ID:0ygWeZMr905デフォルトの名無しさん
2020/06/20(土) 01:10:45.21ID:MHLwREvd ほとんどの6000億幅が取れない人は、"区間ふるい"で.
「1億の6千回」か「10億の600回」でやるのが現実的(平方分割的感性が必要?)
実際に1億でやってみたら、2時間ほどかかった。
ideonは時間の関係で1億配列にして、
最初と(ログから)最後の1億をやっている。
https://ideone.com/Ikn4qW
「1億の6千回」か「10億の600回」でやるのが現実的(平方分割的感性が必要?)
実際に1億でやってみたら、2時間ほどかかった。
ideonは時間の関係で1億配列にして、
最初と(ログから)最後の1億をやっている。
https://ideone.com/Ikn4qW
906デフォルトの名無しさん
2020/06/20(土) 01:11:48.05ID:0ygWeZMr907蟻人間 ◆T6xkBnTXz7B0
2020/06/20(土) 05:31:40.42ID:vazH2EW2 お題: 整数を記入可能な空欄の横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).
空欄はゼロで表すものとする。
ただし、空欄のときやマスの範囲外の場合は「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).
空欄はゼロで表すものとする。
908デフォルトの名無しさん
2020/06/20(土) 09:09:47.63ID:0ygWeZMr909デフォルトの名無しさん
2020/06/22(月) 17:19:16.03ID:GQVtnPwK お題: CSVをパースせよ
例
入力:
1,abc,"def
ghi",4
2,abc,"def
ghi",4
出力:
[[1, "abc", "def\nghi", 4], [2, "abc", "def\nghi", 4]]
例
入力:
1,abc,"def
ghi",4
2,abc,"def
ghi",4
出力:
[[1, "abc", "def\nghi", 4], [2, "abc", "def\nghi", 4]]
910デフォルトの名無しさん
2020/06/22(月) 19:02:03.24ID:9Ucc31bE911デフォルトの名無しさん
2020/06/24(水) 19:12:10.98ID:q+GJbQMN >>887
60面体まで出来ました
60面体にもなると
5角形と6角形だけからなるものだけでも
極大点が10個以上にもなって
本当に最大が探せてるのかいまいち確信は持てないんですが...
収束は速いので形の概要が分かれば高精度化は簡単です
14面体以上は全て
5角形が12面、残りが6角形の多面体が最大です
60面体まで出来ました
60面体にもなると
5角形と6角形だけからなるものだけでも
極大点が10個以上にもなって
本当に最大が探せてるのかいまいち確信は持てないんですが...
収束は速いので形の概要が分かれば高精度化は簡単です
14面体以上は全て
5角形が12面、残りが6角形の多面体が最大です
912デフォルトの名無しさん
2020/06/25(木) 04:19:24.67ID:tNtWnOVb お題:多面体の面の構成を、以下のルールに従う面列で表現する。
頂点のリストで表現された面の集合(例:正四面体なら {[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
頂点のリストで表現された面の集合(例:正四面体なら {[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
913デフォルトの名無しさん
2020/06/25(木) 04:37:07.60ID:+RECDQKB >>912
そのルールでは任意の多面体を表現出来ないと思うんですが
そのルールでは任意の多面体を表現出来ないと思うんですが
914デフォルトの名無しさん
2020/06/25(木) 08:13:21.29ID:XUZZkb7Y915デフォルトの名無しさん
2020/06/25(木) 08:24:29.35ID:C/HPxaHa916デフォルトの名無しさん
2020/06/25(木) 09:12:48.56ID:Nd1uEPT+917デフォルトの名無しさん
2020/06/25(木) 10:55:47.65ID:fOnLoXil 最初から区切り文字をエスケープする方法まで決まっていたらxmlなんて出てこなかったかもな
918デフォルトの名無しさん
2020/06/27(土) 03:45:36.69ID:PxUOhUZY919デフォルトの名無しさん
2020/06/27(土) 07:33:34.74ID:TsX0h7IG 14面体以上は全て5角形6角形のみで
あまり面白くない
対称性が良いか悪いかだけ
現在82面体
手抜きで一部計算オーダーが非常に悪い所があって進まなくなってきた
(面数の5乗オーダー)
100面まで到達するにはコードを変えないとダメかも
あまり面白くない
対称性が良いか悪いかだけ
現在82面体
手抜きで一部計算オーダーが非常に悪い所があって進まなくなってきた
(面数の5乗オーダー)
100面まで到達するにはコードを変えないとダメかも
920デフォルトの名無しさん
2020/06/27(土) 16:25:32.02ID:PxUOhUZY 対称性が良ければ良いほど最大解となるかというとそうではない
八面体の解をみてもそれはわかるし
四十二面体の対称性の高いのは切稜十二面体だと思うが、解はそれとは違う
面の数の5乗というのは総当たりをしているのかな
高速化するには焼きなまし法等を使うといいのかと思うがどうやるんだろう
八面体の解をみてもそれはわかるし
四十二面体の対称性の高いのは切稜十二面体だと思うが、解はそれとは違う
面の数の5乗というのは総当たりをしているのかな
高速化するには焼きなまし法等を使うといいのかと思うがどうやるんだろう
921デフォルトの名無しさん
2020/06/27(土) 22:18:45.29ID:TsX0h7IG 1面少ない体積最大の立体から1面足した形を探索
なので最大が突然変異すれば最大を見逃すかもしれない
ランダムよりは効率が良さそう
構造計算のオーダーが4乗
ここはおそらく2乗くらいに減らせると思う
極大の収束は良くある微分を使うやつ
収束時も毎回構造計算してるけど
(ほぼ)同じ構造であるのでオーダーは1乗に減らせる
なので最大が突然変異すれば最大を見逃すかもしれない
ランダムよりは効率が良さそう
構造計算のオーダーが4乗
ここはおそらく2乗くらいに減らせると思う
極大の収束は良くある微分を使うやつ
収束時も毎回構造計算してるけど
(ほぼ)同じ構造であるのでオーダーは1乗に減らせる
922デフォルトの名無しさん
2020/06/27(土) 22:21:59.32ID:TsX0h7IG 形自体はもう面白くないので
改善はしないかも
むしろ体積が小さい極大の方がいろんな形になって面白い
改善はしないかも
むしろ体積が小さい極大の方がいろんな形になって面白い
923デフォルトの名無しさん
2020/06/28(日) 05:11:29.32ID:pVjwcc2f >>921
数値はこれと同じ?
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
数値はこれと同じ?
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
924デフォルトの名無しさん
2020/06/28(日) 08:32:06.86ID:BWJrAYP0 同じ
925デフォルトの名無しさん
2020/07/01(水) 11:38:56.92ID:EROZsrNo お題: 3つ以上の言語で動く"Hello World"(標準出力 改行有無不問)
926デフォルトの名無しさん
2020/07/01(水) 14:23:15.09ID:GoUt95hL php htmlあとないかな
927デフォルトの名無しさん
2020/07/01(水) 14:37:40.66ID:xploYGSU >>925
#! /usr/bin/perl
print "Hello World";
#!/usr/bin/python
print "Hello World"
<?php
print "Hello World";
?>
#! /usr/bin/perl
print "Hello World";
#!/usr/bin/python
print "Hello World"
<?php
print "Hello World";
?>
928デフォルトの名無しさん
2020/07/01(水) 17:33:04.53ID:S7tqJ4vi >>925
$ 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";
$ 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";
929デフォルトの名無しさん
2020/07/01(水) 19:07:27.63ID:QxhyVLlq >>925 面白いね。俺の回答はつまらんけど
$ cat hello_world
print("Hello World!")'
$ruby hello_world
Hello World!
$perl hello_world
Hello World!
$python hello_world
Hello World!
$ cat hello_world
print("Hello World!")'
$ruby hello_world
Hello World!
$perl hello_world
Hello World!
$python hello_world
Hello World!
930デフォルトの名無しさん
2020/07/02(木) 11:54:56.14ID:xIvurPw0 お題: CSV を、JSON に変換せよ
あ,い
1,2
[
["あ","い"],
["1","2"]
]
Convert CSV to JSON
https://www.convertcsv.com/csv-to-json.htm
あ,い
1,2
[
["あ","い"],
["1","2"]
]
Convert CSV to JSON
https://www.convertcsv.com/csv-to-json.htm
931デフォルトの名無しさん
2020/07/02(木) 12:21:40.12ID:4foKXCae あ,い
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' ] ]
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' ] ]
932930
2020/07/03(金) 09:48:22.31ID:hVBUXcHj CSV は、ヘッダー行なしの設定です!
933デフォルトの名無しさん
2020/07/04(土) 14:42:26.88ID:xFbPiC8b934デフォルトの名無しさん
2020/07/05(日) 05:09:15.05ID:w1OPzoRS >>930
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 "]"}'
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 "]"}'
935デフォルトの名無しさん
2020/07/05(日) 05:13:48.20ID:w1OPzoRS936デフォルトの名無しさん
2020/07/05(日) 19:57:21.17ID:MQ9nuMmc937デフォルトの名無しさん
2020/07/05(日) 22:13:54.68ID:HPvgh2UL938デフォルトの名無しさん
2020/07/10(金) 21:08:49.94ID:+HNczGHj お題:"チューリングマシン"を使って一行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行程度
チューリングマシンも自作すること
【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行程度
939デフォルトの名無しさん
2020/07/11(土) 11:44:08.13ID:60oNEnIZ チューリングマシンなのにPythonとは?
意味不明だ
意味不明だ
940デフォルトの名無しさん
2020/07/11(土) 11:48:42.38ID:KPNFpi8s メモリが無限にないので作れましぇん><
941デフォルトの名無しさん
2020/07/11(土) 11:50:41.57ID:60oNEnIZ 正方形の面積を求める問題に対して
この世に正方形なんて存在しないから求められません
とか言っちゃう系?
この世に正方形なんて存在しないから求められません
とか言っちゃう系?
942デフォルトの名無しさん
2020/07/11(土) 11:51:57.60ID:KPNFpi8s 比喩がとんちんかんだぞ
今回は「チューリングマシンも自作すること」って明言されてますやん
今回は「チューリングマシンも自作すること」って明言されてますやん
943デフォルトの名無しさん
2020/07/11(土) 11:56:32.56ID:8xOOoQBu 自作チューリングマシンを Pythonの改行15回程度で作れって?神だわ
944デフォルトの名無しさん
2020/07/11(土) 11:57:52.68ID:60oNEnIZ 動作を規定すればよくて
実際に動く機械を作る必要はない
実際に動く機械を作る必要はない
945デフォルトの名無しさん
2020/07/11(土) 11:59:10.62ID:60oNEnIZ と思ったが
Pythonでエミュレーターを作れって事か?
Pythonでエミュレーターを作れって事か?
946デフォルトの名無しさん
2020/07/11(土) 12:00:00.07ID:60oNEnIZ 別に無限にメモリがある必要は無いけど
実際に動くどんなプログラムにも限界がある
実際に動くどんなプログラムにも限界がある
947デフォルトの名無しさん
2020/07/11(土) 12:01:06.17ID:KPNFpi8s >>946
メモリが有限だったらチューリングマシンとはいいましぇん><
メモリが有限だったらチューリングマシンとはいいましぇん><
948デフォルトの名無しさん
2020/07/11(土) 12:01:59.62ID:2Qc0/uE/ 適当な言語で状態遷移機械つくればええんちゃう
949デフォルトの名無しさん
2020/07/11(土) 12:02:26.85ID:8xOOoQBu しかもCSVパーサーって
つまりはPython15行でExcelを再現しろと?
つまりはPython15行でExcelを再現しろと?
950デフォルトの名無しさん
2020/07/11(土) 12:13:26.90ID:6CWHpJ6z >>938の生成言語
CSV → COL | COL ',' CSV
COL → '"' WCOM '"' | NCOM
WCOM → ε | 'a' WCOM | ',' WCOM | '\' '"' WCOM
NCOM → ε | 'a' NCOM | '\' '"' NCOM
状態セル10個前後でいけそう
CSV → COL | COL ',' CSV
COL → '"' WCOM '"' | NCOM
WCOM → ε | 'a' WCOM | ',' WCOM | '\' '"' WCOM
NCOM → ε | 'a' NCOM | '\' '"' NCOM
状態セル10個前後でいけそう
951デフォルトの名無しさん
2020/07/11(土) 12:46:36.38ID:6CWHpJ6z >>938 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;
$ 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;
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【速報】高市首相 青森震度6強地震で負傷者30人 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【高市悲報】しかし、香港の火災とか青森の地震で不謹慎な事を言う奴が日中にいたら、そいつこそが世界の「癌」だよな [784715804]
- 気象庁・高市内閣「この後311級の地震の可能性があります。北海道〜関東の人は1週間は地震が来てもすぐ逃げられる格好をしてください」 [597533159]
- 寒さしのげる場所があって食べ物も豊富にあるなら熊は冬眠しないの?
- 冨岡ゆうんやが ニックネーム考えてや
- 常盤貴子の全盛期ってどれくらい凄かったの?
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
