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


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

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



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/

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

153 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 00:01:27.06 ID:kzWLxl1N.net]
お題 転調記号の数

問題
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問目

154 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 07:01:38.59 ID:eHkY1yZB.net]
x=[1,0,0,0,...]でf(x)は最小値0をとるけど、原題みるとf(x)の最大値を求めるのかな

155 名前:デフォルトの名無しさん [2021/09/13(月) 09:36:40.69 ID:bTLuzAmV.net]
対数とれば簡単

156 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 10:04:21.34 ID:kzWLxl1N.net]
>>149
orz
その通り
最大値求めよ
です

157 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 10:31:13.42 ID:7dFFnUhL.net]
黒鍵が1オクターブに5個しかないのに
調号が6個必要なのが納得出来ない

158 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 10:31:55.37 ID:7dFFnUhL.net]
最大値は3かな?

159 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 15:11:00.36 ID:kzWLxl1N.net]
>>152
嬰へ長調は♯6個とその異名同音調の変ト長調は♭6個でどうあがいても6個必要です
♭1個でキーは5/12上がり♯1個でキーは5/12下がりますがハ長調から見て嬰へ長調=変ト長調はどちらから回っていっても6個必要です

https://ja.m.wikipedia.org/wiki/%E5%AC%B0%E3%83%98%E9%95%B7%E8%AA%BF

>>153
もう少し大きいです
数学板で最初に出た3より大きい例は

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

変ト長調3回、ニ長調4回、変ロ長調4回

0 5 2 3 4 1 6 1 4 3 2 5
_ 4 _ _ _ 3 _ _ _ 4 _ _ = 35 > 33
_ _ 4 _ _ _ 3 _ _ _ 4 _ = 34 > 33
_ _ _ 4 _ _ _ 3 _ _ _ 4 = 35 > 33

つまりこの場合f(0,0,4/11,0,0,0,3/11,0,0,0,4/11,0)=34/11です
ホントの最大値はもう少し大きくなります

160 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 18:18:32.59 ID:7dFFnUhL.net]
円周率に近いな



161 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 22:45:15.18 ID:kzWLxl1N.net]
答え有理数です
しかしプログラム板のお題なので近似値出れば良しでいいと思います

162 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 22:51:14.71 ID:7dFFnUhL.net]
3.142857...
じゃなくて?

163 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 23:14:04.32 ID:kzWLxl1N.net]
3.2は超えます

164 名前:デフォルトの名無しさん mailto:sage [2021/09/13(月) 23:14:24.72 ID:7dFFnUhL.net]
orz

165 名前:ハノン mailto:sage [2021/09/14(火) 17:29:19.22 .net]
>>148
元の出題
>変ニ長調(♭×5)→ホ長調(♯×4)→へ長調(♭×1)という曲の平均調号数は

そんな変てこな転調があり得るのか‥‥

166 名前:デフォルトの名無しさん mailto:sage [2021/09/14(火) 20:25:22.64 ID:3yXL9VGN.net]
そう思ったら作曲してみよう

167 名前:デフォルトの名無しさん mailto:sage [2021/09/14(火) 23:17:19.71 ID:ugFzvtUj.net]
サビで短3度転調、後半盛り上がって

168 名前:半音上げはポップス曲だとよくある []
[ここ壊れてます]

169 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 02:21:25.59 ID:3vtMVT28.net]
>>148
そのお題はタイトルからして調べないと分からない単語が使われており、全体を通して何を言わんとしているのか分からない。

170 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 06:01:22.11 ID:uRkyJcx+.net]
>>163
音楽知識は不要 (不要なように書き換えてる)
それ以外は簡単な数学用語 (高校レベル)



171 名前:ハノン mailto:sage [2021/09/15(水) 06:22:14.22 .net]
>>162
>サビで短3度転調、後半盛り上がって半音上げはポップス曲だとよくある
気がつきませんでした、なるほど

>後半盛り上がって半音上げ
最後に半音上がるアレ、主和音と同じ高さで導音系の和音を強奏するのが無理があると思っており好みじゃないのです‥‥
https://www.youtube.com/watch?v=ENgNiqc0m3I&t=275s

