Thông báo

Collapse
No announcement yet.

cách tạo số ngẫu nhiên

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • cách tạo số ngẫu nhiên

    Em có bài toán thế này các bác chỉ cho em với.

    + Tạo một số ngẫu nhiên có giá trị từ 0->255 ( 8 bit ) tương ứng với 3 số hiển thị ra 3 led 7 thanh.

    + Cứ sau 1s ( khônng có sự tác động bên ngoài ) cứ hiển thị ra led một số ngẫu nhiên trong khoảng trên.

    Thanks mọi người trước.

  • #2
    có nhiều cách:
    -lấy bất kỳ 1 giá trị biến đổi nào của 1 thanh ghi của cpu
    -dùng 1 biến thay đổi trong timer
    - sử dụng 1 công thức toán học nào đó c=a/b; b#0, a biến đổi theo chu ky
    ........
    có 1+1 tỷ cách làm
    nhưng phải kiểm tra c#c_old

    Comment


    • #3
      Có thể bạn dùng 1 timer để tạo số ngẫu nhiên, khởi động 1timer_A, sau đó khoảng 1s (dùng 1 timer_B khác) bạn đọc giá trị timer đó sẽ tạo ra được số ngẫu nhiên.

      Comment


      • #4
        Nguyên văn bởi FFGmember
        + Cứ sau 1s ( khônng có sự tác động bên ngoài ) cứ hiển thị ra led một số ngẫu nhiên trong khoảng trên.
        Phần này thuộc về cơ bản, bạn sẽ tìm thấy rất nhiều trên diễn đàn.

        Nguyên văn bởi FFGmember
        + Tạo một số ngẫu nhiên có giá trị từ 0->255 ( 8 bit ) tương ứng với 3 số hiển thị ra 3 led 7 thanh.
        Thực tế chỉ có các thuật toán giả ngẫu nhiên thôi, chứ không tạo được số ngẫu nhiên. Bạn có thể dễ dàng tìm thấy trên net. Trong Viễn thông, cũng có một số mạch tạo số ngẫu nhiên (kỹ thuật trải phổ thì phải). Tôi sẽ tìm, nếu thấy sẽ chuyển cho bạn
        Sudden wake-up at night
        Open window for my teacher!

        Comment


        • #5
          Việc tạo hai bộ time thì nhất định nó sẽ có chu kỳ lặp lại ( về nguyên tắc )
          Đây chỉ là bộ đếm thông thường với thời gian lấy mẫu 1 giây

          Chỉ cần bạn lắp được bộ phát nhiễu trắng để đưa vào bộ đếm là xong
          Nếu không bạn lấy ngay tín hiệu Xì xì của Radio FM khi không thu được đài cũng có tính chất tương tự .
          Chuyên làm các mạch điện tử bí hiểm và kỳ quặc .
          nguyendinhvan1968@gmail.com

          Mobil : 0903 252 168 Chỉ gọi từ 09 giờ đến 17 giờ . Từ 18 giờ ngoài vùng phủ sóng

          Comment


          • #6
            Nguyên văn bởi FFGmember
            Em có bài toán thế này các bác chỉ cho em với.

            + Tạo một số ngẫu nhiên có giá trị từ 0->255 ( 8 bit ) tương ứng với 3 số hiển thị ra 3 led 7 thanh.

            + Cứ sau 1s ( khônng có sự tác động bên ngoài ) cứ hiển thị ra led một số ngẫu nhiên trong khoảng trên.

            Thanks mọi người trước.
            số chỉ 1 byte tức 8 bit chuyện lặp lại là hiển nhiên. sau 256 giây sẽ lặp lại.
            vì đây là yêu cầu của tác giả chỉ 1 byte

            Comment


            • #7
              Nguyên văn bởi nguyendinhvan
              Việc tạo hai bộ time thì nhất định nó sẽ có chu kỳ lặp lại ( về nguyên tắc )
              Đây chỉ là bộ đếm thông thường với thời gian lấy mẫu 1 giây

              Chỉ cần bạn lắp được bộ phát nhiễu trắng để đưa vào bộ đếm là xong
              Nếu không bạn lấy ngay tín hiệu Xì xì của Radio FM khi không thu được đài cũng có tính chất tương tự .
              Bộ đếm 1 s thiết kế theo cách tương đối, nghĩa là không chính xác thì sẽ được ngẫu nhiên ngay. Đơn giản là dùng kiểu hỏi vòng trong hàm main(thiết kế trong hàm main chứa nhiều lệnh). Vậy timer 1 s sẽ có sai số tương đối, còn timer để lấy số liệu kia là gần tuyệt đối(ngắt: nên dùng timer 16 bit, nhưng chỉ đọc dữ liệu ở 8 bit thấp) thì sẽ giải quyết được bài toán.

              Ngoài ra có nhiều cách khác:
              1-Cách tạo mã giả ngẫu nhiên
              2-Cách dùng 1 timer đọc một biến nháp nào đó(thanh ghi AX của 89 chẳng hạn), trong phần mềm thì liên tục sử dụng thanh ghi AX này như một thanh ghi nháp thực sự
              3-Cách nhiễu trắng ở ngoài vào để tăng timer? vậy mạch cụ thể thế nào anh Vân nhỉ? thiết kế đơn giản nhất mà không cần dùng đến mạch rf

              Comment


              • #8
                Mạch đếm các bạn tham khảo ở đây
                http://dientuvietnam.net/board/showt...0870#post10870

                Còn mạch phát nhiễu có thể dùng Diot Zene ( hoặc dùng đèn Neon ) được hồi tiếp với một Tran hay IC thuật toán ( để tôi vẽ sau )

                Theo tôi thì tất cả các tín hiệu tạo ra từ mạch điện đều có tính chu kỳ lặp lại . Có thể dài hay ngắn thôi . Nhưng nếu sử dụng khuyết điểm gây nhiễu của LK thì không có tính lặp lại .
                Chuyên làm các mạch điện tử bí hiểm và kỳ quặc .
                nguyendinhvan1968@gmail.com

                Mobil : 0903 252 168 Chỉ gọi từ 09 giờ đến 17 giờ . Từ 18 giờ ngoài vùng phủ sóng

                Comment


                • #9
                  Troi a, day la cach tao so ngau nhien trong toan hoc chu, may nguoi cu xui dai con nha nguoi ta lam gi the nua ko biet, cac tin hieu nhieu trang, nhieu hong, . . . la cac tin hieu analog chu, ko le la di ADC roi moi duoc nua hay sao . De tao so gia ngau nhien thi trong vien thong co ly thuyet trai pho can su dung chuoi gia ngau nhien ma don gian nhat la su dung chuoi m-tuyen tinh. Da thuc sinh cua no se la:
                  G(x) = a0 + a1*x + . . . . + aN*x(mu N)
                  Neu ko co the to hop mot chuoi Gold, . . . phuc tap hon tu mot so chuoi m-tuyen tinh. Neu chuoi co chieu dai la 8 bit thi toi da la sau 255 trang thai se bi lap lai - gia ngau nhien. Nhung chu y cach nay la chuoi tin hieu ra se la noi tiep va dung co roi vao "trang thai chet".
                  Ngoai ra trong cac tai lieu toan roi rac hay so hoc thi co day phuong phap de tao ra chuoi ngau nhien, tai sao lai di su dung cach dung thanh ghi hay thoi gian de lam gi ???
                  Chuoi duoc goi la ngau nhien thi ko bao gio co quy luat gi ca va dac biet la mat do pho tin hieu giong pho cua tap am Gausse, . . . . .
                  Troi ko so dat ko so chi so minh ko biet so

                  Comment


                  • #10
                    Nguyên văn bởi Kesitinh
                    Troi a, day la cach tao so ngau nhien trong toan hoc chu, may nguoi cu xui dai con nha nguoi ta lam gi the nua ko biet, cac tin hieu nhieu trang, nhieu hong, . . . la cac tin hieu analog chu, ko le la di ADC roi moi duoc nua hay sao . De tao so gia ngau nhien thi trong vien thong co ly thuyet trai pho can su dung chuoi gia ngau nhien ma don gian nhat la su dung chuoi m-tuyen tinh. Da thuc sinh cua no se la:
                    G(x) = a0 + a1*x + . . . . + aN*x(mu N)
                    Neu ko co the to hop mot chuoi Gold, . . . phuc tap hon tu mot so chuoi m-tuyen tinh. Neu chuoi co chieu dai la 8 bit thi toi da la sau 255 trang thai se bi lap lai - gia ngau nhien. Nhung chu y cach nay la chuoi tin hieu ra se la noi tiep va dung co roi vao "trang thai chet".
                    Ngoai ra trong cac tai lieu toan roi rac hay so hoc thi co day phuong phap de tao ra chuoi ngau nhien, tai sao lai di su dung cach dung thanh ghi hay thoi gian de lam gi ???
                    Chuoi duoc goi la ngau nhien thi ko bao gio co quy luat gi ca va dac biet la mat do pho tin hieu giong pho cua tap am Gausse, . . . . .
                    Bác này đi đâu cũng không suy nghĩ, post lung tung, hiểu lung tung, ko hiểu bản chất vấn đề. Pó tay.
                    May mà 3T chưa có ở đây..
                    Tạo số ngẫu nhiên là tạo ra một số xuất hiện một cách ngẫu nhiên, mình không biết trước. Vậy có nhiều cách để làm.
                    Cách dùng nhiễu cũng là một cách đúng, cách dùng timer cũng vậy.

                    Comment


                    • #11
                      Về bản chất, anh ND Van va KST nói đúng đấy. Phải quan tâm đến phổ, nếu nó không trải đều thì k0 phải ngẫu nhiên.
                      Khi thực hiện, tất nhiên là dùng các hàm toán. Dùng timer e rằng không ổn.
                      Sudden wake-up at night
                      Open window for my teacher!

                      Comment


                      • #12
                        Google keyword: Linear Feedback Shift Registers

                        Comment


                        • #13
                          Cách 1 dùng khuếch đại nhiễu, do nhiễu là thành phần xuất hiện ta không thể biết trước, dùng một counter đếm số xung, cứ 1 s thì đọc tổng số xung mà bộ đếm đếm được sau 1 s. Sơ đồ nguyên lý như sau:

                          Comment


                          • #14
                            Cách 2 dùng timer một cách đơn giản, dùng 1 timer 16 bit(prescale=1, tức là tần số lối vào timer= max clk hệ thống), đọc giá trị ở 8 bit thấp(0--255)
                            Trong main()
                            while(1)
                            {
                            lệnh 1;
                            lệnh 2;
                            lệnh 3;
                            ...
                            ....
                            lệnh N
                            Lệnh đọc và xóa cờ tràn timer//Tạo số ngẫu nhiên.
                            }
                            Ngoài ra thêm các ngắt để delay thời gian khácnhau
                            Ngắt 1;
                            Ngắt 2;
                            Ngắt 3;
                            Do timer thay đổi rấtnhanh so với các lệnh và các ngắt, nên ko thể biết trước giá trị timer lần tiếp theo. Hơn nữa các lệnh 1,2... các ngắt có thể kiểu rẽ nhánh, các tác động ở ngoai vào cũng ngẫu nhiên... nên thời gian thực hiên lệnh khác nhau.

                            Comment


                            • #15
                              Cách 3: khi mới khởi tạo đọc giá trị của một số thanh ghi có giá trị mặc định khi bật nguồn không xác định, sau đó kết hợp với các kỹ thuật khác

                              Comment

                              Về tác giả

                              Collapse

                              FFGmember Tìm hiểu thêm về FFGmember

                              Bài viết mới nhất

                              Collapse

                              • mèomướp
                                Trả lời cho Sửa bộ nguồn DC 60V 45A
                                bởi mèomướp
                                Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                                hôm nay, 13:11
                              • tuyennhan
                                Trả lời cho Sửa bộ nguồn DC 60V 45A
                                bởi tuyennhan
                                Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                                hôm nay, 09:25
                              • tuyennhan
                                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                bởi tuyennhan
                                Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                                Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                                hôm nay, 09:10
                              • Ng.Phuong.5
                                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                                bởi Ng.Phuong.5
                                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                                Mấy con...
                                Hôm qua, 19:44
                              • viettinh
                                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                bởi viettinh
                                Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                                Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                                Hôm qua, 18:12
                              • nguyendinhvan
                                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                bởi nguyendinhvan
                                Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                                Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                                Cách đơn giản...
                                Hôm qua, 00:04
                              • mèomướp
                                Trả lời cho Sửa bộ nguồn DC 60V 45A
                                bởi mèomướp
                                Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                                08-01-2025, 19:02
                              • tuyennhan
                                Trả lời cho Sửa bộ nguồn DC 60V 45A
                                bởi tuyennhan
                                Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                                08-01-2025, 15:43
                              • tuyennhan
                                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                bởi tuyennhan
                                Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                                08-01-2025, 15:28
                              • mèomướp
                                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                bởi mèomướp
                                Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                                08-01-2025, 11:44
                              Đang tải...
                              X