10681
|
Программирование / Алгоритмы / Re: Равенство формул
|
: Январь 18, 2010, 21:09
|
>>Как эту задачу представляет себе человек? порой, без должной тренировки одну формулу к другой не просто привести.
Если сделать програмулину решающую эту задачу и потихоньку раскрутить, то можно и Маткаду конкуренцию составить
"Та отож" - и пусть она решает задачки для поступающих в ВУЗы (сборник Сканави, сложность "В"). Реальные задачи надо ставить (даже с мощным Qt)
|
|
|
10682
|
Qt / Работа с сетью / Re: Qt 4.4.3 msvc2008 QDataStream лишние 2-4 байта
|
: Январь 18, 2010, 15:59
|
C++ (Qt) QByteArray block; QDataStream(&block); quint16 size; out<<size;//можно заменить канеш на (quint16)0; out<<str; out<<str; out<<str; out.device()->seek(0); size=block.size()-sizeof(quint16) out<<size;//или сразу (quint16)((block.size()-sizeof(quint16))
Вот это действительно расписано, все ясно. Два технических момента: 1) quint32 (вместо quint16) выглядит солиднее 2) не обязательно связываться с block.size(), часто лучше использовать position() (сохраненное перед out << size) Но эти детали не очень существенны.
|
|
|
10683
|
Qt / Работа с сетью / Re: Qt 4.4.3 msvc2008 QDataStream лишние 2-4 байта
|
: Январь 18, 2010, 15:27
|
Причем, чуть ниже все расписано...
А что собственно расписано? C++ (Qt) QString str = tr( "sos" ); QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out << size; // Размер блока как в примере out << QString( "Str1" ); out << QString( "Str2" ); out << QString( "Str3" );
Вот мне интересно откуда взялся size если данные пишутся позже?
|
|
|
10684
|
Qt / Работа с сетью / Re: Qt 4.4.3 msvc2008 QDataStream лишние 2-4 байта
|
: Январь 18, 2010, 15:03
|
А почему бы тебе не попробовать? C++ (Qt) out << str; out << str; out << str;
А на другой стороне принять. Думаю ты будешь приятно удивлен. Это действительно приятно и будет работать. Но "до первого милиционера" - ведь правильность/длина передаваемого пакта никак не контролируется
|
|
|
10685
|
Компиляторы и платформы / Linux / Re: collect2: cannot find ld (Eclipse CDT)
|
: Январь 18, 2010, 03:03
|
Использовать CMake + Makefile-проект в Эклипсе?
Уже хотел было спросить "а как это сделать?" но в последний момент получилось с IDE 1) Скопировал ld как real-ld (не знаю обязательно ли это) 2) А вот это точно обязательно: в команду линкера (g++) добавить путь к ld, итого g++ -B/usr/bin
И все бы ничего (и Линукс ОС интересный) - если бы на это у меня не ушло 3 полных дня
|
|
|
10686
|
Компиляторы и платформы / Linux / collect2: cannot find ld (Eclipse CDT)
|
: Январь 17, 2010, 13:04
|
Добрый день Получаю такую бяку на линковке, Building target: Test1.exe Invoking: GCC C++ Linker g++ -o"Test1.exe" ./src/Test1.o collect2: cannot find 'ld' make: *** [Test1.exe] Error 1
причем только из Eclipse IDE, из командной строки все прекрасно работает и Test1.exe создается. Перепроверил PATH много раз, чтобы убедиться сделал pre-build step в котором печатаю PATH и список файлов в нем. Изучил также http://docs.freebsd.org/info/gcc/gcc.info.Collect2.html и попробовал все варианты оттуда. Linux: Fedora 12, 32-bits (gcc 4.4.2) На стареньком RedHat Linux (gcc 4.1) все работает из IDE, но там я никак не могу прорваться c Mesa, OpenGL - т.е. с теми библиотеками которые мне нужны. На всякий случай вот версии [Igor@localhost ~]$ g++ --version g++ (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7) Copyright (C) 2009 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[Igor@localhost ~]$ ld --version GNU ld version 2.19.51.0.14-34.fc12 20090722 Copyright 2008 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty.
Конечно, гуглил - проблема известна - но не ее решение Похоже на проблему Eclipse + libgcj-4.4.2-7 (java runtime library for gcc). Если знаете что делать - подскажите, буду благодарен
|
|
|
10687
|
Разное / Говорилка / Re: Задачки
|
: Январь 11, 2010, 18:53
|
Поймите, здесь не идет речи ни о каком вероятностном эксперименте. Следовательно высчитывать вероятность того или иного исхода бессмыслено! Фраза "Раскраска - абсолютно случайная" означает, что требуется дать ответ для общего случая, не ограниченного никакими предположениями. Поэтому "вероятность выпадения не ноль" для бесконечной прямой ничего не дает.
Мне кажется здесь все ясно. Ладно, наверное мы с Вами думаем по-разному Не буду Вам больше мешать.
|
|
|
10688
|
Разное / Говорилка / Re: Задачки
|
: Январь 11, 2010, 18:21
|
Предположения... У этой задачи есть однозначный ответ, без всяких предположений и вероятностных моделей.
В общем и целом ответ неверный. Жду других предложений.
Подсказка: не бросайтесь в теорию вероятностей и остальную высшую математику.
А не слишком ли Вы уверены что ответ (который Вы имеете ввиду) "верен"? Если ли Вы утверждаете что выбор цвета "абсолютно случаен" - то вероятностная модель заложена в самой постановке задаче и избавиться от нее нельзя (да и не нужно). Другое дело что (вероятно ) можно показать очевидность существования каким-то остроумным способом. Не спорю, этого я не знаю. Но любой ответ будет использовать теорию вероятности - хотим мы или нет. Поэтому мой ответ останется "столь же верен"
|
|
|
10689
|
Разное / Говорилка / Re: Задачки
|
: Январь 11, 2010, 17:36
|
вероятность подсчитана верно, спору нет. Вот только даже при вероятности 0.999 нельзя утверждать, что этот отрезок существует, поскольку она не равна 1. Вот и у вас получается, что вероятность его существования 0.125. Так существует он ли нет? На бесконечной прямой - конечно существует, просто потому что вероятность его выпадения не ноль. Для конкретных данных - на тестируемом участке напр. из 1000 точек найдется (в среднем/примерно) 125 таких отрезков. Это число будет колебаться в зависимости от random seed. Утверждать что при фиксированном числе выборок "всегда существует" - неверно. По крайней мере теоретически - возможна такая случайная последовательность при которой ни одного такого отрезка не будет, хотя это может произойти раз за миллион лет посвященных перебору Не пойму где нужно приложить смекалку
|
|
|
10690
|
Разное / Говорилка / Re: Задачки
|
: Январь 11, 2010, 17:06
|
Что не так? а может и не найдется 50/50 нет, тут есть математическое решение.. вот только какое? (задачка с подковыркой) тут нужно и пределы и интегралы и теорию вероятности использовать Да я ж не против подковырок, но пусть мне пояснят где проблемы-то. А пока я вижу вероятность такого отрезка 0.125 - и ничего более
|
|
|
10691
|
Разное / Говорилка / Re: Задачки
|
: Январь 11, 2010, 16:49
|
Не пойму в чем задача. Ладно, встали в первую точку отрезка. Возможно ли что там нужный нам цвет? Конечно, с вероятностью 0.5 (надо полагать "абсолютно случайно" - значит "равновероятно"). Стали в середину - возможно ли что там опять нужный нам цвет? Конечно возможно (и к бабке не ходи). Точно так же с концом. А поскольку прямая бесконечна - мы вправе утверждать что да, всегда существует при любом random seed. А если даже заменить прямую на "большой отрезок" - нужная комбинация найдется при каком-то random seed.
Что не так?
|
|
|
10692
|
Qt / 2D и 3D графика / Re: Модель из 3dmax_ в Open GL
|
: Январь 11, 2010, 15:17
|
Дальше в теме по существу.
Согласен class vertex{ public: float x,y,z; }; Если этот скромный ("конкретный") класс развить - толку будет намного больше чем от использования всех умных контейнеров вместе взятых. Например struct vertex { // avoid constructor vertex & xyz( float _x = 0.0f, float _y = 0.0f, float _z = 0.0f ) { x = _x; y = _y; z = _z; return *this; }
// math vertex & operator += ( const vertex & t ) { x += t.x; y += t.y; z += t.z; return *this; } vertex & operator -= ( const vertex & t ) { x -= t.x; y -= t.y; z -= t.z; return *this; }
vertex & operator *= ( float t ) { x *= t; y *= t; z *= t; return *this; } vertex & operator /= ( float t ) { x /= t; y /= t; z /= t; return *this; }
// length & normalize float lenSq ( void ) const { return x * x + y * y + z * z; } float length ( void ) const { return sqrtf(lenSq); }
vertex & normalize( void ) { return *this /= length(); }
// friend operators friend vertex operator + ( const vertex & a , const vertex & b ) { vertex t; return t.xyz(a.x + b.x, a.y + b.y, a.z + b.z); } friend vertex operator - ( const vertex & a , const vertex & b ) { vertex t; return t.xyz(a.x - b.x, a.y - b.y, a.z - b.z); }
friend vertex operator * ( const vertex & a, float t ) { vertex v = a; return v *= t; } friend vertex operator / ( const vertex & a, float t ) { vertex v = a; return v /= t; }
// scalar product (overloaded *) friend float operator * ( const vertex & a , const vertex & b ) { return a.x * b.x + a.y * b.y + a.z * b.z; } // vector product (overloaded |) friend vertex operator | ( const vertex & a , const vertex & b ) { vertex t; return t.xyz(a.y * b.z - a.z * b.y, a.x * b.z - a.z * b.x, a.x * b.y - a.y * b.x); } };
Теперь ф-ция CalcNormal может выглядеть напр. так void QGLMesh::CalcNormal(const & vertex p1, const & vertex p2, const & vertex p3, vertex *res) { *res = ((p2 - p1) | (p3 - p1)).normalize(); } { А про вертексные нормали можно долго говорить (после того как ieroglif перестанет обижаться )
|
|
|
10693
|
Qt / 2D и 3D графика / Re: Модель из 3dmax_ в Open GL
|
: Январь 10, 2010, 16:45
|
класс для загрузки и отрисовки из 3ds файла. (в него умеет сохранять макс без проблем) класс глючный (не уверен в корректной работе нормалей) и выполняет только базовые функции отрисовки полигонов (без цветов и материалов). класс QGLVector - обычный, хранит в себе 3 координаты. В общем, думаю, можно оттолкнуться и использовать для написания своего кода.
Вопрос: сколько строк (в %) было использовано для повторения операций над всеми 3-мя компонентами (x, y, z)? Технику-то подтянуть надо.
|
|
|
10694
|
Qt / Общие вопросы / Re: Основы удаление объектов.
|
: Январь 09, 2010, 21:33
|
Igors, я мало что понял из того что вы написали. Внутренности вас волновать не должны. A - мой собственный класс, что хочу в нём - то и храню. Вы не можете навязывать хранение по значению, так как класс может быть не перемещаем. Всё что показывает пример - несоответствие количества new количеству delete.
Я хотел просто сказать - спланируйте класс удачнее и "количество написанных delete" (правильно ?) схлопнется само сабой
|
|
|
10695
|
Qt / Общие вопросы / Re: Основы удаление объектов.
|
: Январь 09, 2010, 19:39
|
Погодите, я не говорил, что это плохо. В библиотечном классе, который я привёл в пример - это абсолютно нормально, реализовать столько вариантов деаллокаций сколько нужно. Главное что они не торчат наружу.
Не хватало еще чтобы они торчали наружу. Вы задумали Понятно, хотите быстро работать с указателями, а не месить сами объекты (напр. при каждой сортировке). Но с какой стати такая конструкция выделяет/удаляет экземпляры A? Это было бы уместно для QHash<int,A>. но никак не для QHash<int,A*>. Поручите это QList<A>, он может быть напр. членом того же класса B. Так что говорили Вы или нет - все равно это плохо
|
|
|
|
|