Forum Index > Chat > Teste de logica

#0 by NinutssDisabled (Power User) (0 mesaje) at 2009-07-23 20:47:16 (839 săptămâni în urmă) - [Link]Top
Adunarea literelor simple


Iata o serie de probleme de logica din domeniul aritmesticii. Voi incepe cu probleme deosebit de simple. Ideea este de a inlokui intr-un anumit mod fiekare litera cu aceeas cifra si literele diferite cu cifre diferite, ajungindu-se la o adunare ``cifrika``, corekta din punkt de vedere aritmetik


ARAD+
SATU
MARE
ARGES
-----------
JUDETE



DOCHIA+
BALEIA
BÎLEA
BABELE
----------
CABANE

Sper ka ati intales in a doua koloana voi trebue sami dati raspunsul korekt....adika akolo undei ku ``x`` trebue sa fie cifrele korekte

Succes

Editat de către Ninutss la 2009-08-30 18:20:43




Mesaj util ?   Da   0 puncte

1 2 3 4 5 6 7 8 9 10 11 12
<< Precedenta      Următoarea >>

#251 by sashok (Power User) (0 mesaje) at 2009-08-01 13:45:59 (837 săptămâni în urmă) - [Link]Top
#248 yooo,

#249 Scriam, e bine


Mesaj util ?   Da   0 puncte
#252 by Scriam (User) (0 mesaje) at 2009-08-01 13:48:31 (837 săptămâni în urmă) - [Link]Top
#250 Capilleary, nu este corect.(fa o mica demonstratie,de unde ai luat factorul corespunzator).


Mesaj util ?   Da   0 puncte
#253 by NinutssDisabled (Power User) (0 mesaje) at 2009-08-01 18:29:27 (837 săptămâni în urmă) - [Link]Top
#0 Ninutss, ultimu exemplu nu a fost rezolvat


Mesaj util ?   Da   0 puncte
#254 by Scriam (User) (0 mesaje) at 2009-08-01 19:27:07 (837 săptămâni în urmă) - [Link]Top
#253 Ninutss,

9041+
1438
--------
10479

Editat de către Scriam la 2009-08-01 22:47:56




Mesaj util ?   Da   0 puncte
#255 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-02 23:00:20 (837 săptămâni în urmă) - [Link]Top
#252 Scriam, scuze. Am încurcat :). era un mic bug.

răspunsul e 50.

Cum am aflat

Am folosit C#.NET
Program.cs

using System;
using System.Windows.Forms;

namespace ProdusFactorial
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
ÎnchideЗакрыть
Form1.Designer.cs

namespace ProdusFactorial
{
    partial class Form1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.statusStrip1 = new System.Windows.Forms.StatusStrip();
            this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
            this.toolStripProgressBar1 = new System.Windows.Forms.ToolStripProgressBar();
            this.statusStrip1.SuspendLayout();
            this.SuspendLayout();
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(12, 12);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "Start";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //
            // label1
            //
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(12, 38);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(0, 13);
            this.label1.TabIndex = 1;
            //
            // statusStrip1
            //
            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.toolStripStatusLabel1,
            this.toolStripProgressBar1});
            this.statusStrip1.Location = new System.Drawing.Point(0, 242);
            this.statusStrip1.Name = "statusStrip1";
            this.statusStrip1.Size = new System.Drawing.Size(284, 22);
            this.statusStrip1.TabIndex = 3;
            this.statusStrip1.Text = "statusStrip1";
            //
            // toolStripStatusLabel1
            //
            this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
            this.toolStripStatusLabel1.Size = new System.Drawing.Size(0, 17);
            //
            // toolStripProgressBar1
            //
            this.toolStripProgressBar1.Name = "toolStripProgressBar1";
            this.toolStripProgressBar1.Size = new System.Drawing.Size(100, 16);
            this.toolStripProgressBar1.Visible = false;
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 264);
            this.Controls.Add(this.statusStrip1);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.button1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.statusStrip1.ResumeLayout(false);
            this.statusStrip1.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.StatusStrip statusStrip1;
        private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
        private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar1;
    }
}
ÎnchideЗакрыть
Form1.cs

