Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

вычисление чисел

479  
kraz посетитель02.07.06 23:53
kraz
NEW 02.07.06 23:53 
нужна программа вычисление чисел,скажем пример 6 из 49( ~15 000 000 вариантов).и что бы программа показала все варианты.ест в россии, но я в россии ,точно знаю. если кто имеет или знает где взят пишите.
#1 
  anatoli888 знакомое лицо03.07.06 00:40
NEW 03.07.06 00:40 
в ответ kraz 02.07.06 23:53, Последний раз изменено 03.07.06 00:41 (anatoli888)
обыкновенный калькулютор! или вручную слабо?
#2 
sandstrahl_rus прохожий03.07.06 02:50
sandstrahl_rus
NEW 03.07.06 02:50 
в ответ kraz 02.07.06 23:53
http://www.toehelp.ru/theory/ter_ver/

последняя надежда на то что и этот ник не заБАНят!!!!
#3 
NeverMind коренной житель03.07.06 07:22
NeverMind
NEW 03.07.06 07:22 
в ответ kraz 02.07.06 23:53
In Antwort auf:
нужна программа вычисление чисел,скажем пример 6 из 49( ~15 000 000 вариантов).и что бы программа показала все варианты.ест в россии, но я в россии ,точно знаю. если кто имеет или знает где взят пишите.

По моим подсчетам гораздо больше вариантов 49 * 48 * 47 * 46 * 45 * 44 = 10.297.173.600
#4 
kraz посетитель03.07.06 21:42
kraz
NEW 03.07.06 21:42 
в ответ anatoli888 03.07.06 00:40
ты умник,да?а ты попробуй, а я у тебя эти 15.000.000 вариантов куплю.прежде чем что-то сказат-подумай.
#5 
  anatoli888 знакомое лицо03.07.06 23:59
NEW 03.07.06 23:59 
в ответ kraz 03.07.06 21:42
В ответ на:
прежде чем что-то сказат-подумай.

1. идем сюда и смотрим: http://de.wikipedia.org/wiki/Kombinatorik
2. так что это трудно посчитать на калькуляторе?
всего при 6-ти из 49-ти 13.983.816 вариантов!
ну так что сказать тебе конту?
#6 
barma_lej свой человек04.07.06 01:48
barma_lej
NEW 04.07.06 01:48 
в ответ anatoli888 03.07.06 23:59
Хм, а я так понял, что ему нужны всевозможные варианты, а не их количество...
#7 
kraz посетитель04.07.06 13:33
kraz
NEW 04.07.06 13:33 
в ответ anatoli888 03.07.06 00:40
я тебе не за число вариантов говорил,ето и моя 4-х летняя доч может. а за сами варианты,которые мне все на CD или бумаге нужны.тепер понял???я ето уже давно и без тебя знал.а когда пришлеш мне все варианты,можеш и конту дат.после того как я получу все 14. 000.000 вариантов на бумаге.
#8 
kraz посетитель04.07.06 13:34
kraz
NEW 04.07.06 13:34 
в ответ kraz 04.07.06 13:33
правилно было подмечено,"не количество,а все вазможные варианты!"
#9 
voxel3d коренной житель05.07.06 00:35
voxel3d
NEW 05.07.06 00:35 
в ответ kraz 02.07.06 23:53, Последний раз изменено 05.07.06 00:46 (voxel3d)
> нужна программа вычисление чисел,скажем пример 6 из 49( ~15 000 000 вариантов).и что бы программа показала все варианты.ест в россии, но я в россии ,точно знаю. если кто имеет или знает где взят пишите.
Про Россию не понял, про что речь. Кстати, Вы на три порядка ошиблись, вариантов не ~15 миллионов, а ~10 миллиардов, если быть точным, то: 10 068 347 520.
Если Вам хватит бумаги и терпения, то нате, держите Вашу программу. Правда, у неё есть большой недостаток, на таких последовательностях, ввиду лени мне оптимизировать её, а именно, делать нормальный вывод, вместо того, чтобы на каждую итерацию перебора печатать очередной вариант, работает она медленно. Компилировать: g++ -O3 -Wall -o lotto.exe main.cpp, запускать: lotto 6 49, получить результат в файл: lotto 6 49 > filename.
В ответ на:
main.cpp
#include <stdlib.h>
#include <iostream>
using namespace std;
int SEQ_LENGTH;
int MAX_VALUE;
long long counter = 0;
int* seq;
bool initSeq(char** argv)
{
SEQ_LENGTH = atoi(argv[1]);
MAX_VALUE = atoi(argv[2]);
if( !SEQ_LENGTH||!MAX_VALUE||SEQ_LENGTH>MAX_VALUE )
return false;

seq = new int[SEQ_LENGTH];
for(int j=0;j<SEQ_LENGTH;++j) {
seq[j] = j+1;
}
return true;
}
inline void print()
{
for(int j=0;j<SEQ_LENGTH;++j) {
cout << seq[j] << " ";
}
cout << endl;
++counter;
}
inline bool is_in(int value, int idx)
{
for(int j=0;j<SEQ_LENGTH;++j)
if( idx!=j && seq[j]==value )
return true;
return false;
}
inline void increase(int idx)
{
while( is_in(++seq[idx], idx) );
}
inline bool incLeft(int idx)
{
if( idx<0 )
return false;
increase(idx);
bool result = true;
if( seq[idx]>MAX_VALUE ) {
result = incLeft(idx-1);
seq[idx] = 0;
increase(idx);
}
return result;
}
void printUsage()
{
cout << "Lotto: invalid parameters" << endl;
cout << "Usage: lotto M N" << endl;
cout << "Where: M <= N;" << endl;
cout << " M: Sequence's length" << endl;
cout << " N: Max number in the sequence" << endl;
}
int main(int argc, char** argv)
{
if( argc!=3||!initSeq(argv) ) {
printUsage();
return 1;
}
while( seq[SEQ_LENGTH-1]<=MAX_VALUE || incLeft(SEQ_LENGTH-1) ) {
print();
increase(SEQ_LENGTH-1);
}
cout << endl << "Count: " << counter << endl;
delete [] seq;
return 0;
}



