• ベストアンサー

計算式を教えてください。

長さ3,000mm 直径は50mm と仮定して、(比重は0.0167) この棒を重さは15kg~25kgの間になるような均等の長さに分けたいと思います。 正確な重さと均等な長さ(割り切れる長さ)を求める式はどうしたら出るのでしょうか? 数当て計算すると1500mmX2本で重さ23.15293kgになりますがこれをxを直径、長さをl、で function kinntou(){、、、のうなjavascriptで書けますでしょうか?また、回答がいくつか出た場合は一番25kgに近い長さを取り、均等に分けられないときは均等に一番近い長さを計算するようにはできないでしょうか?超初心者で数学は小学校以来勉強したことがないようなものですのでできるだけ具体的に教えていただければ幸いです。どうかよろしくお願いいたします。

  • ozuzo
  • お礼率37% (10/27)

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.8

No4.です出来ました。 var kotae = calc(3000,50); if kotae.len > 0 { alert("答え 長さ:" + kotae.len + "mm 重さ:" + kotae.w + "Kg"); }else{ alert("答え 無し"); } } function calc(in_length,in_rad){ var d = 0.0167; var weight = {len:0,w:0}; var w = 0; var area = Math.pow(in_rad/10, 2) * Math.PI; for(i=1;i<in_length;i++){ if((in_length % i) == 0){ w = i/10 * area * d; if (w > 15.0 && w <= 25.0){ weight.len = i; weight.w = Math.max(weight.w, w); } } } return weight; }

ozuzo
質問者

お礼

ご回答ありがとうございます。何回も申し訳ありません。ご回答を見直したところできました。すべて解決いたしました!すばらしいご回答ありがとうございました。Dcument.write(calc(3000,50))で[object Object] になるのは当たり前ですね。 また何かありましたらどうぞよろしくお願いいたします。

ozuzo
質問者

補足

お忙しところご親切な詳しい内容の具体的なご回答ありがとうございます。お礼が送れて申し訳ありません。ご回答内容を勉強させて頂いていますが、このままだとエラーが出るので、上から7行部分を削除してDcument.write(calc(3000,50))としてHTMLに貼り付けても[object Object] となってしまいます。いろいろ自分でエラーを見つけようとしてもわかりませんでした。もしよろしければどうやってHTMLに貼り付けたら動作するの教えて頂けませんでしょうか?どうぞよろしくお願いいたします。

その他の回答 (10)

  • prophetok
  • ベストアンサー率44% (13/29)
回答No.11

#10です。 もし 長さ(割り切れる長さ) というのがmmで表した場合の整数のみという意味なら、 #10の回答は無視してください。

  • prophetok
  • ベストアンサー率44% (13/29)
回答No.10

>均等に分けられないときは均等に一番近い長さを計算する 均等に分けられない場合というのは、どんな場合ですか? あり得ないので、この記述は無意味ですよね。 >回答がいくつか出た場合は一番25kgに近い長さ は小学校レベルの算数で以下のように計算できます。 a=棒の重量÷25kg aが整数の場合  一本の長さ=棒の長さ÷a 一本の重さ=棒の重さ÷a aが整数でない場合 一本の長さ=棒の長さ÷(a+1) 一本の重さ=棒の重さ÷(a+1) ここで一本の重さ<15kgであれば解なし for文とか使う必要は全くありません。

ozuzo
質問者

補足

お忙しいところご解答ありがとうございます。確かに小学生レベルの問題だと思うのですが、私自身その程度のレベルですのでこのご説明だと余計によくわからなくなります。できましたら具体的にfor文等をまったく使わず動くプログラムを実際にどのように書いたらよいのか教えていただけませんでしょうか?どうぞよろしくお願い致します。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.9

#5です。 円周率を掛けるのを忘れてましたね。 var 全重 = 直径 * 直径 * 長さ * 比重 * 3.14 / 4000; 割り算を後にするのは計算誤差が小さくなる確率が高いからです。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.7