using System;
using System.Windows.Forms;

namespace ProdusFactorial
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.toolStripProgressBar1.Visible = true;
            this.toolStripProgressBar1.Value = 0;
            this.toolStripProgressBar1.Maximum = (1 + 100) * 50;
            this.toolStripStatusLabel1.Text = "Calculating Factorials...";
            BigNumber[] Factoriale = new BigNumber[101];
            for (uint i = 1; i < 101; i++)
            {
                this.toolStripProgressBar1.Value += (int)i;
                Application.DoEvents();
                BigNumber Factorial = 1;
                for (uint j = 2; j <= i; j++)
                    Factorial *= j;
                Factoriale[i] = Factorial.Clone();
            }

            this.toolStripProgressBar1.Value = 0;
            this.toolStripProgressBar1.Maximum = 100;
            this.toolStripStatusLabel1.Text = "Calculating exclusions...";
            bool found = false;
            for (int exclude = 1; exclude <= 100; exclude++)
            {
                this.toolStripProgressBar1.Value = exclude;
                Application.DoEvents();
                BigNumber testNumber=1;
                for (int each = 1; each <= 100; each++)
                    if (each != exclude)
                        testNumber *= Factoriale[each];
                if (testNumber.IsPatratPerfect)
                {
                    this.toolStripStatusLabel1.Text = exclude.ToString();
                    found = true;
                    break;
                }
            }
            this.toolStripProgressBar1.Visible = false;
            if (!found)
                this.toolStripStatusLabel1.Text = "Nothing found";
        }
    }
}
ÎnchideЗакрыть
Şi cel mai important:
BigNumbers.cs

using System;

namespace ProdusFactorial
{
    class BigNumber
    {
        private int[] m_number;
        private static BigNumber[] m_cache = new BigNumber[101];

        private int[] FindDividers(uint Number)
        {
            int[] result = new int[101];
            for (int i = 0; i < 101; i++)
                result[i] = 0;
            uint Num = Number;
            for (uint i = 2; i <= Num; i++)
                if ((Num % i) == 0)
                {
                    Num /= i;
                    result[i]++;
                    i--;
                }
            return result;
        }

        public BigNumber(uint number)
        {
            if (BigNumber.m_cache[number] == null)
            {
                this.m_number = FindDividers(number);
                BigNumber.m_cache[number] = this;
            }
            else
                this.m_number = BigNumber.m_cache[number].m_number;
        }

        private BigNumber(int[] data)
        {
            this.m_number = new int[101];
            for(int i=0;i<100;i++)
                this.m_number[i] = data[i];
        }

        public int this[int Index]
        {
            get
            {
                return this.m_number[Index];
            }
            set
            {
                this.m_number[Index] = value;
            }
        }

        public static implicit operator BigNumber(uint number)
        {
            return new BigNumber(number);
        }

        public static BigNumber operator*(BigNumber number1, BigNumber number2)
        {
            BigNumber result = new BigNumber(number1.m_number);
            for (int i = 2; i < 101; i++)
                result[i] += number2[i];
            return result;
        }

        public bool IsPatratPerfect
        {
            get
            {
                for (int i = 2; i < 101; i++)
                    if ((this[i] % 2) == 1)
                        return false;
                return true;
            }
        }

        public BigNumber Clone()
        {
            return new BigNumber(this.m_number);
        }
    }
}
ÎnchideЗакрыть
ÎnchideЗакрыть

Şi voila! :) rezultatul  -  50.


Mesaj util ?   Da   0 puncte
#256 by SlavutticiParticipant la concursul Fotografi Amatori (Свiтлe) (0 mesaje) at 2009-08-02 23:03:23 (837 săptămâni în urmă) - [Link]Top
JJesti.... di ci se mai numesc teste de logică, dacă calculatorul rezolvă? :)


Mesaj util ?   Da   0 puncte
#257 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-02 23:04:15 (837 săptămâni în urmă) - [Link]Top
#256 Slavuttici, trebu logică ca să-l faci să rezolve :D


