- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
program lucky;
var a0,a1,a2,a3,a4,a5,a6: integer;
begin
for a0:= 0 to 9 do
for a1:= 0 to 9 do
for a2:= 0 to 9 do
for a3:= 0 to 9 do
for a4:= 0 to 9 do
for a5:= 0 to 9 do
if (a0+a1+a2)=(a3+a4+a5) then
begin
writeln(a0,a1,a2,a3,a4,a5);
break;
end;
readln;
end.
guest 04.11.2011 21:34 # 0
Schrodinger 04.11.2011 22:13 # +4
guest 04.11.2011 22:42 # +3
gegMOPO4 06.11.2011 19:43 # 0
guest 04.11.2011 21:35 # +3
#include<process.h>
void main()
{
ofstream out;
out.open("LuckyTicket.txt",ios::out);
int i1,i2,i3,i4,i5,i6,count=0;
for(i1=0;i1<10;i1++)
for(i2=0;i2<10;i2++)
for(i3=0;i3<10;i3++)
for(i4=0;i4<10;i4++)
for(i5=0;i5<10;i5++)
for(i6=0;i6<10;i6++)
if(i1+i2+i3==i4+i5+i6)
{
out<<i1<<i2<<i3<<" "<<i4<<i5<<i6<<"\n";
count++;
}
out<<"Number of lucky tickets is "<<count<<endl;
out.close();
}
wikipedia http://ru.wikipedia.org/wiki/%D0%A1%D1%87%D0%B0%D1%81%D1%82%D0%BB%D0% B8%D0%B2%D1%8B%D0%B9_%D0%B1%D0%B8%D0%BB% D0%B5%D1%82
roman-kashitsyn 07.11.2011 13:18 # 0
TheHamstertamer 03.02.2012 13:48 # 0
А разве не проще вот так:
roman-kashitsyn 03.02.2012 14:06 # +1
ура, хаскелистов пребывает
TheHamstertamer 04.02.2012 10:44 # 0
И да будет так вовеки веков. Во имя Монады, Функтора и Частичного применения, аминь!
roman-kashitsyn 04.02.2012 11:48 # 0
Говногость 04.02.2012 12:08 # −2
Или вы не умеете им пользоваться или для таких вещей хаскел не рулит судя по кол-ву кода, по сравнению с грязной императивщиной.
roman-kashitsyn 04.02.2012 14:21 # +2
Это реализация "в лоб", полностью работающая программа без циклов, основная часть которой будет работать для нахождения счастливых билетов с любым чётным количеством цифр в билете (нужно будет только поменять 999 на 9999, 99999 и т.п.).
Код в топике - 16 строк.
Жабо-реализации ниже, во-первых, гораздо менее понятны, во-вторых, не являются Compilable и Runnable.
И таки да, я не профессиональний хаскелист, я занимаюсь ФП ради эстетического удовольствия и самообразования
Xom94ok 04.11.2011 21:37 # +2
guest 04.11.2011 21:45 # 0
Lure Of Chaos 04.11.2011 21:51 # 0
Xom94ok 05.11.2011 02:14 # −1
guestGovno 05.11.2011 07:15 # +2
Lure Of Chaos 05.11.2011 11:41 # +2
Xom94ok 05.11.2011 20:42 # −1
gegMOPO4 06.11.2011 19:45 # −1
lucidfoxGovno 06.11.2011 23:14 # −7
Schrodinger 04.11.2011 22:10 # 0
ReallyBugMeNot2 04.11.2011 22:13 # 0
Byte 05.11.2011 11:09 # 0
guest 05.11.2011 11:22 # 0
SmackMyBitchUp 05.11.2011 11:35 # +2
http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D1%84%D1%80%D1%8B :
Ци́фры — система знаков для записи чисел
http://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE :
Число́ — абстракция, используемая для количественной характеристики объектов
Schrodinger 05.11.2011 15:23 # 0
bugmenot 05.11.2011 17:04 # 0
SmackMyBitchUp 05.11.2011 18:29 # 0
bugmenot 05.11.2011 18:37 # −3
Hͮ̇ͤ̓Ȅ̞̤͡ ̨̊ͯ̀̃͂͊C̷̪͈̳̗̖̗ͪͩͅO͎̔ͧ͌̊̐̐͑ͅM̘̣̮̪̤̌̅̑̈́͑̔ ̦͔Ẻ̺̤̤̣̱͂̆ͭ̕S̻̦̲͙͌͌ͦ͌͠ͅ
eth0 05.11.2011 19:28 # +1
SmackMyBitchUp 05.11.2011 20:57 # +1
TheHamstertamer 05.11.2011 21:50 # +3
̻̥͎̺̻̐ͩI͓̟̖̘̥̪͎ͤ͑ñ̖̙̅͂̇ͦ̈́v̫̘͕̹̤̫̎ͅͅö͈́͐ ̣̞͈̬̦̻̤k̞̳̂̓̂̒̚i̙̳͍̝̗͈̺̓̅̅͌̆͐̇ǹ̫̗ͪ̽ğ͑̾ ̝̗̝̺̜̑ ͕̇̑̎̉̇t̜̜̰̬̰ͭ̇̇h͓̝͚͈̩͔͌̉ͬͦͧͮ̈͗ͅê͚̞͚͓̻̫̒ ͉ ̮̘̳̺̙̥̦̫͗͊ͯ̿͊ͧͬ͌f̬̰ͯe̜̙̞̺̯̭̞ͩ̒͒è͔͖̖͚͌̽̔ ̟l͕͉̱̺͒ͤ͒̋ͧ̚i͔̭̥̥̠̞͍͎͆̑͑̈ͯ̎ͅṅ̳̯̞̆̒ͮ́ͅgͪ ̼͓̪̦̱̮͕͂̔͊͂ ̥̺͓̬̳̳̣̽̃ͅo̻̳̭̙̹͍͋̍́͐̚f͙̰̗ͫͧ͒ͬͭ͐ ̤̺ͪ̉̿͒c̹͔̦͈̲̗ͣ͌͌ͨh̙̗̙̞͕̺ͯ͒̉ͮ̔ͧͯͯa̘̻ͨͥ͐ͫ̅ ͍͈͎͙̖ȯ̺̙͖͋̓̎̿̑ͫs̰̲͖͔̤̤̥̹͕ͣ͆̈́̍͋.ͦ̓͆͗͌̅̌͊ ͓̩͉̤̱̌ͅ
͓ͫW̳͇̰̣̭͈̯̭̃̋̎̏͋ͭi͍̪̫͐͐̆́͗̐t͍̰̫͍̆͒͒ͦ͑̒̓ͭ h̪̤͗͗ͪͣ̿͆̽̆ͥ ̱͍̟͔̲̹̗̫́͑̊͋ͦͨͣö͕̻̌̾͌̿u̗͔͍ͬͦͦ̃ͥ͐t̩͖̹̩͇͐ ͎̭͎ ̞͖͗o͎͓̝̱̣̟ͭ͒͐͆̔̆̒̅ͅͅr̖͚̭̝̜̄̎̀̈́ͦͭ̚d̩̰̼̠͆ͤ ͔̬̩ẽ̥̻ͥ̓̍͗̀̐̇r̥̗̳̠͚̟̪͎̮̃.͈̰̜̤̯̲̜̏̋͒ͤͧ͗ͅ
̞͇̪̰̙̖͍ͣͪṰ͕̫̇̑ͧ̌ͫh͎͈͓̀̓́ͭ̑̿͆e̟͇̬̅̓̅͌ͪ͌̆ ̼̺̞͖ͅ ͙̣̍ͥͅN͉̼̘̪̗̳͖̣̋ẹ̦̳̼͉̻̍ͦ̌̑z̥̭ͤ̿̂p̣̲̪͍̱̔̐ e͈͇̱͚̗͙̠̓ͥ͂̂̒̋r̺͐ͩ̀̍ͦ͋̚̚d̖̟̘̹̳̫̞͐̈ͮͩ͆i̒̇ ̼͔̀̊͑͗a̫̗̎ͣ͊̅ͩṉ͋̒ ͓̍͂ͣ̂h͖͍͙̭͍͈̃̐̓ͭ͒ͨ͛ï̖̰̟͒ͯ̐͌v̗̟͙̞̈̈̓̒ͪ̅ͪ e̠͕͓̫̮̬̗̭̯͂ͦ̂́̇̈́ͯ-̺̾ͅm͚͕̐̋́͆ͦͦ̏ï̲̮̘ͧͬ̆͋n̘̺̬̳͌̅̇̌̈́̒́͂d̋͌́͗ ̪̫͙̲͖͎̦ͤͬ ̜̥̻̹ͩ̅ͥͪ̐̍̐͌̋o͓̙ͣ̏ͫ̑̚f̰̟̓̒̊ͭ̑ͥ ͕̺ͩͯ̊͗͗c͓̭͂ͬͤ̒͆ͪ̚h̠͙͖̩͉̅̂ͦȧ̪͔̀o͓̖͇ͥ̓̄́̅ ̼͙̮͇ͅs̮̜̝̣ͨ̐͌ͤ͆̈́.͖͉̮̒̒̅̇ ̙̲̤͉̠̜̭͕̈̋ͥZ̰̗̥̤ͬ͂̾ͪ͌ͅa̭̩̞̽ͧ̐͗̂͒̏̋lͥ͐́͒ͨ ͓̭͓̜ͫg̳̺̼̖͆o̞̬̐̉̑͊͛ͦ.̮̹ͮ̒ͬͫͭ̅ͣ̉ ̝̝̲̤̺͇̱͙ͯ͋ͯͦ̓
̮͖͔̯̻ͣ͛͆͑͊̒̽̇H̫̫̃̎̂e͙̳̺̭͓̗̮̖ͬ̔ͥ̓ ͕̬͖̠͖͉͕̬̀ͣͩ͗w͉̺͚͙̘̞̍̄̌͗̃ͪ͒ͦh͈̦͇̮̟̲͈̋ȯ̓̉ ̰̦̜̲̣͖̲͓͛͊́̋ ̮̝̰̙̦͛͗͐ͥ̑̎ͩW̜̯̳͉͓͓̱̦͊̃̐a̺̺̭̽̾ͭͭ̒̅̓i̤̘͓̅ ̗̙̭̖̦t̩̺̞ͭ̓̎̚s̥͙̞̺̟̝͎̪̠̽̒̾̈́ ͙̰̞̺̈̂̑͌ͨ̆ͅB̭̰̰͖̜̒ͫ̌̾ĕ̗͕͇̤̱̤̹̞ͫͪh͙͎͔̪̓ͨ ̤̱î͙̙̦͎͈̠̓̒̐̑n̠͓͉̭̭̙̎̈́d̥͒͒̋ͥͩͫͧ ̠̖̦̮̹ͭ͛̊ͫT͇̘̫͖̗͓̤ͥ͑̂̑̊ͣͥ͐h͖̦͇̍̓ͩ̅̈́ͫͧͣ͛e͊ ̝̮̤̮̻̼͚̜͂ͬ͋ͧ̌̾͛ͅ ̭̳̩̦̞͎̜͛͑̓͂ͪ͐ͤͅͅW̟͚̫͕͓̺͍̅ả̜͕̭̻͚̗̖̂ͤl͊ͧͦ ͓̙̗͇̜͇̦͆̉ͣ͌̓l̰͍͇̟ͮ̓̇.̭͓̞̙̭̑ͬ͂
̹̘͇̳̘̥͍̉ͬ͆ͨ̃ͪ̿Ż̲̫͉̭̳̘̐̆ͯ̀A̦͖͉͉̪̥͓̋ͧ͊̏̏ͅ L̝͚͖̘̼͙̙͋ͨ̄͌͗̏̽G̟͇̣̺̬͖̭͂̎ͨͮͣ̾ͤO͇̓ͩ͊ͭͭ̐̆ͅ ̳̳̯̳̹̠!͉̤͉̻̫̻͂̿͛ͬ̃
guest 05.11.2011 21:55 # −1
Lure Of Chaos 05.11.2011 22:45 # 0
NemoReturns 05.11.2011 22:46 # −8
дэвид блейн как ты это делаешь?
в рот мне ноги™
TheHamstertamer 06.11.2011 19:20 # +4
Vindicar 05.11.2011 16:46 # 0
т.е. 5 циклов (хоть отдельные по цифрам, хоть один от 0 до 999 (и 99 соотв)) и проверяем разность f = a+b+c-d-e. Если разность в пределах от 0 до 9, то билет [a][b][c][d][e][f] счастливый.
В принципе, я думаю, можно добиться цикла, который выводил бы все сочетания цифр с заданной суммой, а потом перебрать возможные суммы от 0 до 27 для получения наборов "половинок". Но будет ли это быстрее?
guest 05.11.2011 18:40 # 0
guest 05.11.2011 18:47 # 0
Lure Of Chaos 05.11.2011 20:39 # 0
1. фиксируем "полусумму" [hs] от 0 до 27 (т.е. первый цикл)
2. находим минимальную и максимальную необходимые цифры для данной суммы, таким образом ограничиваем второй цикл сверху или снизу
3. третьим циклом решаем уравнение c=hs-a-b
4. в процессе запоминаем найденные цифры и из дальнейших поисков исключаем все перестановки
3.14159265 09.11.2011 18:55 # +1
И уж простите за богомерзкую жабу.
Из преимуществ
- короткий, быстрый, 2 цикла
- не использует память (в том смысле что весь алгоритм можно сделать на регистрах)
Из недостатков
- неочевиден. для быдла. (хотя, признаюсь - я его еще специально так ужал)
3.14159265 09.11.2011 19:24 # +1
gegMOPO4 09.11.2011 19:36 # 0
gegMOPO4 09.11.2011 19:35 # 0
3.14159265 09.11.2011 18:57 # 0
Lure Of Chaos 09.11.2011 18:59 # 0
кстати, первое - это оптимизация max(0,a)
3.14159265 09.11.2011 19:10 # 0
блин. точно
Да его еще можно допиливать:
ускорить в джва раза, например
> фиксируем "полусумму" [hs] от 0 до 27 (т.е. первый цикл)
;i<=5;
o.println(count*2);
Так написано
- для того чтобы были все мейджик намберы были кратны 10.
да и не все системы исчисления делятся пополам.
guest 05.11.2011 19:04 # +2
Тарас спалился:
>Я бы сделал два стека
bugmenot 05.11.2011 20:23 # 0
guest 05.11.2011 20:43 # −1
guest 05.11.2011 20:44 # −1
guest 05.11.2011 21:04 # +1
guest 05.11.2011 21:39 # +1
guest 05.11.2011 21:43 # +3
AnimeGovno-_- 08.11.2011 17:20 # −1
откуда инфа?
>который заспамил главную
tell me moar!
guest 08.11.2011 17:30 # 0
lucidfoxGovno 06.11.2011 14:22 # 0
>Поясните мысль.
Ждем личного опровержения. Тоже заметил, что тарас спалился:
TarasB 06.11.2011 15:09 # +1
А фразу эту я сказал, потому что она стала уже расхожей.
Lure Of Chaos 06.11.2011 18:59 # +3
guest 05.11.2011 20:25 # −2
jabber 07.11.2011 00:06 # −5
AxisPod 07.11.2011 07:04 # 0
gegMOPO4 07.11.2011 12:45 # 0
AxisPod 07.11.2011 12:49 # +1
Да и видимо поэтому тормозит 50-80% современных игр даже на топовых конфигурациях, зачем оптимизировать, выйдет покруче железо, тормозить не будет.
Тут очень легко можно избавиться от 1 цикла, вместо условия проверки, всего лишь заменив условие на i5=i3+i4-i0-i1-i2, но даже до этого ума не хватило.
gegMOPO4 07.11.2011 13:09 # +1
defecate-plusplus 08.11.2011 17:15 # 0
уже сокращает время где то в 10 раз
SmackMyBitchUp 08.11.2011 19:28 # 0
хочу в школу, где такому учат О_О
defecate-plusplus 08.11.2011 19:51 # 0
три цикла каждый в 2 раза (а если еще и i2 = i1 + 1, i3 = i2 + 1 делать, то > чем в 2)
я думаю, в классе 2-3 умножение уже проходят
roman-kashitsyn 07.11.2011 12:49 # +2
Только меня ещё интересовала зависимость числа счастливых билетов от суммы цифр (колокольчик Гаусса вездесущ).
ctm 08.11.2011 14:52 # 0
guest8 09.04.2019 11:55 # −999