Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

奇々怪々な小町算 その3

$
0
0

昨日はプログラミングで各項の計算方法を考えました。



問題
log□□□C×□-□=2020
上式は小町算の覆面算です。
小町算は1から9が1つずつ登場する計算式です。
9つの□を異なる1から9までの数字で埋めよ。
logは対数、Cはコンビネーション(組み合わせ)です。

でしたが、これをプログラミングの問題と解釈して、プログラムを書いて解いてみようという試みです。

そこで、プログラミング問題として、

1) |左辺-右辺|<1に該当する解をすべて求めよ。
2) 左辺が自然数になる解をすべて求めよ。
3) 等号が満たされる解をすべて求めよ。

が求まるようなプログラムを考えてみようということでしたね。

プログラミングして数学の命題の証明って、なかなか受け入れがたいものがあるかとは思う。

ただ、プログラムが間違っていないならば、出力されるデータを分析して、足りないところ、余計なところなどが見えてくることで、頭の中が整理されて、新しい真理にたどり着けることもある。

1) では、浮動小数点演算をして、右辺-左辺の絶対値が1未満のものを探す。
あわよくば差が0になるものがあれば、それが解である。
誤差が出てしまったら、解はないのか、その辺が争点となりそうです。

2) では、冪乗の項が整数となるものを探すということと同義である。
つまり、1)とはちょっと違う角度からのアプローチということです。
pow関数、log関数は浮動小数点演算なので、浮動小数点演算による誤差を想定して、何をもって整数なのか、そこが難しいところではあるが、避けては通れないであろう。

3) は、1)や2)に囚われない発想で、皆様への宿題という感じです。
私からは特に用意していませんが、一番最初の記事で解を1つ見つけているので、それが見つかるようなプログラムを作れるのかということです。


1)のプログラムの出力結果
 

5^log_3(186)-7C2x4-9=2019.4010184661
9^log_5(267)-4C1x8-3=2019.4862357006
9^log_5(267)-8C1x4-3=2019.4862357006
7^log_4(231)-9C8x6-5=2019.4944193820
8^log_6(743)-9C5x1-2=2019.5844288217
6^log_5(943)-7C2x1-8=2019.6726274134
9^log_6(514)-8C2x3-7=2019.7599841002
5^log_4(719)-6C2x3-8=2019.8101901903
9^log_7(851)-4C3x2-6=2019.9026507147
8^log_6(712)-5C4x3-9=2019.9472310830
8^log_4(169)-7C3x5-2=2020.0000000000
9^log_7(854)-6C3x1-2=2020.0005481962
6^log_5(937)-4C2x1-8=2020.1661901498
9^log_7(853)-6C2x1-4=2020.3008401729
5^log_4(718)-6C3x2-9=2020.4636135092
8^log_5(367)-4C1x9-2=2020.8497760356
8^log_5(367)-9C1x4-2=2020.8497760356

 

printfのフォーマットを
"%d^log%d(%d%d%d)-%dC%d-%d=%.10lf\n"
のようにして出力したものを、Excelに取り込み、右辺の値を切り離してソートしました。

プログラムは2020.0000000000のように、小数点以下10桁が0の整数らしい値を出してきました。

double型は、10進数では14桁が有効桁数と考えられますので、
8^log_4(169)-7C3x5-2=2020
が整数解であることは、間違いないでしょうし、他に整数解が無いということも解ります。


2)のプログラムの出力結果なのだが、なんと7992行分で、アメブロでは4万文字制限があるため、テキストではすべてを列挙することが出来ません。

そこで、その2でコンビネーションの項での最大値を考えました。
fCg9C59C4=126
fCg×h=126×8=1008
alogbcde-1008-7=2020
alogbcde-1015=2020

というわけで、2020と1015未満の差の部分と、直前直後1つずつ、0の直前直後1つずつ、データの最小と最大を書いてみます。

 

2^log_4(361)-9C5x8-7=     -996.000000000000000

4^log_8(512)-7C6x9-3=       -2.000000000000000
7^log_8(512)-9C3x4-6=        1.000000000000000

9^log_8(512)-7C6x3-4=      704.000000000000000
7^log_4(256)-9C3x8-1=     1728.000000000000000
7^log_4(256)-8C3x9-1=     1896.000000000000000
9^log_4(128)-7C3x6-5=     1972.000000000000000
9^log_4(128)-7C3x5-6=     2006.000000000000000
8^log_4(169)-7C3x5-2=     2020.000000000000000
9^log_4(128)-6C3x7-5=     2042.000000000000000
9^log_4(128)-7C5x6-3=     2058.000000000000000
9^log_4(128)-6C3x5-7=     2080.000000000000000
8^log_4(169)-7C2x5-3=     2089.000000000000000
9^log_4(128)-5C3x7-6=     2111.000000000000000
9^log_4(128)-7C5x3-6=     2118.000000000000000
9^log_4(128)-5C3x6-7=     2120.000000000000000
8^log_4(169)-7C3x2-5=     2122.000000000000000
8^log_4(169)-5C2x7-3=     2124.000000000000000
8^log_4(169)-5C3x7-2=     2125.000000000000000
8^log_4(169)-7C2x3-5=     2129.000000000000000
8^log_4(169)-7C5x3-2=     2132.000000000000000
9^log_4(128)-6C5x7-3=     2142.000000000000000
9^log_4(128)-7C6x5-3=     2149.000000000000000
8^log_4(169)-7C5x2-3=     2152.000000000000000
8^log_4(169)-5C2x3-7=     2160.000000000000000
9^log_4(128)-7C6x3-5=     2161.000000000000000
9^log_4(128)-6C5x3-7=     2162.000000000000000
8^log_4(169)-5C3x2-7=     2170.000000000000000
8^log_4(169)-3C2x7-5=     2171.000000000000000
8^log_4(169)-3C2x5-7=     2175.000000000000000
7^log_4(256)-9C3x1-8=     2309.000000000000000
7^log_4(256)-8C1x9-3=     2326.000000000000000
7^log_4(256)-9C1x8-3=     2326.000000000000000
7^log_4(256)-8C3x1-9=     2336.000000000000000
7^log_4(256)-3C1x9-8=     2366.000000000000000
7^log_4(256)-9C1x3-8=     2366.000000000000000
7^log_4(256)-3C1x8-9=     2368.000000000000000
7^log_4(256)-8C1x3-9=     2368.000000000000000
7^log_4(256)-9C8x3-1=     2373.000000000000000
7^log_4(256)-9C8x1-3=     2389.000000000000000
8^log_4(196)-7C3x5-2=     2566.999999999997700
8^log_4(196)-7C2x5-3=     2635.999999999997700
8^log_4(196)-7C3x2-5=     2668.999999999997700
8^log_4(196)-5C2x7-3=     2670.999999999997700
8^log_4(196)-5C3x7-2=     2671.999999999997700
8^log_4(196)-7C2x3-5=     2675.999999999997700
8^log_4(196)-7C5x3-2=     2678.999999999997700
8^log_4(196)-7C5x2-3=     2698.999999999997700
8^log_4(196)-5C2x3-7=     2706.999999999997700
8^log_4(196)-5C3x2-7=     2716.999999999997700
8^log_4(196)-3C2x7-5=     2717.999999999997700
8^log_4(196)-3C2x5-7=     2721.999999999997700
8^log_4(256)-9C3x7-1=     3507.000000000000000

8^log_2(976)-5C4x1-3=929714168.000000830000000

 

printfのフォーマットを
"%d^log%d(%d%d%d)-%dC%d-%d=%25.15lf\n"
のようにして出力したものを、Excelに取り込み、右辺の値を切り離してソートしました。

左辺が0になるケースはありませんでした。

小数点以下何桁0が続けば、小数点以下何桁9が続けば、整数とみなすのか。
前に書いたとおり、double型の10進数での有効桁数は14桁ということで、

if ( x > 0 ) {
  y = floor(x*pow(10,13-floor(log10(x)))+0.5)/pow(10,13-floor(log10(x)));
} else {
  y = floor(x*pow(10,13-floor(log10(-x)))+0.5)/pow(10,13-floor(log10(-x)));
}

左辺の値xが求まったとして、

log10を取って10進数の整数部の桁数を求める。
13桁から引いて、powで10の冪乗とした。
つまり、小数点の位置をずらしたわけです。
0.5を加えて、floorを取って、小数点以下を切り捨て。
小数点の位置を戻してたものをyとしました。
このyを使って、整数判定を行いました。

さて、7992行分のデータ。
もうすこし活かしましょう。
冪乗の項だけをピックアップして、重複の削除して、ソートしたものを新たなデータとします。
 

2^log_4(169)
2^log_4(196)
2^log_4(361)
2^log_4(576)
2^log_4(961)
3^log_4(256)
3^log_8(512)
3^log_9(256)
3^log_9(576)
3^log_9(625)
3^log_9(784)
3^log_9(841)
4^log_2(135)
4^log_2(136)
4^log_2(137)
4^log_2(138)
4^log_2(139)
4^log_2(153)
4^log_2(156)
4^log_2(157)
4^log_2(158)
4^log_2(159)
4^log_2(163)
4^log_2(165)
4^log_2(167)
4^log_2(168)
4^log_2(169)
4^log_2(173)
4^log_2(175)
4^log_2(176)
4^log_2(178)
4^log_2(179)
4^log_2(183)
4^log_2(185)
4^log_2(186)
4^log_2(187)
4^log_2(189)
4^log_2(193)
4^log_2(195)
4^log_2(196)
4^log_2(197)
4^log_2(198)
4^log_2(315)
4^log_2(316)
4^log_2(317)
4^log_2(318)
4^log_2(319)
4^log_2(351)
4^log_2(356)
4^log_2(357)
4^log_2(358)
4^log_2(359)
4^log_2(361)
4^log_2(365)
4^log_2(367)
4^log_2(368)
4^log_2(369)
4^log_2(371)
4^log_2(375)
4^log_2(376)
4^log_2(378)
4^log_2(379)
4^log_2(381)
4^log_2(385)
4^log_2(386)
4^log_2(387)
4^log_2(389)
4^log_2(391)
4^log_2(395)
4^log_2(396)
4^log_2(397)
4^log_2(398)
4^log_2(513)
4^log_2(516)
4^log_2(517)
4^log_2(518)
4^log_2(519)
4^log_2(531)
4^log_2(536)
4^log_2(537)
4^log_2(538)
4^log_2(539)
4^log_2(561)
4^log_2(563)
4^log_2(567)
4^log_2(568)
4^log_2(569)
4^log_2(571)
4^log_2(573)
4^log_2(576)
4^log_2(578)
4^log_2(579)
4^log_2(581)
4^log_2(583)
4^log_2(586)
4^log_2(587)
4^log_2(589)
4^log_2(591)
4^log_2(593)
4^log_2(596)
4^log_2(597)
4^log_2(598)
4^log_2(613)
4^log_2(615)
4^log_2(617)
4^log_2(618)
4^log_2(619)
4^log_2(631)
4^log_2(635)
4^log_2(637)
4^log_2(638)
4^log_2(639)
4^log_2(651)
4^log_2(653)
4^log_2(657)
4^log_2(658)
4^log_2(659)
4^log_2(671)
4^log_2(673)
4^log_2(675)
4^log_2(678)
4^log_2(679)
4^log_2(681)
4^log_2(683)
4^log_2(685)
4^log_2(687)
4^log_2(689)
4^log_2(691)
4^log_2(693)
4^log_2(695)
4^log_2(697)
4^log_2(698)
4^log_2(713)
4^log_2(715)
4^log_2(716)
4^log_2(718)
4^log_2(719)
4^log_2(731)
4^log_2(735)
4^log_2(736)
4^log_2(738)
4^log_2(739)
4^log_2(751)
4^log_2(753)
4^log_2(756)
4^log_2(758)
4^log_2(759)
4^log_2(761)
4^log_2(763)
4^log_2(765)
4^log_2(768)
4^log_2(769)
4^log_2(781)
4^log_2(783)
4^log_2(785)
4^log_2(786)
4^log_2(789)
4^log_2(791)
4^log_2(793)
4^log_2(795)
4^log_2(796)
4^log_2(798)
4^log_2(813)
4^log_2(815)
4^log_2(816)
4^log_2(817)
4^log_2(819)
4^log_2(831)
4^log_2(835)
4^log_2(836)
4^log_2(837)
4^log_2(839)
4^log_2(851)
4^log_2(853)
4^log_2(856)
4^log_2(857)
4^log_2(859)
4^log_2(861)
4^log_2(863)
4^log_2(865)
4^log_2(867)
4^log_2(869)
4^log_2(871)
4^log_2(873)
4^log_2(875)
4^log_2(876)
4^log_2(879)
4^log_2(891)
4^log_2(893)
4^log_2(895)
4^log_2(896)
4^log_2(897)
4^log_2(913)
4^log_2(915)
4^log_2(916)
4^log_2(917)
4^log_2(918)
4^log_2(931)
4^log_2(935)
4^log_2(936)
4^log_2(937)
4^log_2(938)
4^log_2(951)
4^log_2(953)
4^log_2(956)
4^log_2(957)
4^log_2(958)
4^log_2(961)
4^log_2(963)
4^log_2(965)
4^log_2(967)
4^log_2(968)
4^log_2(971)
4^log_2(973)
4^log_2(975)
4^log_2(976)
4^log_2(978)
4^log_2(981)
4^log_2(983)
4^log_2(985)
4^log_2(986)
4^log_2(987)
4^log_3(729)
4^log_8(125)
4^log_8(216)
4^log_8(512)
4^log_8(729)
5^log_3(729)
6^log_3(729)
6^log_8(512)
7^log_4(256)
7^log_8(512)
8^log_2(134)
8^log_2(135)
8^log_2(136)
8^log_2(137)
8^log_2(139)
8^log_2(143)
8^log_2(145)
8^log_2(146)
8^log_2(147)
8^log_2(149)
8^log_2(153)
8^log_2(154)
8^log_2(156)
8^log_2(157)
8^log_2(159)
8^log_2(163)
8^log_2(164)
8^log_2(165)
8^log_2(167)
8^log_2(169)
8^log_2(173)
8^log_2(174)
8^log_2(175)
8^log_2(176)
8^log_2(179)
8^log_2(193)
8^log_2(194)
8^log_2(195)
8^log_2(196)
8^log_2(197)
8^log_2(314)
8^log_2(315)
8^log_2(316)
8^log_2(317)
8^log_2(319)
8^log_2(341)
8^log_2(345)
8^log_2(346)
8^log_2(347)
8^log_2(349)
8^log_2(351)
8^log_2(354)
8^log_2(356)
8^log_2(357)
8^log_2(359)
8^log_2(361)
8^log_2(364)
8^log_2(365)
8^log_2(367)
8^log_2(369)
8^log_2(371)
8^log_2(374)
8^log_2(375)
8^log_2(376)
8^log_2(379)
8^log_2(391)
8^log_2(394)
8^log_2(395)
8^log_2(396)
8^log_2(397)
8^log_2(413)
8^log_2(415)
8^log_2(416)
8^log_2(417)
8^log_2(419)
8^log_2(431)
8^log_2(435)
8^log_2(436)
8^log_2(437)
8^log_2(439)
8^log_2(451)
8^log_2(453)
8^log_2(456)
8^log_2(457)
8^log_2(459)
8^log_2(461)
8^log_2(463)
8^log_2(465)
8^log_2(467)
8^log_2(469)
8^log_2(471)
8^log_2(473)
8^log_2(475)
8^log_2(476)
8^log_2(479)
8^log_2(491)
8^log_2(493)
8^log_2(495)
8^log_2(496)
8^log_2(497)
8^log_2(513)
8^log_2(514)
8^log_2(516)
8^log_2(517)
8^log_2(519)
8^log_2(531)
8^log_2(534)
8^log_2(536)
8^log_2(537)
8^log_2(539)
8^log_2(541)
8^log_2(543)
8^log_2(546)
8^log_2(547)
8^log_2(549)
8^log_2(561)
8^log_2(563)
8^log_2(564)
8^log_2(567)
8^log_2(569)
8^log_2(571)
8^log_2(573)
8^log_2(574)
8^log_2(576)
8^log_2(579)
8^log_2(591)
8^log_2(593)
8^log_2(594)
8^log_2(596)
8^log_2(597)
8^log_2(613)
8^log_2(614)
8^log_2(615)
8^log_2(617)
8^log_2(619)
8^log_2(631)
8^log_2(634)
8^log_2(635)
8^log_2(637)
8^log_2(639)
8^log_2(641)
8^log_2(643)
8^log_2(645)
8^log_2(647)
8^log_2(649)
8^log_2(651)
8^log_2(653)
8^log_2(654)
8^log_2(657)
8^log_2(659)
8^log_2(671)
8^log_2(673)
8^log_2(674)
8^log_2(675)
8^log_2(679)
8^log_2(691)
8^log_2(693)
8^log_2(694)
8^log_2(695)
8^log_2(697)
8^log_2(713)
8^log_2(714)
8^log_2(715)
8^log_2(716)
8^log_2(719)
8^log_2(731)
8^log_2(734)
8^log_2(735)
8^log_2(736)
8^log_2(739)
8^log_2(741)
8^log_2(743)
8^log_2(745)
8^log_2(746)
8^log_2(749)
8^log_2(751)
8^log_2(753)
8^log_2(754)
8^log_2(756)
8^log_2(759)
8^log_2(761)
8^log_2(763)
8^log_2(764)
8^log_2(765)
8^log_2(769)
8^log_2(791)
8^log_2(793)
8^log_2(794)
8^log_2(795)
8^log_2(796)
8^log_2(913)
8^log_2(914)
8^log_2(915)
8^log_2(916)
8^log_2(917)
8^log_2(931)
8^log_2(934)
8^log_2(935)
8^log_2(936)
8^log_2(937)
8^log_2(941)
8^log_2(943)
8^log_2(945)
8^log_2(946)
8^log_2(947)
8^log_2(951)
8^log_2(953)
8^log_2(954)
8^log_2(956)
8^log_2(957)
8^log_2(961)
8^log_2(963)
8^log_2(964)
8^log_2(965)
8^log_2(967)
8^log_2(971)
8^log_2(973)
8^log_2(974)
8^log_2(975)
8^log_2(976)
8^log_3(729)
8^log_4(169)
8^log_4(196)
8^log_4(256)
8^log_4(361)
8^log_4(529)
8^log_4(576)
8^log_4(625)
8^log_4(729)
8^log_4(961)
9^log_3(124)
9^log_3(125)
9^log_3(126)
9^log_3(127)
9^log_3(128)
9^log_3(142)
9^log_3(145)
9^log_3(146)
9^log_3(147)
9^log_3(148)
9^log_3(152)
9^log_3(154)
9^log_3(156)
9^log_3(157)
9^log_3(158)
9^log_3(162)
9^log_3(164)
9^log_3(165)
9^log_3(167)
9^log_3(168)
9^log_3(172)
9^log_3(174)
9^log_3(175)
9^log_3(176)
9^log_3(178)
9^log_3(182)
9^log_3(184)
9^log_3(185)
9^log_3(186)
9^log_3(187)
9^log_3(214)
9^log_3(215)
9^log_3(216)
9^log_3(217)
9^log_3(218)
9^log_3(241)
9^log_3(245)
9^log_3(246)
9^log_3(247)
9^log_3(248)
9^log_3(251)
9^log_3(254)
9^log_3(256)
9^log_3(257)
9^log_3(258)
9^log_3(261)
9^log_3(264)
9^log_3(265)
9^log_3(267)
9^log_3(268)
9^log_3(271)
9^log_3(274)
9^log_3(275)
9^log_3(276)
9^log_3(278)
9^log_3(281)
9^log_3(284)
9^log_3(285)
9^log_3(286)
9^log_3(287)
9^log_3(412)
9^log_3(415)
9^log_3(416)
9^log_3(417)
9^log_3(418)
9^log_3(421)
9^log_3(425)
9^log_3(426)
9^log_3(427)
9^log_3(428)
9^log_3(451)
9^log_3(452)
9^log_3(456)
9^log_3(457)
9^log_3(458)
9^log_3(461)
9^log_3(462)
9^log_3(465)
9^log_3(467)
9^log_3(468)
9^log_3(471)
9^log_3(472)
9^log_3(475)
9^log_3(476)
9^log_3(478)
9^log_3(481)
9^log_3(482)
9^log_3(485)
9^log_3(486)
9^log_3(487)
9^log_3(512)
9^log_3(514)
9^log_3(516)
9^log_3(517)
9^log_3(518)
9^log_3(521)
9^log_3(524)
9^log_3(526)
9^log_3(527)
9^log_3(528)
9^log_3(541)
9^log_3(542)
9^log_3(546)
9^log_3(547)
9^log_3(548)
9^log_3(561)
9^log_3(562)
9^log_3(564)
9^log_3(567)
9^log_3(568)
9^log_3(571)
9^log_3(572)
9^log_3(574)
9^log_3(576)
9^log_3(578)
9^log_3(581)
9^log_3(582)
9^log_3(584)
9^log_3(586)
9^log_3(587)
9^log_3(612)
9^log_3(614)
9^log_3(615)
9^log_3(617)
9^log_3(618)
9^log_3(621)
9^log_3(624)
9^log_3(625)
9^log_3(627)
9^log_3(628)
9^log_3(641)
9^log_3(642)
9^log_3(645)
9^log_3(647)
9^log_3(648)
9^log_3(651)
9^log_3(652)
9^log_3(654)
9^log_3(657)
9^log_3(658)
9^log_3(671)
9^log_3(672)
9^log_3(674)
9^log_3(675)
9^log_3(678)
9^log_3(681)
9^log_3(682)
9^log_3(684)
9^log_3(685)
9^log_3(687)
9^log_3(712)
9^log_3(714)
9^log_3(715)
9^log_3(716)
9^log_3(718)
9^log_3(721)
9^log_3(724)
9^log_3(725)
9^log_3(726)
9^log_3(728)
9^log_3(741)
9^log_3(742)
9^log_3(745)
9^log_3(746)
9^log_3(748)
9^log_3(751)
9^log_3(752)
9^log_3(754)
9^log_3(756)
9^log_3(758)
9^log_3(761)
9^log_3(762)
9^log_3(764)
9^log_3(765)
9^log_3(768)
9^log_3(781)
9^log_3(782)
9^log_3(784)
9^log_3(785)
9^log_3(786)
9^log_3(812)
9^log_3(814)
9^log_3(815)
9^log_3(816)
9^log_3(817)
9^log_3(821)
9^log_3(824)
9^log_3(825)
9^log_3(826)
9^log_3(827)
9^log_3(841)
9^log_3(842)
9^log_3(845)
9^log_3(846)
9^log_3(847)
9^log_3(851)
9^log_3(852)
9^log_3(854)
9^log_3(856)
9^log_3(857)
9^log_3(861)
9^log_3(862)
9^log_3(864)
9^log_3(865)
9^log_3(867)
9^log_3(871)
9^log_3(872)
9^log_3(874)
9^log_3(875)
9^log_3(876)
9^log_4(128)
9^log_4(256)
9^log_4(512)
9^log_8(512)

666行分のデータです。

aについて、

a個数
25
37
4215
51
62
72
8220
9214


bについて、

b個数
2420
3214
419
50
60
70
88
95


a^log_bについて

a^log_b個数
4^log_2210
8^log_2210
4^log_31
5^log_31
6^log_31
8^log_31
9^log_3210
2^log_45
3^log_41
7^log_41
8^log_49
9^log_43
3^log_81
4^log_84
6^log_81
7^log_81
9^log_81
3^log_95

4^log_2, 8^log_2, 9^log_3は汎用型で、いずれの個数も210個で合計630個
その他は合計36個

cde=n^2型について

ncde=n^2個数
1316948
1419648
1625672
172890
183240
1936148
2352912
2457672
2562536
2772972
2878424
2984124
3196148
n^2型504
その他162


cde=n^3型について

ncde=n^3個数
512524
621624
851284
972972
n^3型204
その他462


cde=2^m型について

mcde=2^m型個数
712824
825672
951284
2^m型180
その他486


cde=3^m型について

mcde=3^m型個数
52430
672972
3^m型72
その他594


a^log_bとcdeで表を作りたかったが、アメブロ4万文字制限のため、まだまだ続きます。


ではでは


Viewing all articles
Browse latest Browse all 5376

Trending Articles