Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-05-2009, 19:38   #1
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
[Vari] Contest 13: Date

Quanti lunedi' ci sono in tutti i Febbraio tra gli anni il 1900 e il 2100 compresi?

Occhio ai bisestili, che sono tutti gli anni divisibili per 4.
Ma non quelli che terminano per 00
Ma se invece il numero che termina per 00 e' divisibile per 400, allora e' di nuovo bisestile (Come il 2000).
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 19:56   #2
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
811

Segue il codice usato per la soluzione:
Codice:
#light
open System

let countMondays year = [1..DateTime.DaysInMonth(year,2)] |> Seq.filter(fun d -> DateTime(year, 2, d).DayOfWeek = DayOfWeek.Monday) |> Seq.length
[1900..2100] |> Seq.map(countMondays) |> Seq.fold(+) 0

Ultima modifica di !k-0t1c! : 12-05-2009 alle 01:16. Motivo: aggiornato per usare gli helpers di DateTime
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 20:07   #3
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
cut
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 20:20   #4
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
puoi spiegarmi quel "cut"?
Se ho sbagliato a postare pubblicamente la soluzione chiedo scusa e spero di aver fatto ammenda in tempo utile, diversamente dimmelo e ripristinerò il post sopra.
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 20:47   #5
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
C'è già un contest 12:

Contest 12

Se è un questione di superstizione, puoi fare come D'Annunzio:

Tratto da "1912 + 1" di Leonardo Sciascia:

Quote:
Non so se per tutto l'anno 1913: ma almeno una volta,
dedicando un suo libro, D'Annunzio scrisse "1912 + 1":
per superstizione sua o della persona cui lo dedicava
o di entrambi.
...
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 23:04   #6
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Soluzione quick'n'dirty in factor...non è proprio il massimo dell'eleganza, ma stasera sono pigro...
Codice:
USING: math math.ranges make sequences kernel calendar fry locals
prettyprint ;
IN: contest12

:: get-timestamps ( year -- seq )
    year 2 1 <date> days-in-month
    [ [ 1+ year 2 pick <date> , drop ] each ] { } make ;

: how-many-mondays? ( seq -- n )
    [ day-of-week day-name "Monday" = ] filter length ;

: contest12 ( -- )
    1900 2100 [a,b]
    [ get-timestamps how-many-mondays? ] map sum . ;
@!k-0t1c!: cos'è? F#? Fico!
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2009, 23:39   #7
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da shinya Guarda i messaggi
Soluzione quick'n'dirty in factor...non è proprio il massimo dell'eleganza, ma stasera sono pigro...
Codice:
USING: math math.ranges make sequences kernel calendar fry locals
prettyprint ;
IN: contest12

:: get-timestamps ( year -- seq )
    year 2 1 <date> days-in-month
    [ [ 1+ year 2 pick <date> , drop ] each ] { } make ;

: how-many-mondays? ( seq -- n )
    [ day-of-week day-name "Monday" = ] filter length ;

: contest12 ( -- )
    1900 2100 [a,b]
    [ get-timestamps how-many-mondays? ] map sum . ;
@!k-0t1c!: cos'è? F#? Fico!
si F#, quoto!
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:02   #8
pierosa
Member
 
Iscritto dal: Jan 2007
Messaggi: 189
Aggiungo una soluzione in ruby
Codice:
require 'date'
def is_leap?(year)
  ((year % 4 == 0) && ((year % 400 == 0) || !(year % 100 == 0))) 
end

def mondays(start_y, end_y)  
  mondays = (end_y-start_y+1)*4
  start_y.step(end_y){|year| mondays += 1 if (is_leap?(year) && Date.new(year,2,1).wday == 1)}
  mondays
end

puts mondays(1900, 2100)
pierosa è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:15   #9
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
811

Segue il codice usato per la soluzione:
Codice:
#light

open System

let countMondays year =
    let isMonday day =
        let date = DateTime.Parse(sprintf "%i/02/%i" day year)
        date.DayOfWeek = DayOfWeek.Monday
    let febDays = if year % 4 = 0 && (year % 400 = 0 || year % 100 <> 0) then 29 else 28
    [1..febDays] |> Seq.filter(isMonday) |> Seq.length

[1900..2100] |> Seq.map(countMondays) |> Seq.fold(+) 0
non potevi usare DateTime.IsLeapYear (int) dove il parametro è l'anno?
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:26   #10
!k-0t1c!
Member
 
Iscritto dal: Jul 2008
Messaggi: 237
Quote:
Originariamente inviato da shinya Guarda i messaggi
@!k-0t1c!: cos'è? F#? Fico!
Sì, F#
Non è niente male, corre veloce quanto C# e si integra alla perfezione con .NET Comunque a giudicare dalla tua soluzione non sono l'unico che apprezza linguaggi quantomeno un po' "esotici"
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
non potevi usare DateTime.IsLeapYear (int) dove il parametro è l'anno?
No, perché DateTime.IsLeapYear avrebbe ritornato true per 1900 e 2100 mentre nella definizione di bisestile data dal problema solo per nessuno di quei due andava considerato tale (lo so, ai fini della soluzione è irrilevante visto che ciascuno ha comunque 4 lunedì in febbraio, tuttavia per scrupolo ho preferito implementare la specifica).
!k-0t1c! è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:35   #11
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
Comunque a giudicare dalla tua soluzione non sono l'unico che apprezza linguaggi quantomeno un po' "esotici"
E' Factor E' un linguaggio concatenativo. Fai conto lisp... ma al contrario e senza parentesi :P
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:46   #12
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
puoi spiegarmi quel "cut"?
Se ho sbagliato a postare pubblicamente la soluzione chiedo scusa e spero di aver fatto ammenda in tempo utile, diversamente dimmelo e ripristinerò il post sopra.
Nono, ero io che avevo sbagliato. Pensavo di aver postato una errata definizione di bisestile, ma e' giusta.

Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
C'è già un contest 12:
Mannaggia, se passa qualcuno a correggere in Contest 13...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:46   #13
bio82
Senior Member
 
