標籤:

像2017102這樣正反念一樣的日期常見嗎?

大概幾年一次?距離說明,最好有理論依據。


這日期不規範。

規範日期應為20171002、20170102。

顯然,20200202、20211202很符合。


常見。統計了一下1800-2200年的迴文日期,包括月、日含0、不含0的所有情況,以迴文日期間隔天數對迴文日期作圖。當年份用四位數時:

最近幾年平均半年就出現一次(2017.1.02,2017.10.2),然後大概一年出現一次(2046.4.02),但是20世紀很長一段時間十一年才出現一次(1966.9.1)。

當年份用兩位數時更常見:

最頻繁的時候十天出現一次(91.1.9 ~ 91.1.19),次頻繁一兩個月出現一次(10.6.01),不頻繁的時候大概一年出現一次(17.7.1),極端條件下六年出現一次(03.11.30 ~ 10.1.01)。


哈哈,今天看見有人發這樣一個消息了,也看見有人說1000年才遇到一次,即3017103,我一看就偷著樂了呀,哈哈哈,這數字幾乎每年都有啊。

比如說:

2018102、

2019102、

2010102、

2011102

and so on~


贊同楊鵬遠的回答,我想說的是,我十分懷疑這個是有人為了製造話題而有意製造的營銷內容。


謝邀

唉,反正這幾天無聊,就當消磨時間吧

2844822941一條隨意的分割線2456695155

首先我們要搞清楚是否用0佔位

10.2(未佔位)

10.02(佔位)

如果佔位的話,(在年數為四位數時)日期的格式始終為abcd.ef.gh

我們知道

a≠0

e=0,1

當e=0時,f≠0;當e=1時,f=0,1,2

g=0,1,2,3(當e=0且f=2時,g≠3)

當e,f,g分別等於(0,2,2)時,若abcd不是4或400的倍數或是100的倍數而不是400的倍數,則h≠9

當e,f,g分別等於(0,1,3),(0,3,3),(0,5,3),(0,7,3),(0,8,3),(1,0,3),(1,2,3)時,h=1

只要不與上面的條件矛盾,對稱一下,我們就知道這一年會不會有這麼一天

比如2011.11.02,2020.02.02,7280.08.27

如果不佔位的話就複雜很多了

我們先確定在這一個世紀內

那麼就是20xx年,某月,2日(因為不佔位,所以沒有02日,直接2日)

再將0對稱過來,月份的個位就是0,又因為沒有0月,所以月份就是10

所以就是201(對稱過來)x.10.2

所以2010到2019這10年都有這一天

然後21世紀就沒有了……

我們不妨再看看22世紀的情況(雖然可能到不了那一年了)

那麼就是21xx年,某月,某日

當日期是2日,且月份是1時,即為21xx.1.2.那麼2100年(00後,10後貌似還到得了那一天),2111年,2122年,……,2199年都有這一天

當日期是2日,且月份是11時,即為21xx.11.2,即為211x.11.2.那麼2110年到2119年都有這一天。

也就是說2111年的1月2日(2111.1.2)和11月2日(2111.11.2)都對稱

既然都說到這裡,我不說你也可能知道了2111年的1月12日(2111.1.12)和11月12日(2111.11.12)也對稱

當日期是12日時,即為21xx.某.12.那麼一共有93年符合

除去重合的,22世紀一共有93年有這樣一天或幾天


營銷號製造話題熱度的最好方式就是故意造謠,而且要造一個是個人都能看出來的低級謠言,這樣才能最快速度製造熱度。

以此例為例,營銷號真的不知道按他的演算法明年就有同樣的日子嗎?不,他肯定知道。但為了製造流量,他故意寫「1000年才有一次」這個低級謠言,這樣大家都會為了闢謠而轉發,熱度就上來了。


歪個樓,其實每一天對你,對我,都是最獨一無二的一天,不是嗎?


【P2010】迴文日期 - 洛谷

另2018102


本來要用C++寫,但是發現日期這個玩意官方給的太難用,於是用C#來寫,

在1年1月1日開始至9999年12月31日,一共有4286天反過來都一樣

public static void Main()
{
DateTime date = new DateTime(2000, 1, 1);
int count = 0;
for (;;)
{
if (date.Year == 2099 date.Month == 12 date.Day == 31) break;
int ysize = 0, msize = 0, dsize = 0;
string defaultDateString = DateTimeToString(date);
//將各部分分開
string[] ns = defaultDateString.Split(a);
//得到各個部分的長度
ysize = ns[0].Length;
msize = ns[1].Length;
dsize = ns[2].Length;

//去掉本來的a,然後翻轉
string removed = defaultDateString.Replace("a", "");
string changed = ReverseToArray(removed);

DateTime ReverseDate = ReverseDateTime(changed, ysize, msize, dsize);
if (date == ReverseDate)
{
Write(date.ToString("yyyy-MM-dd") + " " + ReverseDate.ToString("yyyy-MM-dd") + " ");
WriteLine(date == ReverseDate);
count++;
}
date = date.AddDays(1);
}
WriteLine(count);

}

private static string DateTimeToString(DateTime date)
{
return date.Year.ToString() +"a"+ date.Month.ToString() +"a"+ date.Day.ToString();
}

public static string ReverseToArray(string date)
{
char[] c = date.ToCharArray();
Array.Reverse(c);
return new string(c);
}

public static DateTime ReverseDateTime(string dateString, int ysize, int msize, int dsize)
{
List& list = new List&();
for (int i = 0; i &< ysize; i++) list.Add(dateString[i]); string year = new string(list.ToArray()); list.Clear(); for (int i = ysize; i &< msize + ysize; i++) list.Add(dateString[i]); string month = new string(list.ToArray()); list.Clear(); for (int i = ysize + msize; i &< msize + ysize + dsize; i++) list.Add(dateString[i]); string day = new string(list.ToArray()); list.Clear(); DateTime newdate; try { newdate = new DateTime(int.Parse(year), int.Parse(month), int.Parse(day)); } catch(Exception) { newdate = new DateTime(9999, 12, 31, 1, 12, 3); } return newdate; }


推薦閱讀:

TAG:數學 | 日期 |