2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 19:54 


10/08/21
30
wrest в сообщении #1528592 писал(а):
uzlprog в сообщении #1528588 писал(а):
Как сделать вывод конкретных делителей числа n?

Не знаю что значит конкретных, но вот, выводит все делители (возвращает массив со всеми делителями): divisors(n)

В функции которая у вас считала есть ли хотя бы один делитель, чтобы выводить все делители, надо, ессно, не останавливать цикл при нахождении первого, а продолжать до конца, если я вас правильно понял. return() немедленно останавливает выполнение функции, выходит из всех циклов и т.п.


Да, это я не правильно сделал. Не знаю как нужно... :cry:

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 20:05 


05/09/16
12098
uzlprog в сообщении #1528593 писал(а):
А если число гигантское и мне нужно по сути найти делители в промежутке от 1 до M. Но это М будет зависеть от времени работы скрипта. То есть я бы хотел видеть вывод текущего значения i. Это можно организовать как-то динамически?

Ну конечно, вставляете print() где вам надо - будет печатать.
DELIMOST_PRINT_PROGRESS(n,v)=my(result=0);print("Start checking ",#v," divisors");for(i=1,#v,print1("checking ",i," divisor ",v[i]," -- ");if(n % v[i] == 0, print("YES");result++,print("NO")));print(result, " divisors were discovered")
Запуск:

? DELIMOST_PRINT_PROGRESS(36,[2,5,7,3])
Start checking 4 divisors
checking 1 divisor 2 -- YES
checking 2 divisor 5 -- NO
checking 3 divisor 7 -- NO
checking 4 divisor 3 -- YES
2 divisors were discovered
?


-- 12.08.2021, 20:08 --

uzlprog в сообщении #1528598 писал(а):
Не знаю как нужно...
Ну тут вам решать, что и как вам нужно :)

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 20:09 


10/08/21
30
wrest в сообщении #1528604 писал(а):
uzlprog в сообщении #1528593 писал(а):
А если число гигантское и мне нужно по сути найти делители в промежутке от 1 до M. Но это М будет зависеть от времени работы скрипта. То есть я бы хотел видеть вывод текущего значения i. Это можно организовать как-то динамически?

Ну конечно, вставляете print() где вам надо - будет печатать.
DELIMOST_PRINT_PROGRESS(n,v)=my(result=0);print("Start checking ",#v," divisors");for(i=1,#v,print1("checking ",i," divisor ",v[i]," -- ");if(n % v[i] == 0, print("YES");result++,print("NO")));print(result " divisors were discovered")
Запуск:

? DELIMOST_PRINT_PROGRESS(36,[2,5,7,3])
Start checking 4 divisors
checking 1 divisor 2 -- YES
checking 2 divisor 5 -- NO
checking 3 divisor 7 -- NO
checking 4 divisor 3 -- YES
2 divisors were discovered
?


Запутался. В примере вывод на печать для конкретного v[i] , мне же нужно для всех i. То есть видеть сколько скрипт обработатет делителей за некоторое время.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 20:12 


05/09/16
12098
uzlprog в сообщении #1528605 писал(а):
В примере вывод на печать для конкретного v[i] , мне же нужно для всех i.

Ничего не понял. На вход подано делимое и массив из четырех кандидатов-делителей. Скрипт печатает в цикле какого по счету кандидата-делителя проверяет и значение этого кандидата, далее печатает результат проверки. В конце печатает сколько нашлось делителей. Это в точности то что вы просили:
uzlprog в сообщении #1528593 писал(а):
То есть я бы хотел видеть вывод текущего значения i.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 20:17 


10/08/21
30
Не так выразился: мы имеет конкретный массив, у меня его нет. Я проверяю делимость на все числа от 2 до M приемлемого по длине. ТО есть мне нужно впихнуть динамику в пример:

Delimost(n)={
for(i=2,floor(sqrt(n)),
if (n % i == 0, return(0))
);
return(1)
}

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 20:55 


05/09/16
12098
uzlprog в сообщении #1528607 писал(а):
ТО есть мне нужно впихнуть динамику в пример:

Delimost(n)={
for(i=2,floor(sqrt(n)),
if (n % i == 0, return(0))
);
return(1)
}

Так, но это до первого найденного:
Delimost(n)={
for(i=2,floor(sqrt(n)),
print1(i," ");if (n % i == 0, return(0))
);
print();return(1)
}

Работает так (даем простое на вход)
? Delimost(311)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
%1 = 1
?

Даем квадрат простого:
? Delimost(311*311)
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 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
%2 = 0
?

Но вообще вы как-то путано выражаетесь, надо б точнее. Можно вместо значений точки печатать...

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение12.08.2021, 21:05 


10/08/21
30
Завтра попробую разобраться. Сегодня уже устал и голова не варит...

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение13.08.2021, 23:56 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
uzlprog в сообщении #1528468 писал(а):
Основание степени: 2
Показатель степени: восьмизначное число.
Переходите на двоичную систему. Там результатом будет число из единицы и последующих нулей, количество которых равно показателю степени.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение15.08.2021, 10:26 


10/08/21
30
svv в сообщении #1528695 писал(а):
uzlprog в сообщении #1528468 писал(а):
Основание степени: 2
Показатель степени: восьмизначное число.
Переходите на двоичную систему. Там результатом будет число из единицы и последующих нулей, количество которых равно показателю степени.


Нужно будет попробовать. Это удобно)

Пользуясь случаем, позволите спросить:

Есть задача по генерации числовых массивов в 100 чисел. Числа будут вычисляется по разным простым формулам вида: 24x2-12 и т.п., где x целое число от 1 до 100.

Нужно получить запись для массива вида:

А1 = [a, b, c ...] для каждой формулы в отдельном файле .txt

Можно ли решить эту задачу средствами Pari\GP? То есть набросать скрипт gp для решения такой задачи.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение15.08.2021, 10:53 
Заслуженный участник
Аватара пользователя


23/07/08
10910
Crna Gora
К сожалению, я незнаком с PARI/GP.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение15.08.2021, 11:48 


10/08/21
30
Возможно ув. wrest подскажет. Мне эта платформа очень понравилась своей лаконичностью и простотой.

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение15.08.2021, 11:49 


27/08/16
10412

(Оффтоп)

uzlprog в сообщении #1528754 писал(а):
и простатой.
Чем?

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение15.08.2021, 12:06 


10/08/21
30
realeugene, :D исправил) Это авто исправление в браузере так сработало))

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение16.08.2021, 00:07 


05/09/16
12098
uzlprog в сообщении #1528749 писал(а):
Можно ли решить эту задачу средствами Pari\GP?

Можно, но надо как-то поконкретней.
Как я уже писал, print() и wtite() выводят одинаково, первая на экран вторая в файл.
uzlprog в сообщении #1528749 писал(а):
простым формулам вида: 24x2-12

На этом форуме принято формулы записывать TeX-ом, типа $24x^2-12$ и лучше вы сразу это делайте.
Я бы делал например так
print("A1=",vector(100,n,24*n^2-12))
Запустите. Устраивает? Тогда добавление этой записи в файл с именем A1.txt будет
write("A1.txt","A1=",vector(100,n,24*n^2-12))

 Профиль  
                  
 
 Re: Подскажите приложение для вычисления "длинной арифметики"?
Сообщение19.08.2021, 21:53 


10/08/21
30
wrest в сообщении #1528799 писал(а):
uzlprog в сообщении #1528749 писал(а):
Можно ли решить эту задачу средствами Pari\GP?

Можно, но надо как-то поконкретней.
Как я уже писал, print() и wtite() выводят одинаково, первая на экран вторая в файл.
uzlprog в сообщении #1528749 писал(а):
простым формулам вида: 24x2-12

На этом форуме принято формулы записывать TeX-ом, типа $24x^2-12$ и лучше вы сразу это делайте.
Я бы делал например так
print("A1=",vector(100,n,24*n^2-12))
Запустите. Устраивает? Тогда добавление этой записи в файл с именем A1.txt будет
write("A1.txt","A1=",vector(100,n,24*n^2-12))



Спасибо. Разобрался.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group