1 名前:デフォルトの名無しさん mailto:sage [2021/06/19(土) 00:02:57.84 ID:MQWrKSb7.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/ 宿題は宿題スレがあるのでそちらへ。 ※前スレ プログラミングのお題スレ Part19 https://mevius.5ch.net/test/read.cgi/tech/1606662245/
52 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 22:18:49.57 ID:IHzKftMK.net] >>36 haskell https://ideone.com/tiC2hC
53 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 22:25:49.60 ID:6PmzgaZp.net] >>48 お前が一番日本語理解できてなくて草
54 名前:デフォルトの名無しさん mailto:sage [2021/07/02(金) 22:59:04.30 ID:bqpqPyM3.net] >>49 むしろ全てのカレンダーを月曜始まりにして欲しいぐらい
55 名前:デフォルトの名無しさん [2021/07/03(土) 02:44:37.57 ID:+PW8v28+.net] 月月火水木金金
56 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 12:07:58.36 ID:gq7PWL9B.net] オプションの話なんてどうでもいいけど 1日を左上始まりの方が合理的だと思う
57 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 18:17:25.88 ID:IfvioC2j.net] どうかな 多くの場合 月の開始日を固定するより 曜日を固定した方が有用だ 月によって
58 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 18:34:34.91 ID:8vTMQXC9.net] 曜日固定の暦も提案されたけど採用されることはなかったんだよね
59 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 19:07:03.68 ID:uSbSUvL9.net] まあ大抵の人は基本的に曜日で休みが決まってたりするしな
60 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 19:13:38.83 ID:DPpwWmVc.net] 28日×13月、最終月で調整、がシンプルで良かったのにな 年初の時期も夏至とか分かりやすい日にすれば良かったのに
61 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 21:26:36.17 ID:IfvioC2j.net] 暦は農業をするうえで細かく日を読む必要から作られ発展してきた 農閑期には日付が定められなかったことも ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる
62 名前:デフォルトの名無しさん mailto:sage [2021/07/03(土) 21:35:30.23 ID:TQwtnc11.net] そもそも古代ローマの暦では11-12月は名前がなかった
63 名前:デフォルトの名無しさん [2021/07/04(日) 00:40:14.83 ID:FJOBYcj7.net] エチオピアではエチオピア歴が今も使われており13月があったりする。 https://www.hope.or.jp/2019/09/13/ethiopian-calendar
64 名前:39 mailto:sage [2021/07/04(日) 08:11:39.86 ID:iOGAyFs7.net] >>36 Ruby お題の仕様を拡張してみた 前後の月の日付も週単位で表示 ・前月日付は週はじめから最小1日から最大7日 ・翌月日付は週末まで最小0日から最大6日 require 'date' str = '2021 7 0' y, m ,s = str.scan( /\d+/ ).map( &:to_i ) a = '日月火水木金土'.chars.rotate(s) sw = (Time.new( y, m, 1 ) - s % 7).wday ( (sw == 0)? 7 : sw ).downto(1){|d| a << Date.new( y, m, 1 ).prev_day( d ).mday.to_s } 1.upto( Date.new( y, m, 1 ).next_month.prev_day.mday ){|d| a << '%2d' % d } (-a.size % 7).times{|d| a << '%2d' % (d+1) } a.each_slice(7){|w| puts w * ' ' }
65 名前:39 mailto:sage [2021/07/05(月) 00:26:38.86 ID:e4Vm80Jj.net] >>36 Ruby >>63 > sw = (Time.new( y, m, 1 ) - s % 7).wday は間違いでした require 'date' str = '2021 7 0' y, m, s = str.scan( /\d+/ ).map( &:to_i ) m1 = Date.new( y, m, 1 ) sw = m1.wday - s % 7 pmd = m1.prev_day.mday a = '日月火水木金土'.chars.rotate(s) ( pmd - ((sw == 0)? 7 : sw) + 1 ).upto( pmd ){|d| a << d.to_s } 1.upto( m1.next_month.prev_day.mday ){|d| a << '%2d' % d } (-a.size % 7).times{|d| a << '%2d' % (d+1) } a.each_slice(7){|w| puts w * ' ' }
66 名前:39 mailto:sage [2021/07/05(月) 01:08:34.16 ID:e4Vm80Jj.net] >>64 もバグ有り > sw = m1.wday - s % 7 sw = (m1.wday - s) % 7
67 名前:デフォルトの名無しさん mailto:sage [2021/07/05(月) 17:31:47.07 ID:7Yd2cijs.net] >>28-31 28はPowerShell版 お題:クロームブラウザーのヘッドレスモードを使って何かを作る google-chrome --headless --disable-gpu --hide-scrollbars --window-size=700,8000 --virtual-time-budget=10000 --screenshot="$HOME/Pictures/$(date +"%H_%M_%S").png" 'yahooリアルタイム検索結果のURL' --window-size=はスクリーンショットを撮る範囲 --virtual-time-budget=は検索結果が表示されるまで時間がかかるサイトで使う。これがないと検索結果のスクリーンショットがうまく撮れない。10000ミリ秒=10秒。
68 名前:デフォルトの名無しさん mailto:sage [2021/07/06(火) 12:39:02.75 ID:gfjghTPI.net] 数学板から お題 Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ 元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと
69 名前:デフォルトの名無しさん [2021/07/06(火) 18:27:19.16 ID:ifvAZrxB.net] >>67 わからない。
70 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 06:44:52.69 ID:GHc1zSP4.net] >>67 チェザロ平均考えるとかかな 1万項の平均雑に計算したら-1.34までは収束してる感じ https://ja.wikipedia.org/wiki/チェザロ平均
71 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 07:00:20.59 ID:GHc1zSP4.net] >>67 Haskell sums xs = scanl1 (+) xs ss n = sums [cos k / log k | k <- [2..n]] avr xs = sum xs / (fromIntegral $ length xs) 結果: λ> avr $ ss 10000 -1.3422141860097583 (0.02 secs, 6,244,872 bytes) λ> avr $ ss 100000 -1.3422187431198473 (0.21 secs, 61,066,720 bytes) λ> avr $ ss 1000000 -1.3422195503566596 (1.97 secs, 609,383,904 bytes) λ> avr $ ss 10000000 -1.3422195021937073 (48.08 secs, 6,092,457,440 bytes) これ以上は厳しそうだから何か工夫しないといけないけど8桁辺りまでは収束してそう
72 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 07:19:49.97 ID:GHc1zSP4.net] 8桁って小数第七位ね
73 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 19:16:52.25 ID:5d+e1myw.net] この文献 https://www.kurims.kyoto-u.ac.jp/~kyodo/kokyuroku/contents/pdf/1084-4.pdf をもとに C #include <math.h> #include <stdio.h> int main(){ double p=12.0,q=7.0,s=0; long n,nmax=166; for(n=2;n<nmax;n++) s+=(cos(n)/log(n))*0.5*erfc(n/p-q); printf("s=%-20.16lf, N=%d\n",s,nmax-2); return 0; } s=-1.3422195101745578 , N=164
74 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 20:36:04.14 ID:MZbePiNM.net] >>67 収束する。 B_k := Σ[n : 2..k] cos(n) |B_k| = |cos((k + 1) / 2) sin(k / 2) / sin(1 / 2) - (1 + cos(1))| (see https://math.stackexchange.com/questions/225941/proving-sum-limits-k-0n-coskx-frac12-frac-sin-frac2n12x) <= 1 / sin(1 / 2) + 1 + cos(1) ... (i) a_n := 1 / log(n) Σ[n : 2..∞] |a_{n + 1} - a_n| = Σ[n : 2..∞] |log(n / (n + 1)) / (log(n) log(n + 1))| <= Σ[n : 2..∞] |log(2) / log(n + 1)^2| < ∞ ... (ii) lim a_n = 0 as n -> 0 ... (iii) (i), (ii), (iii) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。
75 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 21:23:56.34 ID:GHc1zSP4.net] >>72 すごい あんまり読めてないけど交代級数じゃなくても使えるの?
76 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 21:39:28.53 ID:5d+e1myw.net] >>74 6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず
77 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 22:23:37.48 ID:7LucU1Ml.net] >>5 の2 Dart版 void main() { DateTime today = new DateTime.now(); print( "${today.year.toString()}/${ today.month.toString().padLeft(2,'0')}/${ today.day.toString().padLeft(2,'0')}/第${ ((today.day + 6) / 7).floor()}${ {1:'月曜日',2:'火曜日',3:'水曜日',4:'木曜日',5:'金曜日',6:'土曜日',7:'日曜日'}[today.weekday]}/${ today.hour.toString().padLeft(2,'0')}:${ today.minute.toString().padLeft(2,'0')}/" ); }
78 名前:デフォルトの名無しさん mailto:sage [2021/07/07(水) 22:51:04.45 ID:GHc1zSP4.net] >>75 やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない
79 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 03:52:07.59 ID:s4XLTZzk.net] お題 2乗〜6乗 自然数nに対して方程式 n = p^2+q^3+r^4+s^5+t^6 の整数解をひとつ探し出す関数を実装せよ 例 -2 → [1,-2,1,0,0] -1 → [1,-2,1,1,9] 0 → [1,-1,0,0,0] 1 → [1,0,0,0,0] 2 → [1,1,0,0,0] 100 → [2,0,0,2,2] 2021 → [3382713530574301803635446275486,-563785588429051426890762429768,2252569709434420,5488,750856569811473]
80 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 04:00:54.83 ID:s4XLTZzk.net] 訂正 -2 → [2,-2,1,1,0] -1 → [0,-1,0,0,0]
81 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 05:27:57.77 ID:qAe+ZLCy.net] -1と-2は自然数じゃない
82 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 13:17:19.10 ID:s4XLTZzk.net] >>80 ですな -1,-2は抜いて じゃ追加で 3→[1,1,1,0,0] 10→[1,2,1,0,0] 1000→[1,-3,1,4,1] などなど
83 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 16:30:29.39 ID:s75CxDCd.net] >>81 n<=10^6 を力業で、先頭と最後の101件のみ表示 https://ideone.com/LjkJHe
84 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 20:59:05.44 ID:qAe+ZLCy.net] 寧ろ定義域を整数全体にすれば?
85 名前:デフォルトの名無しさん mailto:sage [2021/07/21(水) 22:08:26.55 ID:DfqCC9n+.net] >>83 元々整数のつもりだったのが筆が滑りましたw お好きな方でという事で 自然数に限定して楽になる事もないと思うけど
86 名前:デフォルトの名無しさん [2021/07/22(木) 03:13:11.19 ID:o3SPPMDQ.net] >>78 Kotlin https://paiza.io/projects/ZteBpLjf11ybdKK6tORg5Q 無念無想で何も考えずにただ作った。
87 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 13:52:09.29 ID:mzts8Rpt.net] 元の問題 面白い問題おしえて〜な 37問目 https://rio2016.5ch.net/test/read.cgi/math/1624644393/543 元の問題は7乗まで使って桶だったけど6乗までの解答が出た https://rio2016.5ch.net/test/read.cgi/math/1624644393/588 あくまでプログラムの話、数学の部分はどうでもいいという方は参考にして下さい この方法はn-t^5-76843が6630の倍数になるような整数tが取れる事を使います(t:0〜6629の中で探す)
88 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 20:25:25.04 ID:giJnvKaJ.net] >>86 5次以下にはできない証明は?
89 名前:デフォルトの名無しさん mailto:sage [2021/07/22(木) 20:30:40.90 ID:eIP4GB5u.net] >>87 それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません
90 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 11:44:46.01 ID:uYrXTofe.net] お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること 描画される円の大きさは自由とする 入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する 地球の半径=6,371 km 東京の経度=139°41′30″ 東京の緯度=35°41′22″ *出題者は自分で実装してません
91 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 11:48:58.50 ID:2jz91/WX.net] >>89 画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?
92 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 11:53:24.04 ID:uYrXTofe.net] >>89 >>90 画面の上端を北とします 投影方法と画角はよくわからないので自由とします^^;
93 名前:デフォルトの名無しさん mailto:sage [2021/07/24(土) 12:18:19.24 ID:/U+1YhTs.net] 地球は球体じゃないから無理じゃない?
94 名前:デフォルトの名無しさん mailto:sage [2021/07/25(日) 16:25:19.73 ID:YgX/LOmt.net] 地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?
95 名前:デフォルトの名無しさん mailto:sage [2021/07/26(月) 04:06:01.70 ID:uFE88Z/4.net] いいよ
96 名前:デフォルトの名無しさん mailto:sage [2021/07/27(火) 08:42:26.61 ID:3vSla0fp.net] >>5 の2 JavaScript版 let today = new Date() console.log( today.getFullYear().toString() + '/' + today.getMonth().toString().padStart(2,'0') + '/' + today.getDate().toString().padStart(2,'0') + '/' + '第' + ( Math.floor( ( today.getDate() + 6 ) / 7 ) ).toString() + ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'][today.getDay()] + '/' + today.getHours().toString().padStart(2,'0') + ':' + today.getMinutes().toString().padStart(2,'0') + '/' )
97 名前:96 mailto:sage [2021/07/28(水) 13:12:24.23 ID:D9Z9/eJz.net] >>20 Perl5、DPで解けないかなと考えてたけど、すぐには思いつかずnaiveな解法 use List::Util 'max'; my $m; sub f { my ($a, $b, $c) = @_; return () if $m and $m <= $c; my $aa = $a * $c - $b; return ($m = $c) if 0 == $aa; my @s; if (0 < $aa) { my $bc = $b * $c; @s = f($aa, $bc, max(int($bc / $aa), $c + 1)); @s = ($c, @s) if @s; } my @t = f($a, $b, max(int($b / $a), $c + 1)); if (@s and @t) { $s[-1] < $t[-1] ? @s: @t; } else { @s ? @s: @t; } } $m = 0; my @a = f(37, 60, 1); printf "37 / 60 = %s\n", join ' + ', map{"1/$_"} grep{$_} @a; #$m = 0; my @a = f(3, 1, 1); 実行結果 ~ $ perl 20_20_re_expan.pl 37 / 60 = 1/4 + 1/5 + 1/6 なお、この解法だと 3/1 = は時間がかかりすぎて解けない
98 名前:デフォルトの名無しさん mailto:sage [2021/08/08(日) 11:08:25.71 ID:KegFD0tb.net] 平面上に円をおくと、円周上に整数点ができることがあるが それがちょうど47個の円の最小半径は? ここで前にもあったとおもったが、答わからん
99 名前:デフォルトの名無しさん [2021/08/10(火) 04:18:36.48 ID:RT5RB9Hc.net] 解き方がわからん。
100 名前:蟻人間 mailto:sage [2021/08/11(水) 00:16:58.90 ID:yQA623uX.net] お題: (C/C++/Rust限定) 与えられたテキストファイルのエンコーディングを早く正確に判定するプログラムを作れ。 判定内容はASCIIのみ、UTF-8、UTF-16、Shift_JIS、バイナリのいずれかとBOMの有無とする。 ファイル先頭にBOMがある場合はBOMの意味を優先するものとする。 ASCIIではない場合はファイル先頭より256バイト以降は無視するものとする。 テキストファイルがUTF-8かShift_JISか区別できないときはUTF-8の判定を優先するものとする。 判定にかかった時間をミリ秒単位で測定せよ。 UTF-16 BEとEUC-JPはバイナリとみなしてもよい。
101 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 19:57:42.99 ID:lGVA2SmZ.net] 宿題は自分でやれ
102 名前:デフォルトの名無しさん mailto:sage [2021/08/
] [ここ壊れてます]
103 名前:11(水) 23:48:46.02 ID:BaITumyQ.net mailto: ザリガニが見ていた...。 QuickDrawはどのように素早く円を描いていたのか? https://zariganitosh.hatenablog.jp/entry/20100318/1269006632 [] [ここ壊れてます]
104 名前:デフォルトの名無しさん [2021/08/12(木) 04:41:39.82 ID:zN4hKecF.net] 昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感
105 名前:ョしたな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。 [] [ここ壊れてます]
106 名前:デフォルトの名無しさん [2021/08/12(木) 09:29:17.38 ID:GeyAERvY.net] お題 文字列を入力として受け取って 入力された文字列と、入力された文字列を逆順にした文字列を 1文字ずつ交互に結合した文字列を出力してください 入力: abcde 出力: aebdccdbea
107 名前:デフォルトの名無しさん mailto:sage [2021/08/12(木) 10:08:21.06 ID:Lpug+0Go.net] >>103 Ruby 'abcde'.size.times{$><<s[_1]<<s[~_1]} # => aebdccdbea
108 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 03:01:45.42 ID:pLlXEN4h.net] >>103 Haskell import Data.List acbbca x = concat $ transpose [ x , reverse x ] main = do putStrLn $ acbbca "Hello World" putStrLn $ acbbca "たけやぶやけた" ---- HdellrlooW WoolrlledH たたけけややぶぶややけけたた
109 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 03:35:13.90 ID:hXjFUBNl.net] なんかこういうのはhaskellのlensが得意そうな気がするな この前Intのリストの奇数だけソートするのを sortArray xs = xs & partsOf (each . filtered odd) %~ sort だけで済ましてるのを見た
110 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 11:47:55.66 ID:Zwr8vbQY.net] >>103 octave https://ideone.com/vpOPSb f = @(s) [s; flip(s)](:)'; f('abcde')
111 名前:96 mailto:sage [2021/08/13(金) 12:16:45.65 ID:Tqy/ucLn.net] >>103 Perl5 @b = reverse @a = split'', 'abcde'; use List::MoreUtils 'zip'; print zip @a, @b; 実行結果 ~ $ perl 20_103.pl aebdccdbea
112 名前:デフォルトの名無しさん [2021/08/13(金) 18:31:56.72 ID:C2vgWz0X.net] >>103 Kotlin https://paiza.io/projects/E21KbVl4H2KbA1kjxYhNug
113 名前:デフォルトの名無しさん [2021/08/13(金) 18:54:31.59 ID:C2vgWz0X.net] >>103 C https://paiza.io/projects/VF7q0iIqRNj-K-9wfd-OYg >>109 と出力が同じになるようにした。 それと、折角なので wchar で作った。
114 名前:デフォルトの名無しさん [2021/08/13(金) 20:49:58.92 ID:++s/0C9b.net] >>103 J f =: ,@(,. |.) ___ f 'abcde' aebdccdbea
115 名前:sage [2021/08/13(金) 23:42:35.13 ID:WxHHmkEE.net] >>104 Rbuy 3.0.2 だと s が未定だと怒られる
116 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 12:38:10.02 ID:LgiNTbaj.net] >>36 octave https://ideone.com/YRTUpL function [c, w] = f(y, m, dow) c = calendar(y, m); w = {'日' '月' '火' '水' '木' '金' '土'}; if dow == 1 a = (c')(:); b = [-1 6](1 + (a(1) == 1)); c = reshape(circshift(a, b), flip(size(c)))'; w = circshift(w, -1, 2); end end function g(y, m, dow) [c, w] = f(y, m, dow); disp(strjoin(cellfun(@(s) {sprintf('%6s', s)}, w), '')), disp(c) end
117 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 02:41:19.70 ID:5M+zf85m.net] お題: 菅話法作成 例 Kotlin https://paiza.io/projects/ezYPpZR8VOLY5r3jCOS5qw
118 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 19:49:43.89 ID:skFpZz34.net] >>114 Ruby $><<%W[「中止の考えはない。強い警戒感を持って に臨む」\n「バブル方式で する。感染拡大の恐れはないと認識している」]*gets.chop
119 名前:96 mailto:sage [2021/08/17(火) 22:38:15.40 ID:BrZ+lWok.net] >>114 Perl5 $it="うっふ〜ん"; print<<EOF; 「中止の考えはない。強い警戒感を持って${it}に臨む」 「バブル方式で${it}する。感染拡大の恐れはないと認識している」 「コロナに打ち勝った証として${it}する」 「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」 「安心安全な${it}に向けて全力で取り組む」 「不要不急かどうかは本人が判断すべきだ」 EOF 実行結果 $ perl 20_114_菅話法.pl 「中止の考えはない。強い警戒感を持ってうっふ〜んに臨む」 「バブル方式でうっふ〜んする。感染拡大の恐れはないと認識している」 「コロナに打ち勝った証としてうっふ〜んする」 「うっふ〜んを中止することは一番簡単なこと、楽なことだ。うっふ〜んに挑戦するのが国民の役割だ」 「安心安全なうっふ〜んに向けて全力で取り組む」 「不要不急かどうかは本人が判断すべきだ」
120 名前:デフォルトの名無しさん [2021/09/03(金) 01:55:54.93 ID:d87lg/Z2.net] 半月ぐらいお題が出ないので一つ。 お題: テトロミノ こんなパズルを解く。 https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AD%E3%83%9F%E3%83%8E 大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い) 沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。 出力はテキストでも何でも人間が見て分かるようになってれば良い。 この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。
121 名前:蟻人間 mailto:sage [2021/09/03(金) 20:43:43.19 ID:9DjO+PTi.net] お題:15パズルを解くプログラム。 15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。 解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。 参考資料: www.studio-boiler.com/k/kouryaku/kou.htm
122 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 00:30:45.45 ID:ExeocnPJ.net] 猿真似しか出来んのか
123 名前:デフォルトの名無しさん [2021/09/04(土) 02:42:13.50 ID:7+Hy81Ja.net] 全然お題が出なかったからこれで良い
124 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 15:54:45.82 ID:Q1ZjOy0h.net] 最短でも80手らしい それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう 全部表示したらうるさい事この上ないんだよな
125 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 16:28:17.76 ID:HA1H8jBr.net] お題:パンくずリストを出力せよ 入力 東京,特許,許可局 出力 <ul class="pankuzu"> <li class="pankuzu_item">東京</li> <li class="pankuzu_item">特許</li> <li class="pankuzu_item active">許可局</li> </ul>
126 名前:デフォルトの名無しさん [2021/09/06(月) 02:26:18.29 ID:gafTCMAF.net] >>122 Perl5 https://paiza.io/projects/M15LdOIXcwfYWvx_hcHX1Q よく分からんがこんなのでいいの?
127 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 09:51:36.66 ID:AS0MIjWb.net] XSSに気をつけましょう
128 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 10:28:52.31 ID:c9RFzrWf.net] >>122 react const Pankuzu = ({ items }) => ( <ul className="pankuzu"> {items.map((item, i) => ( <li key={`item-${item}`} className={"pankuzu_item"} data-active={i === items.length - 1} > {item} </li> ))} </ul> );
129 名前:デフォルトの名無しさん [2021/09/06(月) 11:28:19.10 ID:DJ6jxapu.net] >>122 Python https://ideone.com/j2xt8M
130 名前:96 mailto:sage [2021/09/06(月) 12:09:28.54 ID:GTV7C5SZ.net] >>122 Perl5 use HTML::TreeBuilder; @s = split',','東京,特許,許可局'; @a = map{['li', {class => 'pankuzu_item'}, $_]} @s; $a[-1][1]{class} .= ' active'; $h = HTML::Element->new_from_lol(['ul', {class => 'pankuzu'}, @a]); print $h->as_HTML('<>&', ' ', {}); 実行結果 ~ $ perl 20_122_pankuzu_list.pl <ul class="pankuzu"> <li class="pankuzu_item">東京</li> <li class="pankuzu_item">特許</li> <li class="pankuzu_item active">許可局</li> </ul>
131 名前:96 mailto:sage [2021/09/06(月) 13:04:59.11 ID:moEus4wD.net] >>127 use HTML::TreeBuilder; だと色々引き連れて来るので、使う use HTML::Element; をuseすれば良かったんだけど、結果は同じだしまいいや… [] [ここ壊れてます]
133 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 13:13:49.70 ID:uTG0VSHW.net] >>117 Ruby https://ideone.com/X55o9J 久しぶりにやってみた
134 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 19:38:11.84 ID:n/A9WgFn.net] >>122 ocaml https://ideone.com/lTmi19 let f = let rec aux acc = function [] -> "<ul class=\"pankuzu\">\n" ^ acc ^ "</ul>" | s :: [] -> aux (acc ^ "<li class=\"pankuzu_item active\">" ^ s ^ "</li>\n") [] | s :: ss -> aux (acc ^ "<li class=\"pankuzu_item\">" ^ s ^ "</li>\n") ss in aux "" let () = print_endline @@ f ["東京"; "特許"; "許可局"]
135 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 09:55:32.26 ID:WSMGeNyo.net] >>122 bat :: usage: this.bat 東京,特許,許可局 @echo off &setlocal enabledelayedexpansion set "OUTPUT=echo ^<ul class="pankuzu"^>" for %%a in (%*) do set "OUTPUT=!OUTPUT!&echo ^^<li class="pankuzu_item"^^>%%~a^^</li^^>"&set "LastArg=%%~a" set "OUTPUT=!OUTPUT!&echo ^^</ul^^>" set OUTPUT=!OUTPUT:"^>%LastArg%= active"^^^>%LastArg%! %OUTPUT% :: (%OUTPUT%) >>pankuzu.txt
136 名前:デフォルトの名無しさん [2021/09/07(火) 12:33:03.11 ID:Q6Cbfir4.net] お題 次のように置換した文字列が入力される ESC → ESCESC CR → ESCcr LF → ESClf 元の文字列を復元してください 続く・・・
137 名前:デフォルトの名無しさん [2021/09/07(火) 12:33:27.25 ID:Q6Cbfir4.net] >>132 の続き 例) 入力 → 出力 ESCESCESCESC → ESCESC ESCESCESCcr → ESCCR ESCESCESClf → ESCLF ESCESCESCESCcr → ESCESCcr ESCESCESCESClf → ESCESClf ESCcrESCESC → CRESC ESCcrESCcr → CRCR ESCcrESClf → CRLF ESCcrESCESCcr → CRESCcr ESCcrESCESClf → CRESClf ESClfESCESC → LFESC ESClfESCcr → LFCR ESClfESClf → LFLF ESClfESCESCcr → LFESCcr ESClfESCESClf → LFESClf ESCESCcrESCESC → ESCcrESC ESCESCcrESCcr → ESCcrCR ESCESCcrESClf → ESCcrLF ESCESCcrESCESCcr → ESCcrESCcr ESCESCcrESCESClf → ESCcrESClf ESCESClfESCESC → ESClfESC ESCESClfESCcr → ESClfCR ESCESClfESClf → ESClfLF ESCESClfESCESCcr → ESClfESCcr ESCESClfESCESClf → ESClfESClf
138 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 13:04:58.96 ID:YXnsp+WP.net] >>132 Ruby def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )
139 名前:134 mailto:sage [2021/09/07(火) 13:14:10.80 ID:YXnsp+WP.net] >>132 Ruby def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }
140 名前:デフォルトの名無しさん [2021/09/07(火) 22:44:48.30 ID:Q6Cbfir4.net] >>122 Java https://paiza.io/projects/LwpPH0iy3-lQmIZXNsvQRw
141 名前:デフォルトの名無しさん [2021/09/08(水) 01:03:27.49 ID:gNm9L8yp.net] >>132 Perl5 https://paiza.io/projects/GuPz8h93U0uhn9iC8P8JsA
142 名前:デフォルトの名無しさん [2021/09/08(水) 01:19:37.74 ID:gNm9L8yp.net] >>132 Kotlin https://paiza.io/projects/N-kbMV4czxJeOPJ-kLTCqg
143 名前:デフォルトの名無しさん [2021/09/08(水) 01:55:31.54 ID:gNm9L8yp.net] >>132 C https://paiza.io/projects/Ov2KFf6JS8-60MTTy6rNng
144 名前:96 mailto:sage [2021/09/10(金) 22:13:37.39 ID:UuNKa3lP.net] >>132 Perl5 s/ESC(ESC|cr|lf)/\U$1/g; 実行結果 https://ideone.com/2dajdn
145 名前:デフォルトの名無しさん [2021/09/10(金) 22:32:25.84 ID:VHKKBZ5d.net] そんなやり方があったとは知らなかった
146 名前:蟻人間 mailto:sage [2021/09/10(金) 23:29:13.91 ID:aesnFr7F.net] お題: 円柱の高さ(5〜15cm)と半径(5〜10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。 展開図には一部、0.5〜1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。
147 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 00:32:47.77 ID:7ac2XrM2.net] >>142 糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?
148 名前:蟻人間 mailto:sage [2021/09/11(土) 10:37:25.30 ID:DC
] [ここ壊れてます]
149 名前:kTc1oQ.net mailto: >>143 いいよ。 [] [ここ壊れてます]
150 名前:デフォルトの名無しさん [2021/09/12(日) 23:05:50.13 ID:a0Jd4Hkz.net] >>132 Java https://paiza.io/projects/H0RSztAvHumk7NcFZBWWnA "ESCESC"を "ESC" 任意の文字 に変換して 逆の変換すればOK 下記のJSONの文字列のようなエスケープでも 同様のやりかたで復元できる、はず \ → \\ \r → \\r \n → \\n
151 名前:デフォルトの名無しさん [2021/09/12(日) 23:51:43.19 ID:a0Jd4Hkz.net] 訂正 \ → \\\\ \r → \\r \n → \\n
152 名前:デフォルトの名無しさん [2021/09/12(日) 23:52:06.11 ID:a0Jd4Hkz.net] 訂正2 \\ → \\\\ \r → \\r \n → \\n