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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 23:50   #1
RayGGG
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 10
По умолчанию Алгоритм вычисления на С++

Добрый день. Никак не могу разобраться с задачкой.
Задача: Пусть есть n=6. zd[i] - это рандомное число от 0 до 3 включительно.Нужно вычитать рандомные числа 0, 1, 2, 3 из n, до тех пор, пока n не дойдет до 2, когда n будет равно 2 или меньше, то нужно востановить n снова до 6.
Вот мои попытки:
Код:
do {

		n=6;
		for(int j=1; j<=10; j++) n=n-zd[j];
		
  
 cout<<'\n' <<n <<' ';
} while(n>2);
RayGGG вне форума Ответить с цитированием
Старый 14.02.2011, 23:53   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
n=6;
while(1)
{
   n-=zd[i];
   if(n<=2) 
       n=6;   
}
counter вне форума Ответить с цитированием
Старый 15.02.2011, 18:44   #3
RayGGG
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 10
По умолчанию

Подскажите пожалуйста еще, как приктрутить сюда
Код:
n=6;
while(1)
{
   n-=zd[i];
   if(n<=2) 
       n=6;   
}
счетчик, который считал бы за сколько шагов вычитаний, n доходила бы до 2. Например 6-2-1-1=2 здесь за три шага.
RayGGG вне форума Ответить с цитированием
Старый 15.02.2011, 19:01   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а вы сами как думаете? надо завести еще переменную, которая будет считать итерации, а при n<=2 сбрасываться в нуль...
counter вне форума Ответить с цитированием
Старый 15.02.2011, 19:16   #5
RayGGG
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 10
По умолчанию

Код:
while(p<100)
{

for(int j=1; j<=10; j++)
	
   n-=zd[j];
   k++;
   
  
   if(n<=2) {
       k=0;
       n=6;
	  p++;}
 cout<<'\n' <<k <<' ';


// cout<<'\n' <<p <<' ';   
}
Вот немного модифицированный код под мою задачу, я добавил k++, но все равно не работает. А с циклом никак не получается.
RayGGG вне форума Ответить с цитированием
Старый 15.02.2011, 19:46   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

может так пойдет?

Код:
// Задача: Пусть есть n=6. zd - это рандомное число от 0 до 3 включительно.
// Нужно вычитать рандомные числа 0, 1, 2, 3 из n, до тех пор, пока n не 
// дойдет до 2, когда n будет равно 2 или меньше, то нужно востановить n снова до 6.

#include <iostream>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
	int n=6;
	int k=0;
	int zd=0;
	int p=0;

	srand(time(0));

	while(p<100)
	{
		zd=rand()%4;
		n-=zd;
		if(n<=2)
		{
			n=6;
			k=0;
		}
		k++;
		p++;
		cout<<"n = "<<n<<"   zd = "<<zd<<"   k = "<<k<<"   p = "<<p<<"\n";
	}

	_getch();
}
counter вне форума Ответить с цитированием
Старый 15.02.2011, 20:22   #7
RayGGG
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 10
По умолчанию

Еще как пойдет, вот переделал немного под свою задачу.
Код:
#include <iostream>
#include <ctime>
#include <conio.h>

using namespace std;

int main()
{
	int n=6;
	int k=0;
	int zd=0;
	int p=0;
	int s=0;
	int m=0;

	srand(time(0));

	while(p<100)
	{
		zd=rand()%4;
		n-=zd;
		k++;
		if(n<=2)
		{
			n=6;
			k=0;
			p++;
			
		}
		
		s+=k;
		m=s;
		m=m/100;
		cout<<"n = "<<n<<"   zd = "<<zd<<"   k = "<<k<<"   p = "<<p <<"  m=" <<m<<"\n";
	}

	_getch();
}
Еще вопрос. Можно ли обойтись одномерным массивом zd[i], если мне нужно сделать рандомные выпадения значений zd[i] = 0 1 2 3, с различными вероятностями. Например 0 выпадает с вероятностью 0,2. итд
RayGGG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм вычисления значения функции vzr Свободное общение 9 30.03.2010 20:14
Оптимизировать алгоритм вычисления сумм элементов главной и побочной диагонали в матрице - Delphi r9m Помощь студентам 5 04.02.2009 11:01
Составить алгоритм и программу вычисления определенного интеграла triston Помощь студентам 3 18.11.2008 18:35
Быстрый алгоритм для вычисления синуса RIO Помощь студентам 10 17.12.2007 14:33
Алгоритм вычисления контрольной суммы файлов young_W Общие вопросы Delphi 2 11.09.2007 22:22