Mesaj util ?   Da   0 puncte
#258 by asoper (suslik turbat) (0 mesaje) at 2009-08-02 23:05:14 (837 săptămâni în urmă) - [Link]Top
#257 Capilleary, "... trebu logică ca să-l faci să rezolve ..." - nare el de unde sa aiba asa ceva:sarcastichand:


Mesaj util ?   Da   0 puncte
#259 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-02 23:05:23 (837 săptămâni în urmă) - [Link]Top
P.S.
nuş pentru ce eu am pus progress bar. Timpul de execuţie<<<<<<<<1secundă.


Mesaj util ?   Da   0 puncte
#260 by SlavutticiParticipant la concursul Fotografi Amatori (Свiтлe) (0 mesaje) at 2009-08-02 23:08:19 (837 săptămâni în urmă) - [Link]Top
#259 Capilleary, dacă aşa merge vorba, atunci nu-i nici un greu ca să rogi calculatorul să înlocuiască literele cu cifre şi să verifice dacă satusface condiţia. Şi toate exemplele din #0 se rezolvă în mai puţin de 10 sec (timp luat arbitrar)


Mesaj util ?   Da   0 puncte
#261 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-02 23:17:37 (837 săptămâni în urmă) - [Link]Top
#260 Slavuttici, :) go ahead

eu în #0 n-am înţeles chiar despre ce e vorba. Sunt exemple aparte sau unul singur, mare?


Mesaj util ?   Da   0 puncte
#262 by sashok (Power User) (0 mesaje) at 2009-08-03 13:43:53 (837 săptămâni în urmă) - [Link]Top
#260 Slavuttici, +1
sau se putea de facut un program care sa verifice pentru fiecare numar aparte :lol: (mai mult timp de executie dar mai putin de scris)


Mesaj util ?   Da   0 puncte
#263 by Scriam (User) (0 mesaje) at 2009-08-03 15:16:59 (837 săptămâni în urmă) - [Link]Top
#255 Capilleary, )),merge si asa rezolvare,dar iata alta:

1!=1; 2!=1!*2;
3!=1*2*3; 4!=3!*4;
5!=1*2*3*4*5; 6!=5!*6;
...
100!=99!*100;

Produsul poate fi scris ca:

Desigur ca daca eliminam din produs 50! produsul va deveni patrat perfect.

Propun alta problema:
Gasiti 5 numere naturale care au urmatoarea proprietate:
Modulul diferentei dintre oricare 2 numere este cel mai mare divizor comun al lor.
Cine o rezolva primul este bravo!
(Capilleary incearca fara programare...).

Editat de către Scriam la 2009-08-03 20:59:07




Mesaj util ?   Da   0 puncte
#264 by NinutssDisabled (Power User) (0 mesaje) at 2009-08-03 20:35:05 (837 săptămâni în urmă) - [Link]Top
#261 Capilleary, exemple parte


Mesaj util ?   Da   0 puncte
#265 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-03 21:57:16 (837 săptămâni în urmă) - [Link]Top
#263 Scriam, şi cum s-a ajuns de la 1!*2!*3!*...*99!*100! la 2^50*(1!*2!*3!*...*99!*100!)*50! ?

asta ca şi cum A=2^50*A*50!, ce-ar fi corect doar pentru A=0. Dar A=1!*2!*...*100!....
Rezolvarea nu e conexă.

Apropo, algoritmul meu se poate de mai optimizat de vreo 50 ori. :)


#263 Scriam, "... (Capilleary incearca fara programare...). ..." - nu-i optimal. Pentru ce fără dacă se poate CU? :)


Mesaj util ?   Da   0 puncte
#266 by Scriam (User) (0 mesaje) at 2009-08-07 15:13:17 (837 săptămâni în urmă) - [Link]Top
#265 Capilleary, - daca ai fi analizat mai atent ti-ai fi dat seama ca este corect,fiecare factorial par n! il scriem ca (n-1)!*n,de aici se ia (1!*2!*3!*...*99!*100!)^2 ,mai ramin celelate numere naturale n care le scriem ca 2*k,2 se va repeta de 50 ori,iar cu ceilalti facotri se formeaza 50!.



#265 Capilleary, "... Pentru ce fără dacă se poate CU? ..." - Incearca sa o rezolvi CU.

P.S Scuze ca am scris asa tirziu,nu am intrat pe tmd de 3 zile.


Mesaj util ?   Da   0 puncte
#267 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-08-07 15:30:14 (837 săptămâni în urmă) - [Link]Top
#266 Scriam, "... ,fiecare factorial par n! il scriem ca (n-1)!*n,de aici se ia (1!*2!*3!*...*99!*100!)^2 ..." - greşit! nu are cum!
:)

tu susţii că <da figa1>*<da figa2>*<da_figa3> = <da figa2>, ceea ce este incorect.

#266 Scriam, "... Incearca sa o rezolvi CU. ..." - ok, când voi găsi o fereastră în timpul meu, cu dispoziţie de probleme academice. :)


Mesaj util ?   Da   0 puncte
#268 by cipolino (steppenwolf) (0 mesaje) at 2009-08-07 15:46:44 (837 săptămâni în urmă) - [Link]Top
#267 Capilleary, el gresit oleak in explicatzie: 1!*(1!*2)*3!*(3!*4)*5!*(5!*6)*7!*(7!*8)*...*97!*(97!*98)*99!*(99!*100) echivalent cu (1!*3!*5!*7!*...*97!*99!)^2*[50^2*(1*2*3*4*5*6*7*...*50)]. Paranteza patrata este 2^50*50!, q.e.d. Doi se repeta de 50 de ori deoarece noi injumatazim numerele naturale pare (scriindu-le sub forma 2*k) de la 1 la 100 (iar ele sunt 50 la numar)

Editat de către cipolino la 2009-08-07 16:09:24




Mesaj util ?   Da   0 puncte
#269 by Scriam (User) (0 mesaje) at 2009-08-07 16:04:04 (837 săptămâni în urmă) - [Link]Top
#267 Capilleary, deci,iti scriu rezolvarea mai complet,uitete atent si apoi scrie.
Rezolvare
ÎnchideЗакрыть

#268 cipolino, "... el gresit oleak in explicatzie: ..." - nu am gresit,am scris corect.


Mesaj util ?   Da   0 puncte
#270 by cipolino (steppenwolf) (0 mesaje) at 2009-08-07 16:08:40 (837 săptămâni în urmă) - [Link]Top
#269 Scriam, nope, tu scrii X=X^2*(ink sheva)

P.S.: Aa, da intradevar 2^50 da nu 2*50


Mesaj util ?   Da   0 puncte
#271 by NinutssDisabled (Power User) (0 mesaje) at 2009-08-26 09:42:04 (834 săptămâni în urmă) - [Link]Top
ce a murit tema deam?....hai ka mai tirziu intru si mai pun exemple


Mesaj util ?   Da   0 puncte
#272 by NinutssDisabled (Power User) (0 mesaje) at 2009-08-29 11:54:30 (833 săptămâni în urmă) - [Link]Top
#0 Ninutss, AM MAI ADAUGAT UN NOU EXEMPLU AICI, ASTEPT VARIANTELE :d


Mesaj util ?   Da   0 puncte
#273 by Scriam (User) (0 mesaje) at 2009-08-29 21:54:16 (833 săptămâni în urmă) - [Link]Top
#272 Ninutss,
8787+
3840
6874
87943
------------
107444


Mesaj util ?   Da   0 puncte
#274 by NinutssDisabled (Power User) (0 mesaje) at 2009-08-29 22:27:23 (833 săptămâni în urmă) - [Link]Top
#273 Scriam, nu e korekt


Mesaj util ?   Da   0 puncte
#275 by Scriam (User) (0 mesaje) at 2009-08-30 16:00:49 (833 săptămâni în urmă) - [Link]Top
#274 Ninutss, Dar poate vei scrie de ce?
P.S este corect.


Mesaj util ?   Da   0 puncte

1 2 3 4 5 6 7 8 9 10 11 12
<< Precedenta      Următoarea >>

Forum Index > Chat > Teste de logica


Navigare rapidă:


Comunitatea digitală din Moldova. Să adunăm și să organizăm conținutul autohton de pe întreg internet pe un singur site web.