Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2008, 19:08   #1
Frog25
Пользователь
 
Регистрация: 16.06.2008
Сообщений: 16
По умолчанию ГСЧ с большим количеством нулей

Добрый день. Необходима помощь с ГСЧ с большим колличеством нулей. Только чтобы не сильно завёрнутый был. Наподобии : rand()%3+0
Frog25 вне форума Ответить с цитированием
Старый 26.06.2008, 11:25   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

С "большим" это с каким? Покажите примерный ряд, который хотите получить, чтобы было о чём говорить.
B_N вне форума Ответить с цитированием
Старый 26.06.2008, 12:35   #3
Frog25
Пользователь
 
Регистрация: 16.06.2008
Сообщений: 16
По умолчанию

ну скажем матрица 3х3
010
500
007
В задании написано "Заполнение массивов случайными числами, но с большим числом нулевых значений", но я думаю от 0 до 5 хватит.
Frog25 вне форума Ответить с цитированием
Старый 26.06.2008, 13:01   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Ну а что меншает сделать что-то вроде
Код:
int rand000()
{
	int r = rand() % 200;
	return r > 100 ? r - 100 : 0;
}
и подогнать диапазоны как нужно...
B_N вне форума Ответить с цитированием
Старый 26.06.2008, 14:22   #5
Frog25
Пользователь
 
Регистрация: 16.06.2008
Сообщений: 16
По умолчанию

Мешает незнание (только первый курс освоил) .
И пожалуйста с этого момента поподробней
Frog25 вне форума Ответить с цитированием
Старый 26.06.2008, 14:51   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Код:
#include <stdlib.h>
#include <stdio.h>

int rand000(unsigned int zero_percent)
{
	int r;
	unsigned long zero_margin;

	if(zero_percent > 100) zero_percent = 100;
	zero_margin = (RAND_MAX * zero_percent) / 100;
	r = rand();

	return r > zero_margin ? rand() : 0;
}


int main()
{
	int i;

	srand(time(NULL));
	for (i = 0; i < 100; i ++) printf("%d |", rand000(0) % 100);
	puts("\n--------------");
	for (i = 0; i < 100; i ++) printf("%d |", rand000(20) % 100);
	puts("\n--------------");
	for (i = 0; i < 100; i ++) printf("%d |", rand000(50) % 100);
	puts("\n--------------");
	for (i = 0; i < 100; i ++) printf("%d |", rand000(100) % 100);

	getchar();
	return 0;
}
Цитата:
8 |26 |45 |69 |54 |83 |75 |16 |56 |84 |35 |91 |57 |16 |41 |1 |88 |16 |86 |83 |63 |57 |61 |92 |85 |61
|32 |98 |72 |39 |52 |40 |16 |54 |64 |75 |66 |62 |42 |23 |82 |63 |78 |16 |14 |36 |54 |27 |1 |77 |84
|40 |21 |62 |15 |51 |12 |78 |90 |84 |43 |9 |39 |25 |94 |22 |42 |92 |25 |89 |3 |59 |11 |22 |76 |22 |2
6 |16 |60 |80 |20 |87 |57 |26 |84 |71 |87 |19 |22 |11 |67 |66 |7 |55 |93 |19 |74 |6 |74 |86 |
--------------
10 |68 |2 |50 |66 |61 |19 |68 |35 |21 |69 |0 |80 |52 |74 |0 |33 |91 |0 |19 |2 |0 |34 |53 |45 |28 |34
|73 |45 |5 |37 |63 |72 |5 |18 |0 |87 |85 |2 |85 |73 |87 |47 |0 |69 |0 |8 |35 |42 |0 |94 |63 |59 |30
|46 |86 |80 |50 |94 |0 |37 |19 |0 |0 |78 |0 |0 |0 |99 |33 |11 |23 |56 |0 |54 |15 |32 |99 |72 |52 |5
9 |63 |13 |53 |1 |0 |17 |74 |26 |24 |21 |43 |81 |28 |62 |50 |50 |39 |0 |81 |
--------------
0 |0 |54 |32 |0 |54 |23 |0 |0 |90 |0 |0 |76 |45 |28 |60 |0 |63 |0 |0 |11 |0 |0 |0 |58 |31 |5 |79 |0
|0 |90 |91 |0 |4 |57 |0 |29 |0 |0 |0 |26 |26 |19 |32 |21 |0 |0 |1 |0 |96 |0 |37 |41 |0 |0 |0 |40 |0
|0 |28 |6 |14 |68 |12 |0 |91 |12 |0 |62 |23 |1 |0 |0 |0 |0 |95 |40 |0 |19 |0 |53 |0 |0 |96 |0 |0 |73
|12 |48 |0 |0 |0 |0 |39 |32 |0 |0 |0 |7 |0 |
--------------
0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0
|0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0
|0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |0 |
B_N вне форума Ответить с цитированием
Старый 26.06.2008, 18:22   #7
Frog25
Пользователь
 
Регистрация: 16.06.2008
Сообщений: 16
По умолчанию

Спасибо большое
Frog25 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с чисткой до нулей!!! QIP AGeNt Помощь студентам 2 10.07.2008 00:30
Получите последовательность b1...bn из нулей и единиц Я_Студент Паскаль, Turbo Pascal, PascalABC.NET 2 04.07.2008 12:40
Какую программу можно написать на делфи чтобы она пользовалась большим спросом Xander Свободное общение 8 03.07.2008 16:11
Избавиться от ведущих нулей. Progs Паскаль, Turbo Pascal, PascalABC.NET 4 24.10.2007 12:50