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

■ このスレッドは過去ログ倉庫に格納されています
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
プログラミングのお題スレです。

【出題と回答例】
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/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part19
https://mevius.5ch.net/test/read.cgi/tech/1606662245/
49デフォルトの名無しさん
垢版 |
2021/07/02(金) 13:39:10.26ID:E59Amcuv
本気で知らないんだろう
月曜始まりのカレンダーを見たことないご存じないとかじゃね?
50デフォルトの名無しさん
垢版 |
2021/07/02(金) 16:10:17.73ID:lOCqtdeG
https://www.543life.com/campus114.html
2021/07/02(金) 22:18:49.57ID:IHzKftMK
>>36
haskell

https://ideone.com/tiC2hC
2021/07/02(金) 22:25:49.60ID:6PmzgaZp
>>48
お前が一番日本語理解できてなくて草
2021/07/02(金) 22:59:04.30ID:bqpqPyM3
>>49
むしろ全てのカレンダーを月曜始まりにして欲しいぐらい
54デフォルトの名無しさん
垢版 |
2021/07/03(土) 02:44:37.57ID:+PW8v28+
月月火水木金金
2021/07/03(土) 12:07:58.36ID:gq7PWL9B
オプションの話なんてどうでもいいけど
1日を左上始まりの方が合理的だと思う
2021/07/03(土) 18:17:25.88ID:IfvioC2j
どうかな

多くの場合
月の開始日を固定するより
曜日を固定した方が有用だ


月によって
2021/07/03(土) 18:34:34.91ID:8vTMQXC9
曜日固定の暦も提案されたけど採用されることはなかったんだよね
2021/07/03(土) 19:07:03.68ID:uSbSUvL9
まあ大抵の人は基本的に曜日で休みが決まってたりするしな
2021/07/03(土) 19:13:38.83ID:DPpwWmVc
28日×13月、最終月で調整、がシンプルで良かったのにな
年初の時期も夏至とか分かりやすい日にすれば良かったのに
2021/07/03(土) 21:26:36.17ID:IfvioC2j
暦は農業をするうえで細かく日を読む必要から作られ発展してきた
農閑期には日付が定められなかったことも
ヨーロッパの言語で前半は神の名が付けられ、後ろの方がテキトーなことからもその時代における重要度が推し量れる
2021/07/03(土) 21:35:30.23ID:TQwtnc11
そもそも古代ローマの暦では11-12月は名前がなかった
62デフォルトの名無しさん
垢版 |
2021/07/04(日) 00:40:14.83ID:FJOBYcj7
エチオピアではエチオピア歴が今も使われており13月があったりする。
https://www.hope.or.jp/2019/09/13/ethiopian-calendar
6339
垢版 |
2021/07/04(日) 08:11:39.86ID:iOGAyFs7
>>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 * ' ' }
6439
垢版 |
2021/07/05(月) 00:26:38.86ID:e4Vm80Jj
>>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 * ' ' }
6539
垢版 |
2021/07/05(月) 01:08:34.16ID:e4Vm80Jj
>>64 もバグ有り
> sw = m1.wday - s % 7
sw = (m1.wday - s) % 7
2021/07/05(月) 17:31:47.07ID:7Yd2cijs
>>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秒。
2021/07/06(火) 12:39:02.75ID:gfjghTPI
数学板から
お題
Σ[n:2〜∞]cos(n)/log(n)を小数第10まで求めよ

元々収束するか?で収束するなら10桁計算せよってついてたけど今のところ10桁計算してみせた人おらず
もちろん収束遅すぎて少し工夫しないと10桁出すのは難しいかなと
68デフォルトの名無しさん
垢版 |
2021/07/06(火) 18:27:19.16ID:ifvAZrxB
>>67
わからない。
2021/07/07(水) 06:44:52.69ID:GHc1zSP4
>>67
チェザロ平均考えるとかかな
1万項の平均雑に計算したら-1.34までは収束してる感じ
https://ja.wikipedia.org/wiki/チェザロ平均
2021/07/07(水) 07:00:20.59ID:GHc1zSP4
>>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桁辺りまでは収束してそう
2021/07/07(水) 07:19:49.97ID:GHc1zSP4
8桁って小数第七位ね
2021/07/07(水) 19:16:52.25ID:5d+e1myw
この文献
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
2021/07/07(水) 20:36:04.14ID:MZbePiNM
>>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) よりアーベルの級数判定法の条件を満たすので所与の級数は収束する。
2021/07/07(水) 21:23:56.34ID:GHc1zSP4
>>72
すごい
あんまり読めてないけど交代級数じゃなくても使えるの?
2021/07/07(水) 21:39:28.53ID:5d+e1myw
>>74
6節でFFTの計算とともに使ってるのでフーリエ級数全般に使えるはず
2021/07/07(水) 22:23:37.48ID:7LucU1Ml
>>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')}/"
);
}
2021/07/07(水) 22:51:04.45ID:GHc1zSP4
>>75
やっぱり交代級数限定の話っぽいけど何で今回上手く行ってるのか良く分からない
2021/07/21(水) 03:52:07.59ID:s4XLTZzk
お題
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]
2021/07/21(水) 04:00:54.83ID:s4XLTZzk
訂正
-2 → [2,-2,1,1,0]
-1 → [0,-1,0,0,0]
2021/07/21(水) 05:27:57.77ID:qAe+ZLCy
-1と-2は自然数じゃない
2021/07/21(水) 13:17:19.10ID:s4XLTZzk
>>80
ですな
-1,-2は抜いて
じゃ追加で
3→[1,1,1,0,0]
10→[1,2,1,0,0]
1000→[1,-3,1,4,1]
などなど
2021/07/21(水) 16:30:29.39ID:s75CxDCd
>>81

n<=10^6 を力業で、先頭と最後の101件のみ表示

https://ideone.com/LjkJHe
2021/07/21(水) 20:59:05.44ID:qAe+ZLCy
寧ろ定義域を整数全体にすれば?
2021/07/21(水) 22:08:26.55ID:DfqCC9n+
>>83
元々整数のつもりだったのが筆が滑りましたw
お好きな方でという事で
自然数に限定して楽になる事もないと思うけど
85デフォルトの名無しさん
垢版 |
2021/07/22(木) 03:13:11.19ID:o3SPPMDQ
>>78
Kotlin
https://paiza.io/projects/ZteBpLjf11ybdKK6tORg5Q

無念無想で何も考えずにただ作った。
2021/07/22(木) 13:52:09.29ID:mzts8Rpt
元の問題

面白い問題おしえて〜な 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の中で探す)
2021/07/22(木) 20:25:25.04ID:giJnvKaJ
>>86
5次以下にはできない証明は?
2021/07/22(木) 20:30:40.90ID:eIP4GB5u
>>87
それはまだ数学板では5以下でも可能も5以外では不可能もどっちも証明されてません
2021/07/24(土) 11:44:46.01ID:uYrXTofe
お題: 端末上に地球を模した円の描画を行い、入力された緯度、経度のおおよその地点に印を付けろ
ただし描画される円の中心は常に日本の東京とし、東京が見えるようにすること
描画される円の大きさは自由とする
入力された座標が東京の裏側の半球上にあって印を描画できない場合は、印を描画しないか、あるいは円(地球)を透過させて印を描画する

地球の半径=6,371 km
東京の経度=139°41′30″
東京の緯度=35°41′22″

