|
|
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74Это не предоставление готовых перестановок? Ну так добавте это (создание зеркального массива) в ваш код и оцените время работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 11:50 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs А зачем создавать зеркальный массив? Мы же не храним все варианты перестановок. Обычно в таких задачах целью ставится вывести все варианты на экран или в файл. Эта цель достигается, что еще надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 11:56 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74 NotGonnaGetUs А зачем создавать зеркальный массив? Мы же не храним все варианты перестановок. Обычно в таких задачах целью ставится вывести все варианты на экран или в файл. Эта цель достигается, что еще надо? Для того, чтобы вариант вывести на экран или в файл, его нужно сформировать. В каком месте предложенного кода формируются "зеркальные" перестановки? Ни в каком. А на это требуется время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 14:09 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsДля того, чтобы вариант вывести на экран или в файл, его нужно сформировать. В каком месте предложенного кода формируются "зеркальные" перестановки? Ни в каком. А на это требуется время. Вы что, издеваетесь? Вариант перестановки уже в массиве. Еще раз Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 14:16 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74 Вы что, издеваетесь? Вариант перестановки уже в массиве. Еще раз Ещё раз, ок, хотя это становится уже глупо. В массиве b появляется только половина возможных перестановок. Вы предалагаете остальные получать при печати (на экран/в файл), но т.к. этого не происходит (печати), то алгоритм спокойно перебирает только половину вариантов. Если вставить код печати, то кроме времени на саму распечатку, добавится время на переворачивания массива, чтобы его подготовить к печати. Вы это время игнорируете, что не правильно. Рассуждая способом аналогичным вашему, я мог бы предложить решение перебирающее числа от 1 до 13!, и добавить процедуру печати, которая получая номер перестановки формирует саму перестановку и затем выводит её. Это был бы самый быстрый алгоритм перебора перестановок :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 15:12 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsЕсли вставить код печати, то кроме времени на саму распечатку, добавится время на переворачивания массива, чтобы его подготовить к печати. Вы это время игнорируете, что не правильно. Значит, если есть задание вывести элементы массива на экран, начиная с конца массива, то Вы сначала перевернете массив, затем выведете его на экран, начиная с 1 элемента. Я правильно понял? NotGonnaGetUs Рассуждая способом аналогичным вашему, я мог бы предложить решение перебирающее числа от 1 до 13!, и добавить процедуру печати, которая получая номер перестановки формирует саму перестановку и затем выводит её. Это был бы самый быстрый алгоритм перебора перестановок :) Было бы интересно увидеть алгоритм получения перестановки из ее номера, например, в лексикографическом порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2007, 15:27 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
maXmoАлексей К, не, то, что с# тестили с баундчеком – это совершенно правильно (в джаве это вроде не отключается?..), но изврата ради конечно можешь написать в ансейфе, скомпилить, выложить, ты тут самый большой любитель этого дела :)И после этого вы щитаете меня извращенцем. :-)) Просто подумалось, раз уж извратились на делфи, почему-бы не извратиться на С#. :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2007, 13:22 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Алексей КИ после этого вы щитаете меня извращенцем. :-)) Хотя и не мне... Я ж просил сильно не пинать :) Изврат специально для данного теста, ни в одной своей проге не использовал goto. Хотя он до сих пор в спецификации Delphi :) С другой стороны, никто не пинает asm за его jmp и условные переходы :) И asm\'овые вставки на Delphi будут активно использовать jmp, jne и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2007, 14:37 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Попробую описать подробнее. Допустим, что стоит задача вывести на экран все возможные перестановки. Тогда я в свой код после каждой строчки Код: plaintext Код: plaintext 1. Сама процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Соответственно, вместо вывода на экран можно производить любые действия с элементами массива. Если не нравится два цикла, то можно проверкой p2 задать начальный индекс(1 или razmer), конечный (razmer или 1) индекс и шаг (+1 или -1), а затем сделать один цикл while. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2007, 15:13 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74 NotGonnaGetUs Попробую описать подробнее. Не переживайте, я прекрасно понимаю о чём вы пишете. Yuric74 Было бы интересно увидеть алгоритм получения перестановки из ее номера, например, в лексикографическом порядке. Пусть к-номер перестановки, a[0..N-1] - набор уникальных значений. Найдём i[0...N-1] из формулы: к = (N-1)!*i(0) + (N-2)!*i(1) + ... + 1!*i(N-2) + 0*i(N-1), где 0 <= i(p) <= N - 1 - p; По a и i можно построить к-ую перестановку. Пример: a = [1 2 3 4]; k = 4; 4 = 6*0 + 2*2 + 1*0 + 0*0; i = [0 2 0 0]; b[0] = a[0] ; // = 1; a.remove[0]; // a = [2 3 4]; b[1] = a[2]; // = 4; a.remove[2]; // a = [2 3]; b[2] = a[0]; //= 2; a.remove[0]; // a = [3]; b[3] = a[0]; // = 3; a.remove[0]; // a = []; b = [1 4 2 3]; Проверяем: 1 2 3 4 , k = 0 1 2 4 3 , k = 1 1 3 2 4 , k = 2 1 3 4 2 , k = 3 1 4 2 3 , k = 4 - ok. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2007, 11:40 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Да я и не переживаю. Вечером дома попробую ваш алгоритм на практике. Можно узнать источник алгоритма? Кстати, я немного лажанулся :) Вторая половина перестановок не будет зеркальной по отношению к первой половине. Поэтому придется считать все перестановки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 09:02 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Алексей КИ после этого вы щитаете меня извращенцем. :-))ну вариант с репитом тоже сильно смахивает на извращение :) Алексей КПросто подумалось, раз уж извратились на делфи, почему-бы не извратиться на С#. :-))ну я и сказал: сделай :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 12:01 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Yuric74 NotGonnaGetUs Можно узнать источник алгоритма? Я его в девятом или десятом классе придумал. Уже не помню в связи с чем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 13:18 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
maXmo Алексей КПросто подумалось, раз уж извратились на делфи, почему-бы не извратиться на С#. :-))ну я и сказал: сделай :)Да я давно уже сделал. Там только одну строчку в исходниках надо поменять. :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 08:49 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Ну, что пофлеймим дальше? :) Предлагаю обсудить известный тест SciMark2a http://math.nist.gov/scimark2/ Разница почти в два раза по Composite Score между Java и С# впечатляет. Тестировалось на WinXPSP2 (P4 2.4 GHz) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2007, 15:20 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
(задумчиво) Мдя... впечатляет. Возму-ка я сорсы. Посмотрю. Наверное есть какая-то недооптимизация со стороны C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2007, 17:12 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Добавил тесты для VC++ и Intel C++ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2007, 16:21 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
На Core 2 Duo разница уменьшается, но все равно составляет 34% Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 10:44 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Код C, переделаем на C++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 11:18 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Ладно, уже начал, выложу как буит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 11:21 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
mrbusКод C, переделаем на C++? А смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:44 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Master Alex А смысл? А сравним C и C++ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:09 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
Вот на C++ с использованием auto_ptr, vector. Безопаснее :), но медленнее :( вдвое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 04:28 |
|
||
|
Бенчмарки C#, C++, Java, Delphi
|
|||
|---|---|---|---|
|
#18+
А теперь пару махинаций, и получаем вот что (!!!) ---- С++ --- ** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark ** ** for details. (Results can be submitted to pozo@nist.gov) ** ** ** Using 2.00 seconds min time per kenel. FFT stopwatch 3.328000 flops 53230.000000 cycles 16384 FFT stopwatch 0.000003 flops 872120320.000000 cycles 262.055385 Composite Score: 2364.79 FFT Mflops: 262.06 (N=1024) SOR Mflops: 346.45 (100 x 100) MonteCarlo: Mflops: 89.96 Sparse matmult Mflops: 693.14 (N=1000, nz=5000) LU Mflops: 10432.35 (M=100, N=100) ---- C ---- ** SciMark2 Numeric Benchmark, see http://math.nist.gov/scimark ** ** for details. (Results can be submitted to pozo@nist.gov) ** ** ** Using 2.00 seconds min time per kenel. FFT stopwatch 3.062000 flops 53230.000000 cycles 16384 FFT stopwatch 0.000003 flops 872120320.000000 cycles 284.820483 Composite Score: 497.09 FFT Mflops: 284.82 (N=1024) SOR Mflops: 513.85 (100 x 100) MonteCarlo: Mflops: 68.44 Sparse matmult Mflops: 630.76 (N=1000, nz=5000) LU Mflops: 987.58 (M=100, N=100) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 07:03 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34592304&tid=1342778]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 266ms |
| total: | 525ms |

| 0 / 0 |
