bạn cho 1 vd đơn giản xem dc ko?
chưa hiểu rỏ vấn đề lắm
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...
bạn cho 1 vd đơn giản xem dc ko?
chưa hiểu rỏ vấn đề lắm
à,Để 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.
Cách đơn giản :
C Code:
Fancy way in C++:
C++ Code:
#include <iostream> #include <ctime> #include <cmath> #include <limits> #include <cstdlib> class Random{ public : Random(bool pseudo = true); private : int reseed(); double random_real(); int random_integer(int low, int high); int poisson(double mean); int multiplier, add_on, seed; }; Random::Random(bool pseudo){ if (pseudo) seed = 1; else seed = time(NULL) % INT_MAX; multiplier = 2743; add_on = 5923; } int Random::reseed(){ seed = seed * multiplier + add_on; return seed; } double Random::random_real(){ double max = INT_MAX + 1.0; double temp = reseed(); if (temp < 0) temp = temp + max; return temp/max; } int Random::random_integer(int low, int high){ if (low > high) return random_integer(high, low); else return (static_cast<int>((high-low + 1) * random_real( ))) + low; } int Random::poisson(double mean){ double limit = exp(-mean); double product = random_real(); int count = 0; while (product > limit) { count++; product *= random_real(); } return count; }
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 :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.
- 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 !!!
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à...
Cái này C++ à ?srand((unsigned)(time(0)));
int random_number = rand()%100;
Did you read ?Fancy way in C++:
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é ?code sai là khi đưa vào máy,báo lỗi.
Cậu nói sai ok :
- bug ?
- Compiler name ?
VC++98
Lỗi là error LNK2001: unresolved external symbol _main và fatal error LNK1120: 1 unresolved externals
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ế ?