*出題者は自分で実装してません
2021/07/24(土) 11:48:58.50ID:2jz91/WX
>>89
画面の上を地球上のどの方位にするとか、平行投影なのか透視投影なのか画角どうするかとか決めないといけないんでないの?
2021/07/24(土) 11:53:24.04ID:uYrXTofe
>>89
>>90
画面の上端を北とします
投影方法と画角はよくわからないので自由とします^^;
2021/07/24(土) 12:18:19.24ID:/U+1YhTs
地球は球体じゃないから無理じゃない?
2021/07/25(日) 16:25:19.73ID:YgX/LOmt
地形データってどっかから取って来れるの?そこも自作しろと?それとも地形描画なしのツルツルの地球で良い?
2021/07/26(月) 04:06:01.70ID:uFE88Z/4
いいよ
2021/07/27(火) 08:42:26.61ID:3vSla0fp
>>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') + '/'
)
9696
垢版 |
2021/07/28(水) 13:12:24.23ID:D9Z9/eJz
>>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 = は時間がかかりすぎて解けない
2021/08/08(日) 11:08:25.71ID:KegFD0tb
平面上に円をおくと、円周上に整数点ができることがあるが
それがちょうど47個の円の最小半径は?
ここで前にもあったとおもったが、答わからん
98デフォルトの名無しさん
垢版 |
2021/08/10(火) 04:18:36.48ID:RT5RB9Hc
解き方がわからん。
2021/08/11(水) 00:16:58.90ID:yQA623uX
お題: (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はバイナリとみなしてもよい。
2021/08/11(水) 19:57:42.99ID:lGVA2SmZ
宿題は自分でやれ
2021/08/11(水) 23:48:46.02ID:BaITumyQ
ザリガニが見ていた...。 QuickDrawはどのように素早く円を描いていたのか?
https://zariganitosh.hatenablog.jp/entry/20100318/1269006632
102デフォルトの名無しさん
垢版 |
2021/08/12(木) 04:41:39.82ID:zN4hKecF
昔々グラフィックス画面に直線を描くアルゴリズム調べた時は感動したな。あれは40年ぐらい前か。月日の経つのは早いものぢゃ。
103デフォルトの名無しさん
垢版 |
2021/08/12(木) 09:29:17.38ID:GeyAERvY
お題
文字列を入力として受け取って
入力された文字列と、入力された文字列を逆順にした文字列を
1文字ずつ交互に結合した文字列を出力してください

入力: abcde
出力: aebdccdbea
2021/08/12(木) 10:08:21.06ID:Lpug+0Go
>>103 Ruby

'abcde'.size.times{$><<s[_1]<<s[~_1]} # => aebdccdbea
2021/08/13(金) 03:01:45.42ID:pLlXEN4h
>>103
Haskell

import Data.List
acbbca x = concat $ transpose [ x , reverse x ]
main = do
putStrLn $ acbbca "Hello World"
putStrLn $ acbbca "たけやぶやけた"

----
HdellrlooW WoolrlledH
たたけけややぶぶややけけたた
2021/08/13(金) 03:35:13.90ID:hXjFUBNl
なんかこういうのはhaskellのlensが得意そうな気がするな
この前Intのリストの奇数だけソートするのを
sortArray xs = xs & partsOf (each . filtered odd) %~ sort
だけで済ましてるのを見た
2021/08/13(金) 11:47:55.66ID:Zwr8vbQY
>>103 octave
https://ideone.com/vpOPSb
f = @(s) [s; flip(s)](:)';
f('abcde')
10896
垢版 |
2021/08/13(金) 12:16:45.65ID:Tqy/ucLn
>>103 Perl5

@b = reverse @a = split'', 'abcde';
use List::MoreUtils 'zip';
print zip @a, @b;

実行結果
~ $ perl 20_103.pl
aebdccdbea
109デフォルトの名無しさん
垢版 |
2021/08/13(金) 18:31:56.72ID:C2vgWz0X
>>103
Kotlin
https://paiza.io/projects/E21KbVl4H2KbA1kjxYhNug
110デフォルトの名無しさん
垢版 |
2021/08/13(金) 18:54:31.59ID:C2vgWz0X
>>103
C
https://paiza.io/projects/VF7q0iIqRNj-K-9wfd-OYg

>>109と出力が同じになるようにした。
それと、折角なので wchar で作った。
111デフォルトの名無しさん
垢版 |
2021/08/13(金) 20:49:58.92ID:++s/0C9b
>>103 J
f =: ,@(,. |.)

___ f 'abcde'
aebdccdbea
112sage
垢版 |
2021/08/13(金) 23:42:35.13ID:WxHHmkEE
>>104
Rbuy 3.0.2 だと s が未定だと怒られる
2021/08/14(土) 12:38:10.02ID:LgiNTbaj
>>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
2021/08/17(火) 02:41:19.70ID:5M+zf85m
お題: 菅話法作成


Kotlin
https://paiza.io/projects/ezYPpZR8VOLY5r3jCOS5qw
2021/08/17(火) 19:49:43.89ID:skFpZz34
>>114 Ruby

$><<%W[「中止の考えはない。強い警戒感を持って に臨む」\n「バブル方式で する。感染拡大の恐れはないと認識している」]*gets.chop
11696
垢版 |
2021/08/17(火) 22:38:15.40ID:BrZ+lWok
>>114 Perl5

$it="うっふ〜ん";
print<<EOF;
「中止の考えはない。強い警戒感を持って${it}に臨む」
「バブル方式で${it}する。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証として${it}する」
「${it}を中止することは一番簡単なこと、楽なことだ。${it}に挑戦するのが国民の役割だ」
「安心安全な${it}に向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
EOF

実行結果
$ perl 20_114_菅話法.pl
「中止の考えはない。強い警戒感を持ってうっふ〜んに臨む」
「バブル方式でうっふ〜んする。感染拡大の恐れはないと認識している」
「コロナに打ち勝った証としてうっふ〜んする」
「うっふ〜んを中止することは一番簡単なこと、楽なことだ。うっふ〜んに挑戦するのが国民の役割だ」
「安心安全なうっふ〜んに向けて全力で取り組む」
「不要不急かどうかは本人が判断すべきだ」
117デフォルトの名無しさん
垢版 |
2021/09/03(金) 01:55:54.93ID:d87lg/Z2
半月ぐらいお題が出ないので一つ。

お題: テトロミノ

こんなパズルを解く。
https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AD%E3%83%9F%E3%83%8E

大きさもピースも任意だが、上記ページにあるやつそのままで良い。(2つあるがどちらか一つで良い)
沢山パターンがあるかも知れないが、最初に見つかった一つを出すだけでも良い。
出力はテキストでも何でも人間が見て分かるようになってれば良い。

この問題については既にあちこちで答えが出ているような枯れた問題だと思うので、なるべく何も見ずに自分で考えて作ること。
2021/09/03(金) 20:43:43.19ID:9DjO+PTi
お題:15パズルを解くプログラム。

15パズルの盤を16要素の配列で表現し、実際に解く様子を出力せよ。空白は整数のゼロで表現する。
解けないときは「No answer」を出力せよ。可能ならば画像データも出力せよ。

参考資料:
http://www.studio-boiler.com/k/kouryaku/kou.htm
2021/09/04(土) 00:30:45.45ID:ExeocnPJ
猿真似しか出来んのか
120デフォルトの名無しさん
垢版 |
2021/09/04(土) 02:42:13.50ID:7+Hy81Ja
全然お題が出なかったからこれで良い
2021/09/04(土) 15:54:45.82ID:Q1ZjOy0h
最短でも80手らしい
それくらいだと全部表示してもそこまでうるさくないんだけど簡単な探索法だと2,300超えてしまいそう
全部表示したらうるさい事この上ないんだよな
2021/09/04(土) 16:28:17.76ID:HA1H8jBr
お題:パンくずリストを出力せよ

入力
東京,特許,許可局

出力
<ul class="pankuzu">
<li class="pankuzu_item">東京</li>
<li class="pankuzu_item">特許</li>
<li class="pankuzu_item active">許可局</li>
</ul>
123デフォルトの名無しさん
垢版 |
2021/09/06(月) 02:26:18.29ID:gafTCMAF
>>122
Perl5
https://paiza.io/projects/M15LdOIXcwfYWvx_hcHX1Q

よく分からんがこんなのでいいの?
2021/09/06(月) 09:51:36.66ID:AS0MIjWb
XSSに気をつけましょう
2021/09/06(月) 10:28:52.31ID:c9RFzrWf
>>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>
);
126デフォルトの名無しさん
垢版 |
2021/09/06(月) 11:28:19.10ID:DJ6jxapu
>>122 Python
https://ideone.com/j2xt8M
12796
垢版 |
2021/09/06(月) 12:09:28.54ID:GTV7C5SZ
>>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>
12896
垢版 |
2021/09/06(月) 13:04:59.11ID:moEus4wD
>>127

use HTML::TreeBuilder;

だと色々引き連れて来るので、使う

use HTML::Element;

をuseすれば良かったんだけど、結果は同じだしまいいや…
2021/09/06(月) 13:13:49.70ID:uTG0VSHW
>>117
Ruby
https://ideone.com/X55o9J

久しぶりにやってみた
2021/09/06(月) 19:38:11.84ID:n/A9WgFn
>>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 ["東京"; "特許"; "許可局"]
2021/09/07(火) 09:55:32.26ID:WSMGeNyo
>>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
132デフォルトの名無しさん
垢版 |
2021/09/07(火) 12:33:03.11ID:Q6Cbfir4
お題
次のように置換した文字列が入力される

ESC → ESCESC
CR → ESCcr
LF → ESClf

元の文字列を復元してください

続く・・・
133デフォルトの名無しさん
垢版 |
2021/09/07(火) 12:33:27.25ID:Q6Cbfir4
>>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
2021/09/07(火) 13:04:58.96ID:YXnsp+WP
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/, { 'ESCESC' => 'ESC', 'ESCcr' => 'CR', 'ESClf' => 'LF' } )
135134
垢版 |
2021/09/07(火) 13:14:10.80ID:YXnsp+WP
>>132 Ruby
def decode( str ) = str.gsub( /ESC(ESC|cr|lf)/ ){ _1[3..].upcase }
136デフォルトの名無しさん
垢版 |
2021/09/07(火) 22:44:48.30ID:Q6Cbfir4
>>122
Java
https://paiza.io/projects/LwpPH0iy3-lQmIZXNsvQRw
137デフォルトの名無しさん
垢版 |
2021/09/08(水) 01:03:27.49ID:gNm9L8yp
>>132
Perl5
https://paiza.io/projects/GuPz8h93U0uhn9iC8P8JsA
138デフォルトの名無しさん
垢版 |
2021/09/08(水) 01:19:37.74ID:gNm9L8yp
>>132
Kotlin
https://paiza.io/projects/N-kbMV4czxJeOPJ-kLTCqg
139デフォルトの名無しさん
垢版 |
2021/09/08(水) 01:55:31.54ID:gNm9L8yp
>>132
C
https://paiza.io/projects/Ov2KFf6JS8-60MTTy6rNng
14096
垢版 |
2021/09/10(金) 22:13:37.39ID:UuNKa3lP
>>132 Perl5

s/ESC(ESC|cr|lf)/\U$1/g;


実行結果
https://ideone.com/2dajdn
141デフォルトの名無しさん
垢版 |
2021/09/10(金) 22:32:25.84ID:VHKKBZ5d
そんなやり方があったとは知らなかった
2021/09/10(金) 23:29:13.91ID:aesnFr7F
お題: 円柱の高さ(5〜15cm)と半径(5〜10cm)を指定すると、その円柱の展開図のSVGデータを出力するプログラム。

展開図には一部、0.5〜1cmほどのりしろがあり、印刷・糊付けして実際に組み立てることができるものとする。SVGの用紙はA4サイズ。
2021/09/11(土) 00:32:47.77ID:7ac2XrM2
>>142
糊代を折ることを考えたら円柱じゃなくて(円に近い)多角柱になると思うけど、それでいいの?
2021/09/11(土) 10:37:25.30ID:DCkTc1oQ
>>143
いいよ。
145デフォルトの名無しさん
垢版 |
2021/09/12(日) 23:05:50.13ID:a0Jd4Hkz
>>132
Java
https://paiza.io/projects/H0RSztAvHumk7NcFZBWWnA

"ESCESC"を "ESC" 任意の文字 に変換して
逆の変換すればOK

下記のJSONの文字列のようなエスケープでも
同様のやりかたで復元できる、はず

\ → \\
\r → \\r
\n → \\n
146デフォルトの名無しさん
垢版 |
2021/09/12(日) 23:51:43.19ID:a0Jd4Hkz
訂正
\ → \\\\
\r → \\r
\n → \\n
147デフォルトの名無しさん
垢版 |
2021/09/12(日) 23:52:06.11ID:a0Jd4Hkz
訂正2
\\ → \\\\
\r → \\r
\n → \\n
2021/09/13(月) 00:01:27.06ID:kzWLxl1N
お題 転調記号の数

問題
12成分のベクトル
a=[ 5,2,3,4,1,6,1,4,3,2,5,0 ] // 半音上げた調号数
b=[ 0,5,2,3,4,1,6,1,4,3,2,5 ] // 原曲の調号数
c=[ 5,0,5,2,3,4,1,6,1,4,3,2 ] // 半音下げた調号数
をとる
12成分の実ベクトルxに対して
f(x) = min{ a・x, b・x、c・x } (・は内積)
と定める
xが領域
x[i]≧0, Σ_[i:1〜12] x[i]=1
を動く時f(x)の最小値を求めよ

原題は数学板にあるけど長いし音楽知らないとわけわかめになるので略
知りたい人は以下より

https://rio2016.5ch.net/test/read.cgi/math/1629715580/80
面白い問題おしえて〜な 38問目

https://rio2016.5ch.net/test/read.cgi/math/1629715580/190
面白い問題おしえて〜な 38問目
2021/09/13(月) 07:01:38.59ID:eHkY1yZB
x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況