Trang 1 trên tổng số 4 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 33 kết quả

Đề tài: tìm số pi @@

  1. #1
    Ngày gia nhập
    11 2017
    Bài viết
    4

    Mặc định tìm số pi @@

    Mọi người hướng dẫn mình cách giải bài task L nhé. Mình chưa biết xài random như thế nào,chỗ N phải làm sao, tỉ lệ giữa cái gì vs cái gì đó lại ra Aq??



    Attached Thumbnails Attached Thumbnails aaaa.jpg  

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    391

    Trích dẫn Nguyên bản được gửi bởi conanjohn001 Xem bài viết
    Mình chưa biết xài random như thế nào
    Bạn có thể tham khảo hàm rand(). Hãy tập trung vào các vấn đề sau:
    - rand() là số nguyên hay số thực?
    - rand() nằm trong khoảng giá trị nào, cụ thể?
    - rand() có những giá trị nhàm, những giá trị thường, những giá trị hiếm, thậm chí những giá trị nào đó chẳng bao giờ có mặt, hay là tất cả các giá trị trong khoảng trên đều có khả năng xuất hiện như nhau?

    Trích dẫn Nguyên bản được gửi bởi conanjohn001 Xem bài viết
    chỗ N phải làm sao, tỉ lệ giữa cái gì vs cái gì đó lại ra Aq??
    Không ra Aq đâu. Hãy chọn N cố định, N = 100, và thực hiện 10 (hay 100, 1000, 10000) thí nghiệm theo bài K, mỗi lần đều tính tỷ lệ trên. Hãy so sánh các tỷ lệ ấy với Aq (mà bạn đã biết) để xem tỷ lệ ấy nói lên điều gì.

    Rồi chọn N cố định lớn hơn, N = 1000, và lặp lại chuỗi thí nghiệm một lần nữa. Và lần nữa với N = 10000.

    Từ quan sát đó, giải bài L.
    Đã được chỉnh sửa lần cuối bởi Ada : 13-11-2017 lúc 10:48 AM.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    160

    Trước đây có đọc, nhớ Pi & Monte Carlo.
    Người ta có thể tính số pi bằng cách bắn súng, đếm số viên đạn trong hình tròn nội tiếp

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    391

    Ừ đúng thế. Phương pháp này còn có tên đàng hoàng, Monte Carlo hay Ma Cao gì đó.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  5. #5
    Ngày gia nhập
    08 2017
    Bài viết
    160

    Monte Carlo hay Ma Cao gì đó cũng là sòng bài, nơi diễn tấu các trò cao cẳng.

  6. #6
    Ngày gia nhập
    11 2017
    Bài viết
    4

    Mặc định tìm số pi @@

    mình chọn rand số thực. Mình chỉ làm đc vầy thôi. random x,y thì lúc nào cũng giống nhau,làm sao cho random khác nhau?.

    mình chưa hiểu khúc này:
    "Repeat these steps N times, where N is sufficiently big and then find the ratio of points inside the circle divided by the total number N, to determine the area of the grey shaded area Aq."

    ý là ví dụ điểm (0.51;0.52) thì ...... sao nữa


    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h>

    float RandomCoordinate()
    {
    return rand()*1.0 / RAND_MAX;
    }
    /***********************************/
    int main(int argc, char* argv[])
    {
    int n=100,r=1;
    float pi;
    float x, y;

    srand(time);
    x = RandomCoordinate();
    srand(time);
    y = RandomCoordinate();
    printf(" %f | %f ",x,y);

    do
    {
    ...................
    } while (sqrt(x*x+y*y)<=r);

    return 0;
    }

  7. #7
    Ngày gia nhập
    07 2011
    Bài viết
    422

    find the ratio of
    tìm tỉ lệ của

    points inside the circle
    số điểm nằm trong hình tròn

    divided by
    chia cho

    the total number N
    tổng số điểm

    to determine the area of the grey shaded area Aq.
    để xác định diện tích Aq

    ví dụ random 1000 điểm, có 800 điểm nằm trong hình tròn bán kính 1 thì diện tích Aq là 800/1000 = 0.8, mà Aq = 0.25 pi suy ra pi = 0.8 / 0.25 = 3.2

  8. #8
    Ngày gia nhập
    01 2013
    Bài viết
    1,476

    srand(time) chỉ gọi một lần duy nhất.

  9. #9
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    391

    Trích dẫn Nguyên bản được gửi bởi conanjohn001 Xem bài viết
    random x,y thì lúc nào cũng giống nhau,làm sao cho random khác nhau?.
    Minh không hiểu. "lúc nào cũng giống nhau" là sao?

    Bạn xem đây:
    C Code:
    1. /**********************************************************************/
    2. #include <stdio.h>
    3. #include <stdlib.h>
    4. #include <time.h>
    5. #include <math.h>
    6. /**********************************************************************/
    7. float RandomCoordinate()
    8. {
    9.     return rand()*1.0 / RAND_MAX;
    10. }
    11. /**********************************************************************/
    12. int main(int argc, char* argv[])
    13. {
    14.     srand(time(NULL));
    15.     int N=100, r=1;
    16.     float pi;
    17.     float x, y;
    18.  
    19.     for(int i=0; i<N; i++)
    20.     {
    21.         x = RandomCoordinate();
    22.         y = RandomCoordinate();
    23.         printf("(%6.4f,%6.4f):%s ", x, y, x*x+y*y <= r*r?"HiT":"MiS");
    24.     }
    25.     return 0;
    26. }
    27. /**********************************************************************/
    Copy paste kết quả từ màn hình của mình ra này:
    Code:
    h:\testC\bin\Debug>testc
    (0.0342,0.2950):HiT (0.2275,0.3636):HiT (0.4215,0.5484):HiT (0.6698,0.0878):HiT
    (0.1210,0.7564):HiT (0.3535,0.4269):HiT (0.9893,0.3256):MiS (0.6343,0.0902):HiT
    (0.0702,0.1065):HiT (0.5116,0.9255):MiS (0.7820,0.4604):HiT (0.5542,0.7677):HiT
    (0.4955,0.1482):HiT (0.3591,0.6879):HiT (0.9121,0.8225):MiS (0.1993,0.6742):HiT
    (0.1458,0.4048):HiT (0.0176,0.2754):HiT (0.9179,0.1287):HiT (0.4225,0.2389):HiT
    (0.7680,0.5301):HiT (0.8419,0.6739):MiS (0.6895,0.1661):HiT (0.4919,0.7710):HiT
    (0.0953,0.3436):HiT (0.3152,0.6102):HiT (0.5194,0.6392):HiT (0.5478,0.0877):HiT
    (0.9611,0.4906):MiS (0.0680,0.4932):HiT (0.2783,0.6428):HiT (0.1849,0.7688):HiT
    (0.5361,0.7273):HiT (0.0230,0.9806):HiT (0.7160,0.7595):MiS (0.1588,0.0350):HiT
    (0.6930,0.8310):MiS (0.6647,0.1700):HiT (0.8870,0.7826):MiS (0.2186,0.2526):HiT
    (0.4936,0.1354):HiT (0.4334,0.4155):HiT (0.7016,0.0638):HiT (0.0637,0.0616):HiT
    (0.8029,0.6905):MiS (0.2456,0.7694):HiT (0.6013,0.4853):HiT (0.4259,0.1301):HiT
    (0.0266,0.0479):HiT (0.1376,0.0477):HiT (0.3598,0.0580):HiT (0.2763,0.5329):HiT
    (0.9754,0.6712):MiS (0.0358,0.5226):HiT (0.0086,0.1442):HiT (0.1574,0.7559):HiT
    (0.8521,0.9704):MiS (0.6507,0.2382):HiT (0.8883,0.3048):HiT (0.6402,0.3244):HiT
    (0.3659,0.9629):MiS (0.4966,0.9521):MiS (0.8237,0.7722):MiS (0.9062,0.0572):HiT
    (0.9702,0.5584):MiS (0.0364,0.7017):HiT (0.4247,0.5481):HiT (0.4542,0.9459):MiS
    (0.2257,0.4687):HiT (0.9508,0.9959):MiS (0.5127,0.1260):HiT (0.9327,0.6582):MiS
    (0.2892,0.7432):HiT (0.5326,0.6312):HiT (0.6707,0.8390):MiS (0.0969,0.6673):HiT
    (0.5265,0.9292):MiS (0.2071,0.1334):HiT (0.9193,0.8318):MiS (0.8904,0.0054):HiT
    (0.2507,0.8565):HiT (0.1758,0.8236):HiT (0.5176,0.6597):HiT (0.6525,0.6431):HiT
    (0.5858,0.0480):HiT (0.1861,0.5099):HiT (0.8888,0.5097):MiS (0.4500,0.4928):HiT
    (0.4546,0.7551):HiT (0.4262,0.8038):HiT (0.6710,0.0493):HiT (0.5347,0.0378):HiT
    (0.6920,0.6169):HiT (0.5443,0.0616):HiT (0.8934,0.8989):MiS (0.9248,0.5863):MiS
    (0.2837,0.9464):HiT (0.7932,0.9507):MiS (0.2763,0.7288):HiT (0.1126,0.1503):HiT
    
    h:\testC\bin\Debug>testc
    (0.0951,0.7123):HiT (0.3271,0.0539):HiT (0.7495,0.7671):MiS (0.7053,0.5051):HiT
    (0.0001,0.1181):HiT (0.5957,0.2482):HiT (0.7960,0.8524):MiS (0.4347,0.3804):HiT
    (0.1249,0.6677):HiT (0.6476,0.5722):HiT (0.6382,0.1217):HiT (0.5243,0.5636):HiT
    (0.7861,0.3529):HiT (0.6834,0.8975):MiS (0.2433,0.9273):HiT (0.1556,0.7950):HiT
    (0.9072,0.9694):MiS (0.6169,0.5801):HiT (0.2499,0.2318):HiT (0.8039,0.5592):HiT
    (0.3041,0.2611):HiT (0.6418,0.7615):HiT (0.0660,0.3155):HiT (0.1168,0.4483):HiT
    (0.5949,0.1901):HiT (0.4233,0.7942):HiT (0.5914,0.6081):HiT (0.4183,0.6502):HiT
    (0.7354,0.3306):HiT (0.9140,0.7923):MiS (0.5652,0.6458):HiT (0.8380,0.5621):MiS
    (0.1788,0.3890):HiT (0.7959,0.3077):HiT (0.5387,0.1537):HiT (0.0642,0.5283):HiT
    (0.6614,0.8479):MiS (0.5466,0.1309):HiT (0.4731,0.2521):HiT (0.7238,0.7040):MiS
    (0.6124,0.7362):HiT (0.1302,0.2162):HiT (0.9620,0.7895):MiS (0.3854,0.0432):HiT
    (0.1892,0.5232):HiT (0.3147,0.7331):HiT (0.0789,0.7985):HiT (0.1886,0.4123):HiT
    (0.9374,0.1384):HiT (0.6125,0.2419):HiT (0.8505,0.0788):HiT (0.0979,0.8280):HiT
    (0.0761,0.1158):HiT (0.8472,0.9942):MiS (0.3534,0.9039):HiT (0.7815,0.8209):MiS
    (0.4081,0.8636):HiT (0.3450,0.3590):HiT (0.4377,0.8527):HiT (0.1151,0.9236):HiT
    (0.8549,0.0586):HiT (0.7511,0.3736):HiT (0.0739,0.7674):HiT (0.3113,0.2843):HiT
    (0.6169,0.1661):HiT (0.4711,0.4189):HiT (0.3261,0.8347):HiT (0.6727,0.4046):HiT
    (0.9587,0.0837):HiT (0.7373,0.0206):HiT (0.9494,0.7933):MiS (0.9716,0.0031):HiT
    (0.6190,0.9115):MiS (0.3002,0.7747):HiT (0.6125,0.2658):HiT (0.4535,0.0035):HiT
    (0.8460,0.8465):MiS (0.7449,0.3986):HiT (0.7456,0.2159):HiT (0.4660,0.6482):HiT
    (0.0575,0.2018):HiT (0.4326,0.9065):MiS (0.0127,0.5299):HiT (0.7127,0.7360):MiS
    (0.1258,0.5516):HiT (0.0667,0.9106):HiT (0.4097,0.7244):HiT (0.1324,0.9863):HiT
    (0.2883,0.0003):HiT (0.8848,0.0464):HiT (0.9867,0.7781):MiS (0.4027,0.5262):HiT
    (0.6823,0.5773):HiT (0.4741,0.5240):HiT (0.1958,0.0884):HiT (0.0690,0.5049):HiT
    (0.5053,0.7566):HiT (0.2140,0.8035):HiT (0.8637,0.5543):MiS (0.2983,0.8313):HiT
    
    h:\testC\bin\Debug>
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  10. #10
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    307

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Trước đây có đọc, nhớ Pi & Monte Carlo.
    Người ta có thể tính số pi bằng cách bắn súng, đếm số viên đạn trong hình tròn nội tiếp
    Vừa xem qua Estimating Pi using the Monte Carlo Method
    "When we only have a small number of points, the estimation is not very accurate, but when we have hundreds of thousands of points, we get much closer to the actual value - to within around 2 decimal places of accuracy."
    tức là chỉ chính xác đến 2 chữ số thập phân thôi.
    Đã được chỉnh sửa lần cuối bởi prog10 : 14-11-2017 lúc 02:28 PM.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn