Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
#1

Как реализуются "неограниченные" циклы? - C++

23.02.2009, 11:49. Просмотров 2770. Ответов 14
Метки нет (Все метки)

Помогите, плиз!
У меня даны первые 31 члена последовательности, а по ним нужно вычислить все остальные...т.е.

Дано: z1, ..., z31
Надо вычислить: z32, z33, z34, ...

zi = (z(i-31) - z(i-21))mod65257, i=32,33,34,....

Вот как реализовать эти ..., т.е. когда предела нет?

(если это поможет, то это для датчика случайных чисел надо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2009, 11:49     Как реализуются "неограниченные" циклы?
Посмотрите здесь:

Циклы с выключателем и ошибка "ссылка на неразрешенный внешний символ" - C++
код такой получился main #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; double...

"Простые" циклы - C++
Помогите, пожалуйста, сделать Лаб.роботу по С++. Вычислить и вывести значение функции при изменении значения аргумента от А к В с шагом С...

Как сделать поле с "|", #, "-" и цифрами - C++
#include <iostream> // cin, cout #include <clocale> // поддержка русского языка #include <conio.h> // _getch() #include <stdlib.h>...

Как заменить функцию printf из "С" в "С++"? - C++
Я знаю, что саму функцию printf можно заменить функцией cout, но меня интересует как заменить то, что в скобках? printf("%4d",a); ...

Как "захватить" окно и нажать "Ok"? - C++
Здравствуйте. На ПК сотрудниках устанавливаем программу, в конце выходит окошка и нужно нажать ок! как захватить данное окно и нажать...

Как сделать константными значения "m" и "n" - C++
не знаю как сделать константными значения "m" и "n" так как я создал динамический массив и ввожу эти значения с клавиатуры. подскажите как...

DEV-C++ операторы ".", "::" как в VS - C++
Помогите разобраться. Как настроить оператор - "." и "::", чтобы после них вылезало окно со списком функций созданого класса? Тоесть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
23.02.2009, 11:52     Как реализуются "неограниченные" циклы? #2
C++
1
while(true)
C++
1
for( ; ; )
бесконечные циклы
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
23.02.2009, 11:59  [ТС]     Как реализуются "неограниченные" циклы? #3
но тут вопрос в том, что он не должен быть бесконечным - иначе просто будет зацикливание и программа работать не будет. Тут видимо по-другому как-то надо делать...
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
23.02.2009, 15:26     Как реализуются "неограниченные" циклы? #4
break выход из цикла.
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
23.02.2009, 15:45  [ТС]     Как реализуются "неограниченные" циклы? #5
я знаю, что break - выход из цикла, вопрос в том, когда этот break делать, если условие такое, как я указала выше..
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
23.02.2009, 15:50     Как реализуются "неограниченные" циклы? #6
Цитата Сообщение от Splendid Посмотреть сообщение
Помогите, плиз!
У меня даны первые 31 члена последовательности, а по ним нужно вычислить все остальные...т.е.

Дано: z1, ..., z31
Надо вычислить: z32, z33, z34, ...

zi = (z(i-31) - z(i-21))mod65257, i=32,33,34,....

Вот как реализовать эти ..., т.е. когда предела нет?

(если это поможет, то это для датчика случайных чисел надо)
То есть вы хотите вычислить ровно бесконечное число членов этой последовательности? а где вы их хранить собираетесь?память то конечна. Так вот,для вычисления бесконечного кол-ва этих z-ов нужно бесконечное число итераций. Судя по всему,вы хотите код заклинания,который все это сожмет до обозримых пределов. Я бы рассказал, но я шаману на крови поклялся...
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
23.02.2009, 15:58  [ТС]     Как реализуются "неограниченные" циклы? #7
XuTPbIu_MuHTAu, нет, я не хочу хранить бесконечность. Но раз существуют такие задачи (конкретно эта - из СТБ) - значит существует решение... Я так понимаю, что здесь нужно хранить в памяти только первые 31 член, а остальные генерировать по мере необходимости до определенного предела - который как-раз точно неопределен...т.е. как-то так...вот нужна идея как это сделать..
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
23.02.2009, 16:01     Как реализуются "неограниченные" циклы? #8
Splendid,
Ваша постановка задачи никуда не годится,если вы не поняли,о чем я. "До какого-то предела,который точно не определен..." - ну что это такое? Если вам нужно 11003 число,тогда запускайте свой цикл до него и считайте.Нужно k-е - считайте до k-го..Такие штуки обычно как параметр функции принимают.

В программировании никакого "точно не определен" быть не должно.
-MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
23.02.2009, 16:03     Как реализуются "неограниченные" циклы? #9
припа пользователь вводит номер элемента? тогдав просто скан ("",н) фор(...;<н;...).... и все.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
23.02.2009, 16:05     Как реализуются "неограниченные" циклы? #10
Кстати,прекрасной альтернативой цикла является рекурсия. Вот так:
Код
int z(int k) {
    if(k<32) return ....//ваши значения
    return (z(k-31)-z(k-21))%65257
};
Добавлено через 1 минуту 41 секунду
Splendid,Позвольте объяснить вашу ошибку.Вы неправильно поставили вопрос. В вашем случае не предела нет,а номер нужного z передается как параметр. Это очень большая разница,и я не сразу понял,что именно вы имеете в виду.
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
23.02.2009, 16:16  [ТС]     Как реализуются "неограниченные" циклы? #11
ясно, все поняла, всем спасибо
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.02.2009, 20:09     Как реализуются "неограниченные" циклы? #12
вроде mod65257 и накладывает предел
Splendid
0 / 0 / 1
Регистрация: 27.03.2008
Сообщений: 75
24.02.2009, 09:41  [ТС]     Как реализуются "неограниченные" циклы? #13
да, он накладывает предел, в том смысле, что числа не будут больше 65257, но не на их количество
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.02.2009, 13:07     Как реализуются "неограниченные" циклы? #14
наложит на количество, если она возрастает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2009, 14:03     Как реализуются "неограниченные" циклы?
Еще ссылки по теме:

Как заменить символ "*" на "??" - C++
доброго вечера. подскажите пожалуйста у меня по заданию идет заменить каждую встречающуюся * на ??(считываемую из файла). я понял как...

Ошибка при компиляции, отсутствие ";" перед "*" - C++
Доброго времени суток уважаемые форумчане. Пишу вам с надеждой о помощи. Как и было написано выше, компилятор ругается и не могу понять...

Результаты денежной лотереи подано таблицей выигрышных номеров "А" и таблицей выигрышей в гривне "С", где с (и - C++
Помогите

Перегрузка оператора "+", чтобы выполнял "*" - C++
Ребят, привет всем, возник такой вопрос: возможно ли перегрузить оператор &quot;+&quot; так, чтоб выполнялось умножение? Например вводится...

Иерархия классов "люстра", "лампа" - C++
Реализовать и протестировать иерархию классов (родительский и производные) : Настольная лампа с автоматическим регулятором освещенности ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
24.02.2009, 14:03     Как реализуются "неограниченные" циклы? #15
может так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
unsigned int* Z;
int Rand()
{
    static int Curr=0,Z31=0,Z21=9;
    unsigned int result=Z[Curr]=static_cast<unsigned int>(Z[Z31]-Z[Z21])%65257;
    Curr+=Curr==31?-31:1;
    Z31+=Z31==31?-31:1;
    Z21+=Z21==31?-31:1;
    return result;
}
int main()
{
    Z=new unsigned int[31];
    for(int i=0;i<31;Z[i]=i,i++);
    for(int i=0;i<10000;i++)
        std::cout<<Rand()<<'\n';
    system("pause");
    return 0;
}
Yandex
Объявления
24.02.2009, 14:03     Как реализуются "неограниченные" циклы?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru