|
|
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Всем привет! Если Вам задача не понятно, сильно не ругайте мне! Вот такая задача: Пользователь вводит значение N, например 55.294.967.295. Так как, компьютер могут принимать значения, например в Си unsigned long int, до 4.294.967.295, программа должна хранить значению в массиве, т.е так: Код: plaintext 1. И программа могла выполнять любую операцию 55.294.967.295 раз. Например печатать на экран слово "Hello world" 55.294.967.295 раз. Какая операция будет это не важна, важно только определение значения элементов массива как единый число. Можно на С/С++, Delphi, Pascal, PHP, Visual Basic, C#, JavaScript, Java. Это я не в коммерческих целях, просто хотел! Думаю, что задача Вам тоже интересно будет. Если не интересно прошу не писать всяких слов! Заранее всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2014, 23:57 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulov, Это называется Binary Coded Decimals Более эффективно преобразовать в двоичное представление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 00:13 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulov, задача в декременте/инкременте больших чисел? тогда это не сложно при двоичном кодировании цифр т.е. по принципу счетчиков в цифровой схемотехнике умножение/деление - это да задача ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 00:55 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
ILLHEADAlimkulov, задача в декременте/инкременте больших чисел? тогда это не сложно при двоичном кодировании цифр т.е. по принципу счетчиков в цифровой схемотехнике умножение/деление - это да задача ) Пусть будет возведение в степень! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 00:59 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
F#Alimkulov, Это называется Binary Coded Decimals Более эффективно преобразовать в двоичное представление. Можете написать пример? Мне кажется не получится! Например: N[0]=2; N[0]=5; это получается как 25. Соответствующие двоичных кодов: 2(10)=0010(2); 5(10)=0101; В этом случае нет общая формула, дающая результата: 25(10)=11001(2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 01:17 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovДумаю, что задача Вам тоже интересно будет. Такие задачи обычно дают старшеклассникам-младшекурсникам при обучении программированию. Так что именно стало для Вас проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 01:23 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
softwarer, Нам такие задание не давали! Не знаю кто виноват и не хочу винит кого то! Я начал заниматься программированием после ВУЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 01:53 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulov, в C# можно использовать decimal, а также BigIntiger. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 11:06 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Возьмите два числа типа unsigned long int. Когда первое дойдет до предела (4.294.967.295), увеличьте второе на 1, а первое обнулите. Когда первое опять дойдет до предела, опять второе увеличьте на 1, а второе обнулите, и т. д. Таким образом, двумя переменными вы сможете сделать счетчик от 0 до 18446744073709551616, с помощью N переменных счетчик сможет принимать значения от 0 до 4.294.967.296^N. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 13:20 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovНам такие задание не давали! Попробуйте хорошо разобраться, что такое позиционные системы счисления, как в них строится арифметика, немного попрактикуйтесь в счёте в различных системах счисления. После этого у Вас вряд ли останутся существенные вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 14:01 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulov, в языках низкого уровня типа Ассемблер можно любое число представить как суперпозицию объединений WORDS, или DWORDS как групп двоичных знаков. Складывать и вычитать их можно почленно. Старший битик переноса который возникает при сложении - никогда не теряется. Он всегда фиксируется в флагах процессора. И его можно учесть при сложении следующей группы. Таким образом мы получаем векторную машину которая складывает числа бесконечной (заданной нами разрядности). Если перейти на уровень команд MMX/XMM регистров то можно увеличить разрядность группы до 64-128 бит. Хотя смысл от этого не меняется. Мы так-же складываем группы битиков и учитываем переносы между группами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 17:36 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulovsoftwarer, Нам такие задание не давали! Не знаю кто виноват и не хочу винит кого то! Я начал заниматься программированием после ВУЗ. Никто тут виноватых не ищет. Просто же спросили "Так что именно стало для Вас проблемой?" что конкретно не получается? что непонятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:02 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovНапример: N[0]=2; N[0]=5; это получается как 25. почему не 52? На самом деле получается 5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 19:06 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovВсем привет! Если Вам задача не понятно, сильно не ругайте мне! Вот такая задача: Пользователь вводит значение N, например 55.294.967.295. Так как, компьютер могут принимать значения, например в Си unsigned long int, до 4.294.967.295, программа должна хранить значению в массиве, т.е так: Может использовать 64битные значения? типа int64? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 21:56 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Dima TAlimkulovНапример: N[0]=2; N[0]=5; это получается как 25. почему не 52? На самом деле получается 5 Потому что N[0]=2, N[1]=5. Это и 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 23:45 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
x1ca4064Может использовать 64битные значения? типа int64? Ест угроза, что может быть N > int64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 23:49 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovDima Tпропущено... почему не 52? На самом деле получается 5 Потому что N[0]=2, N[1]=5. Это и 25. Обычно принято давать меньший индекс младшему разряду, т.е. это 52, но пусть будет по твоему 25. По поводу твоей задачи: тебя в школе столбиком считать учили? Cчитай по этому алгоритму. Вот пример на Си для двухзначных чисел Код: sql 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. Можешь if-ов понаписать, а можешь универсально написать под любую ширину массива, только советую нумерацию элементов пересмотреть, тогда при N[0]=2, N[1]=5 можно так написать если добавишь N[2]=7 то станет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 17:08 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Dima TПо поводу твоей задачи: тебя в школе столбиком считать учили? Cчитай по этому алгоритму. Нет, не учили. Я не знал что существует такой алгоритм. Можете подробнее написать арифметических операциях. Не зная как умножит двух чисел, написал на Си вот такой пример (Но я не знаю столбиком считать): Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. quot Dima T спасибо за комментарии! Буду рад, если учите меня как осуществлять умножение по столбиком! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 19:50 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Alimkulov Буду рад, если учите меня как осуществлять умножение по столбиком! В гугле напиши " умножение столбиком " там и алгоритм, и примеры, даже видео есть по этому поводу. Вот например http://math-prosto.ru/?page=pages/action-in-column/multi-in-column.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 11:30 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Офигеть, в школах уже не учат умножению столбиком. Чему же там вообще учат? Программы пишут люди, которые умножать не умеют. Скоро программисты до десяти считать разучатся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 11:42 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AddxСкоро программисты до десяти считать разучатся :) Программисту достаточно уметь считать до двух :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 12:23 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AddxОфигеть, в школах уже не учат умножению столбиком. Умножение столбиком - это советская школа. Возможно в Узбекистане перешли на другую систему (точки/черточки, линии, еще какую). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2014, 08:08 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
Ребята, наверное, Вы меня не поняли! Между прочим, я хорошо разбираюс с математики! Я просто пошутил на это: Dima TПо поводу твоей задачи: тебя в школе столбиком считать учили? Cчитай по этому алгоритму. Вот пример на Си для двухзначных чисел Так: AlimkulovНет, не учили. Я не знал что существует такой алгоритм. Можете подробнее написать арифметических операциях. Не зная как умножит двух чисел, написал на Си вот такой пример (Но я не знаю столбиком считать): Неужели человек знает программированием, и не знает столбиком считать! Dima T, пречде чем, задавать такой вопрос, хорошо подумайте. Вы должны научиться аважать людей! Конеяно знаю столбиком считать! Dima T, я с Вами могу спорит по матиматике! Dima T, если Вы участникам форма всегда задаете дурной вапрос, тогда это форм не дла Вас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 12:30 |
|
||
|
Нестандартный алгоритм по массиву
|
|||
|---|---|---|---|
|
#18+
AlimkulovНеужели человек знает программированием, и не знает столбиком считать! Dima T, пречде чем, задавать такой вопрос, хорошо подумайте. Вы должны научиться аважать людей! Я смотрю тебе эта проблема полтора месяца спать не дает. Вопрос мой был риторический ( почитай если слово не понятно ), т.к. всех этому учат, а вот ответ твой всех повеселил. А то что это алгоритм и его можно использовать для решения твоей задачи - это я тебе серьезно написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 12:53 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38556598&tid=1341427]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 470ms |

| 0 / 0 |