172 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 06:28:49.75 ID:uRkyJcx+.net]
お前の好みとかどうで良くね?

173 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 06:34:56.44 ID:uRkyJcx+.net]
https://soundquest.jp/quest/chord/chord-mv7/classic-basic-modulation/

174 名前:ハノン mailto:sage [2021/09/15(水) 06:45:27.54 .net]
>>152
白鍵に調号をつけるしかない場面があるのです、>>154 のいうとおり ♭ソを基本の音にした音階のときはそうなります‥‥
では 7 個が最大かというと、そうでもなくて、ダブルシャープ(シャープ2個分)、ダブルフラット(フラット2個分)を使って(一時的に)8個以上の楽譜に仕上げる人がいました‥‥

175 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 08:25:52.14 ID:m09hSrNp.net]
>>165
私はあなたの存在が好みじゃないのです‥‥
https://www.youtube.com/watch?v=BuvaD67N46U

176 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 21:26:44.83 ID:UGHCgEvY.net]
ちなみにこの問題よくよく考えるとアルゴリズムの教科書によく出る超有名問題になってます
問題の名前だけは高校の数学の教科書にも載ってるくらい有名な問題です

177 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 22:28:51.28 ID:qUQwebCi.net]
3.2222222222222ってなるのかな
3.222221で止まってるけど

178 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 22:31:14.96 ID:uRkyJcx+.net]
最大=>3個とも平均が同じ=>3個の調しか使わない最大が存在する=>12C3全検索

179 名前:デフォルトの名無しさん mailto:sage [2021/09/15(水) 23:00:11.21 ID:UGHCgEvY.net]
>>171
それです
見つけ方は>>171さんの方法が1番簡単
なんせ何も工夫しなくてもC[12,3]=220通りしかないので全部総当たりで計算する方が早い
それには

5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l

0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、

5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l

0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、

a*b+c+d+e+f+g+h+i+j*k+l≧1
の中の
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l
の最大値探す時に例えばd,f,h成分だけ0でない領域での最大値を見つけるには12元の線形方程式
5a+ 2b+ 3c+ 4d+ 1e+ 6f+ 1g+ 4h+ 3i+ 2j+ 5k+ 0l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、

5a+ 0b+ 5c+ 2d+ 3e+ 4f+ 1g+ 6h+ 1i+ 4j+ 3k+ 2l
=
0a+ 5b+ 2c+ 3d+ 4e+ 1f+ 6g+ 1h+ 4i+ 3j+ 2k+ 5l、

a*b+c+d+e+f+g+h+i+j*k+l=1、
a=b=c=e=g=i=j=k=l=0
を解いてどれかの成分が0以下なら捨て、正なら候補に残して全部調べてのパターンを後3つやればいけます
(もちろん有理係数の線形方程式なので解は有理数)
その際線形代数の計算をやってくれるライブラリがあれはそんなに大変な作業にはならないはずです
というかこのタイプの問題“線形計画法”この問題解くためのライブラリ持ってるやつが多いのでその場合は数行で終わってしまいます

180 名前:デフォルトの名無しさん mailto:sage [2021/09/16(木) 00:34:05.02 ID:g1b5b/gu.net]
問題全く何も理解してない
力任せ
https://ideone.com/CuWX16



181 名前:デフォルトの名無しさん mailto:sage [2021/09/19(日) 19:11:20.33 ID:zqOP2O5f.net]
>>174
理詰めの解答よりこういう力技の解答の方がありがたいです
理詰めはどっかでうっかり間違ってる事も多いので

>>172さんの方針で220通り全数検索するコード組んでみました

https://ideone.com/Vyqp8r

元々用意してた解答は単体法( Simplex algorythm)というやつ使う方法だったんですけど、220個位なら全数検査した方が安全ですね
しかも全部調べるのでベスト10とか出せる
さっきのコードは原曲のままが最小になる場合のベスト10とどちらかに半音ずらした方が最小になる場合のベスト10です

182 名前:蟻人間 mailto:sage [2021/09/23(木) 00:23:18.14 ID:WyFAZLWz.net]
お題: 中心(x, y)で半径mの円と、中心(z, w)で半径nの円の当たり判定。






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

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

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