กลุ่มผู้ดูแลระบบแห่งประเทศไทย
2 กันยายน 2015, 11:22:03 *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: การหาค่า สแควรูท  (อ่าน 37326 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« เมื่อ: 21 พฤษภาคม 2008, 13:36:58 »

คือ ผมอยากทราบวิธีการหาค่า สแควรูท อ่ะครับ
ตามสูตรในรูป เลย น่ะ ครับ
  คือ ผม หาค่าที่ Sum  ของ (Xi-X บาร์) ยกกำลัง 2   หาร n-1 ได้ แล้ว 
แต่ผมต้องการ ถอด สแควรูท อะครับ ต้อง เขียนโค้ดในแนวๆ ไหน ใครรู้บ้าง ช่วยที  ด่วน สุดๆครับ




จะเป็น ภาษา C, C++, Java, C# , VB6.0, VB.NET ก็ได้ครับ


* 1.JPG (3.5 KB, 194x97 - ดู 18173 ครั้ง.)
บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
BuffBear
Thaiadmin Global Staff
*****

จิตพิสัย: 55
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,884


Sara


« ตอบ #1 เมื่อ: 21 พฤษภาคม 2008, 13:41:32 »

ใน  .net ก็

system.math.sqrt ครับ
บันทึกการเข้า

บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #2 เมื่อ: 21 พฤษภาคม 2008, 13:43:33 »

เค้าให้ เขียน เป็น อัลกอริทึม อะครับ

เค้าไม่ให้ใช้ การ อิมพอรต์ หรือ ใช้ เมดธอด ที่มี ใน .NET  อะครับ

บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #3 เมื่อ: 21 พฤษภาคม 2008, 14:16:23 »

วิธี Babylonian method of guess and divide

ตัวอย่าง สมมติหา square root ของ 20 โดยต้องใส่เลข เดาสุ่มมา 1 ตัว สมมติว่าใช้ 10

วิธีทำคือ เดาเลข 1 ตัว  --> หาร  --> หาค่าเฉลี่ย

เดา 10    -->  20/10 = 2       หาค่าเฉลี่ย 10 และ 2  ได้ = 6  เอาไปใช้เป็นเลขเดา
      6     -->   20/6 = 3.333  หาค่าเฉลี่ย  3.333 และ 6 =  4.6666
4.666     -->   20/4.666= 4.1414  หาค่าเฉลี่ย  4.666 และ 4.1414= 4.4048
4.4048   -->   20/4.4048=4.5454  หาค่าเฉลี่ย  = 4.4700
4.4700   -->   20/4.4700=4.4742  หาค่าเฉลี่ย  = 4.4721
4.4721   -->   20/4.4721=4.47217  หาค่าเฉลี่ย  = 4.47214

จะเห็นว่าค่าเริ่มซ้ำ ทศนิยม 4 ตำแหน่งแล้ว ก็น่าจะเพียงพอแล้ว แต่ถ้าทำต่อก็จะได้ละเอียดขึ้น
4.47214  --> 20/4.47214=4.472132   หาค่าเฉลี่ย =4.472135 
4.472135  --> 20/4.472135=4.472137  หาค่าเฉลี่ย  = 4.42136
บันทึกการเข้า
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #4 เมื่อ: 21 พฤษภาคม 2008, 14:17:35 »

ถ้ายกกำลังได้  ก็ยกกำลัง 0.5 ก็ได้ครับ
บันทึกการเข้า
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #5 เมื่อ: 21 พฤษภาคม 2008, 14:21:44 »

แล้วถ้าค่า square root เป็น ค่า X หล่ะครับ ซึ่ง ผมก็ไม่รู้จะเดา เอาตัวไหน มา อ่ะ
บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #6 เมื่อ: 21 พฤษภาคม 2008, 14:26:14 »

แล้วถ้าค่า square root เป็น ค่า X หล่ะครับ ซึ่ง ผมก็ไม่รู้จะเดา เอาตัวไหน มา อ่ะ

ไม่เข้าใจ ?  วิธีนี้เอาไว้หาก รากที่ 2 หรือ square root    ถ้าหา รากที่ n ( หรือ root n ) คงไม่ได้

ส่วนค่าสุ่ม (guess )  นี่ ใช้อะไรก็ได้ครับ ถ้าคิดไม่ออก ก็สมมติ 10 ไปก่อนก็ได้    เพียงแต่มันอาจจะมีบาง case ที่ใช้ไม่ได้
บันทึกการเข้า
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #7 เมื่อ: 21 พฤษภาคม 2008, 14:31:03 »

คือ  ถ้า สมมติ เราจะหา square root ของ  X  ซึ่ง  X นี้ จะเปลี่ยนแปลงค่าไปโดยตลอด อ่ะครับ  เช่น ครั้งแรก  X = 40   ครั้งที่ 2 X =13  ครั้ง ที่ 3 X = 63 
ไปเรื่อยๆ แบบนี้ หล่ะครับ
บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #8 เมื่อ: 21 พฤษภาคม 2008, 14:36:10 »

อ้างถึง
คือ  ถ้า สมมติ เราจะหา square root ของ  X  ซึ่ง  X นี้ จะเปลี่ยนแปลงค่าไปโดยตลอด อ่ะครับ  เช่น ครั้งแรก  X = 40   ครั้งที่ 2 X =13  ครั้ง ที่ 3 X = 63 
ไปเรื่อยๆ แบบนี้ หล่ะครับ


เอาแบบนี้ก็ได้ครับ  เอาค่า X/2  เป็นค่าสุ่มค่าแรก สำหรับเริ่มต้นเสมอก็ได้ครับ

บันทึกการเข้า
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #9 เมื่อ: 21 พฤษภาคม 2008, 14:38:23 »

คิดไม่ออก อ่ะ

ยิ่งไม่เก่ง คณิตฯ อยู่ ซะด้วย 

ไม่มีใครรู้บ้างเลยหรอ
บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #10 เมื่อ: 21 พฤษภาคม 2008, 14:41:25 »

??  เอาขั้นตอนข้างบนไปเขียนเป็น program ก็น่าจะใช้ได้แล้วไม่ใช่เหรอ
บันทึกการเข้า
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #11 เมื่อ: 21 พฤษภาคม 2008, 14:42:33 »

อ๋อ ผมพอนึกได้แล้ว แต่มันได้ค่าที่ใกล้เคียงอ่ะ
ไม่รู้จะใช้ได้ป่าวน่ะ ผิดถูกยังไง ช่วยแน่ะนำ กานหน่อย น่ะครับ

แบบนี้ครับ

่ค่า Mean นี้ ได้มากจาก การหาค่าเฉลี่ย น่ะครับ  ซึ่งได้มาจาก สูตร การหาค่าเฉลี่ย ทางสถิติ นะครับ  ในที่นี้ผมไม่ได้เขียนโค้ดไว้น่ะครับ เพื่อความกระชับ

        int [ ] N = { 11,8,7,9,4,9,3,2,13,6};
        int n = 10;

            double SD = 0.0;
            for (int i = 0; i < n; i++)
            {
                SD += (N [ i ] - Mean) * (N [ i ] - Mean);
            }
            SD = SD / (n - 1);           
            double s = 0.0;
            double D = 0.01;
            double d = 0.0;
            do
            {
                s = D * D;
                d = D;
                D += 0.01;
            } while (SD>s);
            textBox3.Text = d.ToString("0.00");
           



ขอบคุณ สำหรับ คำแน่ะนำ ของทุกๆท่าน น่ะครับ

« แก้ไขครั้งสุดท้าย: 21 พฤษภาคม 2008, 14:57:20 โดย smartsoft » บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #12 เมื่อ: 21 พฤษภาคม 2008, 15:01:51 »

อ๋อ ผมพอนึกได้แล้ว แต่มันได้ค่าที่ใกล้เคียงอ่ะ
ไม่รู้จะใช้ได้ป่าวน่ะ ผิดถูกยังไง ช่วยแน่ะนำ กานหน่อย น่ะครับ

แบบนี้ครับ

่ค่า Mean นี้ ได้มากจาก การหาค่าเฉลี่ย น่ะครับ  ซึ่งได้มาจาก สูตร การหาค่าเฉลี่ย ทางสถิติ นะครับ  ในที่นี้ผมไม่ได้เขียนโค้ดไว้น่ะครับ เพื่อความกระชับ

        int [ ] N = { 11,8,7,9,4,9,3,2,13,6};
        int n = 10;

            double SD = 0.0;
            for (int i = 0; i < n; i++)
            {
                SD += (N [ i ] - Mean) * (N [ i ] - Mean);
            }
            SD = SD / (n - 1);           
            double s = 0.0;
            double D = 0.01;
            double d = 0.0;
            do
            {
                s = D * D;
                d = D;
                D += 0.01;
            } while (SD>s);
            textBox3.Text = d.ToString("0.00");
           



ขอบคุณ สำหรับ คำแน่ะนำ ของทุกๆท่าน น่ะครับ



อืมม... นี่ไม่ใช่แบบที่ผมเขียนให้ดูนี่นา   ยังไงก็แล้วแต่สะดวกครับ

 Cool
บันทึกการเข้า
BuffBear
Thaiadmin Global Staff
*****

จิตพิสัย: 55
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,884


Sara


« ตอบ #13 เมื่อ: 21 พฤษภาคม 2008, 15:56:05 »

Cheesy จริงๆ root finding อย่างพวก Newton Method ก็น่าจะใช้ได้น๊า
เดี๋ยวหาก่อนได้ป่ะ.. ว่า Code ยังอยู่อ๊ะป่าว ..
บันทึกการเข้า

บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..
raisara
Thaiadmin Global Staff
*****

จิตพิสัย: 43
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,681


The Flavor Of Life


เว็บไซต์
« ตอบ #14 เมื่อ: 21 พฤษภาคม 2008, 17:54:35 »

เห็นโจทย์แล้วปวดหัว
เรียนมาเป็นสิบปี จบมาไม่เห็นได้ใช้เลย ใช้ funtion ที่เข้ามีมาให้อย่างเดียว 5555


sqrt เป็นส่วนกลับของเลขยกกำลัง ตัวอย่างเช่น

sqrt(x) ยกกำลัง 2 = x
หรือ
sqrt(x) คูณ sqrt(x) = x

พูดอีกนัยหนึ่งก็คือ sqrt(x) เท่ากับจำนวนอะไรก็ตามที่คูณกับตัวมันเองแล้วได้เท่ากับ x

ซึ่งแน่นอนคำตอบที่ได้มันต้องน้อยกว่า x อยู่แล้ว และน้อยกว่า x/2 เสมอ

บันทึกการเข้า

กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย
insanity
Thaiadmin Global Staff
*****

จิตพิสัย: 77
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,789


Life would be much easier if I had the source code


เว็บไซต์
« ตอบ #15 เมื่อ: 21 พฤษภาคม 2008, 19:31:03 »

อ้างถึง
ซึ่งแน่นอนคำตอบที่ได้มันต้องน้อยกว่า x อยู่แล้ว และน้อยกว่า x/2 เสมอ

ไม่เสมอไปอ่ะครับ

สมมติ X = 0.25 
ดังนั้น sqrt(X) = 0.5
บันทึกการเข้า
BuffBear
Thaiadmin Global Staff
*****

จิตพิสัย: 55
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 1,884


Sara


« ตอบ #16 เมื่อ: 22 พฤษภาคม 2008, 09:48:53 »

ขอโทษทีครับ พอดีผมหาที่เคยเขียนไว้ไม่เจอ  +ขี้เกียจเขียนใหม่  Cry
ผมเลยหาใน internet มาเป็นตัวอย่างให้ดูละกันครับ



http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap06/sqrt-1.html

http://en.wikipedia.org/wiki/Newton%27s_method

* nr_sqrt2.txt (7.22 KB - ดาวน์โหลด 124 ครั้ง.)
บันทึกการเข้า

บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..
smartsoft
Thaiadmin Global Staff
*****

จิตพิสัย: 26
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 3,249


ไม่มีอะไรสายสำหรับการเริ่มต้น


เว็บไซต์
« ตอบ #17 เมื่อ: 22 พฤษภาคม 2008, 17:14:08 »

ครับ ขอบคุณคับ  สำหรับ คำตอบและคำแนะนำ ของทุกๆท่าน น่ะครับ    Afro
บันทึกการเข้า

เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้
SmileBuff
Proficient Level 3
***

จิตพิสัย: 0
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 162


TH@min Membership


« ตอบ #18 เมื่อ: 22 พฤษภาคม 2008, 21:29:48 »

http://www.vcharkarn.com/vcafe/15309/1

comment ที่1 ครับ.
บันทึกการเข้า

กลุ่มผู้ดูแลระบบแห่งประเทศไทย ขอระงับการใช้ลายเซ็นต์รูปภาพ
อนุญาตให้ใช้ได้เพียง ลายเซ็นต์ที่เป็นข้อความ
จึงประกาศมาเพื่อขอความร่วมมือ จากสมาชิกทุกๆ ท่าน
ในนาม กลุ่มผู้ดูแลระบบแห่งประเทศไทย
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.085 วินาที กับ 19 คำสั่ง