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ố 14 kết quả

Đề tài: Phát sinh ngẫu nhiên mảng một chiều các số nguyên sao cho mảng có thự tự tăng dần

  1. #1
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Angry Phát sinh ngẫu nhiên mảng một chiều các số nguyên sao cho mảng có thự tự tăng dần

    Các bạn ơi, giúp mình bài: Viết chương trình phát sinh ngẫu nhiên mảng một chiều các số nguyên sao cho mảng có thứ tự tăng dần(note: ko sắp xếp)?

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trên 4rum đã có nói về vấn đề này rồi, bạn nên search kỹ trước khi hỏi. Mình chỉ tóm tắt ý tường như thế này : bạn random số đầu tiên, số kế tiếp sẽ bằng số trước đó cộng cho một số dương random. Cứ như vậy bạn sẽ có một mảng ngẫu nhiên tăng dần.
    PS : lần sau bạn đừng dùng font chữ như vậy nữa nhé.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    http://forums.congdongcviet.com/showthread.php?t=8764


    Trích dẫn Nguyên bản được gửi bởi thangit Xem bài viết
    đề bài: Viết chương trình phát sinh ngẫu nhiên mảng một chiều các số nguyên sao
    cho mảng có thứ tự tăng dần (Không sắp xếp).
    Mong mọi người đóng góp ý kiến.
    để làm bài này :

    1. Random
    hãy tìm hiểu kĩ về hàm random

    2. ý tưởng:

    cái này thật khó nói cứ đặt tay vaò code mới ra được. thử cách này xem


    PHP Code:
    mang[i] = 100*i+random(99
    đó 100% mảng này tăng dần, và cũng là ngẫu nhiên......

    có rất nhiều cách bạn à. tạm thời tớ chỉ nghĩ ra cách đó thôi....

    bổ xung thêm sau vậy

    bổ xung thêm cách 2 chuẩn hơn nè


    PHP Code:
    mang[i] = mang[i-1] + random(99); 
    mảng này cũng 100% random và tăng dần
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  4. #4
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Code của mình thế này nhưng mình ko biết why lai sai? Mình tét bằng BC nhưng ko in ra cái gì cả.
    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
    {
    	clrscr();
    	int a[10], i = 0, temp=0;
    
    	randomize();
    	while(i<10)
    	{
    		temp = random(1000);
    		a[i] = temp;
    		if(a[i-1] > a[i])
    			printf("");
    		else
    			{
    				printf("\n%d", a[i]);
    				i++;
    			}
    	}
    	getch();
    }

  5. #5
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Đây là code mình làm theo ý tưởng của meoconlongvang và langman các bạn thấy được chưa?
    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
    {
    	clrscr();
    	int a[100], i = 0;
    
    	randomize();
    	a[0] = 0;
    	for(i=1; i<=10; i++)
    	{
    		a[i] = a[i-1] + random(100);
    		printf("\n%d", a[i]);
    	}
    	getch();
    }

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Phát sinh ngẫu nhiên mảng một chiều các số nguyên sao cho mảng có thự tự tăng dần

    Đọan code đầu tiên không được. Thứ nhất là a[0] chưa được khởi tạo trị. Thứ hai là nó rất dễ rơi vào vòng lặp vô tận nếu như a[i] = 1000 trong khi i vẫn chưa đến cuối mảng. Bạn nên làm theo hai cách của bạn langman. Cách thứ nhất thì hơi dở ở chỗ là số sinh ra chênh lệch nhau khá lớn. Theo mình nghĩ cách thứ 2 là ổn nhất mà cũng dễ nhất vì cũng chẳng cần kiểm tra điều kiện. Đoạn code sau thì được rồi, chỉ cần sửa lại a[0] = random(100) thay vì a[0] = 0.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 15-08-2008 lúc 09:19 PM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    Nhưng 2 cách của bạn langman lại không giới hạn được giá trị của mảng. vd: mình muốn các phần tử của mảng phải nhỏ hơn 1000 thì sao?

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Thì bạn sửa lại như vầy là xong :

    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void main()
    {
    	clrscr();
    	int a[100], i = 0;
    
    	randomize();
    	a[9] = 1000 - random(100);
    
    	for(i=8; i>=0; i--)
    	{
    		a[i] = a[i+1] - random(100);
    	}
    
    	for(i=0; i<10; i++)
    		printf("\n%d", a[i]);
    
    	getch();
    }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  9. #9
    Ngày gia nhập
    08 2008
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    28

    meoconlongvang ơi mình vừa test thử, mảng của bạn lại có số âm không được rồi, bạn có cách khác ko?

  10. #10
    Ngày gia nhập
    12 2007
    Bài viết
    54

    randomize();
    cái này là dùng để gọi hàm random à ?
    Rất mong được mọi người giúp đỡ :

    Kiến thức mình biết chỉ là hạt cát trên sa mạc

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

  1. Kỹ thuật C Nguyên lý sinh số ngẫu nhiên của hàm random như thế nào?
    Gửi bởi dehin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 24-07-2015, 05:45 PM
  2. Lập trình C Tạo mảng 2 chiều bằng cách phát sinh phần tử ngẩu nhiên và không trùng.
    Gửi bởi trungnguyenkbuor trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 28-12-2012, 10:36 AM
  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. phát sinh ngẫu nhiên mảng một chiều các số nguyên âm
    Gửi bởi giangpham trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-11-2010, 10:12 PM
  5. Bài tập C Tạo mảng 1 chiều phát sinh ngẫu nhiên
    Gửi bởi hongban 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: 31-10-2010, 04:56 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