Здравствуйте, henson, Вы писали:
H>Если Вы говорите о битовых операциях, то я предположил, что речь о геноме, который по определенным правилом скрещивается с другим(и).
Да, я тоже это имел ввиду для одного гена. Только скрещивать думал с помощью битовых операций. Геном — это набор генов?
H>Перед этим каждый геном прогоняется на оценочной функции.
Лучше после, но это не важно.
H>Могут быть и более сложные модели. Но в любом случае геном — это либо 1/0, либо коэффициент (целый или вещественный). Какую модель Вы хотите заложить?
Вещественный.
H>Для вещественных коэффициент возможно нет смысла делать операции с битами, а лучше перейти к какой то функции, x(1)i+1=(x(1)i+x(2)i)/2 в конце концов
А какие это функции? Всмысле что они должны делать и как выглядеть? Мне как-то про это не попадалось. Может, ссылка есть на то, чтобы почитать?
) и структура типа
S> public struct DoubleOrUInt64 S> { S> [FieldOffset(0)] S> UInt64 IntValue;
S> [FieldOffset(0)] S> double DoubleValue;
S> }
S> В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
S> Правда жалко, что Extended забыли.
Круто. А при этом остальные части класса остаются управляемыми?
) и структура типа
S>> public struct DoubleOrUInt64 S>> { S>> [FieldOffset(0)] S>> UInt64 IntValue;
S>> [FieldOffset(0)] S>> double DoubleValue;
S>> }
S>> В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
S>> Правда жалко, что Extended забыли.
J>Круто. А при этом остальные части класса остаются управляемыми?
Посмотрите еще класс System.BitConverter с методом DoubleToInt64Bits и обратным, может пригодиться.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Jenyay, Вы писали:
S>>>Да и вариантные структуры никто не отменял (FieldOffset)
J>>Интересно. То есть этот аттрибут (FieldOffsetAttribute) делает так, что элемент класса начинается не по положенному ему месту а по указанному? S> Да. J>>Впринципе, мне это надо для скрещивания хромосом. Хотел просто чтобы у ребенка было бы часть бит (допустим первая) от 1-го родителя, а часть от 2-го. Нв С++ я бы сделал ассемблерными вставками. Может есть лучшее решение? Не хотелось бы использовать числа с фиксированной точкой. Есть еще идея отдельно скрещивать отдельно целые части (таким образом) как целые числа и дробные, умноженные перед этим на большое число (35000), чтобы тоже получилось целое число. Хотя таким образом до double не дотянуть, а до float можно. S> Насколько я помню double в Net 64 бита ( http://www.rsdn.ru/Forum/Message.aspx?mid=375145&only=1
) и структура типа
S> public struct DoubleOrUInt64 S> { S> [FieldOffset(0)] S> UInt64 IntValue;
S> [FieldOffset(0)] S> double DoubleValue;
S> }
S> В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
S> Правда жалко, что Extended забыли.
По-моему перед структурой надо указать
[StructLayout(LayoutKind.Explicit)]
чтоб была unmanaged memory
Здравствуйте, henson, Вы писали:
H>Посмотрите еще класс System.BitConverter с методом DoubleToInt64Bits и обратным, может пригодиться.
Похоже, то, что надо. Сколько же интересного в этот .NET напихали
Кстати, и на С++ с помощью union тоже можно будет скрещивать float как int побайтно без ассемблера. Я как-то и забыл про него (union).
) и структура типа
S>> public struct DoubleOrUInt64 S>> { S>> [FieldOffset(0)] S>> UInt64 IntValue;
S>> [FieldOffset(0)] S>> double DoubleValue;
S>> }
S>> В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
S>> Правда жалко, что Extended забыли.
H>По-моему перед структурой надо указать H>[StructLayout(LayoutKind.Explicit)] H>чтоб была unmanaged memory
Для структур это выравнивание по умолчанию.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
) и структура типа
S>> public struct DoubleOrUInt64 S>> { S>> [FieldOffset(0)] S>> UInt64 IntValue;
S>> [FieldOffset(0)] S>> double DoubleValue;
S>> }
S>> В Net можно работать можно применять побитовые операции и с Int64 (но мне больше нравится UInt64)
S>> Правда жалко, что Extended забыли.
J>Круто. А при этом остальные части класса остаются управляемыми?
Да. Небольшой пример из BynaryReader
Здравствуйте, henson, Вы писали:
H>Нормальная объектная модель + автоматический сбор мусора = экономия времени
GC это палка о двух концах. За надежность и упрощение кодирование нужно платить гибкостью (применение указателей ограничено и только в унсейы режиме причем не всегда можно получить выингрыш) и write barier.
GC хорош при небольшом количестве живых объектов, там где их много можно поиметь различные неприятности. Хотя M$ не дремлет и совершенствует ее.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
H>>Для вещественных коэффициент возможно нет смысла делать операции с битами, а лучше перейти к какой то функции, x(1)i+1=(x(1)i+x(2)i)/2 в конце концов
J>А какие это функции? Всмысле что они должны делать и как выглядеть? Мне как-то про это не попадалось. Может, ссылка есть на то, чтобы почитать?
J>Похоже, то, что надо. Сколько же интересного в этот .NET напихали J>Кстати, и на С++ с помощью union тоже можно будет скрещивать float как int побайтно без ассемблера. Я как-то и забыл про него (union).
Зачем так сложно??? Указатели в нативных языках вполне пригодны.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S> GC хорош при небольшом количестве живых объектов, там где их много можно поиметь различные неприятности. Хотя M$ не дремлет и совершенствует ее.
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, Serginio1, Вы писали:
S>> Зачем так сложно??? Указатели в нативных языках вполне пригодны.
J>Я сначала хотел преобразовывать через void*, но потом показалось, что через union будет покрасивее. Или я ошибаюсь?
Конечно покрасивее. Спору нет.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, Serginio1, Вы писали:
S>> GC хорош при небольшом количестве живых объектов, там где их много можно поиметь различные неприятности. Хотя M$ не дремлет и совершенствует ее.
J>А какие, например?
Здравствуйте, ilnar, Вы писали:
I>одну реализацию генетического алгоритма на С#, хорошую по предоставляемым параметрам управления, видел на www.codeproject.com — может взять, посмотреть. там есть много вариантов для различных задач. I>но конечно шарп не будет лучше си при том же алгоритме и схеме реализации.