dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Skaitlis ar vairak,ka 100 nullem
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Jun 02, 2006 7:43 pm    Post subject: Skaitlis ar vairak,ka 100 nullem

Lieta tada,ka gribeju paradit draugam,kas ir aizravies ar Super Bingo, kada vinjam ir iespeja limet tajaa.Saaku reekjinaat,bet probleemat taada,ka skaitlii sanaak vairaak,kaa 100 nulles(apmeeram).Kaa vareetu apvienot baitus (tur apmeeram 50 baitiem sanaak) vienaa mainiigajaa?Tak nevar buut,ka zinaatnieki ar portatiivajiem datoriem straadaa tikai ar 8 baitiigiem skaitljiem.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Gurnisss



Joined: 05 Apr 2006
Posts: 20
Location: Ķekava

PostPosted: Fri Jun 02, 2006 7:54 pm    Post subject:

Varbūt nav īsti pa tēmu bet zinātnieki 1938. gadā izgudroja skaitli gugols kas ir 1 ar 100 nullēm. Šo skaitli nekad neizmanto, jo pat ātomu skaits mums zināmajā visumā nav tik liels.

P.S. Žurnāls "Ilustrētā zinātne" Smile
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jun 02, 2006 8:11 pm    Post subject:

Hehe.. Kādas sestās/septītās klases viela, ja ne vēl agrāka? Tb saskaitīt/reizināt/atņemt/dalīt divus skaitļus pa cipariem :)
Ja gribi pats rakstī, tad ari kautvai tā - viens baits=viens cipars 0-9 (BCD - binary coded decimal):
Code:
char sk1[100], sk2[100];
// pie sk1 pieskaita sk2:
int carry = 0;
for (int i=0; i<99; ++i)
{
  int tmp = sk1[i] + sk2[i] + carry;
  sk1[i] = tmp%10;
  carry = tmp/10;
}
sk1[99] += (sk2[99]+carry)%10;

Pārējās operācijas gan implementē pats :)
Protams, krutākā gadījumā masīvi ir dinamiski un darbojās tiešām ar baitiem (vēlams 4-baitiem, tb int'iem), nevis cipariem. Tā ietaupās vieta (vienā baitā ta var iebāzt līdz "ciparus" līdz 255, nevis līdz tikai 9) un ātrums (nevajadzēs dalīt ar 10).

Ja gribi gatavus risinājumus, tad labs variants ir gmp: http://www.swox.com/gmp/ (protams ir vēl daudz citu variantu arī).
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Jun 02, 2006 8:35 pm    Post subject:

Tavu domu bijau jau apsveeris,bet nenonaacu pie secinaajuma,jo tur jaaizpilda reizinaahsana,kas visu neduadz sarezhgjii.

Es biju domaajis taa(iisti neiedziljinaajos tavaa idejaa,bet laikam jau taa ir kautkas liidziigs maneejai)-njemt vienu baitu,kuraa buutu skaitlis no 0 liidz 9.Un tad vienkaarshi kombineet skaitli no tiem.Piemeram skaitlis 123 sastaavetu no 3 baitiem(1,2 un 3).Bet tomer butu nedaudz japalauza galvu par reizinashanu.

Te buus nepareizais kods:
Code:
__int64 nResult=1;
   for (int i=26;i<76;i++)
   {
      nResult*=i;
   }

   cout<<nResult;

Biju domaajis vai nevareetu kautkaa apvienot baitus,lai procesors tos varetu ta smuki rekjinat.Bet laikam bez library'jiem nevares->kachashu to GMP.

P.S. Patiesiba jau vienalga ka tikshu pie rezultata.Galvenais ir LAIKS,kaadaa pie taa tikshu.Pasham taisiit taas reizinaahsanas buus ilgaak,kaa nokachaat library.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jun 02, 2006 8:44 pm    Post subject:

Reizinaashana nav nekas sarežģītāks tak :) (LU datoriķos vienā priekšmetā ir kontroldarbs, kurā viens no uzdevumiem bija uzrakstīt funkciju, kas sareizina šādus skaitļus :)

Reizināt vajag stabiņā - tb no otrā skaitļa ņem pa vienam ciparam, tb katru ciparu piereizini pie pirmā skaitļa un pieskaiti rezultātam. Tad ņem nākamo, tikai pareizinātu ar 10 (vēlāk ar 100, 1000 utt). Un tā tālāk.. Sanāk uzrakstīt tikai funkcijas, kas māk saskaitīt divus šādus skaitļus un funkciju, kas sareizina vienu šādu skaitli ar citu viencipara skaitli (tas taču ir viegli izradāms :). Un atliek to visu iebāzt ciklā.

Code:
  123
   34
 ----
  492
 369
 ----
 4182
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Jun 02, 2006 8:48 pm    Post subject:

Paldies.To gmp implementeet sanaaks ilgaak.Itka jau tas viss ir logjiski,bet negribeejaas kjeepaaties.Be nu ok tulit kjeros pie kjepashanaas.Ievelkam elpu un ienirstam C++ uudenjos...
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Fri Jun 02, 2006 8:57 pm    Post subject:

Kā tas jāsaprot - to gmp implementēt sanāks ilgāk. Viņam ir ļoti vienkāršs API (jādarbojas gandrīzvai objekorientēti).
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Jun 02, 2006 8:58 pm    Post subject:

Vinjam vajadzigs setups un nakas iedziljinaties manuaalii.Tavuprat ir verts to darit?Iespejams.

P.S. Es izmantoju VC++ 6.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Jun 02, 2006 9:44 pm    Post subject:

Izrekjinaju.Iespeja laimet super bingo ir
1 pret 1599432974093600067896009239156107676288209506371901842134782334
820417536000000000000

Tomer labak ka nekas.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Janka



Joined: 14 Nov 2005
Posts: 19
Location: Jelgava

PostPosted: Fri Jun 02, 2006 11:18 pm    Post subject:

Driikst zinaat, kaa tu vinju reekinaaji?
5 no 35 manskiet sanaak... 324632 iespeejas tas buutu 1 pret 324632
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Sat Jun 03, 2006 10:18 am    Post subject:

Vienkarspa kombinatorika - n!/k!. Shajaa gadiijumaa n! ir bumbinju skaits (75),bet k ir uz biljetes esosho laucinju skaits(25).
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Jun 03, 2006 11:24 am    Post subject:

Laikam pat pareizi esi izrēķinājis: http://www.google.com/search?q=75!/25! Pirmie cipari sakrīt :)
Back to top
View user's profile Send e-mail
EDDY



Joined: 07 Oct 2005
Posts: 1610
Location: Dzimtā zeme, Latvija

PostPosted: Sat Jun 03, 2006 11:27 am    Post subject:

Hmm, Elwman, es ceru, ka tu neveidoji matemātisko progresiju skaitlim
!75 un !25 un tad nedalīji.
Brrr, jāuzmin 25 skaitļi no 75 iespējamiem? Vai tas ir reāli?
Hmm, !4 = 1*2*3*4 = 24, !2 = 2
24/2 = 12
Tavuprāt no 4 skaitļiem, ja vajag uzminēt 2, iespējamie varianti ir 12?
Laikam tā.... nu jā, izredzes uz Bingo ir švakas.
_________________
Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Jun 03, 2006 11:43 am    Post subject:

EDDY - faktoriālim izsaukuma zīme jāliek beigās, nevis sākumā.
Un kāds sakars tur progresijām? (kas vispār ir matemātiska progresija?)
Dalīt jau nu noteikti nevajadzēja. Vajadzēja tikai sareizināt: 26*27*..*74*75.
Nezinu kā spēlē to Super Bingo, bet vai tur kombinācijas (1 2) un (2 1) skaitās vienādas vai dažādas? Rēķinot ar n!/k! (neatceros kā to sauca) tu šādas kombinācijas uzskati par dažādām. Tb EDDY piemērā: (1 2) (1 3) (1 4) (2 1) (2 3) (2 4) (3 1) (3 2) (3 4) (4 1) (4 2) (4 3) - 12 gabali.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Sat Jun 03, 2006 11:49 am    Post subject:

Tur ir laukums ar ciperiem.Tev vienkarshi jauzmin visi cipari(vienlga kada seciba).Tapec ari izmantoju n!/k!.

Runajot par EDDY-vinsh vienkarshi kartejo reizi gribeja paradit,ka ir gudrs visur.

P.S.Un ja reiz tu nezini kas ir matematiska progresija(es ari nezinu un droshi vien vel paris miljardu zemes iemitnieku to nezin) un ka faktoriali tagad raksta ari izsaukuma zimi priekshaa,tad tu neesi tik gudrs kaa EDDY.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group