Dropbox - средство синхронизации и бэкапа файлов.
#10 
voxel3d коренной житель05.07.06 00:53
voxel3d
NEW 05.07.06 00:53 
в ответ anatoli888 03.07.06 23:59
Не n!/k!(n-k)! , а n!/(n-k)!
Или порядок следования неважен? И последовательности 1 2 3 4 5 6 7 и 7 6 5 4 3 2 1 в лото равноценны? Тогдa, ты прав, а я нет.
Dropbox - средство синхронизации и бэкапа файлов.
#11 
  anatoli888 знакомое лицо05.07.06 00:56
NEW 05.07.06 00:56 
в ответ voxel3d 05.07.06 00:53
мне всегда казалось что порядок важен!
#12 
NeverMind коренной житель05.07.06 01:09
NeverMind
05.07.06 01:09 
в ответ anatoli888 05.07.06 00:56
Порядок неважен, самое главное выбрать правильно 6 из 49
#13 
  anatoli888 знакомое лицо05.07.06 01:35
NEW 05.07.06 01:35 
в ответ kraz 02.07.06 23:53, Последний раз изменено 05.07.06 01:48 (anatoli888)
voxel3d это тебе
блин! все путаю пермутации и комбинации
короче я посмотрел что для лото порядок всетаки не важен и тогда n!/k!(n-k)! правильная. во
------------------------
послано почему то автору ветки а до этого вобще ужас!
<<<<<<<<<<<<<<<<<<<
#14 
  anatoli888 знакомое лицо05.07.06 01:36
NEW 05.07.06 01:36 
в ответ NeverMind 05.07.06 01:09
ага ты прав.
#15 
Murr коренной житель05.07.06 16:49
Murr
NEW 05.07.06 16:49 
в ответ voxel3d 05.07.06 00:35
Попробовал, в свете тематики раздела, осознать код...
Потратил пять минут и осознал... что проще написать другой вариант, с "двиганием" "последнего левого" на следующую позицию в массиве...
Ну ленивый Кот, чивО тут поделаешь...
#16