Os telefones

28nov10
Hoje no IX Encontro do Python User Group de Pernambuco apresentei
uma palestra relâmpago no I Toró de palestras do PUG-PE. Nessa
palestra apresentei uma forma de resolução para o problema abaixo
utilizando uma abordagem funcional. Esse problema foi uma proposta
de Dojo enviada por Marcel Caraciolo a nossa lista de discussão.
Depois encontrei na internet que essa ele fazia parte da etapa
de inscrição para o Google Developer Day 2010.
Abaixo segue a descrição: 

Na pacata vila campestre de Arquivonaoencontradoville, todos os
telefones têm 6 dígitos. A companhia telefônica estabelece as
seguintes regras sobre os números:
  • Não pode haver dois dígitos consecutivos idênticos, porque isso é chato;
  • A soma dos dígitos tem que ser par, porque isso é legal;
  • O último dígito não pode ser igual ao primeiro, porque isso dá azar.
Então, dadas essas regras perfeitamente razoáveis, bem projetadas
e maduras, quantos números de telefone na lista abaixo são válidos?

215228, 218415, 221632, 224722, 229644, 230847, 233798,
237903, 239224, 241832, 242112, 243248, 246147, 247652,
250688, 252940, 255721, 256882, 259134, 262578, 263327,
266656, 268796, 270350, 272863, 275245, 278601, 278606,
281963, 283751, 288259, 291562, 296545, 298528, 302103,
303431, 307561, 311979, 315548, 320440, 322278, 324469,
324740, 327417, 330263, 331179, 334147, 334932, 336085,
338096, 338106, 342991, 347187, 347590, 348863, 350187,
353246, 354032, 358616, 363056, 363251, 366141, 369906,
371046, 372684, 377077, 381177, 382086, 385627, 385694,
386105, 388179, 390251, 392624, 394225, 395328, 398698,
400102, 404224, 408064, 410386, 411711, 413621, 415653,
417168, 419269, 424197, 427202, 430639, 432570, 437462,
442412, 444990, 447613, 452039, 456750, 459927, 462532,
465756, 467051, 468297, 469089, 471562, 474900, 475534,
476833, 478910, 480437, 482085, 485647, 487736, 489897,
493033, 495182, 498463, 502539, 502785, 505926, 508246,
511720, 515395, 515595, 516362, 520927, 525025, 529957,
530139, 531015, 533760, 534588, 538184, 541403, 542913,
546141, 548038, 549095, 552509, 556808, 560382, 563503,
565304, 567165, 567675, 572218, 573856, 576408, 578085,
578997, 579553, 584487, 589220, 590967, 593234, 597867,
599823, 603666, 607878, 611482, 611854, 612811, 614119,
615956, 617547, 621070, 621309, 626105, 626885, 631080,
635911, 639606, 640175, 641607, 645158, 647958, 652199,
656507, 658615, 662663, 662947, 664704, 666668, 667544,
669440, 673512, 675931, 676963, 677113, 678606, 682716,
682998, 684883, 686140, 688963, 689054, 692042, 695458,
697031, 697457, 697623, 698026

Apresentação.


Script Python.
http://ideone.com/3SPKF

Os Telefones

Na pacata vila campestre de Arquivonaoencontradoville, todos os telefones têm 6 dígitos. A companhia telefônica estabelece as seguintes regras sobre os números:

  • Não pode haver dois dígitos consecutivos idênticos, porque isso é chato;
  • A soma dos dígitos tem que ser par, porque isso é legal;
  • O último dígito não pode ser igual ao primeiro, porque isso dá azar.

Então, dadas essas regras perfeitamente razoáveis, bem projetadas e maduras, quantos números de telefone na lista abaixo são válidos?

215228, 218415, 221632, 224722, 229644, 230847, 233798, 237903, 239224, 241832, 242112, 243248, 246147, 247652, 250688, 252940, 255721, 256882, 259134, 262578, 263327, 266656, 268796, 270350, 272863, 275245, 278601, 278606, 281963, 283751, 288259, 291562, 296545, 298528, 302103, 303431, 307561, 311979, 315548, 320440, 322278, 324469, 324740, 327417, 330263, 331179, 334147, 334932, 336085, 338096, 338106, 342991, 347187, 347590, 348863, 350187, 353246, 354032, 358616, 363056, 363251, 366141, 369906, 371046, 372684, 377077, 381177, 382086, 385627, 385694, 386105, 388179, 390251, 392624, 394225, 395328, 398698, 400102, 404224, 408064, 410386, 411711, 413621, 415653, 417168, 419269, 424197, 427202, 430639, 432570, 437462, 442412, 444990, 447613, 452039, 456750, 459927, 462532, 465756, 467051, 468297, 469089, 471562, 474900, 475534, 476833, 478910, 480437, 482085, 485647, 487736, 489897, 493033, 495182, 498463, 502539, 502785, 505926, 508246, 511720, 515395, 515595, 516362, 520927, 525025, 529957, 530139, 531015, 533760, 534588, 538184, 541403, 542913, 546141, 548038, 549095, 552509, 556808, 560382, 563503, 565304, 567165, 567675, 572218, 573856, 576408, 578085, 578997, 579553, 584487, 589220, 590967, 593234, 597867, 599823, 603666, 607878, 611482, 611854, 612811, 614119, 615956, 617547, 621070, 621309, 626105, 626885, 631080, 635911, 639606, 640175, 641607, 645158, 647958, 652199, 656507, 658615, 662663, 662947, 664704, 666668, 667544, 669440, 673512, 675931, 676963, 677113, 678606, 682716, 682998, 684883, 686140, 688963, 689054, 692042, 695458, 697031, 697457, 697623, 698026,

Anúncios


No Responses Yet to “Os telefones”

  1. Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: