![]()  | 
	
 | 
	
| 
			
			 | 
		#1012 | 
| 
            
			 Junior Member 
			
			
			
				
			
			Регистрация: 13.06.2010 
				
				
				
					Сообщений: 18
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 | 
| 
        
        
             --------- 
            ...отцвели голубые, 
            все цветы полевые...  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1013 | 
| 
            
			 Silver Member 
			
			
			
			Регистрация: 07.02.2013 
				
				
				
					Сообщений: 718
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1014 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Удалось написать и отладить весьма быстрый алгоритм извлечения целочисленного  
		
		
		
		
		
		
		
			корня N-й степени из целого числа произвольной разрядности. В основе старый доб- рый метод Ньютона, однако его сходимость напрямую зависит от начального прибли- жения, и при неудачном выборе - миллиарды итераций, и крайне медленно сходится. Выкладываю дзен-решение, формирующее начальное приближение, за счет которого метод Ньютона сходится всего за 2-15 итераций, и, например, корень 50000 степени из 1000000-разрядного целого числа, вычисляется за 6 итераций, по времени 0,1 сек. P.S. FirstNonZeroBit - номер старшего ненулевого бита числа в двоичном представлении, по сути - очень быстрый способ вычисления целочисленного логарифма по основанию 2. Код: 
	restart:
with(Bits): 
IntRoot:= proc(x,n) local a,b,q,u,v,f,it:
  if (n = 1) then
    it:= 0:
    return(x,it):
  end if:
  if ((x = 0) and (n > 1)) then
    it:= 0:
    return(0,it):
  end if:
  if ((x >= 1) and (n > 1)) then
    q:= FirstNonzeroBit(x):
    u:= trunc(q/n):
    v:= frac(q/n):
    f:= ceil(n*(2^v)):
    a:= iquo((2^u)*f,n):
    b:= iquo(x,a^(n-1)): 
    if (a < b) then
      u:= trunc((q+1)/n):
      v:= frac((q+1)/n):
      f:= ceil(n*(2^v)):
      a:= iquo((2^u)*f,n):
      b:= iquo(x,a^(n-1)): 
    end if:
    it:= 1:
    while (a > b) do
      a:= iquo((n-1)*a+b,n):
      b:= iquo(x,a^(n-1)):
      it:= it + 1:
    end do:  
    return(a,it):
  end if:
end proc:
x:= 7*10^1000000:
n:= 50000:
IntRoot(x,n);
a = 100003891896030419242, it = 6
n, q, u, f: Int64 v: Extended Последний раз редактировалось Paul Kellerman; 15.11.2014 в 20:29.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1015 | 
| 
            
			 Gold Member 
			
			
			
				
			
			Регистрация: 04.05.2007 
				Адрес: Северное Реутово 
				
				
					Сообщений: 2,476
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Что же, друзья. Прошел отдых в Египте, за время которого я неплохо отдохнул, подзагорел и накупался. Плюс съездил в Израиль, побывал в Палестине. Прошелся по намоленным местам. Считаю, отлично развеялся, пора и на работу завтра  
		
		
		
		
		
		
	 
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1016 | 
| 
            
			 Silver Member 
			
			
			
			Регистрация: 07.02.2013 
				
				
				
					Сообщений: 718
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1017 | 
| 
            
			 Junior Member 
			
			
			
				
			
			Регистрация: 13.06.2010 
				
				
				
					Сообщений: 18
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Воду дали...я умер от счастья
		 
		
		
		
		
		
		
	 | 
| 
        
        
             --------- 
            ...отцвели голубые, 
            все цветы полевые...  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1018 | 
| 
            
			 Silver Member 
			
			
			
			Регистрация: 07.02.2013 
				
				
				
					Сообщений: 718
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1019 | 
| 
            
			 Gold Member 
			
			
			
				
			
			Регистрация: 04.05.2007 
				Адрес: Северное Реутово 
				
				
					Сообщений: 2,476
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Dr SG, кстати, впервые тесно общался там с англичанами, на мой американизированный акцент они морщились, но альтернатив не было, терпели. 
		
		
		
		
		
		
	Хотя на мое "Вээ дид ю гет зет глэс" было получено презрительное "Глааас из он зе тейбл" ![]() Пробовал выводить их заоблачные трели, но мое горло видимо не может это повторить   Пою мимо нот все время, никак не попаду. Вот вы как разговаривате? С этим "английским говором" или просто? Если как они, то как научились?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#1020 | 
| 
            
			 Platinum Member 
			
			
			
				
			
			Регистрация: 14.09.2012 
				Адрес: там, где ходят поезда и летают самолеты 
				
				
					Сообщений: 4,018
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Все наши радости просто ничто на фоне таких вещей: когда люди радуются, что им, наконец, дали воду, электричество. Дай нам всем пореже оказываться в таких ситуациях, когда такие простые вещи вызывают радость. Я тоже очень и очень надеюсь, что больше перебоев не будет.
		 
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |