Thaiadmin

การหาค่า สแควรูท

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
การหาค่า สแควรูท
« เมื่อ: 21 พฤษภาคม 2008, 13:36:58 »
คือ ผมอยากทราบวิธีการหาค่า สแควรูท อ่ะครับ
ตามสูตรในรูป เลย น่ะ ครับ
  คือ ผม หาค่าที่ Sum  ของ (Xi-X บาร์) ยกกำลัง 2   หาร n-1 ได้ แล้ว 
แต่ผมต้องการ ถอด สแควรูท อะครับ ต้อง เขียนโค้ดในแนวๆ ไหน ใครรู้บ้าง ช่วยที  ด่วน สุดๆครับ




จะเป็น ภาษา C, C++, Java, C# , VB6.0, VB.NET ก็ได้ครับ
เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้

ออฟไลน์ BuffBear

  • *****
  • 1,884
  • 55
  • เพศ: ชาย
  • Sara
Re: การหาค่า สแควรูท
« ตอบกลับ #1 เมื่อ: 21 พฤษภาคม 2008, 13:41:32 »
ใน  .net ก็

system.math.sqrt ครับ
บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #2 เมื่อ: 21 พฤษภาคม 2008, 13:43:33 »
เค้าให้ เขียน เป็น อัลกอริทึม อะครับ

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

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

ออฟไลน์ insanity

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #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

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #4 เมื่อ: 21 พฤษภาคม 2008, 14:17:35 »
ถ้ายกกำลังได้  ก็ยกกำลัง 0.5 ก็ได้ครับ

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #5 เมื่อ: 21 พฤษภาคม 2008, 14:21:44 »
แล้วถ้าค่า square root เป็น ค่า X หล่ะครับ ซึ่ง ผมก็ไม่รู้จะเดา เอาตัวไหน มา อ่ะ
เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้

ออฟไลน์ insanity

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #6 เมื่อ: 21 พฤษภาคม 2008, 14:26:14 »
แล้วถ้าค่า square root เป็น ค่า X หล่ะครับ ซึ่ง ผมก็ไม่รู้จะเดา เอาตัวไหน มา อ่ะ

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

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

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #7 เมื่อ: 21 พฤษภาคม 2008, 14:31:03 »
คือ  ถ้า สมมติ เราจะหา square root ของ  X  ซึ่ง  X นี้ จะเปลี่ยนแปลงค่าไปโดยตลอด อ่ะครับ  เช่น ครั้งแรก  X = 40   ครั้งที่ 2 X =13  ครั้ง ที่ 3 X = 63 
ไปเรื่อยๆ แบบนี้ หล่ะครับ
เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้

ออฟไลน์ insanity

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #8 เมื่อ: 21 พฤษภาคม 2008, 14:36:10 »
อ้างถึง
คือ  ถ้า สมมติ เราจะหา square root ของ  X  ซึ่ง  X นี้ จะเปลี่ยนแปลงค่าไปโดยตลอด อ่ะครับ  เช่น ครั้งแรก  X = 40   ครั้งที่ 2 X =13  ครั้ง ที่ 3 X = 63 
ไปเรื่อยๆ แบบนี้ หล่ะครับ


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


ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #9 เมื่อ: 21 พฤษภาคม 2008, 14:38:23 »
คิดไม่ออก อ่ะ

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

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

ออฟไลน์ insanity

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #10 เมื่อ: 21 พฤษภาคม 2008, 14:41:25 »
??  เอาขั้นตอนข้างบนไปเขียนเป็น program ก็น่าจะใช้ได้แล้วไม่ใช่เหรอ

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #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

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #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");
           



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



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

 8)

ออฟไลน์ BuffBear

  • *****
  • 1,884
  • 55
  • เพศ: ชาย
  • Sara
Re: การหาค่า สแควรูท
« ตอบกลับ #13 เมื่อ: 21 พฤษภาคม 2008, 15:56:05 »
:D จริงๆ root finding อย่างพวก Newton Method ก็น่าจะใช้ได้น๊า
เดี๋ยวหาก่อนได้ป่ะ.. ว่า Code ยังอยู่อ๊ะป่าว ..
บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..

ออฟไลน์ raisara

  • *****
  • 1,681
  • 43
  • เพศ: ชาย
  • The Flavor Of Life
    • raisara.com
Re: การหาค่า สแควรูท
« ตอบกลับ #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

  • *****
  • 1,793
  • 77
  • เพศ: ชาย
  • Life would be much easier if I had the source code
    • http://jullapol.blogspot.com
Re: การหาค่า สแควรูท
« ตอบกลับ #15 เมื่อ: 21 พฤษภาคม 2008, 19:31:03 »
อ้างถึง
ซึ่งแน่นอนคำตอบที่ได้มันต้องน้อยกว่า x อยู่แล้ว และน้อยกว่า x/2 เสมอ

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

สมมติ X = 0.25 
ดังนั้น sqrt(X) = 0.5

ออฟไลน์ BuffBear

  • *****
  • 1,884
  • 55
  • เพศ: ชาย
  • Sara
Re: การหาค่า สแควรูท
« ตอบกลับ #16 เมื่อ: 22 พฤษภาคม 2008, 09:48:53 »
ขอโทษทีครับ พอดีผมหาที่เคยเขียนไว้ไม่เจอ  +ขี้เกียจเขียนใหม่  :'(
ผมเลยหาใน internet มาเป็นตัวอย่างให้ดูละกันครับ



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

http://en.wikipedia.org/wiki/Newton%27s_method
บุญคุณต้องทดแทน ... แค้นต้องข่มใจ ..

ออฟไลน์ smartsoft

  • *****
  • 3,249
  • 26
  • เพศ: ชาย
  • ไม่มีอะไรสายสำหรับการเริ่มต้น
    • จุดประกายความรู้ที่ไร้ขีดจำกัด
Re: การหาค่า สแควรูท
« ตอบกลับ #17 เมื่อ: 22 พฤษภาคม 2008, 17:14:08 »
ครับ ขอบคุณคับ  สำหรับ คำตอบและคำแนะนำ ของทุกๆท่าน น่ะครับ    O0
เมื่อคุณ<!reader!/>เห็นการมีชีวิตเป็นสิ่งที่หนักหนาสาหัส ลองพยายามอดกลั้นและต่อสู้กับมัน จงอย่าวิ่งหนีต่อปัญหาใดๆที่คุณ<!reader!/>เผชิญอยู่ และเชื่อใจในตัวเองว่าสองมือของคุณ<!reader!/>สามารถฝ่าฟันช่วงวิกฤตและผ่านมันไปได้

ออฟไลน์ SmileBuff

  • ***
  • 162
  • 0
  • เพศ: ชาย
  • TH@min Membership
Re: การหาค่า สแควรูท
« ตอบกลับ #18 เมื่อ: 22 พฤษภาคม 2008, 21:29:48 »
http://www.vcharkarn.com/vcafe/15309/1

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