No2です。 >確かにエラーが出る範囲が多々あると思います。 >そのときはエラーアラート等で結構です。 スクリプトの書き方を考える前に、どのような処理手順で(エラー処理も含めて)計算をするかを決めておかなければ、書き方は決まりません。 >そのときはエラーアラート等で結構です。 そのときってどういうときでしょうか? 「エラーになったとき」と言うお答えが目に浮かびますが、エラーになった時にはスクリプトは既に停止しているのが通常ですので、アラーとは出せません。(ブラウザがアラートを出してくれる場合もありますが) どういうときに、アラートを出すのかも含めて考えておくというのが、↑で説明したことです。 これが終わらないうちは、スクリプトを書き始めても無駄になってしまいます。 まずは、#1様の回答の意味をよく考えてください。 >数当て計算すると1500mmX2本で重さ23.15293kg~~ スクリプトで数当て計算するにはどのような論理(ロジック)で行えばよいかを考えておく必要があります。 >javascriptで計算するjavascriptでの書き方を知りたいと思っています。 とりあえず、適当に書くならこんな感じでしょうか? (HTMLなどで通常利用されているjavascriptです。Adobe社製品などで用いられているjavascriptではありません。) function calc() { var l = 3000; //長さ(mm) var r = 50; //直径(mm) var q = 0.0167; //比重 var qt = r*r*Math.PI/4*l*q, d1 = qt/25000, d2; d2 = Math.floor(d1); d2 += d1>d2?1:0; return (qt/d2<15000)?'解答不能':(''+d2+'分割('+l/d2+'mm)'); } 戻り値は、「○分割(××mm)」みたいに分割数とその長さが文字列で返ります。

ozuzo
質問者

補足

お忙しところご親切な詳しい内容の具体的なご回答ありがとうございます。お礼が送れて申し訳ありません。ご回答内容を勉強させていただき後日お礼申し上げます。ありがとうございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.6

入力をどのようにするとか HTMLの中に組み込んで処理させるのか スクリプトをコマンドラインから起動するのか 分割する数はいくつなのか >1500mmX2で重さ23.15293kg ?? おかしくないですか 2.5*2.5*PI*150*0.0167 って 49.1855... になりませんか 逆に 23.15293kgから逆算すると 半径が1.772(cm)になってしまいますよ ... 円周率の平方根ぽい数値

ozuzo
質問者

補足

お忙しところご回答ありがとうございます。そのとうり変でした!大変申し訳ありません私、比重を0.00617で計算していました。私ミスです。申し訳ありません。面目ない。 htmlの中に組み込んで処理したいと思っています。 どうぞよろしくお願いいたします。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.5

