Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: In ra ngẫu nhiên n số bé hơn x cho trước

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    64

    Mặc định In ra ngẫu nhiên n số bé hơn x cho trước

    Viết 1 chương trình tạo ngẫu nhiên n số nguyên 1<=n<=20000 ko trùng nhau có miền giá trị (1...30000)
    yêu cầu : tối ưu chương trình => nhanh nhất và tiết kiệm bộ nhớ nhất khi lưu trữ.
    Chịu...
    Ai giúp mình với...

  2. #2
    Ngày gia nhập
    03 2008
    Bài viết
    126

    bạn cho 1 vd đơn giản xem dc ko?
    chưa hiểu rỏ vấn đề lắm

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    64

    à,Để mình giải thích,đại loại như thế này:
    Bạn nhập số phần tử của 1 mảng(không nhập giá trị của a[i] nha) ,ví dụ 5 phần tử,tiếp đó nhập giới hạn giá trị của mảng,vd 100.
    Máy sẽ cho ra ngẫu nhiên 5 giá trị bé hơn 100,tất nhiên sao cho không trùng nhau.

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Cách đơn giản :
    C Code:
    1. srand((unsigned)(time(0)));
    2. int random_number = rand()%100;

    Fancy way in C++:
    C++ Code:
    1. #include <iostream>
    2. #include <ctime>
    3. #include <cmath>
    4. #include <limits>
    5. #include <cstdlib>
    6.  
    7. class Random{
    8. public :
    9.   Random(bool pseudo = true);
    10. private :
    11.   int reseed();
    12.   double random_real();
    13.   int random_integer(int low, int high);
    14.   int poisson(double mean);
    15.   int multiplier, add_on, seed;
    16. };
    17.  
    18. Random::Random(bool pseudo){
    19.   if (pseudo)
    20.     seed = 1;
    21.   else
    22.     seed = time(NULL) % INT_MAX;
    23.   multiplier = 2743;
    24.   add_on = 5923;
    25. }
    26.  
    27. int Random::reseed(){
    28.   seed = seed * multiplier + add_on;
    29.   return seed;
    30. }
    31.  
    32. double Random::random_real(){
    33.   double max = INT_MAX + 1.0;
    34.   double temp = reseed();
    35.   if (temp < 0) temp = temp + max;
    36.   return temp/max;
    37. }
    38.  
    39. int Random::random_integer(int low, int high){
    40.   if (low > high)
    41.     return random_integer(high, low);
    42.   else
    43.     return (static_cast<int>((high-low + 1) * random_real( ))) + low;
    44. }
    45.  
    46. int Random::poisson(double mean){
    47.   double limit = exp(-mean);
    48.   double product = random_real();
    49.   int count = 0;
    50.   while (product > limit) {
    51.      count++;
    52.      product *= random_real();
    53.   }
    54.   return count;
    55. }

  5. #5
    Ngày gia nhập
    03 2008
    Bài viết
    64

    Mình cần dùng ngôn ngữ C để giải quyết bài toán trên,vả lại bài của rox cũng có nhiều eror khi chạy.

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định In ra ngẫu nhiên n số bé hơn x cho trước

    Mình cần dùng ngôn ngữ C để giải quyết bài toán trên,vả lại bài của rox cũng có nhiều eror khi chạy.
    Có 2 thứ tui ghét nhất :
    - thứ 1 : yêu cầu làm dùm + ra hạn thời gian
    - thứ 2 : nói code sai mà không đưa ra bug, sai chỗ nào.
    Tui cảm thấy ko còn rảnh để giúp cậu nữa !!!

  7. #7
    Ngày gia nhập
    03 2008
    Bài viết
    64

    Bạn đọc lại ở trên đi,tui noím làm giúp chứ có kêu ra hạn thời gian gì ở đây?
    code sai là khi đưa vào máy,báo lỗi.Xin lỗi bạn,ngôn ngữ C++ tui chưa học nên cũng không biết nó sai cái gì,mà đề bài tui nói rõ rồi,box này là box lập trình C cơ mà...

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    srand((unsigned)(time(0)));
    int random_number = rand()%100;
    Cái này C++ à ?
    Fancy way in C++:
    Did you read ?
    code sai là khi đưa vào máy,báo lỗi.
    Lỗi gì, compiler nào ? Đừng bắt tui là phải xài giống y chang compiler của cậu nhé ?
    Cậu nói sai ok :
    - bug ?
    - Compiler name ?

  9. #9
    Ngày gia nhập
    03 2008
    Bài viết
    64

    VC++98
    Lỗi là error LNK2001: unresolved external symbol _main và fatal error LNK1120: 1 unresolved externals

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Tui build trên Visual C++ thậm chí không có 1 warning, cậu có bỏ main vào không mà cậu compile tỉnh bơ thế ?

Các đề tài tương tự

  1. Kỹ thuật C++ Tạo mảng với các giá trị ngẫu nhiên
    Gửi bởi aydada trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 07-05-2013, 05:54 PM
  2. Lập trình C Hàm tạo số ngẫu nhiên | Cách nhập giá trị ngẫu nhiên cho ma trận?
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 13-08-2012, 09:43 PM
  3. Bài tập C Tạo ngẫu nhiên mảng 2 chiều vuông 4X4 với các phần tử tạo ngẫu nhiên trong đoạn[0,50]
    Gửi bởi truongtrungviet trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 16-04-2011, 08:06 AM
  4. Cách xây dựng hàm tạo số ngẫu nhiên?
    Gửi bởi buingochuy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 09-09-2010, 03:51 PM
  5. Lập trình C++ | Tạo số ngẫu nhiên thực
    Gửi bởi Kevin Hoang trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 03-10-2007, 03:55 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