楕円弧の長さ(番外編) - 春日屋の方法 -

楕円弧の長さは級数解や台形公式による数値積分によっても計算できますが 処理速度を考えると ガウスルジャンドルあるいは春日屋の方法が適しています。


楕円弧の長さは

で計算できます。

 

 

楕円弧の長さは 楕円の長径×第2種楕円積分 で与えられることがわかります。第2種楕円積分は楕円弧の円周率πのようなものだと考えれば受け入れやすいと思います。
wikipedia 楕円積分によれば、ルジャンドル標準形の楕円積分になります。数式処理ソフト maxima の組込関数はこの形式が採用されています。

 

※参考文献
  ○楕円弧の長さの計算式は、応用数学 第4巻 建築構造講座 コロナ社
  ○Gaussの求積法は、解析概論[改訂第三版] 岩波書店
  ○Legendreの多項式は、自然科学者のための数学概論[増訂版] 岩波書店
  ○平均値法は、次元解析・最小2乗法と実験式 応用数学講座 第5巻 コロナ社  本間 仁・春日屋伸昌 共著

 


今回は 春日屋の方法 です。ガウスルジャンドルの方法より積分点にして2点分精度がよくなると本には書いてありました。


春日屋の方法の説明は省略します。参考文献を参照ください。


つぎのプログラムを  200-9-1.bat で保存して実行すると

:楕円弧の長さ(春日屋の方法)
@echo off
ruby -x %~f0
pause
goto:eof

#!ruby

def kasugaya(n)
  pi = Math::PI
  ee = Array.new(1, 0.0)
  hh = Array.new(1, 0.0)

if n == 1
ee[  1]= 0.0000000000000000000000000000000000000000
hh[  1]= 1.3333333333333333333333333333333333333333
end

if n == 2
ee[  1]=-0.4472135954999579392818347337462552470881
hh[  1]= 0.8333333333333333333333333333333333333333
end

if n == 3
ee[  1]=-0.6546536707079771437982924562468583555692
ee[  2]= 0.0000000000000000000000000000000000000000
hh[  1]= 0.5444444444444444444444444444444444444444
hh[  2]= 0.7111111111111111111111111111111111111111
end

if n == 4
ee[  1]=-0.7650553239294646928510029739593381503657
ee[  2]=-0.2852315164806450963141509940408790719190
hh[  1]= 0.3784749562978469803166128082120246524763
hh[  2]= 0.5548583770354863530167205251213086808570
end

if n == 5
ee[  1]=-0.8302238962785669298720322139674651395872
ee[  2]=-0.4688487934707142138037718819087663294056
ee[  3]= 0.0000000000000000000000000000000000000000
hh[  1]= 0.2768260473615659480107004062900662934976
hh[  2]= 0.4317453812098626234178710222813622779309
hh[  3]= 0.4876190476190476190476190476190476190476
end

if n == 6
ee[  1]=-0.8717401485096066153374457612206634381038
ee[  2]=-0.5917001814331423021445107313979531899457
ee[  3]=-0.2092992179024788687686572603453512552955
hh[  1]= 0.2107042271435060393829920657757563244553
hh[  2]= 0.3411226924835043647642406771077481717751
hh[  3]= 0.4124587946587038815670529714022097894838
end

if n == 7
ee[  1]=-0.8997579954114601573123452444183379580515
ee[  2]=-0.6771862795107377534458854270913424507110
ee[  3]=-0.3631174638261781587107520687086592130206
ee[  4]= 0.0000000000000000000000000000000000000000
hh[  1]= 0.1654953615608055250463397200292083058391
hh[  2]= 0.2745387125001617352807056185793727259413
hh[  3]= 0.3464285109730463451151315321397182879475
hh[  4]= 0.3715192743764172335600907029478458049887
end

if n == 8
ee[  1]=-0.9195339081664588138289326608223381341535
ee[  2]=-0.7387738651055050750031061748598307250162
ee[  3]=-0.4779249498104444956611750927312579978868
ee[  4]=-0.1652789576663870246262197659581735332312
hh[  1]= 0.1333059908510701111262271707553928981096
hh[  2]= 0.2248893420631264521194578217310478427539
hh[  3]= 0.2920426836796837578755822573744438922075
hh[  4]= 0.3275397611838974566565105279168931447068
end

if n == 9
ee[  1]=-0.9340014304080591343322741360993836345399
ee[  2]=-0.7844834736631444186224178161084581035072
ee[  3]=-0.5652353269962050064709639694777516642831
ee[  4]=-0.2957581355869393914319115155590575089410
ee[  5]= 0.0000000000000000000000000000000000000000
hh[  1]= 0.1096122732669948644614034495803507100495
hh[  2]= 0.1871698817803052041081415218994349195692
hh[  3]= 0.2480481042640283140400848664218727533437
hh[  4]= 0.2868791247790080886792224033315352311837
hh[  5]= 0.3002175954556906937859318811699764080716
end

if n == 10
ee[  1]=-0.9448992722228822234075801383032187136113
ee[  2]=-0.8192793216440066783486415817169026606905
ee[  3]=-0.6328761530318606776624048544436558582438
ee[  4]=-0.3995309409653489322643497915669669005277
ee[  5]=-0.1365529328549275548640618557396938968984
hh[  1]= 0.0916845174131961306683425941340792863103
hh[  2]= 0.1579747055643701151646710627003402682512
hh[  3]= 0.2125084177610211453583020773668662701954
hh[  4]= 0.2512756031992012802932444121475961833334
hh[  5]= 0.2714052409106961770002883384996028403946
end

if n == 11
ee[  1]=-0.9533098466421639118969054647554491516265
ee[  2]=-0.8463475646518723168659256070987533595780
ee[  3]=-0.6861884690817574260727590395663555529292
ee[  4]=-0.4829098210913362017469372336369336207722
ee[  5]=-0.2492869301062399925686737003742269814888
ee[  6]= 0.0000000000000000000000000000000000000000
hh[  1]= 0.0778016867468189277935889883331335850679
hh[  2]= 0.1349819266896083491199147625893708892562
hh[  3]= 0.1836468652035500920074942587468107232464
hh[  4]= 0.2207677935661100860855340083793962974673
hh[  5]= 0.2440157903066763564585781483601562125312
hh[  6]= 0.2519308493334467360441386415412389438363
end

if n == 12
ee[  1]=-0.9599350452672609013551001620154243890664
ee[  2]=-0.8678010538303472510002202029082642132499
ee[  3]=-0.7288685990913261405846724005208815956573
ee[  4]=-0.5506394029286470553166227058590806344621
ee[  5]=-0.3427240133427128450439034036416746448331
ee[  6]=-0.1163318688837038676587767097361601679415
hh[  1]= 0.0668372844976812846340706607460528250576
hh[  2]= 0.1165866558987116515409966706546502300047
hh[  3]= 0.1600218517629521424128209979875946405039
hh[  4]= 0.1948261493734161186403317783758845121486
hh[  5]= 0.2191262530097707548711625239541676129583
hh[  6]= 0.2316127944684570588896283572926391903159
end

if n == 60
ee[  1]=-0.9980595952127857544319923256370367456288
ee[  2]=-0.9935001182696870862175500631533750099573
ee[  3]=-0.9863480105471107832207555644946358673946
ee[  4]=-0.9766224865738200900175431626048883511309
ee[  5]=-0.9643490173304325045483788268147495415199
ee[  6]=-0.9495596509405890912365082965505685366456
ee[  7]=-0.9322929815935626961116425674808135697259
ee[  8]=-0.9125940606463695115621511578412828249591
ee[  9]=-0.8905142826105712416822422986006240830320
ee[ 10]=-0.8661112523399236181745452070767241945627
ee[ 11]=-0.8394486352707370005113375115665249509794
ee[ 12]=-0.8105959915664353970507342454612750214658
ee[ 13]=-0.7796285947624483782900099834020223405367
ee[ 14]=-0.7466272354494844540636875471743303109236
ee[ 15]=-0.7116780105355638165348117308349532032830
ee[ 16]=-0.6748720986497959285072607339736204731379
ee[ 17]=-0.6363055222804088457543610103489738647020
ee[ 18]=-0.5960788972710214475583808353234885247859
ee[ 19]=-0.5542971703305762683171202397448639719772
ee[ 20]=-0.5110693452428111103609323015463474131557
ee[ 21]=-0.4665081984901889379551199174138709650837
ee[ 22]=-0.4207299850345740718119069662032031979998
ee[ 23]=-0.3738541350224784738313508955799084735818
ee[ 24]=-0.3260029422062924530410404268278307151092
ee[ 25]=-0.2773012448944732883555528994810508205194
ee[ 26]=-0.2278761002631231865389540767504372469436
ee[ 27]=-0.1778564528786861559571298577109141520680
ee[ 28]=-0.1273727982965821216387755102303861424497
ee[ 29]=-0.0765568426134338683484155384160191198426
ee[ 30]=-0.0255411588610930442529364605504092883482
hh[  1]= 0.0032578875892193705400658288108591076184
hh[  2]= 0.0058585285951202132236895906129121769032
hh[  3]= 0.0084425156729469517240270075569432215917
hh[  4]= 0.0110042892283715360561410953058342068237
hh[  5]= 0.0135373071001432463019152281928274032533
hh[  6]= 0.0160349917875454051802509566526858489568
hh[  7]= 0.0184908364361957759816636230491184600714
hh[  8]= 0.0208984374891704307118320529550987412284
hh[  9]= 0.0232515152756522865883070552817601238432
hh[ 10]= 0.0255439315939736018266295280403659667498
hh[ 11]= 0.0277697061599817990535022956808744829759
hh[ 12]= 0.0299230323861576791088977998289420206868
hh[ 13]= 0.0319982926097273081984410794479549977101
hh[ 14]= 0.0339900727868500097742349403196931930867
hh[ 15]= 0.0358931766369543930297005125587646373201
hh[ 16]= 0.0377026392099203142537748954742444935029
hh[ 17]= 0.0394137398451159661187072791732942892313
hh[ 18]= 0.0410220144906234089353483865742307094032
hh[ 19]= 0.0425232673516080645601076983397951805885
hh[ 20]= 0.0439135818380274349884770468805870505246
hh[ 21]= 0.0451893307834418340676882282092659294249
hh[ 22]= 0.0463471859084532638734367590370309952378
hh[ 23]= 0.0473841265041931870561880670511655813757
hh[ 24]= 0.0482974473132715643772729130853151240671
hh[ 25]= 0.0490847655876680265687789238820916430702
hh[ 26]= 0.0497440273051781802346310918050411873626
hh[ 27]= 0.0502735125282139798922410596267012224930
hh[ 28]= 0.0506718398909887450009451796321837236081
hh[ 29]= 0.0509379702033875707592108413402838237381
hh[ 30]= 0.0510712091621258449276952566411995025023
end

if n == 150
ee[  1]=-0.9996801762805673678678861357708914774721
ee[  2]=-0.9989279875031513685321236840166328850702
ee[  3]=-0.9977461535635095748633095679956457081665
ee[  4]=-0.9961352740779420183061331065027338604213
ee[  5]=-0.9940960578546266166638257063338814286742
ee[  6]=-0.9916293863409461620396678801864341837114
ee[  7]=-0.9887363218898173787527895097084278244604
ee[  8]=-0.9854181092416954026405423519227961241996
ee[  9]=-0.9816761755677783210765063845812557062332
ee[ 10]=-0.9775121300647850135918812136331137818278
ee[ 11]=-0.9729277633490531682467517239586869254969
ee[ 12]=-0.9679250467259490499067777057295020190244
ee[ 13]=-0.9625061313617453113623562775161529837276
ee[ 14]=-0.9566733473689756359348978628674745985649
ee[ 15]=-0.9504292028102848749063398087651331623331
ee[ 16]=-0.9437763826233643105634108394591642171081
ee[ 17]=-0.9367177474685079399231712370395082144721
ee[ 18]=-0.9292563324998470266350296232772979086545
ee[ 19]=-0.9213953460610985415914167503970937760650
ee[ 20]=-0.9131381683065630182986507064694475499317
ee[ 21]=-0.9044883497480675528920048476004259115626
ee[ 22]=-0.8954496097285410487619876589397909258718
ee[ 23]=-0.8860258348229168444458576933233294986855
ee[ 24]=-0.8762210771670750619341143149295327950274
ee[ 25]=-0.8660395527155593397850331891838269536740
ee[ 26]=-0.8554856394288278355688687874291393201057
ee[ 27]=-0.8445638753908252170139909121104652636283
ee[ 28]=-0.8332789568576900589808191688326276119046
ee[ 29]=-0.8216357362384401694354199840150589762589
ee[ 30]=-0.8096392200085065993520495631712030028509
ee[ 31]=-0.7972945665570152682310169718108065059296
ee[ 32]=-0.7846070839687431395752281320426933675653
ee[ 33]=-0.7715822277417036281345556413930627505025
ee[ 34]=-0.7582255984413433558020567582837532493538
ee[ 35]=-0.7445429392923594538210759467167704769954
ee[ 36]=-0.7305401337091733034892175067687415634889
ee[ 37]=-0.7162232027661228904807591860807849399034
ee[ 38]=-0.7015983026084617983707013236631874003775
ee[ 39]=-0.6866717218052782671205761253562095953263
ee[ 40]=-0.6714498786454726765285236130866517221350
ee[ 41]=-0.6559393183779562688604694216517356444493
ee[ 42]=-0.6401467103972578861229239584976655810772
ee[ 43]=-0.6240788453757489536447684435512527322600
ee[ 44]=-0.6077426323437198814281608978589994197421
ee[ 45]=-0.5911450957185634672901927815886169819622
ee[ 46]=-0.5742933722843427608008579232536985236676
ee[ 47]=-0.5571947081230421744919533513550155079886
ee[ 48]=-0.5398564554988213991943412911731230916135
ee[ 49]=-0.5222860696966118844221973821556455864803
ee[ 50]=-0.5044911058164152735424035306821649401789
ee[ 51]=-0.4864792155246822284262153593475295772873
ee[ 52]=-0.4682581437641685310514663074652738961453
ee[ 53]=-0.4498357254236832020649952398900079230298
ee[ 54]=-0.4312198819691606208664089846021326559622
ee[ 55]=-0.4124186180375052608548697771357247433179
ee[ 56]=-0.3934400179946736598880295113209383041515
ee[ 57]=-0.3742922424594736228127375038366048657466
ee[ 58]=-0.3549835247945753934960638532228111193502
ee[ 59]=-0.3355221675662436317479968279524706387279
ee[ 60]=-0.3159165389743124798008667292107610962460
ee[ 61]=-0.2961750692539387977951134764339010248680
ee[ 62]=-0.2763062470506807825011107633184002324267
ee[ 63]=-0.2563186157704606530534260277498800882235
ee[ 64]=-0.2362207699059808868462849753339063660214
ee[ 65]=-0.2160213513411736132861049835448636480035
ee[ 66]=-0.1957290456352722184592561566246477354148
ee[ 67]=-0.1753525782881029758843249051739345899326
ee[ 68]=-0.1549007109882025936063918553371231441049
ee[ 69]=-0.1343822378453749524806297802690997548838
ee[ 70]=-0.1138059816093070014058168515461359366858
ee[ 71]=-0.0931807898758697696258507101232843426310
ee[ 72]=-0.0725155312827357514396662469079415599431
ee[ 73]=-0.0518190916959485124686960360933836807244
ee[ 74]=-0.0311003703890842570496506001444382446333
ee[ 75]=-0.0103682762166482816751199884926024889637
hh[  1]= 0.0005371205851124984803355057776831884889
hh[  2]= 0.0009671117293716843495581698278071833170
hh[  3]= 0.0013964614919548786166814874621987310315
hh[  4]= 0.0018251798703594782794251751294742617692
hh[  5]= 0.0022531057590492305795124187878878032557
hh[  6]= 0.0026800602268002222340763243065443195377
hh[  7]= 0.0031058612178100317222103670795101652701
hh[  8]= 0.0035303262093649574525747997321982718826
hh[  9]= 0.0039532729287709005305111162063761657010
hh[ 10]= 0.0043745196289280802281483156663301571347
hh[ 11]= 0.0047938852378162022768228282623622669849
hh[ 12]= 0.0052111894654250603711838860820365380952
hh[ 13]= 0.0056262528942852727800760249966073451512
hh[ 14]= 0.0060388970628920667466767219863396346396
hh[ 15]= 0.0064489445456644199686259914142777154752
hh[ 16]= 0.0068562190309796724536579703100502097906
hh[ 17]= 0.0072605453979719362062002659034500867245
hh[ 18]= 0.0076617497924120477386473759036440215398
hh[ 19]= 0.0080596597018155869720569610265068933438
hh[ 20]= 0.0084541040298422126488801021059090777931
hh[ 21]= 0.0088449131700072506061448577793735379055
hh[ 22]= 0.0092319190787041589191267245627726905350
hh[ 23]= 0.0096149553475243662897661256136424630254
hh[ 24]= 0.0099938572748542361956810335016413884350
hh[ 25]= 0.0103684619367251094217923692179654780985
hh[ 26]= 0.0107386082568902383740756727244645061120
hh[ 27]= 0.0111041370761012517730928293000118685255
hh[ 28]= 0.0114648912205561894120367744326098818111
hh[ 29]= 0.0118207155694909011855668080511094540118
hh[ 30]= 0.0121714571218855821454467784844664751121
hh[ 31]= 0.0125169650622583377853856820489294113477
hh[ 32]= 0.0128570908255178933275141589946255886403
hh[ 33]= 0.0131916881608478477014979569433868566015
hh[ 34]= 0.0135206131945952082744586481566206760017
hh[ 35]= 0.0138437244921363139940034150219189081312
hh[ 36]= 0.0141608831186936544173491166235339577154
hh[ 37]= 0.0144719526990775147403039980802936046998
hh[ 38]= 0.0147767994763268187427607765238069170701
hh[ 39]= 0.0150752923692239999786671676730497048364
hh[ 40]= 0.0153673030286592047400608914785407757714
hh[ 41]= 0.0156527058928196169895490319543512478896
hh[ 42]= 0.0159313782411801945874573177917959944008
hh[ 43]= 0.0162032002472726169678334269791844073855
hh[ 44]= 0.0164680550302097663249933856691982207857
hh[ 45]= 0.0167258287049435968492972634452153523922
hh[ 46]= 0.0169764104312347891611193751216460821315
hh[ 47]= 0.0172196924613131394506714628739771635541
hh[ 48]= 0.0174555701862081945892900783720175512037
hh[ 49]= 0.0176839421807302153106283807529987845732
hh[ 50]= 0.0179047102470821291605729423211948819968
hh[ 51]= 0.0181177794570837229869001408170931183947
hh[ 52]= 0.0183230581929899209956423272837495567541
hh[ 53]= 0.0185204581868855985576917969858767479048
hh[ 54]= 0.0187098945586399937260588180645852951277
hh[ 55]= 0.0188912858524043975425939645584357556099
hh[ 56]= 0.0190645540716374303944744804277457860116
hh[ 57]= 0.0192296247126428446466066176810901816058
hh[ 58]= 0.0193864267966054332467353217596543613726
hh[ 59]= 0.0195348929001112696947000864035119675295
hh[ 60]= 0.0196749591841391564037055865269866594677
hh[ 61]= 0.0198065654215108157758608623495036411123
hh[ 62]= 0.0199296550227880209810643654650493354808
hh[ 63]= 0.0200441750606055311803280799278349510797
hh[ 64]= 0.0201500762924293684828660451155495297846
hh[ 65]= 0.0202473131817306509800423581919242160758
hh[ 66]= 0.0203358439175658774662500243791011936333
hh[ 67]= 0.0204156304325552446430582498692752690812
hh[ 68]= 0.0204866384192512664131001438821348940896
hh[ 69]= 0.0205488373448906570073390326895782488028
hh[ 70]= 0.0206022004645231348553977634229712670697
hh[ 71]= 0.0206467048325115020041991786819126908393
hh[ 72]= 0.0206823313123980542147850137347231160208
hh[ 73]= 0.0207090645851330793194067489495085875356
hh[ 74]= 0.0207268931556619056984992239674901817395
hh[ 75]= 0.0207358093578676685368917627559117252484
end

  return ee, hh
