[아카이브] 순수수학, 물리학, 화학 등 : 거래와 무관한 두뇌 트레이닝 퍼즐 - 페이지 321

 
Mathemat >> :

옵션이 없습니다. 30자의 경우 열거를 효과적으로 제한해야 합니다.

재귀는 아마도 쓸모가 없을 것입니다(문자 수가 10개 이상인 경우).

그래, 난 동의. 나는 쓰기 시작했고 long 이 단순히 오버플로될 것이라는 것을 즉시 깨달았습니다.

// 그러나 30개(심지어 300개)의 숫자 수준에서는 특별한 문제의 스택이 예상되지 않습니다. 이제 메모리가 큽니다.

예, 재귀가 필요하지 않습니다. 더 간단할 수 있습니다. 이미 반복적(한 주기에서) 방법을 찾았지만 .. 제품의 비트 깊이는 여전히 충분하지 않습니다.

 
MetaDriver писал(а) >>

그래, 난 동의. 나는 쓰기 시작했고 long 이 단순히 오버플로될 것이라는 것을 즉시 깨달았습니다.

예, 재귀가 필요하지 않습니다. 더 간단할 수 있습니다. 이미 반복적(한 주기에서) 방법을 찾았지만 .. 제품의 비트 깊이는 여전히 충분하지 않습니다.


아무리 어리석게 들릴지라도 Long은 String으로 변경해야 합니다.

 
Richie >> :


아무리 어리석게 들릴지라도 Long은 String으로 변경해야 합니다.

예, 그것은 매우 어리석게 들리지 않습니다. 펜으로 곱셈과 덧셈을 다시 쓰면 됩니다.

이것은 무섭지 않지만 속도는 모래 속으로 들어갈 것이고 30비트 숫자의 경우 계산하는 데 최대 00000oo까지 걸릴 것입니다.

// µl5에서 True는 Vasik에서보다 여전히 10배 또는 2배 빠릅니다.

 
그리고 롱은? 거기에서 독점적으로 tsifirami 작업으로. 예, 이해합니다. 모든 것을 한 사이클에 붙이고 싶습니다. 따라서 30비트 숫자의 왼쪽에서 17번째 자리를 빠르게 추출해 보십시오.
각 숫자는 숫자의 배열 또는 문자열입니다. 숫자 늘리기 - 시뮬레이션할 핸들입니다.
예, 어쨌든 시간이 오래 걸리고 충돌기는 더 빨리 작동합니다. :)
 
결론 - 우리는 여전히 완전하지 않은 또 다른 알고리즘이 필요합니다. 또는 스마트 피커.
예를 들어, 일련의 숫자를 찾아야 한다는 것은 분명하지만 이러한 숫자가 연속적으로 배치되어 작업 자체에 대한 숫자를 형성할 수 있다는 사실은 전혀 중요하지 않습니다.
추가 - 숫자의 합이 소수인 경우 - 건너뜁니다.
등.
 
Mathemat >> :
А при чем тут лонг? Тут же исключительно с цифирями работа. Ну да, понимаю, хоцца все в один цикл всунуть. Дык попробуй-ка 17-ю цифру слева у 30-разрядного числа быстро извлечь.

평균 30개의 숫자의 곱이 5 == 5^30이라는 사실에도 불구하고 긴

// ~ == 9.31323E+20 (그리고 long은 최대 소수점 15자리까지 들어갈 수 있음)

;)

 
MetaDriver >> :
Вожусь немножко с №226.
Вьехал, что точки лежат не только на окружностях с центром в точке == центру многоугольника,
но и на наборе окружностей "половинного" диаметра прижатых к краям 1976-угольника.
Это легко понять, если представить себе место середин точек всех хорд пересекающих окружность одним из своих концов в фиксированной точке.
Возможно на этих окружностях лежат ещё какие-то "полуточки". (с) Т.е. ответ будет возможно больше чем очевидный минимум (1976).
Думаю дальше.
// Кстати, 1976 == 2*2*2*13*19
// Не знаю поможет ли это делу. Но во внимание принимаю. :)

 답은 1976년을 넘을 수 없다고 생각합니다.
그러나 증명은 약간 까다롭습니다.

 
디오판틴 방정식에 관한 Cohen의 책에서 한 가지 사실:

30을 세 입방체의 합으로 나타내는 이 표현은 최근까지 알려지지 않았습니다(이것은 숫자 30에 대해 발견된 첫 번째 솔루션입니다. 30x3 입방체의 표현 가능성은 오랫동안 가설이었습니다). 물론 컴퓨터에서 찾았습니다. 숫자(이미 정육면체)의 순서는 약 30자리입니다.
이것이 무딘 검색으로 수행되었을 가능성은 거의 없습니다.
 
Richie >> :

다음은 프로그램 자체입니다.
-
'발표
딤 M As Long
딤 N As Long
Dim Koeficient As Long

프라이빗 서브 커맨드1_Click()
흐릿한 최대 수만큼
Dim MinChislo As Long
Dim i As Long
DimstrokAsString
'초기 데이터 설정
최소 숫자 = 1
최대 수 = 100000
계수 = 128
i = MinNumber에서 MaxNumber까지
스트로크 = LTrim(RTrim(Str(i)))
ProizCifr(스트로크) / SumCifr(스트로크) = 계수인 경우
프린트스트로크
또 다른
'"똥을 찾을 수 없음" 인쇄
종료
다음 나는
엔드 서브

'합계를 계산하다
개인 함수 SumCifr(문자열로 Stroca) As Long
Dim i As Long
딤섬 As Long
Dim Cifra As Long
i = 1 에 대해 Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
Summa = Summa + Cifra
다음 나는
SumCifr = 합계
종료 기능

'제품의 계산
Private 함수 ProizCifr(Stroca As String) As Long
Dim i As Long
Dim Proiz As Long
Dim Cifra As Long
수익 = 1
i = 1 에 대해 Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
프로이즈 = 프로이즈 * 시프라
다음 나는
ProizCifr = 프로이즈
종료 기능

고샤..
펄에서 알고리즘은 다음과 같습니다.


for(111..999){
  split(//,$_);
  my($sum,$mul)=(0,1);
  for(@_){$sum+=$_;$mul*=$_;}
  print("$_\n") if($sum*12==$mul);
}

 
admin >> :

고샤..
펄에서 알고리즘은 다음과 같습니다.

.....


네, 그는 그저 프로그래머일 뿐입니다.

Vasik에서 4-5줄에 들어갈 수 있습니다.

:)