Iscritto dal: Dec 2007
Messaggi: 1524
che bello un problema che riesco a risolvere anche io!!!!!!

Codice:
        For i = inizio To fine
            If i Mod 400 = 0 Then
                Dim data As Date = "01/02/" & i
                If data.DayOfWeek = DayOfWeek.Monday Then
                    conta += 1
                End If
            ElseIf Right(i.ToString, 2) = "00" Then
            ElseIf i Mod 4 = 0 Then
                Dim data As Date = "01/02/" & i
                If data.DayOfWeek = DayOfWeek.Monday Then
                    conta += 1
                End If
            End If
            conta += 4
        Next
come soluzione funziona, l'unico buco è l'anno 0 dove bisognerebbe fare un caso a parte

cmq ho paura che arrivi un inghippo per cui le nostre soluzioni diventano obsolete...

bio
bio82 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 00:52   #14
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da !k-0t1c! Guarda i messaggi
Sì, F#
Non è niente male, corre veloce quanto C# e si integra alla perfezione con .NET Comunque a giudicare dalla tua soluzione non sono l'unico che apprezza linguaggi quantomeno un po' "esotici"

No, perché DateTime.IsLeapYear avrebbe ritornato true per 1900 e 2100 mentre nella definizione di bisestile data dal problema solo per nessuno di quei due andava considerato tale (lo so, ai fini della soluzione è irrilevante visto che ciascuno ha comunque 4 lunedì in febbraio, tuttavia per scrupolo ho preferito implementare la specifica).
La specifica "dovrebbe" essere la definzione corretta di bisestile.
Se la IsLeapYear e' implementata correttamente dovrebbe tornare false per 1900 e 2100
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:00   #15
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Per ora in C# butto cosi'.

Codice:
static void Main(string[] args)
{
    var mondays = Enumerable.Range(1900, 2100 - 1900 + 1)
                            .Sum(year =>
                                    Enumerable.Range(1, DateTime.DaysInMonth(year, 2))
                                              .Count(day => new DateTime(year, 2, day).DayOfWeek == DayOfWeek.Monday)
                                );

    Console.Write(mondays);
    Console.ReadKey();            
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:02   #16
bio82
Senior Member
 
Iscritto dal: Dec 2007
Messaggi: 1524
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
La specifica "dovrebbe" essere la definzione corretta di bisestile.
Se la IsLeapYear e' implementata correttamente dovrebbe tornare false per 1900 e 2100
dettomi questo, ti confermo che in vb IsLeapYear ritorna falso al 1900 (e agli altri)..

il mio codice varia in:

Codice:
        For i = inizio To fine
            If DateTime.IsLeapYear(i) Then
                Dim data As Date = "01/02/" & i
                If Data.DayOfWeek = DayOfWeek.Monday Then conta += 1
            End If
            conta += 4
        Next
risultato corretto ed uguale al codice di che postato prima

Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Per ora in C# butto cosi'.
devo dire che a complicarti la vita fai paura ... è più prestante immagino (tralasciando questo caso specifico)...

bio

Ultima modifica di bio82 : 12-05-2009 alle 01:04.
bio82 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:03   #17
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ma è giusto 811?
a me esce un pò di meno..
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:08   #18
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Anche a me salta fuori 811.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:08   #19
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da bio82 Guarda i messaggi
devo dire che a complicarti la vita fai paura ... è più prestante immagino (tralasciando questo caso specifico)...

bio
Si', e' vero, e' brutto. PRovo cosi'

Codice:
static void Main(string[] args)
{           
    var mon = from year in Enumerable.Range(1900, 2100 - 1900 + 1)
              let DaysInFeb = DateTime.DaysInMonth(year, 2)
                  from day in Enumerable.Range(1, DaysInFeb)
                  let dayday = new DateTime(year, 2, day)
                  where dayday.DayOfWeek == DayOfWeek.Monday
                  select dayday;

    int nums = mon.Count();

    Console.WriteLine(nums);
    Console.ReadKey();      

}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 01:09   #20
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ma è giusto 811?
a me esce un pò di meno..
Hai incluso il 2100?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
X ha disattivato l'account pubblicitario...
Colpo di scena a Hollywood: Paramount pr...
Malesia, giro di vite sul mining illegal...
Meta rivede la roadmap: visore ultralegg...
Addio ricariche continue con le elettric...
Maxi sconto sul robot del futuro: roboro...
I 3 super TV OLED e QLED crollati su Ama...
Tre notebook fuori di testa in sconto: M...
Sconti iPhone su Amazon: oggi ci sono i ...
Google rende disponibile Gemini 3 Deep T...
I 3 super robot Dreame Aqua10 Roller tor...
Tornano in sconto le scope elettriche Ti...
IA nei videogiochi: anche SEGA la utiliz...
Apple in piena tempesta: anche il boss d...
Due GeForce GTX 580 in SLI: l'insospetta...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v