end

def E2(p, k, ee, hh)
  n = ($n == nil ? 60 : $n)
  m = (n + n % 2) / 2
  if k == 0 || n < 1
    return p
  end
  l = 0.0
  if n > 1
    for i in 1..n / 2
      l += hh[i] * f(ee[i] * p, k)
    end
  end
  if m == n / 2 + 1 #奇数個の場合
    l += hh[m] * f(ee[m] * p, k) / 2.0
  end
  l += (f(-p, k) + f(p, k)) / (n + 1.0) / (n + 2.0) #この項で2点分精度が向上する
  return l * p
end

def f(x, k)
  return Math.sqrt(1.0 - (k * Math.sin(x)) ** 2)
end

def apa(o, p)
  return (90.0 * (2 * ( (o + 1) / 2).to_i - 1) - p) * (-1) ** (o - 1)
end

def s(a, b, p1, p2)
  pi = Math::PI
  w = b / a
  r = a
  if w > 1
    w = 1.0 / w
    r = r / w
    p1 = p1 - 90.0
    p2 = p2 - 90.0
  end
  k = Math.sqrt(1.0 - w * w)
  n = ($n == nil ? 60 : $n)
  ee, hh = kasugaya(n)
  ec = E2(pi / 2.0, k, ee, hh)
  lp = ( (p2 - p1).abs / 360.0).to_i * 4 * ec
  p1 += 360 while p1 < 0
  p1 -= 360 while p1 >= 360
  p2 += 360 while p2 < 0
  p2 -= 360 while p2 >= 360
  if p1 == p2
    return r * lp
  else
    n1 = 1 + (p1 / 90.0).to_i
    n1 = 4 if n1 > 4
    lp += ec * ( (n1 + 1) % 2) + E2(apa(n1, p1) * pi / 180, k, ee, hh) * (-1.0) ** (n1 - 1)
    n2 = 1 + (p2 / 90.0).to_i
    n2 = 4 if n2 > 4
    n1 += 4 if n1 == n2
    n3 = 5 + 2 * ( (n2 - 1) / 2.0).to_i
    lp += ec * ( (n3 - n1) % 4) + E2(apa(n2, p2) * pi / 180, k, ee, hh) * (-1.0) ** n2
    lp += 4 * ec if lp < 0.0
    return r * lp
  end
