Info
Gallery
How to
木材発注量の見積もり
# 木材発注量の計算 ## 使い方 1. カット後の木材の数を半角数字で入力->送信ボタン 2. 名前と長さを入力(長さは半角数字で、1以上3650以下)->送信ボタン - [![/files/images/fullsize/1376200427034-Howto____.png](/files/images/thumbnail/1376200427034-Howto____.png)](/files/images/fullsize/1376200427034-Howto____.png) - [![/files/images/fullsize/1376200427044-Howto____2.png](/files/images/thumbnail/1376200427044-Howto____2.png)](/files/images/fullsize/1376200427044-Howto____2.png) サンプル画像 土台のみ(3650 × 6, 2700 × 5, 600 × 4)だと発注量は11本 発注するときは計算された発注量に予備として2本くらい足しておくと安心です。 太さの異なる木材を発注する場合は、太さ毎に計算してください。 ## アルゴリズムについて (興味のある人向け) - このような問題は [箱詰め問題 (bin packing problem)](http://www.wikiwand.com/ja/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C) として知られていて、最適解 (最小の本数になるような解) を求めるための**効率的**なアルゴリズムは見つかっていません。もちろんすべてのパターンを列挙すれば最適解を見つけることができますが、現実的な時間では終わりません。 - このページでは、箱詰め問題の近似解 (最小とは限らないがだいたい良さそうなもの) を求めるためのアルゴリズムである (事前ソート付きの) ファーストフィット法を使っています。 - 最適解にならない例としては、A (1650mm) × 2, B (1000mm) × 4 をカットしたい場合、最適解は [ A | B | B ], [ A | B | B ] で2本ですが、このページのアルゴリズムでは [ A | A | 余り ], [ B | B | B | 余り ], [ B | 余り ] で3本になってしまいます。 - ですが、木材の本数が多くなってきたり短い木材があったりすると、最適に近いカット方法を示してくれるようになるので気にしなくて構いません。多くの場合では自分で計算するほうが困難です。 ---- <form> カット後の木材の数: <input type="number" min="1" max="100" id="num" size="3"> 本<br> <input type="button" value="送信" onClick="numberOfLumber()"> </form> <p id="cut"> </p> <form id="inputField"> </form> <div id="result"> <p id="numOrder"> </p> </div> <script type="text/javascript" src="/assets/js/lumber.js"></script>
# 木材発注量の計算 ## 使い方 1. カット後の木材の数を半角数字で入力->送信ボタン 2. 名前と長さを入力(長さは半角数字で、1以上3650以下)->送信ボタン - [![/files/images/fullsize/1376200427034-Howto____.png](/files/images/thumbnail/1376200427034-Howto____.png)](/files/images/fullsize/1376200427034-Howto____.png) - [![/files/images/fullsize/1376200427044-Howto____2.png](/files/images/thumbnail/1376200427044-Howto____2.png)](/files/images/fullsize/1376200427044-Howto____2.png) サンプル画像 土台のみ(3650 × 6, 2700 × 5, 600 × 4)だと発注量は11本 発注するときは計算された発注量に予備として2本くらい足しておくと安心です。 太さの異なる木材を発注する場合は、太さ毎に計算してください。 ## アルゴリズムについて (興味のある人向け) - このような問題は [箱詰め問題 (bin packing problem)](http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C) として知られていて、最適解 (最小の本数になるような解) を求めるための**効率的**なアルゴリズムは見つかっていません。もちろんすべてのパターンを列挙すれば最適解を見つけることができますが、現実的な時間では終わりません。 - このページでは、箱詰め問題の近似解 (最小とは限らないがだいたい良さそうなもの) を求めるためのアルゴリズムである (事前ソート付きの) ファーストフィット法を使っています。 - 最適解にならない例としては、A (1650mm) × 2, B (1000mm) × 4 をカットしたい場合、最適解は [ A | B | B ], [ A | B | B ] で2本ですが、このページのアルゴリズムでは [ A | A | 余り ], [ B | B | B | 余り ], [ B | 余り ] で3本になってしまいます。 - ですが、木材の本数が多くなってきたり短い木材があったりすると、最適に近いカット方法を示してくれるようになるので気にしなくて構いません。多くの場合では自分で計算するほうが困難です。 ---- <form> カット後の木材の数: <input type="number" min="1" max="100" id="num" size="3"> 本<br> <input type="button" value="送信" onClick="numberOfLumber()"> </form> <p id="cut"> </p> <form id="inputField"> </form> <div id="result"> <p id="numOrder"> </p> </div> <script type="text/javascript" src="/assets/js/lumber.js"></script>
2014/12/31 14:12:33 の更新