[表示 : 全て 最新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/

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の円の当たり判定。

183 名前:蟻人間 mailto:sage [2021/09/23(木) 00:36:24.97 ID:WyFAZLWz.net]
お題: カオス理論で知られるローレンツ・アトラクタを描画せよ。

184 名前:蟻人間 mailto:sage [2021/09/23(木) 00:45:13.27 ID:WyFAZLWz.net]
お題: 厚み0.5cm長さX cmのしなやかなテープを最小のうずまき状にまるめると直径は何cmになるか。X = 20, 30, 50.

185 名前:ハノン mailto:sage [2021/09/23(木) 12:30:22.12 ID:HaJtCNmP.net]
>>178
「しなやかな」の定義中、中心側の終端の扱いを精緻に定義しなおしてください

186 名前:デフォルトの名無しさん mailto:sage [2021/09/23(木) 12:40:13.64 ID:fWOsjY2x.net]
document.querySelectorAll('.post').forEach( e => {

const nameElement = e.querySelector('.name');
if(nameElement === null) return;
const name = nameElement.innerText;
if(name.indexOf('◆T6xkBnTXz7B0') >= 0 || name.indexOf('◆QZaw55cn4c') >= 0) e.remove();

});

187 名前:デフォルトの名無しさん [2021/09/23(木) 16:05:27.59 ID:jg/8HMJJ.net]
>>176
それって数学的な証明はよくわからないんだけど直感的に考えると、(x, y) から (z, w) の距離が m + n 以下なら当たりで良いのかな?
他のパターンで当たる場合はなさそうだけど、あったとしても今は思いつかないのでとりあえずプログラムはそれで作ろうかと思う。



188 名前:デフォルトの名無しさん mailto:sage [2021/09/23(木) 16:34:26.56 ID:LOQBNAlJ.net]
円周か円板かで答えが違う

189 名前:デフォルトの名無しさん mailto:sage [2021/09/23(木) 17:12:27.81 ID:QUC7Fk2H.net]
入力として整数値が与えられたらその中の立っているビットを
等確率でランダムに一つ抜き出した整数値を出力する

3が与えられたら1か2のどちらかを1/2の確率で
17179877640が与えられたら8か256か8192か17179869184のどれかを1/4で

190 名前:デフォルトの名無しさん mailto:sage [2021/09/23(木) 18:08:32.21 ID:em+PQ8QU.net]
>>Ruby
n = 17179877640

bits = []
while n > 0
n ^= b = n & -n
bits << b
end
puts bits.sample

191 名前:181 [2021/09/24(金) 02:52:30.55 ID:N3yB15M0.net]
>>176
Kotlin
https://paiza.io/projects/LbOUfPjd6NuCyj7qhFdYqQ

192 名前:デフォルトの名無しさん mailto:sage [2021/09/24(金) 18:51:00.62 ID:FX1uO51R.net]
お題 繁分数
奇数個の整数がカンマで区切りで与えられる
間に'+'と'/'を順に挿入して計算する、ただし優先順位は後から優先
例) "1,2,3,4,5,6,7" → " 1 + 2 / ( 3 + 4 / ( 5 + 6 / 7 ))) = 233/151 ≒ 1.543046357616
計算結果を出力せよ

例)
入力 : "1,2,3,4,5,6,7"
出力 : 1.543046357616

入力 : "1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2"
出力 : 1.4142135623730951

入力 : "2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1 "
出力 : 2.718283582089552

入力 : "0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100"
出力 : 3.141593311879928

193 名前:デフォルトの名無しさん mailto:sage [2021/09/24(金) 19:42:20.13 ID:SF8pwxS9.net]
>>186
なぜ、偶数個あるのか?
偶数個は最後に1"を入れてやってみた
(頭悪いからリヴァースして、浮動小数点でやっている)

https://wandbox.org/permlink/jzQZa53lpDSPdJo1

194 名前:デフォルトの名無しさん mailto:sage [2021/09/24(金) 21:54:41.68 ID:uMkpdCmM.net]
>>187
数え間違えorz

195 名前:ハノン mailto:sage [2021/09/25(土) 21:21:39.43 ID:YrZFQiAF.net]
>>186
https://ideone.com/pWADzs

196 名前:ハノン mailto:sage [2021/09/25(土) 21:23:01.64 ID:YrZFQiAF.net]
>>187
うーむ、私の >>189 よりシンプルですね

197 名前:96 mailto:sage [2021/09/25(土) 22:19:21.21 ID:qK5TmKac.net]
>>186 Perl5

use feature qw{signatures say};
no warnings 'experimental';
sub s($a, $b, @a) { @a ? $a + &d($b, @a) : $a + $b }
sub d($a, $b, @a) { @a ? $a / &s($b, @a) : $a / $b }
say &s(/(\d+)/g) for <DATA>;
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100

実行結果
$ perl 20_186_fraction.pl
1.54304635761589
1.4142135623731
2.71828236824984
3.14159316790851



198 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 00:35:27.94 ID:x+MOSZRz.net]
>>186

ruby -ne "/$_.split(?,).map(&:to_f).each_slice(2).reverse_each.reduce{|(s), (a, b)| b / s + a}"

# input
1,2,3,4,5,6,7
1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
2,1, 1,1, 2,1, 1,1, 1,1, 4,1, 1,1, 1,1, 6,1, 1,1, 1,1,1
0, 4, 1, 1, 3, 4, 5, 9, 7, 16, 9, 25, 11, 36, 13, 49, 15, 64, 17, 81, 19, 100, 1

# output
1.5430463576158941
1.4142135623730951
2.718282368249837
3.141593167908507

199 名前:ハノン mailto:sage [2021/09/26(日) 02:32:13.09 ID:fnZfkDL3.net]
>>186 C
>>189
終端処理を間違えていたので御題にあわせて修正
https://ideone.com/4mkYde

233/151 = 1.54304635761589414855
1855077841/1311738121 = 1.41421356237309514547
1457/536 = 2.71828358208955211950
54193766400/17250408000 = 3.14159331187992751921

200 名前:デフォルトの名無しさん [2021/09/26(日) 02:51:04.12 ID:edcxzAwz.net]
>>186 J
f =: +`%/
___ f 1,2,3,4,5,6,7
1.54305

201 名前:96 mailto:sage [2021/09/26(日) 11:06:39.50 ID:ROfWiNc+.net]
>>186 Perl5、>>191だと分母が大きい値になるテストケースで下の桁が例解と違ってくるので、通分を下から再帰的に行って
最後に割り算するようにした。また数値の個数が偶数だった場合には0を補うようにした

use feature qw{signatures say}; no warnings 'experimental';
sub f($a, $b, $c = 0, @r) {
 if (@r) {
  ($c, $e) = f($c, @r);
  $b *= $e;
 }
 ($a * $c + $b), $c;
}
for (<DATA>) {
 my ($n, $d) = f(/(\d+)/g);
 say "$n / $d = ", $n / $d;
}
__DATA__
1,2,3,4,5,6,7
1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2
2,1,1,1,2,1,1,1,1,1,4,1,1,1,1,1,6,1,1,1,1,1
0,4,1,1,3,4,5,9,7,16,9,25,11,36,13,49,15,64,17,81,19,100

$ perl 20_186_fraction_2.pl
233 / 151 = 1.54304635761589
1855077841 / 1311738121 = 1.4142135623731
1457 / 536 = 2.71828358208955
54193766400 / 17250408000 = 3.14159331187993

202 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 13:52:29.02 ID:Db797RWb.net]
すいません
>>191は例題おかしいので数字合わないですね
気にしないでください
最後の例では最後の項の100抜くか、最後に21を追加してください

100抜いた場合は
4317632 / 1374345 = 3.14159254044654
21追加した場合は
54743776 / 17425485 = 3.1415926730303347

になると思います
>>191の例は
0+4/(1+(1/(3+...(17+81/(19+100/0)))))...)))
になってしまってるんだと思います(違うかも)

203 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 15:05:57.74 ID:RIy3qD4V.net]
>>186 ocaml
https://ideone.com/VpQwAG
let f xs =
let rec g = function
[] -> 0, 1
| a :: [] -> a, 1
| a :: b :: [] -> a + b, 1
| a :: b :: cs -> let n, d = g cs in a * n + b * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d

>>186 ocaml
https://ideone.com/5D0lHx
let f xs =
let rec g = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = h xs in x * d + n, d
and h = function
[] -> 0, 1
| x :: [] -> x, 1
| x :: xs -> let n, d = g xs in x * d, n
in let n, d = g xs in Printf.printf "%d / %d = " n d;float n /. float d

204 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 15:06:59.82 ID:RIy3qD4V.net]
let g xs = Printf.printf "%.16f\n" @@ f xs
let () =
g [];g [1];g [1;2];g [1;2;3];g [1;2;3;4];g [1;2;3;4;5;6];
g [1;2;3;4;5;6;7];
g [1;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2;1;2];
g [2;1;1;1;2;1;1;1;1;1;4;1;1;1;1;1;6;1;1;1;1;1];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19];
g [0;4;1;1;3;4;5;9;7;16;9;25;11;36;13;49;15;64;17;81;19;100;21]

0 / 1 = 0.0000000000000000
1 / 1 = 1.0000000000000000
3 / 1 = 3.0000000000000000
5 / 3 = 1.6666666666666667
9 / 7 = 1.2857142857142858
59 / 37 = 1.5945945945945945
233 / 151 = 1.5430463576158941
1855077841 / 1311738121 = 1.4142135623730951
4178 / 1537 = 2.7182823682498372
66628546560 / 21208521600 = 3.1415931679085070
12434780160 / 3958113600 = 3.1415925404465401
315324149760 / 100370793600 = 3.1415926730303347

205 名前:ハノン mailto:sage [2021/09/26(日) 19:57:37.78 ID:KhgDxRBF.net]
>>197
>[] -> 0, 1
>| x :: [] -> x, 1
>| x :: xs -> let n, d = h xs in x * d + n, d

>>193 を書いた私としてはなんとなくわかってしまうのが‥‥悲しいですね

206 名前:ハノン mailto:sage [2021/09/26(日) 19:58:46.43 ID:KhgDxRBF.net]
つまり >>193 は言語として冗長だ、という点が悲しい、という意味です、誤解を招かないように補充します

207 名前:デフォルトの名無しさん [2021/09/26(日) 21:14:48.05 ID:K0n5mMQr.net]
>>183
Java
https://paiza.io/projects/MEzZhPu6JRPceVynvuTqAw



208 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 21:49:22.16 ID:6LE1NaJb.net]
お題: 与えられたUTF-8日本語文章から空白と記号を取り除いた後の文字列にNGワードがあるかどうか判定せよ。

NGワード: 「集近閉」「地獄経済」

例文1「集☆近☆閉☆は☆不☆滅」
例文2「地/獄/経/済/は/大/丈/夫」

出力例:「NGワード「集近閉」があります。」
出力例:「OKです。」

209 名前:デフォルトの名無しさん [2021/09/26(日) 21:51:41.83 ID:K0n5mMQr.net]
>>186
Java
https://paiza.io/projects/UI9ARHgZiXtVhZHIJXp7Jg?language=java

210 名前:デフォルトの名無しさん mailto:sage [2021/09/26(日) 21:58:42.24 ID:Db797RWb.net]
>>196
いまレス読み返したらアンカー間違ってるorz
>>196>>191と書いてあるのは全部>>186宛の自己レスです
191さんすいません
ちなみにやっぱり186の数値

3.141593311879928

は最後の部分を.../(17+81/(19+100/(0))))..として処理した値でした
100/0が∞になって17+81/(19+∞) = 17となって結局17で打ち切った場合の答えになってました
17で打切った場合

3763456 / 1197945 = 3.1415933118799275

>>186の値になってました

211 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 02:09:19.34 ID:mB71+9h3.net]
お題:: 文字列に対して文字列の範囲を指定すると、その範囲を角カッコで囲って出力するプログラムを作れ
文字列はASCII文字の並びでソ

212 名前:ートされている前提とする

入力フォーマット
文字列
範囲

入力
abcdefghijklmn
c-g

出力
ab[cdefg]hijklmn
[]
[ここ壊れてます]

213 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 03:27:36.76 ID:HGR3sN0a.net]
お題: ハッシュタグをGoogle検索リンクに変換せよ。

ハッシュタグを含む日本語UTF-8文字列が与えられる。ハッシュタグをHTMLハイパーリンクに変換してHTMLテキストを出力する。

ハッシュタグは「#」か「#」か「♯」で始まるものとします。
ハッシュタグには半角の「_」以外の記号と空白は使えません。
HTMLの特殊文字「&<>」はそれぞれ「&」「&lt;」「&gt;」に変換するものとします。
検索リンクは日本語グーグルを使用します。

入力例「これは #テスト文字列です。 #家族募集中 <本日は雨天なり>」

214 名前:デフォルトの名無しさん [2021/09/27(月) 03:36:26.68 ID:lACGcuZa.net]
>>206
出力例もよろしく

215 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 03:39:59.74 ID:HGR3sN0a.net]
>>206
訂正。「&」→「&amp;」

216 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 04:15:57.90 ID:HGR3sN0a.net]
>>206
出力例「これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;」

217 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 10:56:06.17 ID:BIqiQYZe.net]
家族募集中
が無視されてるのは何故?



218 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 11:20:24.19 ID:FdLhLOZv.net]
>>206
$ echo -e 'これは #テスト文字列です。 #家族募集 中 <本日は雨天なり>' |
sed -e 's/&/\&/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' -e 's![##♯]\(\w*\)!<a href="https://google.co.jp/search?hl=ja\&source=hp\&q=\1">&</a>!g'

これは <a href="https://google.co.jp/search?hl=ja&source=hp&q=テスト文字列です">#テスト文字列です</a>。 <a href="https://google.co.jp/search?hl=ja&source=hp&q=家族募集中">#家族募集中</a> &lt;本日は雨天なり&gt;

219 名前:デフォルトの名無しさん [2021/09/27(月) 16:42:34.63 ID:lACGcuZa.net]
>>186
Kotlin
https://paiza.io/projects/HLf5ipRdYfeUkeWaJJdCAg

偶数個のやつは一つ削って奇数個にした。

220 名前:デフォルトの名無しさん [2021/09/27(月) 17:07:09.23 ID:lACGcuZa.net]
>>186
Perl5
https://paiza.io/projects/SXR1Q0vDlTYSPhY1BLUiBA

これはまあ、ふざけたやり方というかなんというか。計算はPerlにお任せ。

221 名前:デフォルトの名無しさん [2021/09/27(月) 21:40:29.82 ID:lACGcuZa.net]
>>205
Kotlin
https://paiza.io/projects/HOEEJeT5syiOJDkmB6VLlQ

正規表現使って置換しているだけ。他の言語でも正規表現使ったら大差ない感じになるかも。

222 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 22:04:19.72 ID:IGWq0JTX.net]
>>205 octave
https://ideone.com/p4vSPE
f = @(s, r) regexprep(s, ['([' r ']+)'], '[$1]');
f('abcdefghijklmn', 'c-g')

223 名前:デフォルトの名無しさん mailto:sage [2021/09/27(月) 23:53:33.07 ID:CFsFGFcT.net]
>>214
性器を痴漢
まで読んだ

224 名前:デフォルトの名無しさん mailto:sage [2021/09/28(火) 00:35:44.78 ID:R7FPj2K+.net]
>>213
やはりそれきましたかw

225 名前:デフォルトの名無しさん [2021/09/28(火) 02:40:03.94 ID:wFK5NO29.net]
>>206
Kotlin
https://paiza.io/projects/X2vegPHscigvi2ILMs00Wg

正規表現使って一発でやるのではなく1文字づつ読んでやるように作った。

226 名前:デフォルトの名無しさん [2021/09/28(火) 07:20:01.83 ID:OyddjX6J.net]
>>176 Lua
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) <= (m + n) ^ 2
end

227 名前:デフォルトの名無しさん [2021/09/28(火) 07:27:57.86 ID:OyddjX6J.net]
>>219
間違えました
function f(x, y, m, z, w, n)
return (x - z) ^ 2 + (y - w) ^2<= (m + n) ^ 2
end



228 名前:デフォルトの名無しさん [2021/09/28(火) 10:29:00.43 ID:wFK5NO29.net]
あ、そーか。2乗のまま比較すればsqrt不要だったな。

229 名前:デフォルトの名無しさん [2021/09/28(火) 19:11:27.77 ID:RwSKB5Xt.net]
>>202
Kotlin
https://paiza.io/projects/qStwB_RNzaqRnbq0Klro4g

二番目のやつはOKではないな。






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

前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