end

puts "Kasugaya's method"
$n = 60 #積分点数 1-12, 60, 150
puts "node n = %s" % $n
puts
a, b, p1, p2 = 1.0, 0.5, 0, 90
puts "a b p1 p2 = %s %s %s %s" % [a, b, p1, p2]
puts "s = %s" % s(a, b, p1, p2)
puts "true value"
puts "s = %s" % 1.2110560275684596
puts
a, b, p1, p2 = 1.0, 0.5, -30, 120
puts "a b p1 p2 = %s %s %s %s" % [a, b, p1, p2]
puts "s1 + s2 = %s" % s(a, b, p1, p2)
puts "true value"
puts "s1 + s2 = %s" % 2.00981083328632


計算結果は

となります。


春日屋の方法の積分点の位置と重みの計算は UBASIC で行いました。


楕円弧の長さの計算には楕円積分が必要だとわかり、楕円積分の関数表を探しても見つからず、そうこうするうちに UBASIC に行き当たり DE 公式なるプログラムを見つけて、これだとなり、それで終わればよかったものの、ふと、ガウスルジャンドルの方法の積分点のプログラムを見つけてしまい、さあさあさあ。
ガウスルジャンドルや春日屋の方法は awk でプログラムを組んでもサクサク動いてぱっと値を返してくれました。エクセルで積分点を 100万点 計算したこともありました。そして それは 有効桁数 15 では意味がないこともわかりました。有効桁数 15 なら 2~3万点くらいがよい値を返ってきた記憶があります。

春日屋の方法の 積分区間は -1 から +1 で、積分点の係数は対称性があるので、ガウスルジャンドルの方法の子孫だと考えます。

 

大阪万博の木のまるい庇のアイデアに、マウンティングが1ミリでもあるなら、ひとがさるから進化したということは納得できます。奈良や鎌倉の大仏の現代版が庇だというのは当時の権力者へのオマージュなのでしょうか。権力は貴族から氏族そして合理主義者へ移り、それが木のまるい庇というのは面シロい。科学の子~♪ 鉄腕アトムが空から登場すれば盛り上がると思いますっ!!

 

お金はあるから使う。あたりまえ。必ずもうかるから。どこかで聞いた。決まったこと。だめだとわかれば。それでも引き返さない。親方日の丸。なるほど。ちいさく産んでおおきく育てる。あぁ。

 

税金でいろんな金儲けを仕掛けても金持ちは金を使わないから景気は悪くなってしまいました。貧乏人が弱っています、経済、買春、差押、金持ちにも貧乏人にも分け隔てなく金を配って景気をよくします。はぁ。マウンティングなら金持ちにシロ。