>重さ23.15293kg 私の計算では31.3125Kgなんですが、ヘンですね。 先ず、全体の重量ですが、(直径*直径/4)*長さ/1000*比重では? 次に理論の組み立てを行います。 (1)分割数の初期値を1とする。 (2)長さを分割数で割る。剰余が出た(割り切れない)場合は(4)へ (3)全体の重量を分割数で割る。この値が25Kg以下なら、この時の  (長さ÷分割数)が回答、25Kgより大きければ(4)へ ---------------------------------- (4)分割数を1増やす。分割数>長さなら答えはないので中止する。  (2)から繰り返す。 function 均等(直径,長さ,比重) {   var 全重 = 直径 * 直径 * 長さ * 比重 / 4000;   for ( var 分割数 = 1 ; 分割数 <= 長さ ; 分割数++ ) {     var 分割長 = 長さ / 分割数;     if ( 分割長 == floor(分割長) ) { //割り切れた場合       if ( (全重 / 分割数) <= 25000 ) {         return 分割長; //25Kg以下の最大長を返す       }     }   }   return 0; //最後まで来た時は回答がない } ※インデントに漢字空白を使っています。 但し、WindowsでJavaScriptを稼動する場合は漢字空白はOKで、 漢字の変数名、関数名も使用可能です。

ozuzo
質問者

補足

お忙しところご親切な詳しい内容のご回答ありがとうございます。そのとうり変でした!大変申し訳ありません私、比重を0.00617で計算していました。私ミスです。申し訳ありません。 この場合は比重は固定ですので0.5でも0.15でも構いません。教えていただいた事を割り当てて試してみようと思いますので自分にできましたら時間をいただいた後、再度お返事いたします。本当にありがとうございました。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

もう少しインプトとアウトプットをプログラム仕様的に定義すると 以下であってますか。 (入力する値) 長さ in_length : 1~∞ 単位(mm) 半径 in_rad  :1~∞ 単位(mm)  比重 d:0.0167に固定 単位({KG/1000}/{1000*mm*mm*mm}) (出力されるもの) 長さ out_length: 1~∞ 単位(mm) 重さ out_weight:1~∞ 単位(KG) (条件) ・out_lengthはin_lengthの整数倍 ・15 < out_weight < 25 この条件で最大のout_lengthとout_weightを計算する

ozuzo
質問者

補足

お忙しいところご親切な ご回答をいただきありがとうございます。 (入力する値) 長さ in_length : 1,000~7,000 単位(mm) 半径 in_rad  :10~200 単位(mm)  比重 d:0.0167に固定 単位({KG/1000}/{1000*mm*mm*mm}) (出力されるもの) 長さ out_length: 10~∞ 単位(mm) 重さ out_weight:1~∞ 単位(KG) (条件) ・out_lengthはin_lengthの整数倍 ・15 < out_weight < 25 この条件で最大のout_lengthとout_weightを計算する 上記、書き足させていただきました。 ご回答に書いていただいたyyr446様のとおりでも構わないと思いますが 範囲を絞った方が簡単であれば上記ぐらいの範囲内の式で結構です。 また、私にはわかりませんが、半径が必要なのでしょうか?(直径の代わりでしょうか?) ほんとうにありがとうございます。どうぞよろしくお願いいたします。

  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.3

書き込もう・・と思ったのですが、 「直径は50mm」 <- この時点で、「正確な重さ」が出ないし、割り切れない・・・ 逆に考えると、所詮は2等分(もしくは数等分程度)にしか分けられないのであれば、 全部答えを出して一覧表にして、目で選ぶ、でよいのでは? それが出来れば、「一番近い」というプログラムに発展するのは難しくない と思います。

ozuzo
質問者

補足

お忙しいところご親切なご回答ありがとうございます。 50mmにこだわらず直径300mm長さ6,000mmだとどうなるのでしょうか? 等分するには何ミリに分ければ等分でき(あまりがなく)15k~25kgに収まるのでしょうか? ボタン一発で計算できるjavascriptでの書き方はこ難しいのでしょうか?もしよろしければ教えてください。どうぞよろしくお願いいたします。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

計算式を知りたいのか、javascriptを知りたいのか、どちらなのでしょうか? (ちなみに、ここはjavascriptに関するカテゴリーです) >15kg~25kgの間になるような均等の長さに分けたい~ 全体が25kgを超えて30kg未満の時には、そのままだと25kgを超えてしまうし2等分すると15kg以下になってしまうので、条件を満たす解が存在しないことになります。 ご質問文に記載の条件だけで計算式を組むと、↑のような時にはエラーになるか、誤った答えが出ることになってしまいます。

ozuzo
質問者

補足

お忙しところご回答ありがとうございます。 javascriptで計算するjavascriptでの書き方を知りたいと思っています。 確かにエラーが出る範囲が多々あると思います。 そのときはエラーアラート等で結構です。 どうぞよろしくお願いいたします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

数学というより算数の世界のように思います 最初に 与えられた条件の物体の重さをどのように求めればいいのかを考えて見ましょう その中で 15から25kgにするために変化させるlを考えてみればいいように思いますが 物体の重さは その体積に比重を乗算すれば出ますよね 体積は底面積と長さ(高さ)の乗算で出来ます 円柱の底面は円ですので 半径x半径x円周率で出ます このとき 与えられた条件の単位系にも配慮しましょう

ozuzo
質問者

補足

ご回答ありがとうございます。 確かに算数ですね。おしゃっる事はよくわかります。 比重や体積の計算は私でも頭悪いながらよく存じておりますので長さや直径等がわかれば比重にて計算できます。私の質問がわかりにくいのかもしれませんが質問内容をjavascriptにて計算したいのです。 よろしくお願いいたします。

関連するQ&A

  • 応力の計算について

    直径10mmの丸棒に質問100kgのおもりをつりさげたとき、棒に生じる応力を求めなさい。ただし、 棒の重量を無視します。という計算式を求める公式で A=π/4×(10×10‐3)2=25π×10‐6[m2] =25π[mm2]の部分の25π×10‐6に成るのが解らないのですが、単純な質問で悪いのですが、教えてください。

  • 荷重計算

    重さが1kg、長さ100cmの均等な棒の両端を平行に支えているとき、その両端では500gと500gの荷重ですが、片側が1mm低くなった場合の両端にかかる荷重の計算方法を教えてください。

  • アルコール度数の比重計算が合わないのはなぜですか?

    アルコール度数 30%(V/V)の比重が0.96552で、 100リットル=96.552kgとなるのですが、 30リットルの100%アルコールと、70リットルの水で分けて計算すると、 100%アルコールの比重が0.79422で、30リットル=23.8266kg 水の比重が約1として、70リットル=70kg 計93.8266kg 96.552kg-93.8226kg=2.7294kgの誤差が出るのですがなぜでしょうか? 同僚が度数のkgを換算表を確認せずに、このやり方でkgを報告してくるので、 合わない理由を伝えたいのですが・・・無知でわかりませんでした。 何方か助けてください・・・お願いします。

  • 配合の計算を教えて下さい。

    配合の計算を教えて下さい。 (1) 28% 280kg (2) 7% 70kg (3) 0.10% 1kg (4) 64.90% 649kg 計 100% 1000kg この配合なんですが、(1)と(2)に後36kg入れ込みたいのですが、(1)と(2)のパーセンテージそのままで36kgをこの比率で均等に振り分けたいのです。(1)と(2)は違う成分なんですが、この36kgは(1)と(2)を混合し、同じ成分にしたものです。どうしてもこの36kg分を使い切りたいのでこの計算方法を教えて下さい。お願いします。

  • 転倒防止

    コイル材の転倒防止について教えてください。 外径 800mm 幅200mm 重量500kgのリン青銅のコイル材を台座に置いています。 地震が発生したと仮定し、このコイルが転等しないように側面に棒(溶接構造も可)を立てるとするとどの位の直径の棒があればいいのでしょうか? 棒は片側2本で考えています。 計算式があれば是非お教え下さい。 人によっては、500kgコイルを横置きにし空中に浮かして2本の棒で支えられるほどの強度が無いと駄目だと言われています。 そこまでの強度は必要ないと思うのですが・・納得してもらえません。

  • 真鍮をせん断するのに必要な力

    はじめまして。 力学的なことに弱いので教えてほしく投稿しました。 (せん断で検索しましたがよくわかりませんでした) 直径1ミリの真鍮棒を切断するのに必要な力はどのように計算すればよいのでしょうか?ちなみにシャーリングのように切断する部分以外は支えた状態です。 また出来れば、真鍮0.3の板を直径1ミリで打ち抜く場合は、直径1ミリの周長とせん断強度で計算できるのでしょうか? 式=1mmx3.14x0.3mmx30kg/mm2=28.26kg これで合っているのでしょうか? 以上、宜しくお願いいたします。 「また出来れば」ちょっと日本語がおかしい部分がありました。

  • ポリカ製球体の中に200kgの水 海水で沈み込みは

    海面上にポリカーボネート製球体 比重1.2 厚さ5mm 直径2m この中に200kgの水が入っていて浮んでいると仮定。このとき海面下にどれだけ沈むでしょうか。 あるいはそれ自体の製作が不可能とか、球形を維持できないとか、浮ばないとか、何でも分かることや推測できることを教えて下さい。

  • 水平な棒の先端(または手元)にかかる重さは何kg…

    水平な棒の先端(または手元)にかかる重さは何kgか? いつもお世話になっております。 ネットで検索はしたものの求めていた答えが見つからず、 (検索キーワードがよくない為かもしれません) レベルの低い質問をしますが、どうか教えていただけますでしょうか。 ある人が長さ5mの棒を水平に持っています。 この先端に10kgのおもりをぶら下げました。 この人の手元には何Kgの重さがかかるのでしょうか。 (先端には何kgの重さがかかるのでしょうか) 棒の重さや、たわみは無視します。 てこの原理は小学校の理科で習ったレベルは十分にわかっています。 例えば、 支点から右側へ距離10mmのところに5kg。 支点から左側へ距離20mmのところに2.5kg はつり合います。 しかし、その力点には何kgの重さがかかるのかと問われると、 ん?と考えてしまい、わからないという結論に至りました。 例えば、支点から1mmはなれた所に重さ3kgの場合。 1m×3kg=3となりますか? 元々3kgのモノが1m分有利になる条件で同じ3kgにはならないと思いました。 では、単位が違うのかと思い、mmで計算すると、 1000mm×3kg=3000 3トンもかかるはずがないと思います。 単位がkg・mやkg・mmになるので、単純に重さではないのかもしれませんが、 その辺も含め、どれくらいの重さがかかるのか、教えていただけますでしょうか。 本当に低レベルな質問ですが、何卒お付き合い下さい。 宜しくお願い致します。

  • モータの必要トルクの計算方法を教えてください。

    モータの必要トルクの計算方法を教えてください。 4輪のロボットで2輪だけ動かして走らそうと思っています。 ロボットの質量は13.8[kg] タイヤの直径は 4[cm] 走行速度はまだ決めていないので V[m/s]と仮定してください。 ほかにも足りない数値は適当に仮定して計算してください。 計算方法をわかりやすくお願いします。

  • 板の座屈計算方法。

    たびたびすいません。 板にかかる座屈の計算方法を調べています。 P→ □ ←P このような感じです。 板幅は1000mmx1000mmで板厚は12mmです。Pは100kgです。 参考になるようなサイトを教えて頂けると非常にありがたいです。 お手数ですがよろしくお願い致します。

専門家に質問してみよう