Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.16;
Скачать: CL | DM;

Вниз

Еще задачки   Найти похожие ветки 

 
MBo ©   (2002-04-04 17:09) [0]

Раз пошла такая пьянка...

1) onTimer
Label1.Caption:=FormatDateTime("hh:nn",now);
сколько минут пройдет по таким часам, пока в первый раз не сойдутся стрелки стрелочных.

2) Найти число счастливых 6-значных билетов.


 
Виктор Щербаков ©   (2002-04-04 17:14) [1]

2) 55252


 
MBo ©   (2002-04-04 17:18) [2]

>Виктор Щербаков
У тебя рулончик с собой ;)
правильно, конечно. программно можно по-разному реализовать.


 
Виктор Щербаков ©   (2002-04-04 17:19) [3]

Самый тупой способ:

var a, b, c, d, e, f, Count: Integer;
begin
Count := 0;
for a := 0 to 9 do
for b := 0 to 9 do
for c := 0 to 9 do
for d := 0 to 9 do
for e := 0 to 9 do
for f := 0 to 9 do
if a + b + c = d + e + f then Inc(Count);


 
Виктор Щербаков ©   (2002-04-04 17:21) [4]

Но вот если количество цифр в номерах билета не известно до компиляции, то можно и с рекурсией сделать.


 
MBo ©   (2002-04-04 17:22) [5]

ясен пень ;)
можно вместо миллиона сотней операций обойтись


 
SPeller ©   (2002-04-04 17:38) [6]

>MBo © (04.04.02 17:09)
>cойдутся стрелки стрелочных


Начиная откуда ?


 
MBo ©   (2002-04-04 17:40) [7]

виноват
Дано - часы показывают N часов M минут.
сколько целых минут пройдет до момента совпадения часовой и минутной стрелок.


 
Anatoly Podgoretsky ©   (2002-04-04 17:43) [8]

не 65?


 
MBo ©   (2002-04-04 17:49) [9]

если они совпадают, то да, а в общем случае надо получить.


 
Alx2 ©   (2002-04-05 08:09) [10]

>MBo © (04.04.02 17:22)
Борис, видел про счастливые билеты решение, которое на бумажке подсчитать можно было. Сейчас не помню что там и где, но кажется интеграл по окружности в комплексной области от какой-то хитрой функции.


 
MBo ©   (2002-04-05 08:37) [11]

>Alx2
Неслабо...
Как говорил Чапаев "Мне квадратный трехчлен не то,что разложить,
представить страшно" ;)

вот решение (©Akina) с числом операций ~3000.
есть метод с ~80 операций

count:array[0..27] of integer;
for i:=0 to 27 do
count[i]:=0;
for i:=0 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
inc(count[i+j+k]);
amount:=0;
for i:=0 to 27 do
amount:=amount+sqr(count[i]);


 
Alx2 ©   (2002-04-05 08:52) [12]

>MBo © (05.04.02 08:37)
Вот еще:
Рассмотрим производящий полином: (1+x+x^2+x^3+x^4+x^5+x^6+x^7+x^8+x^9)^3
Если раскрыть скобки, то получим:
1+3*x+6*x^2+10*x^3+15*x^4+21*x^5+28*x^6+36*x^7+45*x^8+55*x^9+63*x^10+69*x^11+73*x^12+75*x^13+75*x^14+73*x^15+69*x^16+63*x^17+55*x^18+45*x^19+36*x^20+28*x^21+21*x^22+15*x^23+10*x^24+6*x^25+3*x^26+1*x^27. При соответствующей степени x стоит коэФфициент, показывающий количество троек цифр от 0..9, образующий заданную сумму.
Так, количество троек, образующих сумму 10 равно 63.
Возьмем счастливые билеты:
Сумма первых троек = сомме последних троек, следовательно, чтобы получить количество счастливых билетов, надо сложить квадраты коэффициентов. Если же учесть, что распределены симметрично, то получим сумму
кол-во сч. билетов = 2*(1^2+3^2+6^2+10^2+15^2+21^2+28^2+36^2+45^2+55^2+63^2+69^2+73^2+75^2) = 55252

В твоем варианте, кстати, количество итераций можно сократить еще вдвое.


 
Alx2 ©   (2002-04-05 08:54) [13]

Сорри, недописался полином:

1+3*x+6*x^2+10*x^3+15*x^4+21*x^5+28*x^6+36*x^7+45*x^8+55*x^9+
63*x^10+69*x^11+73*x^12+75*x^13+75*x^14+73*x^15+69*x^16+63*x^17+
55*x^18+45*x^19+36*x^20+28*x^21+21*x^22+15*x^23+10*x^24+6*x^25+
3*x^26+1*x^27


 
MBo ©   (2002-04-05 08:56) [14]

вот мой вариант
for n:=0 to 13 do begin
k:=(n+1)*(n+2);
if n>9 then
dec(k,3*(n-9)*(n-8));
S:=S+ Sqr(k);
end;
S:=S div 2;


 
Alx2 ©   (2002-04-05 08:59) [15]

>MBo © (05.04.02 08:56)
Класс! По количеству итераций тоже 14, прямо как
в 2*(1^2+3^2+6^2+10^2+15^2+21^2+28^2+36^2+45^2+55^2+
63^2+69^2+73^2+75^2) = 55252



 
MBo ©   (2002-04-05 09:10) [16]

А в качестве решения для ленивых студентов, как мне кажется, подходит метод Akin-ы, поскольку не совсем тупому там все ясно,
а свой я втолковывал, но вроде бесполезно, так и не сможет объяснить тот, кто задавал вопрос, если спросят.(это на ixbt было)


 
Alx2 ©   (2002-04-05 10:43) [17]

Количество счастливых билетов:
Интеграл при x=0..Pi от 1/Pi*(sin(10*x)/sin(x))^6
:)
Подсчитал сейчас - и действительно... офигительно :)


 
MBo ©   (2002-04-05 10:54) [18]

а почему????
или это случайно, из разряда Pi^E=E^Pi ?


 
Alx2 ©   (2002-04-05 11:20) [19]

>MBo © (05.04.02 10:54)
>а почему????
Х/з, что-то пересекающееся с производящими функциями (немного похоже на то, что выше писал)
>или это случайно, из разряда Pi^E=E^Pi ?
А оно то как раз и не равно :))

Это общая формула, кстати есть:
количество счастливых билетов в системе с основанием D и длиной числа 2*p есть интеграл по x=0..Pi от 1/Pi*(sin(D*x)/sin(x))^(2*p)



 
Alx2 ©   (2002-04-05 11:25) [20]

Линк: http://refal.net/~korlukov/scpj/happytickets/


 
MBo ©   (2002-04-05 13:27) [21]

Идея ясна. Про биномиальные коэффициенты я догадался, когда увидел, что строчка треугольника Паскаля получается для чисел до 10, но
связать с вычетами мне бы было не по силам. ТФКП почти не обучен... ;(


 
Alx2 ©   (2002-04-05 13:33) [22]

Я ТФКП тоже почти забыл. Надо в книжки лезть, чтобы вспомнить, что там вокруг полюсов происходит...


 
MBo ©   (2002-04-05 15:02) [23]

про стрелки
Z:=(N*60) div 11;
if M<=Z then
K:=Z-M
else
K:= ( (N+12)*60 ) div 11 - M;




Страницы: 1 вся ветка

Текущий архив: 2002.05.16;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.021 c
1-49962
heruvim4ik
2002-05-04 21:52
2002.05.16
Путь до моего приложения


14-50084
Black_Angel
2002-04-05 09:33
2002.05.16
Тут про вингейт говорили, а у меня вопрос по винроуту (v4.1)...


4-50169
cok
2002-03-07 20:49
2002.05.16
Потоки


6-50059
BlackLord
2002-03-02 16:41
2002.05.16
Подключение через Socket по WinApi помогите!!!!!


14-50110
VID
2002-03-27 19:45
2002.05.16
Голосование о ПИВЕ