[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:31 / Filesize : 264 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングのお題スレ Part17



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/

876 名前:デフォルトの名無しさん mailto:sage [2020/06/11(Thu) 19:14:23 ID:/GSBQxpK.net]
1週間誰も解けなかったらやってみる

877 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 20:45:21.07 ID:oURmdayc.net]
冷やっこ食ってて思ったんだけど
一辺が41cmの立方体の
表面積が 41×41×6=10086cm^2なので
角っこの頂点2ヶ所を
ちょんちょんって

878 名前:切り落とした立体なら八面ではあるって事かな?
三角錐二個の部分の表面積計算めんどくさそう
[]
[ここ壊れてます]

879 名前:デフォルトの名無しさん mailto:sage [2020/06/11(木) 22:59:47.78 ID:V9gAJWn9.net]
1÷√√34992=0.0731152229418051367121788278776110586200…
これより大きいものをとりあえず見つける方針で

880 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 01:51:54 ID:ywP+aDtr.net]
0.0743448680932299869829269776944062867445462710353362468

見つかった

881 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 01:53:02 ID:ywP+aDtr.net]
形状を求めよ
の方が難しい

882 名前:>>843 mailto:sage [2020/06/12(金) 05:02:56.70 ID:V6O8I1+o.net]
>>846
コナミ音ゲーのビートストリームの箱猫にゃん
みたいのは難しいので中学生が電卓で出来るレベルで
立方体から直方体切り出しの六角柱で考える
https://i.imgur.com/Mjl42Cr.jpg

表面積約1平米の凸六面体の最大体積は?

まず一辺wが41cmの立方体の表面積w×w×6=10086[cm^2]
10086から86を引き算して10000に近づけます
do-whileループでxを求める
do{
a=10086-(x*x*2);
x+=0.00001;
}while(a>10000);
直方体切取幅x=6.557449999920918[cm]
切取直方体上下部分だけの表面積x×x×2=86.0000387051257[cm^2]

凸六面体(六角柱)の表面積=
9999.999961294874[cm^2]≠約1平米

元の立方体の体積41^3=68921[cm^3]

切取った直方体の体積x×x×w=1763.0061705599765[cm^3]

凸六面体(六角柱)の体積は
41^3-(x×x×w)=67157.99382944002[cm^3]
≒0.06715799382944002[m^3]
15桁以上
1割るルートルート34992ってなんだろう?

883 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 05:12:49.16 ID:V6O8I1+o.net]
>>850
訂正、凸六面体じゃなくて凸八面体ね

884 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 07:27:07.73 ID:ywP+aDtr.net]
なんでわざわざ凸じゃないのを選ぶ?



885 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 08:46:39.31 ID:haT7GszX.net]
最大でもないし

886 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 08:48:13.07 ID:2niDl6+V.net]
最大じゃないのは私も人の事を言えないので...

>>848が合ってるか間違ってるか
だけ教えていただけると

887 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 08:49:21.18 ID:2niDl6+V.net]
8面体が解決したら次は9面体

8面も最大の証明は難しいけど

888 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 11:36:58.81 ID:haT7GszX.net]
>>854
値は15桁まで合ってると思いますよ。

プログラムのお題なんでコードを載せていただけると幸いですが。
何らか組んだんですよね?

889 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 12:49:26.30 ID:Q2+Sd6Nx.net]
しまった
係数 (1/3) がdoubleのままだったんでdouble精度になってしまった

890 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 12:50:37.41 ID:Q2+Sd6Nx.net]
家に帰ったらdouble版をアップします
ひたすら乱数探索

891 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 15:14:32.23 ID:6Yfh5mGy.net]
>>852
えー 凸にしたら10面になっちゃう
https://imgur.com/SthLxF6.jpg

892 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 17:08:36.60 ID:M5MGuP1h.net]
>>859
それも凸じゃないだろ

893 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 17:09:01.45 ID:M5MGuP1h.net]
あ、すまん、そういうことかw

894 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 17:33:15.44 ID:6Yfh5mGy.net]
´+ω+`



895 名前:デフォルトの名無しさん [2020/06/12(金) 18:47:56.69 ID:kFexpNJ3.net]
>>829
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 ]

896 名前:!= ary[ 1 ] # 1つ前の要素と、異なっていたら
puts "  " * idx + ary[ 0 ] # インデント
break
end
end

words
end
[]
[ここ壊れてます]

897 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 19:40:29 ID:ywP+aDtr.net]
>>838
https://ideone.com/Jl6zc2

898 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 19:41:47 ID:ywP+aDtr.net]
0.07434486809322999110989619368561104639139465256280075733904874421666917664911993460556242342418454035329397732967289108376252183488881295875664070934129575634827025621624683049348057877455258195173727352356013738382644505372784969303844994902036116602401810098334065219605813513311533511174260033990459633153548001338432276618035960031832154258304694684989102438831680515365572871146875031327576991273892059152446734535128273692394822907010528329236904909366291990338992899295703583566824654618008406013296199027300917662863617783075767465771504776626571228664315942541587700314169499095063254202509152441676340208925338471982724370712866011599553438930619611265418988185782338154673314730488687674137034907531619005947724301353643581914084747714077649289547685930833278053943700887036591347108420548965969583488831450816524757283812848039192907796866305854763801905888387806167102792468923

899 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 20:27:51.93 ID:pHzA75h5.net]
ルートとか使うと何の値なの

900 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 20:28:24.27 ID:Wrm78wlA.net]
>>864のコードはわかるけど、>>865の桁数はどうやったんだろう

901 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 20:32:58.85 ID:6LTYSgwt.net]
´°Д°`いったいどんな形なんだ

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))






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef